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&nbsp

         <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&nbsp

         <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&nbsp

         <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&nbsp

         <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"> &nbsp

 <INPUT TYPE=button VALUE="Save" ONCLICK="Save()" title="Save"> &nbsp

 <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.