User Tools

Site Tools


devel:modbus_tcp_ip

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

devel:modbus_tcp_ip [2008/11/14 00:00] (current)
Line 1: Line 1:
 +====== Use of this connection ======
  
 +**RTS2** provides connection for working with Modbus TCP/IP protocol. The advantage of this connection is that it inherits from Rts2Conn, and so can be easily integrated into Rts2 as another connection. There is a sample code how to use it:
 +
 +<code c++>
 +class Zelio:​public Rts2Sensor
 +{
 + private:
 + HostString *host;
 +
 + rts2core::​ConnModbus *zelioConn;
 +
 + protected:
 + virtual int processOption (int in_opt);
 +
 + public:
 + Zelio (int argc, char **argv);
 + virtual ~Zelio (void);
 + virtual int init ();
 +
 + virtual int info ();
 +};
 +
 +}
 +
 +
 +int
 +Zelio::​processOption (int in_opt)
 +{
 + switch (in_opt)
 + {
 + // process hoststring (port can be specified after :)
 + case '​z':​
 + host = new HostString (optarg, "​502"​);​
 + break;
 + default:
 + return Rts2Sensor::​processOption (in_opt);
 + }
 + return 0;
 +}
 +
 +
 +Zelio::​Zelio (int argc, char **argv)
 +:Rts2Sensor (argc, argv)
 +{
 + host = NULL;
 +
 + addOption ('​z',​ NULL, 1, "Zelio TCP/IP address and port (separated by :)");
 +}
 +
 +
 +Zelio::​~Zelio (void)
 +{
 + delete zelioConn;
 + delete host;
 +}
 +
 +
 +int
 +Zelio::info ()
 +{
 + // call Modbus TCP/IP coild query
 + zelioConn->​readCoils (0, 8);
 + return Rts2Sensor::​info ();
 +}
 +
 +
 +int
 +Zelio::init ()
 +{
 + int ret = Rts2Sensor::​init ();
 + if (ret)
 + return ret;
 +
 + zelioConn = new rts2core::​ConnModbus (this, host->​getHostname (), host->​getPort ());
 + return zelioConn->​init ();
 +}
 +
 +
 +int
 +main (int argc, char **argv)
 +{
 + Zelio device = Zelio (argc, argv);
 + return device.run ();
 +}
 +</​code>​
devel/modbus_tcp_ip.txt ยท Last modified: 2008/11/14 00:00 (external edit)