Commit 2ce1338e authored by Pavel Vainerman's avatar Pavel Vainerman

(Modbus): сделал необязательным указание mbfunc для RTU188 (т.к. это не требуется)

parent a4306ac8
...@@ -1867,6 +1867,13 @@ bool MBExchange::initRegInfo( RegInfo* r, UniXML_iterator& it, MBExchange::RTUD ...@@ -1867,6 +1867,13 @@ bool MBExchange::initRegInfo( RegInfo* r, UniXML_iterator& it, MBExchange::RTUD
r->mbfunc = ModbusRTU::fnUnknown; r->mbfunc = ModbusRTU::fnUnknown;
string f = it.getProp(prop_prefix + "mbfunc"); string f = it.getProp(prop_prefix + "mbfunc");
// С RTU188 особенная работа. Там код функций
// "жётско вшит" в код обмена (см. RTUStorage)
// по этому здесь просто указываем по умолчанию
if( dev->dtype == MBExchange::dtRTU188 )
f = "0x04";
if( !f.empty() ) if( !f.empty() )
{ {
r->mbfunc = (ModbusRTU::SlaveFunctionCode)UniSetTypes::uni_atoi(f.c_str()); r->mbfunc = (ModbusRTU::SlaveFunctionCode)UniSetTypes::uni_atoi(f.c_str());
...@@ -1943,6 +1950,12 @@ bool MBExchange::initItem( UniXML_iterator& it ) ...@@ -1943,6 +1950,12 @@ bool MBExchange::initItem( UniXML_iterator& it )
int fn = it.getIntProp(prop_prefix + "mbfunc"); int fn = it.getIntProp(prop_prefix + "mbfunc");
// С RTU188 особенная работа. Там код функций
// "жётско вшит" в код обмена (см. RTUStorage)
// по этому здесь просто указываем по умолчанию
if( dev->dtype == MBExchange::dtRTU188 )
fn = ModbusRTU::fnReadInputRegisters;
// формула для вычисления ID // формула для вычисления ID
// требования: // требования:
// - ID > диапазона возможных регитров // - ID > диапазона возможных регитров
......
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