Commit ec97ede2 authored by Pavel Vainerman's avatar Pavel Vainerman

сделал ключ для управления "постоянством" соединения у "тестера"

плюс мелкие правки
parent a4868787
......@@ -199,7 +199,6 @@ int main( int argc, char **argv )
mb.connect(ia,port);
mb.setForceDisconnect(!persist);
mb.setForceDisconnect(true);
if( verb )
cout << "connection: " << (mb.isConnection() ? "YES" : "NO") << endl;
......
......@@ -27,10 +27,11 @@ class ModbusTCPMaster:
{
force_disconnect = s;
}
protected:
void reconnect();
void cleanInputStream();
protected:
virtual int getNextData( unsigned char* buf, int len );
virtual void setChannelTimeout( timeout_t msec );
......@@ -40,7 +41,7 @@ class ModbusTCPMaster:
private:
ost::TCPStream* tcp;
int nTransaction;
ModbusRTU::ModbusData nTransaction;
std::queue<unsigned char> qrecv;
PassiveTimer ptTimeout;
std::string iaddr;
......
......@@ -441,7 +441,6 @@ mbErrCode ModbusServer::processing( ModbusMessage& buf )
return res;
}
ErrorRetMessage em( buf.addr, buf.func, erUnExpectedPacketType );
buf = em.transport_msg();
send(buf);
......@@ -1226,11 +1225,14 @@ mbErrCode ModbusServer::send( ModbusMessage& msg )
int len = szModbusHeader+msg.len;
if( crcNoCheckit )
{
msg.len -= szCRC;
len -= szCRC;
}
// printf("send to %02x type=%d size=%d\n",m.dest,(m.type&TypeMask),slen);
if( dlog.debugging(Debug::INFO) )
dlog[Debug::INFO] << "(send data)(" << len << " bytes): " << msg << endl;
dlog[Debug::INFO] << "(send): data(" << len << " bytes): " << msg << endl;
try
{
......
......@@ -57,10 +57,23 @@ mbErrCode ModbusTCPCore::sendData( unsigned char* buf, int len, ost::TCPStream*
{
if( !tcp || !tcp->isConnected() )
return erTimeOut;
for( int i=0; i<len; i++ )
(*tcp) << buf[i];
return erNoError;
try
{
for( int i=0; i<len; i++ )
(*tcp) << buf[i];
return erNoError;
}
catch( ost::SockException& e )
{
// cerr << "(send): " << e.getString() << ": " << e.getSystemErrorString() << endl;
}
catch(...)
{
// cerr << "(send): cath..." << endl;
}
return erHardwareError;
}
// -------------------------------------------------------------------------
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