Commit fe6aca24 authored by Pavel Vainerman's avatar Pavel Vainerman

(MTR): небольшие изменения.

parent af35d9ce
...@@ -321,6 +321,8 @@ mv -f %buildroot%python_sitelibdir_noarch/* %buildroot%python_sitelibdir/%oname ...@@ -321,6 +321,8 @@ mv -f %buildroot%python_sitelibdir_noarch/* %buildroot%python_sitelibdir/%oname
%changelog %changelog
* Thu Sep 19 2013 Pavel Vainerman <pv@altlinux.ru> 1.6-alt12 * Thu Sep 19 2013 Pavel Vainerman <pv@altlinux.ru> 1.6-alt12
- (Modbus): Added ability to set the sensor mode (modeSensor) for each device - (Modbus): Added ability to set the sensor mode (modeSensor) for each device
- fixed bug in MTR types: T_Str16 and T_Str8 (tnx ilyap)
- fixed bug in MTR::send_param
* Thu Jun 13 2013 Pavel Vainerman <pv@altlinux.ru> 1.6-alt11 * Thu Jun 13 2013 Pavel Vainerman <pv@altlinux.ru> 1.6-alt11
- fixed after cppcheck checking - fixed after cppcheck checking
......
...@@ -49,6 +49,7 @@ namespace MTR ...@@ -49,6 +49,7 @@ namespace MTR
std::string getSerialNumber( ModbusRTUMaster* mb, ModbusRTU::ModbusAddr addr ); std::string getSerialNumber( ModbusRTUMaster* mb, ModbusRTU::ModbusAddr addr );
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// Настройки связи (чтение - read03, запись - write06) // Настройки связи (чтение - read03, запись - write06)
const ModbusRTU::ModbusData regUpdateConfiguration = 53;
const ModbusRTU::ModbusData regAddress = 55; const ModbusRTU::ModbusData regAddress = 55;
const ModbusRTU::ModbusData regBaudRate = 56; const ModbusRTU::ModbusData regBaudRate = 56;
const ModbusRTU::ModbusData regStopBit = 57; /* 0 - Stop bit, 1 - Stop bits */ const ModbusRTU::ModbusData regStopBit = 57; /* 0 - Stop bit, 1 - Stop bits */
......
...@@ -331,14 +331,14 @@ ComPort::Parity get_parity( ModbusRTU::ModbusData data ) ...@@ -331,14 +331,14 @@ ComPort::Parity get_parity( ModbusRTU::ModbusData data )
void update_communication_params( ModbusRTU::ModbusAddr reg, ModbusRTU::ModbusData data, void update_communication_params( ModbusRTU::ModbusAddr reg, ModbusRTU::ModbusData data,
ModbusRTUMaster* mb, ModbusRTU::ModbusAddr& addr, int verb ) ModbusRTUMaster* mb, ModbusRTU::ModbusAddr& addr, int verb )
{ {
if( reg == 55 ) if( reg == regAddress )
{ {
addr = data; addr = data;
if( verb ) if( verb )
cout << "(mtr-setup): slaveaddr is set to " cout << "(mtr-setup): slaveaddr is set to "
<< ModbusRTU::addr2str(addr) << endl; << ModbusRTU::addr2str(addr) << endl;
} }
else if( reg == 56 ) else if( reg == regBaudRate )
{ {
ComPort::Speed speed = get_speed(data); ComPort::Speed speed = get_speed(data);
if( speed != ComPort::ComSpeed0 ) if( speed != ComPort::ComSpeed0 )
...@@ -349,7 +349,7 @@ void update_communication_params( ModbusRTU::ModbusAddr reg, ModbusRTU::ModbusDa ...@@ -349,7 +349,7 @@ void update_communication_params( ModbusRTU::ModbusAddr reg, ModbusRTU::ModbusDa
<< ComPort::getSpeed(speed) << endl; << ComPort::getSpeed(speed) << endl;
} }
} }
else if( reg == 57 ) else if( reg == regStopBit )
{ {
if( data == 0 ) if( data == 0 )
mb->setStopBits(ComPort::OneBit); mb->setStopBits(ComPort::OneBit);
...@@ -360,7 +360,7 @@ void update_communication_params( ModbusRTU::ModbusAddr reg, ModbusRTU::ModbusDa ...@@ -360,7 +360,7 @@ void update_communication_params( ModbusRTU::ModbusAddr reg, ModbusRTU::ModbusDa
cout << "(mtr-setup): number of stop bits is set to " cout << "(mtr-setup): number of stop bits is set to "
<< data + 1 << endl; << data + 1 << endl;
} }
else if( reg == 58 ) else if( reg == regParity )
{ {
if (data != 0 && data != 1 && data != 2) if (data != 0 && data != 1 && data != 2)
return; return;
...@@ -412,7 +412,7 @@ bool send_param( ModbusRTUMaster* mb, DataMap& dmap, ModbusRTU::ModbusAddr addr, ...@@ -412,7 +412,7 @@ bool send_param( ModbusRTUMaster* mb, DataMap& dmap, ModbusRTU::ModbusAddr addr,
catch( ModbusRTU::mbException& ex ) catch( ModbusRTU::mbException& ex )
{ {
/* if speed is changed we receive a timeout error */ /* if speed is changed we receive a timeout error */
if( reg == 56 && ex.err == ModbusRTU::erTimeOut ) if( reg == regBaudRate && ex.err == ModbusRTU::erTimeOut )
{ {
update_communication_params(reg, *it1, mb, addr, verb); update_communication_params(reg, *it1, mb, addr, verb);
// ok = true; // ok = true;
...@@ -431,11 +431,11 @@ bool send_param( ModbusRTUMaster* mb, DataMap& dmap, ModbusRTU::ModbusAddr addr, ...@@ -431,11 +431,11 @@ bool send_param( ModbusRTUMaster* mb, DataMap& dmap, ModbusRTU::ModbusAddr addr,
// if( !ok ) // if( !ok )
// return false; // return false;
} }
ModbusRTU::WriteSingleOutputRetMessage ret = mb->write06(addr,53,1); ModbusRTU::WriteSingleOutputRetMessage ret = mb->write06(addr,regUpdateConfiguration,1);
if( verb ) if( verb )
cout << "(mtr-setup): save parameters " << endl; cout << "(mtr-setup): save parameters " << endl;
return true; 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