Example: Residential Irrigation
Here is the source code for the
web page.
<html>
<title>Sprinkler
Control</title>
<head>
<script
LANGUAGE="javascript">
function Connect()
{
document.iNetGrowForm.txtComments.value =
"connecting...";
if(iNetGrowX.Connect("192.168.0.65", 8449))
{
document.iNetGrowForm.txtComments.value =
"requesting information...";
document.body.style.cursor =
"wait";
setTimeout('Refresh()', 1000);
}
else
document.iNetGrowForm.txtComments.value =
"cannot connect";
}
function UploadParameters()
{
var n, nCount;
for(n=0; n<3; n++)
{
nCount=iNetGrowX.GetNumParameters(1);
if(nCount>0) break;
}
return(nCount);
}
function Refresh()
{
var n, nCount, nValue, nMode, nParValues = new
Array(24);
document.iNetGrowForm.txtComments.value="requesting
information...";
document.body.style.cursor = "wait";
nCount=UploadParameters();
if(nCount<1)
{
document.iNetGrowForm.txtComments.value="trying
again...";
document.body.style.cursor =
"wait";
setTimeout('Refresh()', 1000);
return;
}
for(n=0; n<nCount; n++)
nParValues[n]=iNetGrowX.GetParameterValue(n);
RefreshZones();
nValue=iNetGrowX.GetParameterValue(0);
if(nValue & 1) nMode=1;
else if(nValue & 0x10) nMode=2;
else nMode=0;
document.iNetGrowForm.selMode_1.value = eval(nMode);
if(nValue & 2) nMode=1;
else if(nValue & 0x20) nMode=2;
else nMode=0;
document.iNetGrowForm.selMode_2.value = eval(nMode);
if(nValue & 4) nMode=1;
else if(nValue & 0x40) nMode=2;
else nMode=0;
document.iNetGrowForm.selMode_3.value = eval(nMode);
if(nValue & 8) nMode=1;
else if(nValue & 0x80) nMode=2;
else nMode=0;
document.iNetGrowForm.selMode_4.value = eval(nMode);
document.iNetGrowForm.selDay_1.value = nParValues[3];
document.iNetGrowForm.selDay_2.value = nParValues[4];
document.iNetGrowForm.selDay_3.value = nParValues[5];
document.iNetGrowForm.selStartHour_1.value =
Math.floor(nParValues[6]/60);
document.iNetGrowForm.selStartMinute_1.value =
nParValues[6]%60;
document.iNetGrowForm.selStartHour_2.value =
Math.floor(nParValues[7]/60);
document.iNetGrowForm.selStartMinute_2.value =
nParValues[7]%60;
document.iNetGrowForm.selStartHour_3.value =
Math.floor(nParValues[8]/60);
document.iNetGrowForm.selStartMinute_3.value =
nParValues[8]%60;
document.iNetGrowForm.txtDuration_11.value =
nParValues[9];
document.iNetGrowForm.txtDuration_12.value =
nParValues[13];
document.iNetGrowForm.txtDuration_13.value =
nParValues[17];
document.iNetGrowForm.txtDuration_21.value =
nParValues[10];
document.iNetGrowForm.txtDuration_22.value =
nParValues[14];
document.iNetGrowForm.txtDuration_23.value =
nParValues[18];
document.iNetGrowForm.txtDuration_31.value =
nParValues[11];
document.iNetGrowForm.txtDuration_32.value =
nParValues[15];
document.iNetGrowForm.txtDuration_33.value =
nParValues[19];
document.iNetGrowForm.txtDuration_41.value =
nParValues[12];
document.iNetGrowForm.txtDuration_42.value =
nParValues[16];
document.iNetGrowForm.txtDuration_43.value =
nParValues[20];
document.iNetGrowForm.txtComments.value="updated...";
document.body.style.cursor = "default";
}
function Save()
{
var nH, nM;
SaveModes();
iNetGrowX.SetParameterValue(3,
document.iNetGrowForm.selDay_1.value);
iNetGrowX.SetParameterValue(4,
document.iNetGrowForm.selDay_2.value);
iNetGrowX.SetParameterValue(5,
document.iNetGrowForm.selDay_3.value);
nH=document.iNetGrowForm.selStartHour_1.value;
nM=document.iNetGrowForm.selStartMinute_1.value;
iNetGrowX.SetParameterValue(6, eval(nM)+(60*nH));
nH=document.iNetGrowForm.selStartHour_2.value;
nM=document.iNetGrowForm.selStartMinute_2.value;
iNetGrowX.SetParameterValue(7, (nM*1)+(60*nH));
nH=document.iNetGrowForm.selStartHour_3.value;
nM=document.iNetGrowForm.selStartMinute_3.value;
iNetGrowX.SetParameterValue(8, eval(nM)+(60*nH));
iNetGrowX.SetParameterValue( 9,
document.iNetGrowForm.txtDuration_11.value);
iNetGrowX.SetParameterValue(13,
document.iNetGrowForm.txtDuration_12.value);
iNetGrowX.SetParameterValue(17,
document.iNetGrowForm.txtDuration_13.value);
iNetGrowX.SetParameterValue(10,
document.iNetGrowForm.txtDuration_21.value);
iNetGrowX.SetParameterValue(14,
document.iNetGrowForm.txtDuration_22.value);
iNetGrowX.SetParameterValue(18,
document.iNetGrowForm.txtDuration_23.value);
iNetGrowX.SetParameterValue(11,
document.iNetGrowForm.txtDuration_31.value);
iNetGrowX.SetParameterValue(15,
document.iNetGrowForm.txtDuration_32.value);
iNetGrowX.SetParameterValue(19,
document.iNetGrowForm.txtDuration_33.value);
iNetGrowX.SetParameterValue(12,
document.iNetGrowForm.txtDuration_41.value);
iNetGrowX.SetParameterValue(16,
document.iNetGrowForm.txtDuration_42.value);
iNetGrowX.SetParameterValue(20,
document.iNetGrowForm.txtDuration_43.value);
document.iNetGrowForm.txtComments.value="submitting
changes...";
document.body.style.cursor = "wait";
setTimeout('Refresh()', 16000);
}
function SaveModes()
{
var nManual;
document.body.style.cursor = "wait";
nManual=0;
switch(eval(document.iNetGrowForm.selMode_1.value))
{
case 1 : nManual |= 0x01; break;
case 2 : nManual |= 0x10; break;
}
switch(eval(document.iNetGrowForm.selMode_2.value))
{
case 1 : nManual |= 0x02; break;
case 2 : nManual |= 0x20; break;
}
switch(eval(document.iNetGrowForm.selMode_3.value))
{
case 1 : nManual |= 0x04; break;
case 2 : nManual |= 0x40; break;
}
switch(eval(document.iNetGrowForm.selMode_4.value))
{
case 1 : nManual |= 0x08; break;
case 2 : nManual |= 0x80; break;
}
iNetGrowX.SetParameterValue(0, nManual);
document.iNetGrowForm.txtComments.value="submitting
changes...";
setTimeout('RefreshZones()', 16000);
}
function RefreshZones()
{
var nCount, nValue, nDay, nHour, nMin;
var sTime;
nCount=UploadParameters();
if(nCount<1)
{
document.iNetGrowForm.txtComments.value="trying again...";
document.body.style.cursor =
"wait";
setTimeout('RefreshZones()', 1000);
return;
}
nValue=iNetGrowX.GetInputValue(1);
document.iNetGrowForm.txtTemperature.value = nValue +
" Fahrenheit";
switch(iNetGrowX.GetVariableValue(1))
{
case 1 : sTime="Sunday"; break;
case 2 : sTime="Monday"; break;
case 3 : sTime="Tuesday"; break;
case 4 : sTime="Wednesday";
break;
case 5 : sTime="Thurday"; break;
case 6 : sTime="Friday"; break;
case 7 : sTime="Saturday";
break;
}
nValue=iNetGrowX.GetVariableValue(0);
nHour=Math.floor(eval(nValue)/60);
nMin=nValue%60;
if(nHour<12) document.iNetGrowForm.txtTime.value =
sTime + ", " + nHour + ":" + nMin + " AM";
else
{
nHour-=12;
document.iNetGrowForm.txtTime.value
= sTime + ", " + nHour + ":" + nMin + " PM";
}
nValue=iNetGrowX.GetOutputValue(0);
if(eval(nValue))
document.iNetGrowForm.txtCurZone_1.value = "on";
else
document.iNetGrowForm.txtCurZone_1.value = "off";
nValue=iNetGrowX.GetOutputValue(1);
if(eval(nValue))
document.iNetGrowForm.txtCurZone_2.value = "on";
else
document.iNetGrowForm.txtCurZone_2.value = "off";
nValue=iNetGrowX.GetOutputValue(2);
if(eval(nValue)) document.iNetGrowForm.txtCurZone_3.value
= "on";
else
document.iNetGrowForm.txtCurZone_3.value = "off";
nValue=iNetGrowX.GetOutputValue(3);
if(eval(nValue))
document.iNetGrowForm.txtCurZone_4.value = "on";
else
document.iNetGrowForm.txtCurZone_4.value = "off";
document.iNetGrowForm.txtComments.value="updated...";
document.body.style.cursor = "default";
}
</script>
</head>
<body
onload="Connect()">
<!-- SCRIPT FOR=window
EVENT=onload LANGUAGE="JScript">
Connect();
</SCRIPT -->
<OBJECT
ID="iNetGrowX"
CLASSID="CLSID:00A93CF8-97FE-4E1A-A2F1-395A07870E3D"
WIDTH="0" HEIGHT="0"
CODEBASE="http://www.inetgrow.com/software/iNetGrowX.ocx">
</OBJECT>
<form
name="iNetGrowForm" language="jscript" action=""
method="POST">
<p>
<font
face="Courier">
<p>
<b> Sprinkler
Control</b>
<p>
<p>
<p>
<table
border="0">
<tr> <td
width="50"><b>Zone</b></td><td
width="100"><b>Current state</b></td><td
width="100"><b>Operating
mode</b></td></tr>
<tr>
<td><b>1</b></td>
<td><INPUT TYPE=text SIZE=6
NAME="txtCurZone_1" readonly></td>
<td> <SELECT NAME="selMode_1">
<OPTION
VALUE="0">Automatic 
<OPTION
VALUE="1">Force ON
<OPTION
VALUE="2">Force OFF
</SELECT>
</td>
</tr>
<tr>
<td><b>2</b></td>
<td><INPUT TYPE=text SIZE=6
NAME="txtCurZone_2" readonly></td>
<td> <SELECT NAME="selMode_2">
<OPTION
VALUE="0">Automatic 
<OPTION
VALUE="1">Force ON
<OPTION
VALUE="2">Force OFF
</SELECT>
</td>
</tr>
<tr>
<td><b>3</b></td>
<td><INPUT TYPE=text SIZE=6
NAME="txtCurZone_3" readonly></td>
<td> <SELECT NAME="selMode_3">
<OPTION
VALUE="0">Automatic 
<OPTION
VALUE="1">Force ON
<OPTION
VALUE="2">Force OFF
</SELECT>
</td>
</tr>
<tr>
<td><b>4</b></td>
<td><INPUT TYPE=text SIZE=6
NAME="txtCurZone_4" readonly></td>
<td> <SELECT NAME="selMode_4">
<OPTION
VALUE="0">Automatic 
<OPTION
VALUE="1">Force ON
<OPTION
VALUE="2">Force OFF
</SELECT>
</td>
</tr>
</table>
<p>
<p>
<table
border="0">
<tr>
<td
width="250"><b>Schedules</b></td> <td
width="250"><b>Weekly (1)</b></td> <td
width="250"><b>Weekly (2)</b></td> <td
width="250"><b>Special</b></td>
</tr>
<tr>
<td> Day of week </td>
<td> <SELECT NAME="selDay_1">
<OPTION
VALUE="0">(disabled)
<OPTION
VALUE="1">Sunday
<OPTION
VALUE="2">Monday
<OPTION
VALUE="3">Tuesday
<OPTION
VALUE="4">Wednesday
<OPTION
VALUE="5">Thursday
<OPTION
VALUE="6">Friday
<OPTION
VALUE="7">Saturday
</SELECT>
</td>
<td> <SELECT NAME="selDay_2">
<OPTION
VALUE="0">(disabled)
<OPTION
VALUE="1">Sunday
<OPTION
VALUE="2">Monday
<OPTION
VALUE="3">Tuesday
<OPTION
VALUE="4">Wednesday
<OPTION
VALUE="5">Thursday
<OPTION
VALUE="6">Friday
<OPTION
VALUE="7">Saturday
</SELECT>
</td>
<td> <SELECT NAME="selDay_3">
<OPTION
VALUE="0">(disabled)
<OPTION
VALUE="1">Sunday
<OPTION
VALUE="2">Monday
<OPTION
VALUE="3">Tuesday
<OPTION
VALUE="4">Wednesday
<OPTION
VALUE="5">Thursday
<OPTION
VALUE="6">Friday
<OPTION
VALUE="7">Saturday
</SELECT>
</td>
</tr>
<tr>
<td> Start time </td>
<td> <SELECT
NAME="selStartHour_1">
<OPTION
VALUE="0">Midnight
<OPTION
VALUE="1">1 AM
<OPTION
VALUE="2">2 AM
<OPTION
VALUE="3">3 AM
<OPTION VALUE="4">4
AM
<OPTION
VALUE="5">5 AM
<OPTION
VALUE="6">6 AM
<OPTION
VALUE="7">7 AM
<OPTION
VALUE="8">8 AM
<OPTION
VALUE="9">9 AM
<OPTION
VALUE="10">10 AM
<OPTION
VALUE="11">11 AM
<OPTION
VALUE="12">Noon
<OPTION
VALUE="13">1 PM
<OPTION
VALUE="14">2 PM
<OPTION
VALUE="15">3 PM
<OPTION
VALUE="16">4 PM
<OPTION
VALUE="17">5 PM
<OPTION
VALUE="18">6 PM
<OPTION
VALUE="19">7 PM
<OPTION VALUE="20">8 PM
<OPTION
VALUE="21">9 PM
<OPTION
VALUE="22">10 PM
<OPTION
VALUE="23">11 PM
</SELECT>
<SELECT
NAME="selStartMinute_1">
<OPTION
VALUE="0">00
<OPTION
VALUE="5">05
<OPTION VALUE="10">10
<OPTION
VALUE="15">15
<OPTION
VALUE="20">20
<OPTION
VALUE="25">25
<OPTION
VALUE="30">30
<OPTION
VALUE="35">35
<OPTION
VALUE="40">40
<OPTION
VALUE="45">45
<OPTION
VALUE="50">50
<OPTION
VALUE="55">55
</SELECT>
</td>
<td> <SELECT
NAME="selStartHour_2">
<OPTION
VALUE="0">Midnight
<OPTION
VALUE="1">1 AM
<OPTION
VALUE="2">2 AM
<OPTION
VALUE="3">3 AM
<OPTION
VALUE="4">4 AM
<OPTION
VALUE="5">5 AM
<OPTION
VALUE="6">6 AM
<OPTION
VALUE="7">7 AM
<OPTION
VALUE="8">8 AM
<OPTION
VALUE="9">9 AM
<OPTION
VALUE="10">10 AM
<OPTION
VALUE="11">11 AM
<OPTION VALUE="12">Noon
<OPTION
VALUE="13">1 PM
<OPTION
VALUE="14">2 PM
<OPTION
VALUE="15">3 PM
<OPTION
VALUE="16">4 PM
<OPTION
VALUE="17">5 PM
<OPTION
VALUE="18">6 PM
<OPTION
VALUE="19">7 PM
<OPTION
VALUE="20">8 PM
<OPTION
VALUE="21">9 PM
<OPTION
VALUE="22">10 PM
<OPTION
VALUE="23">11 PM
</SELECT>
<SELECT
NAME="selStartMinute_2">
<OPTION
VALUE="0">00
<OPTION
VALUE="5">05
<OPTION
VALUE="10">10
<OPTION
VALUE="15">15
<OPTION
VALUE="20">20
<OPTION
VALUE="25">25
<OPTION
VALUE="30">30
<OPTION
VALUE="35">35
<OPTION
VALUE="40">40
<OPTION
VALUE="45">45
<OPTION VALUE="50">50
<OPTION
VALUE="55">55
</SELECT>
</td>
<td> <SELECT
NAME="selStartHour_3">
<OPTION
VALUE="0">Midnight
<OPTION
VALUE="1">1 AM
<OPTION
VALUE="2">2 AM
<OPTION
VALUE="3">3 AM
<OPTION
VALUE="4">4 AM
<OPTION
VALUE="5">5 AM
<OPTION
VALUE="6">6 AM
<OPTION
VALUE="7">7 AM
<OPTION
VALUE="8">8 AM
<OPTION
VALUE="9">9 AM
<OPTION
VALUE="10">10 AM
<OPTION
VALUE="11">11 AM
<OPTION
VALUE="12">Noon
<OPTION
VALUE="13">1 PM
<OPTION
VALUE="14">2 PM
<OPTION
VALUE="15">3 PM
<OPTION
VALUE="16">4 PM
<OPTION
VALUE="17">5 PM
<OPTION
VALUE="18">6 PM
<OPTION
VALUE="19">7 PM
<OPTION
VALUE="20">8 PM
<OPTION
VALUE="21">9 PM
<OPTION
VALUE="22">10 PM
<OPTION
VALUE="23">11 PM
</SELECT>
<SELECT
NAME="selStartMinute_3">
<OPTION
VALUE="0">00
<OPTION VALUE="5">05
<OPTION
VALUE="10">10
<OPTION
VALUE="15">15
<OPTION
VALUE="20">20
<OPTION
VALUE="25">25
<OPTION
VALUE="30">30
<OPTION
VALUE="35">35
<OPTION
VALUE="40">40
<OPTION
VALUE="45">45
<OPTION
VALUE="50">50
<OPTION
VALUE="55">55
</SELECT>
</td>
</tr>
<tr>
<td> Zone 1 (minutes)</td>
<td>
<INPUT TYPE=text
SIZE=6 NAME="txtDuration_11">
</td>
<td>
<INPUT TYPE=text
SIZE=6 NAME="txtDuration_12">
</td>
<td>
<INPUT TYPE=text
SIZE=6 NAME="txtDuration_13">
</td>
</tr>
<tr>
<td> Zone 2 (minutes)</td>
<td>
<INPUT TYPE=text
SIZE=6 NAME="txtDuration_21">
</td>
<td>
<INPUT TYPE=text
SIZE=6 NAME="txtDuration_22">
</td>
<td>
<INPUT TYPE=text
SIZE=6 NAME="txtDuration_23">
</td>
</tr>
<tr>
<td> Zone 3 (minutes)</td>
<td>
<INPUT TYPE=text
SIZE=6 NAME="txtDuration_31">
</td>
<td>
<INPUT TYPE=text SIZE=6
NAME="txtDuration_32">
</td>
<td>
<INPUT TYPE=text
SIZE=6 NAME="txtDuration_33">
</td>
</tr>
<tr>
<td> Zone 4 (minutes)</td>
<td>
<INPUT TYPE=text
SIZE=6 NAME="txtDuration_41">
</td>
<td>
<INPUT TYPE=text
SIZE=6 NAME="txtDuration_42">
</td>
<td>
<INPUT TYPE=text
SIZE=6 NAME="txtDuration_43">
</td>
</tr>
</table>
<p>
<p>
<INPUT TYPE=button VALUE="Refresh"
ONCLICK="Refresh()" title="Refresh">  
<INPUT TYPE=button VALUE="Save" ONCLICK="Save()"
title="Save">  
<INPUT TYPE=text SIZE=40 NAME="txtComments"
value="" readonly>
<p>
<p>
<table
border="0">
<tr>
<td><b>Temperature</b></td>
<td><INPUT TYPE=text SIZE=20
NAME="txtTemperature" value="" readonly></td>
</tr>
<tr>
<td><b>Time</b></td>
<td><INPUT TYPE=text SIZE=20
NAME="txtTime" value="" readonly></td>
</tr>
</table>
<p>
Demonstrates a web
interface to <a
href="http://www.iNetGrow.com/">iNetGrow</a> family of
agricultural controllers.
<p>
</font>
</form>
</body>
</html>
Also see Example: Residential Irrigation, Automated Tasks, Script
Syntax, Using Parameters and Variables
© Rigel Corporation iNetGrow 2003-2006. All rights reserved.