Applikation zum Web-IO Digital:
Web-IO Digital visualisieren & steuern
Die Inputs, Counter und Outputs des Web-IO Digital können mit Hilfe von JavaScript und einigen Bildern recht einfach auf einer Webseite visualisiert werden. Für die laufende Aktualisierung der Anzeige sorgt die Einbindung des Web-IO-Applets.
Mit dem folgenden copy&paste-Beispiel können Sie Ihr Web-IO Digital mit seinen Inputs und Outputs auf einer Webseite abbilden. Darüber hinaus können Sie die Outputs des Web-IOs von der Webseite aus auch schalten.
Sie haben Ihr Web-IO Digital bereits
- mit Strom versorgt,
- an Ihr Netzwerk angeschlossen,
- mit einer IP-Adresse versehen - mit WuTility kein Problem.
Kopieren Sie aus dem folgenden Beispiel das JavaScript (blau unterlegt) in den <head>-Bereich Ihrer Webseite.
<html>
<head>
<title>Web-IO Digital: Inputs/Outputs</title>
<script language="JavaScript" type="text/javascript">
<!--
var ypositopn = 175;
var xposition = 87;
var xdifferenc = 24;
ledinput = new Array(12);
ledoutput = new Array(12);
switchoutput = new Array(12);
outputvalue = new Array(12);
for (i=0; i<12; i++)
{
outputvalue[i] = false;
}
for (i=0; i<4; i++)
{
ledinput[i] = new multipic(100+i,"led_","gif",1,ypositopn,xposition + i*xdifferenc,"nolink");
status=i;
}
for (i=4; i<8; i++)
{
ledinput[i] = new multipic(100+i,"led_","gif",1,ypositopn,xposition + 26 + i*xdifferenc,"nolink");
}
for (i=8; i<12; i++)
{
ledinput[i] = new multipic(100+i,"led_","gif",1,ypositopn,xposition + 56 + i*xdifferenc,"nolink");
}
ypositopn = 327;
for (i=0; i<4; i++)
{
ledoutput[i] = new multipic(200+i,"led_","gif",1,ypositopn,xposition + i*xdifferenc,"nolink");
}
for (i=4; i<8; i++)
{
ledoutput[i] = new multipic(200+i,"led_","gif",1,ypositopn,xposition + 3 + i*xdifferenc,"nolink");
}
for (i=8; i<12; i++)
{
ledoutput[i] = new multipic(200+i,"led_","gif",1,ypositopn,xposition + 5 + i*xdifferenc,"nolink");
}
document.write("<img border='0' src='stickersmall.gif' style='position:absolute; top:160px; left:10px'>");
ypositopn = 380;
xposition = 80;
xdifferenc = 25;
for (i=0; i<12; i++)
{
switchoutput[i] = new multipic(i,"switch_","gif",1,ypositopn,xposition + i*xdifferenc, "setOutput");
}
function multipic(id, img_name, img_ext, img_count, ypos, xpos, link)
{
img_count++;
this.multipics = new Array( img_count );
this.multipic_count = img_count;
this.multipic_id = id; // class variables
for (ii=0; ii<img_count; ii++)
{
this.multipics[ii] = new Image();
this.multipics[ii].src = img_name+ii+'.'+img_ext;
}
this.Set = picSet; // class method
if (link == "nolink")
{
document.write("<img id='"+this.multipic_id+"' style=position:absolute;top:"+ypos+"px;left:"+xpos+"px src="+this.multipics[0].src+" border=0>");
}
else
{
document.write("<a href='javascript:" + link + "(" + id + ");'><img id='"+this.multipic_id+"' style=position:absolute;top:"+ypos+"px;left:"+xpos+"px src="+this.multipics[0].src+" border=0></a>");
}
}
function picSet(iCount)
{
for (ii=0; ii<this.multipic_count; ii++)
{
if(iCount==ii)
{
document.getElementById(this.multipic_id).src = this.multipics[ii].src;
}
}
}
function inputChanged( iDevice, iNr, iVal )
{
ledinput[iNr].Set(iVal);
}
function outputChanged( iDevice, iNr, iVal )
{
ledoutput[iNr].Set(iVal);
switchoutput[iNr].Set(iVal);
outputvalue[iNr] = iVal;
}
function setOutput(iNr)
{
if (outputvalue[iNr]==false)
{
document.applets["dio"].outputAccess( Math.pow( 2, iNr ), 0x0FFF );
}
else
{
document.applets["dio"].outputAccess( Math.pow( 2, iNr ), 0x0000 );
}
}
function setPassword()
{
document.applets["dio"].setPassword( document.forms[0].tfPassword.value );
document.forms[0].tfPassword.value = '';
}
</script>
</head>
...
- Kopieren Sie die Applet-Angaben (blau unterlegt) in den <body>-Bereich Ihrer Webseite.
- Fügen Sie die IP-Adresse Ihres Web-IO Analog ein.
...
<body style="background-color: #0099CC; font-family: Arial, Helvetica, sans-serif;">
<applet name="dio" archive="dio.jar" code="dio.class" codebase="http://10.40.50.5" height="0" width="0" mayscript>
<param name="device" value="0">
<param name="showerrors" value="off">
<param name="inputpolling" value="on">
<param name="outputpolling" value="on">
<param name="counterpolling" value="off">
<param name="pollingrate" value="1000">
Java ist nicht aktiviert oder wird nicht unterstützt
</applet>
...
Wenn Sie Ihr Web-IO durch ein Passwort geschützt haben, kopieren Sie das Passwort-Formular (blau unterlegt) ebenfalls in den <body>-Bereich Ihrer Webseite. Die Webseite kann in diesem Fall erst nach dem Senden des Passwortes mit dem Web-IO kommunizieren.
...
<form>
<p>Passwort:
<input type="password" name="tfPassword" maxlength="31" size="20">
<input type="button" value="senden" onclick="setPassword()">
</p>
</form>
</body>
</html>
Nun benötigen Sie nur noch die zum Anzeigeobjekt gehörigen Bilder, die wir hier zum Download bereitgestellt haben: .zip (ca. 12 KB). Bitte legen Sie die Bilder in dem Verzeichnis ab, in dem sich auch die Webseite mit den JavaScript- und Applet-Angaben befindet.
Programmbeispiel herunterladen
Kein Problem: Wir stellen Ihnen das Web-IO Digital 2xInput, 2xOutput PoE gerne kostenlos für 30 Tage zur Verfügung. Einfach Musterbestellung ausfüllen, wir liefern das Web-IO zum Test auf offene Rechnung. Wenn Sie das Gerät innerhalb von 30 Tagen zurück schicken, schreiben wir die Rechnung komplett gut.
Zur Musterbestellung