Commit 28e84edc authored by Ilya Polshikov's avatar Ilya Polshikov Committed by Pavel Vainerman

Fixed MTR.

parent cd1a86d1
......@@ -664,12 +664,13 @@ namespace MTR
T_Str16():sval(""){}
T_Str16( const ModbusRTU::ReadInputRetMessage& ret )
{
char c[16];
char c[17];
ModbusRTU::ModbusData data[8];
for( int i=0; i<8; i++ )
data[i] = ModbusRTU::SWAPSHORT(ret.data[i]);
memcpy(c,&data,sizeof(c));
memcpy(c,&data,16);
c[16] = '\0';
sval = std::string(c);
}
......@@ -693,11 +694,12 @@ namespace MTR
T_Str8():sval(""){}
T_Str8( const ModbusRTU::ReadInputRetMessage& ret )
{
char c[8];
char c[9];
ModbusRTU::ModbusData data[4];
for( int i=0; i<4; i++ )
data[i] = ModbusRTU::SWAPSHORT(ret.data[i]);
memcpy(c,&data,sizeof(c));
memcpy(c,&data,8);
c[8] = '\0';
sval = std::string(c);
}
......
......@@ -412,7 +412,7 @@ bool send_param( ModbusRTUMaster* mb, DataMap& dmap, ModbusRTU::ModbusAddr addr,
catch( ModbusRTU::mbException& ex )
{
/* if speed is changed we receive a timeout error */
if( reg == 56 && it->first == ModbusRTU::erTimeOut )
if( reg == 56 && ex.err == ModbusRTU::erTimeOut )
{
update_communication_params(reg, *it1, mb, addr, verb);
// ok = true;
......@@ -431,7 +431,11 @@ bool send_param( ModbusRTUMaster* mb, DataMap& dmap, ModbusRTU::ModbusAddr addr,
// if( !ok )
// return false;
}
ModbusRTU::WriteSingleOutputRetMessage ret = mb->write06(addr,53,1);
if( verb )
cout << "(mtr-setup): save parameters " << endl;
return true;
}
// ------------------------------------------------------------------------------------------
......
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