tv301sf/db/tv301sf.proto
changeset 4 8a2328d953f0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/db/tv301sf.proto	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,113 @@
+# tv301sf.proto   Uwe Hoppe   Fritz-Haber-Institut der MPG   3/2014
+#
+# Stream Device Protocol for the Agilent TV 301SF Navigator pumping system.
+
+locktimeout = 5000;
+outTerminator = CR;
+inTerminator = "";
+replytimeout = 1500;
+readtimeout  = 100;
+extrainput   = Ignore;
+iWT          = 175;
+
+### Uses "Window Meanings" protocol
+# Format <STX>+<ADDR>+<WIN>+<COM>+<DATA>+<ETX>+<CRC>
+# Where
+#    <ADDR> (Unit address) = 0x80 (for RS 232) 
+#    <ADDR> (Unit address) = 0x80 + device number (0 to 31) (for RS 485) 
+#    <WIN> (Window) = string of 3 numeric char indicating the window # ( ‘000’ #to ‘999’)
+#    <COM> (Command) = 0x30 to read the window, 0x31 to write into the window 
+#    <DATA> = an alphanumeric ASCII string with the data to be written into the window. 
+#ADDR = $1
+RCOM = 0x30;
+WCOM = 0x31;
+
+getStartStop { WIN = "000"; #1=default=Start; 0=Stop
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,"%b"ETX"%01<xor>"; 
+                    }
+
+setStartStop { WIN = "000"; #1=default=Start; 0=Stop
+                    out STX,$1,$WIN,$WCOM,"%d",ETX"%01<xor>";
+                    in  STX,$1,ACK,ETX"%01<xor>";
+                    @init { wait $iWT; getStartStop; }
+                    }                             
+
+getRemote { WIN = "008"; #1=default=Remote; 0=Serial
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,"%b"ETX"%01<xor>";
+                    }
+
+setRemote { WIN = "008"; #1=default=Remote; 0=Serial
+                    out STX,$1,$WIN,$WCOM,"%d",ETX"%01<xor>";
+                    in  STX,$1,ACK,ETX"%01<xor>";
+                    @init { wait $iWT; getRemote; }
+                    }                             
+
+getRotFreqSetting { WIN = "120";
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,$RCOM,"%6d"ETX"%01<xor>";
+                    }
+
+setRotFreqSetting { WIN = "120"; CDATA= "955";
+                    out STX,$1,$WIN,$WCOM,"000%u",ETX"%01<xor>";
+                    in  STX,$1,ACK,ETX"%01<xor>";
+                    @init { wait $iWT; getRotFreqSetting; wait $iWT; }
+                    }
+
+getVentValve { WIN = "122"; #1=default=ON=CLOSE; 0=OPEN=OFF
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,"%b"ETX"%01<xor>"; 
+                    }
+
+setVentValve { WIN = "122"; #1=default=ON=CLOSE; 0=OPEN=OFF
+                    out STX,$1,$WIN,$WCOM,"%d",ETX"%01<xor>";
+                    in  STX,$1,ACK,ETX"%01<xor>";
+                    @init { wait $iWT; getVentValve; }
+                    }                             
+
+getVentValveOperation {  WIN = "125"; #Automatic = 0
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,"%b"ETX"%01<xor>"; 
+                    }
+
+setVentValveOperation { WIN = "125"; #Automatic = 0
+                    out STX,$1,$WIN,$WCOM,"%d",ETX"%01<xor>";
+                    in  STX,$1,ACK,ETX"%01<xor>";
+                    @init { wait $iWT; getVentValveOperation; }
+                    }                             
+
+getPumpCurrent { WIN = "200";
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,$RCOM,"%6d"ETX"%01<xor>";
+                    }
+
+getPumpVoltage { WIN = "201";
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,$RCOM,"%6d"ETX"%01<xor>";
+                    }
+
+getPumpPower { WIN = "202";
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,$RCOM,"%6d"ETX"%01<xor>";
+                    }
+
+getDrivingFrequency { WIN = "203";
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,$RCOM,"%6d"ETX"%01<xor>";
+                    }
+
+getPumpTemperature { WIN = "204";
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,$RCOM,"%6d"ETX"%01<xor>";
+                    }
+
+getPumpStatus { WIN = "205";
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,$RCOM,"%6i"ETX"%01<xor>";
+                    }
+
+getErrorCode { WIN = "206";
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,$RCOM,"%o"ETX"%01<xor>";
+                    }