Le fichier index1.htm est le fichier central du site web de l'IPX, c'est la page d'accueil, celle qui permet d'afficher l'état des entrées et sorties de la carte et de commander manuellement les sorties. On y trouve également les liens d'accès aux diverses pages de configuration de l'IPX. Cet article va balayer les lignes importantes du fichier, celles que vous ne devez pas rater pour bien comprendre la logique du fichier, ce qu'il fait et ce qu'il permet d'afficher à votre écran. Allez hop, c'est parti...

<script src="js/mchp.js" type="text/javascript"></script>
<script src="js/fct.js" type="text/javascript"></script>
Ces deux lignes font référence aux scripts Javascript permettant de faire l'interface entre le hardware, le firmware et le site web. Il ne faut pas y toucher, la page index1.htm en a besoin pour pouvoir récupérer les états physiques des entrées et sorties de l'IPX, et pouvoir commander les sorties depuis la page web.

<span id="jour">&nbsp;</span>
<span id="time0">&nbsp;</span>
Ces deux lignes permettent l'affichage dynamique (constamment mis à jour) du jour de la semaine et de l'heure de l'IPX. Si les valeurs ne sont pas bonnes, c'est que votre IPX n'a pas pu se "mettre à l'heure" grâce au serveur NTP que vous avez indiqué dans la configuration de l'IPX.

<input type="button" id="control" class="coff" onclick="display('Controls')"/> Cette ligne permet d'afficher un bouton qui, si vous cliquez dessus, ouvrira une fenêtre permettant de commander à la main les sorties de l'IPX. Elle n'est pas obligatoire en soi, c'est un choix de mise en forme HTML de GCE Electronics. Cette fenêtre et les liens qui vont avec peuvent très bien être affichés en permanence, sans bouton pour les faire apparaître ou disparaître.

onclick="newAJAXCommand('leds.cgi?led=0');" Cet attribut HTML permet, à chaque clic, de commander la sortie correspondante : la sortie sera de type on/off ou impulsionnel selon sa configuration (à votre choix).

<span id="led00" ></span> Cette syntaxe permet de récupérer et afficher l'état on ou off d'une sortie.

<span id="btn00"></span> De la même manière que pour les sorties, cette syntaxe permet de récupérer et afficher l'état actif ou inactif d'une entrée numérique.

<span id="tmp0">?</span> Idem, cette syntaxe permet de récupérer et afficher la valeur d'une entrée analogique, selon sa configuration (valeur brute sur 10 bits, température, humidité, etc).

function updateStatus(xmlData) C'est le début du script qui va, en permanence, aller chercher l'état des entrées et sorties de l'IPX pour le mettre à disposition de la page web qui se chargera alors de l'afficher comme nous venons de le voir.

document.getElementById('variable').innerHTML = getXMLValue(xmlData, 'variable'); Cette ligne permet au script de récupérer la valeur d'une variable de l'IPX. Les variables sont : le jour, l'heure, les 4 valeurs d'entrées analogiques, les 8 états on/off des entrées numériques et les 8 états on/off des sorties.

switch (getXMLValue(xmlData, 'anselect'+i)) Cette ligne permet d'ouvrir une boucle permettant de détecter le type d'une entrée analogique (que vous avez vous-même choisi dans la configuration) et d'afficher par conséquent la bonne valeur (brute, tension, température, etc).

GetAn = getXMLValue(xmlData, 'analog'+i)*0.00323; Cette ligne (c'est le cas 1 de la boucle switch ci-dessus, l'utilisateur a choisi l'affichage d'une tension pour son entrée analogique) vous permet de coder une formule de conversion de la valeur brute d'une entrée analogique. La valeur brute est donnée sur 10 bits, soit de 0 à 1023. On voit ici que le coefficient 0.00323 permet bien de retrouver la valeur de tension vue par l'entrée analogique, puisque 1023x0.00323=3,3V.

document.getElementById('variable').innerHTML = GetAn.toFixed(x) Cette commande permet d'arrondir la valeur d'une variable à x chiffres après la virgule.

setTimeout("newAJAXCommand('status.xml', updateStatus, true)",500); Ligne importante à ne pas modifier, elle permet de gérer la durée de "balayage" des états physiques de l'IPX.

Et voilà, nous sommes à la fin du fichier. Le reste n'est que du HTML, du texte ou de la mise en forme. Vous avez donc toutes les bases pour réécrire cette page à votre guise, vous savez maintenant ce qu'il ne faut pas oublier pour que les données soient lues et affichées correctement. Attention, ce fichier doit obligatoirement être chargé dans la mémoire de l'IPX, vous ne pouvez pas l'héberger sur un autre ordinateur ou un autre serveur. Les liens qu'il possède avec les scripts AJAX entraîne une impossibilité technique de "déporter" le fichier. Le site web embarqué de l'IPX, même si vous pouvez le modifier, doit justement rester embarqué.