Commit 6956a729 authored by Pavel Vaynerman's avatar Pavel Vaynerman

add control (on/off) for new ComPort

parent b7843544
......@@ -3,7 +3,7 @@
Name: libuniset
Version: 0.97
Release: eter22
Release: eter24
Summary: UniSet - library for building distributed industrial control systems
License: GPL
Group: Development/C++
......@@ -178,6 +178,12 @@ rm -f %buildroot%_libdir/*.la
%exclude %_pkgconfigdir/libUniSet.pc
%changelog
* Wed Sep 30 2009 Pavel Vainerman <pv@etersoft.ru> 0.97-eter23
- control (on/off) new ComPort
* Wed Sep 30 2009 Pavel Vainerman <pv@etersoft.ru> 0.97-eter22
- new build
* Tue Sep 29 2009 Vitaly Lipatov <lav@altlinux.ru> 0.97-eter21
- new build
......
......@@ -76,7 +76,10 @@ prefix(prefix)
if( speed.empty() )
speed = "38400";
ModbusRTUSlaveSlot* rs = new ModbusRTUSlaveSlot(dev);
bool use485F = conf->getArgInt("--rs-use485F",it.getProp("use485F"));
bool transmitCtl = conf->getArgInt("--rs-transmit-ctl",it.getProp("transmitCtl"));
ModbusRTUSlaveSlot* rs = new ModbusRTUSlaveSlot(dev,use485F,transmitCtl);
rs->setSpeed(speed);
rs->setRecvTimeout(2000);
// rs->setAfterSendPause(afterSend);
......
......@@ -14,6 +14,7 @@ UniSetObject_LT(objId),
mb(0),
defSpeed(ComPort::ComSpeed0),
use485F(false),
transmitCtl(false),
shm(0),
initPause(0),
force(false),
......@@ -55,6 +56,7 @@ allNotRespond(false)
speed = "38400";
use485F = conf->getArgInt("--rs-use485F",it.getProp("use485F"));
transmitCtl = conf->getArgInt("--rs-transmit-ctl",it.getProp("transmitCtl"));
defSpeed = ComPort::getSpeed(speed);
recv_timeout = conf->getArgPInt("--rs-recv-timeout",it.getProp("recv_timeout"), 50);
......@@ -173,7 +175,7 @@ void RTUExchange::initMB( bool reopen )
try
{
mb = new ModbusRTUMaster(devname,use485F);
mb = new ModbusRTUMaster(devname,use485F,transmitCtl);
if( defSpeed != ComPort::ComSpeed0 )
mb->setSpeed(defSpeed);
......
......@@ -174,6 +174,7 @@ class RTUExchange:
ComPort::Speed defSpeed;
int recv_timeout;
bool use485F;
bool transmitCtl;
xmlNode* cnode;
std::string s_field;
......
......@@ -21,7 +21,7 @@ class ModbusRTUMaster:
public:
ModbusRTUMaster( ComPort* com );
ModbusRTUMaster( const std::string dev, bool use485=false );
ModbusRTUMaster( const std::string dev, bool use485=false, bool tr_ctl=false );
virtual ~ModbusRTUMaster();
inline void cleanupChannel(){ if( port ) port->cleanupChannel(); }
......
......@@ -24,7 +24,7 @@ class ModbusRTUSlave:
public ModbusServer
{
public:
ModbusRTUSlave( const std::string dev, bool use485=false );
ModbusRTUSlave( const std::string dev, bool use485=false, bool tr_ctl=false );
ModbusRTUSlave( ComPort* com );
virtual ~ModbusRTUSlave();
......
......@@ -19,7 +19,7 @@ class ModbusRTUSlaveSlot:
{
public:
ModbusRTUSlaveSlot( ComPort* com );
ModbusRTUSlaveSlot( const std::string dev, bool use485=false );
ModbusRTUSlaveSlot( const std::string dev, bool use485=false, bool tr_ctl=false );
virtual ~ModbusRTUSlaveSlot();
protected:
......
......@@ -13,7 +13,7 @@ using namespace ModbusRTU;
using namespace UniSetTypes;
// -------------------------------------------------------------------------
ModbusRTUMaster::ModbusRTUMaster( const string dev, bool use485 ):
ModbusRTUMaster::ModbusRTUMaster( const string dev, bool use485, bool tr_ctl ):
port(NULL),
myport(true)
{
......@@ -21,9 +21,9 @@ ModbusRTUMaster::ModbusRTUMaster( const string dev, bool use485 ):
{
ComPort485F* cp;
if( dev == "/dev/ttyS2" )
cp = new ComPort485F(dev,5);
cp = new ComPort485F(dev,5,tr_ctl);
else if( dev == "/dev/ttyS3" )
cp = new ComPort485F(dev,6);
cp = new ComPort485F(dev,6,tr_ctl);
else
throw Exception("Open ComPort FAILED! dev must be /dev/ttyS2 or /dev/tytS3");
......
......@@ -13,7 +13,7 @@ using namespace std;
using namespace ModbusRTU;
using namespace UniSetTypes;
// -------------------------------------------------------------------------
ModbusRTUSlave::ModbusRTUSlave( const string dev, bool use485 ):
ModbusRTUSlave::ModbusRTUSlave( const string dev, bool use485, bool tr_ctl ):
port(NULL),
myport(true)
{
......@@ -21,9 +21,9 @@ ModbusRTUSlave::ModbusRTUSlave( const string dev, bool use485 ):
{
ComPort485F* cp;
if( dev == "/dev/ttyS2" )
cp = new ComPort485F(dev,5);
cp = new ComPort485F(dev,5,tr_ctl);
else if( dev == "/dev/ttyS3" )
cp = new ComPort485F(dev,6);
cp = new ComPort485F(dev,6,tr_ctl);
else
throw Exception("Open ComPort FAILED! dev must be /dev/ttyS2 or /dev/tytS3");
......
......@@ -5,8 +5,8 @@
using namespace ModbusRTU;
using namespace std;
// -------------------------------------------------------------------------
ModbusRTUSlaveSlot::ModbusRTUSlaveSlot( const std::string dev, bool use485 ):
ModbusRTUSlave(dev,use485)
ModbusRTUSlaveSlot::ModbusRTUSlaveSlot( const std::string dev, bool use485, bool tr_ctl ):
ModbusRTUSlave(dev,use485,tr_ctl)
{
}
// -------------------------------------------------------------------------
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment