Commit b28df41f authored by Pavel Vainerman's avatar Pavel Vainerman

(MTR): попытка исправить ошибку обмена с MTR (обратный порядок слов)

parent c2ece263
......@@ -242,12 +242,12 @@ void readMTR( ModbusRTUMaster* mb, ModbusRTU::ModbusAddr addr,
if( cmd == cmdRead03 )
{
ModbusRTU::ReadOutputRetMessage ret = mb->read03(addr,reg,count);
memcpy(dat,ret.data,ret.count);
memcpy(dat,ret.data,sizeof(ModbusRTU::ModbusData)*ret.count);
}
else if( cmd == cmdRead04 )
{
ModbusRTU::ReadInputRetMessage ret = mb->read04(addr,reg,count);
memcpy(dat,ret.data,ret.count);
memcpy(dat,ret.data,sizeof(ModbusRTU::ModbusData)*ret.count);
}
else
{
......@@ -333,7 +333,7 @@ void readMTR( ModbusRTUMaster* mb, ModbusRTU::ModbusAddr addr,
if( mtrType == MTR::mtT8 )
{
MTR::T8 t(dat[0],dat[1]);
MTR::T8 t(dat,MTR::T8::wsize());
cout << "(T8): v1=" << t.raw.v[0] << " v2=" << t.raw.v[1]
<< " ===> " << t << endl;
return;
......@@ -341,7 +341,7 @@ void readMTR( ModbusRTUMaster* mb, ModbusRTU::ModbusAddr addr,
if( mtrType == MTR::mtT9 )
{
MTR::T9 t(dat[0],dat[1]);
MTR::T9 t(dat,MTR::T9::wsize());
cout << "(T9): v1=" << t.raw.v[0] << " v2=" << t.raw.v[1]
<< " ===> " << t << endl;
......@@ -350,7 +350,7 @@ void readMTR( ModbusRTUMaster* mb, ModbusRTU::ModbusAddr addr,
if( mtrType == MTR::mtT10 )
{
MTR::T10 t(dat[0],dat[1]);
MTR::T10 t(dat,MTR::T10::wsize());
cout << "(T10): v1=" << t.raw.v[0] << " v2=" << t.raw.v[1]
<< " ===> " << t << endl;
......
......@@ -167,8 +167,9 @@ namespace MTR
{
if( size >= u2size )
{
for( int i=0; i<u2size; i++ )
raw.v[i] = data[i];
// У MTR обратный порядок слов в ответе
raw.v[0] = data[1];
raw.v[1] = data[0];
}
}
......@@ -253,8 +254,9 @@ namespace MTR
{
if( size >= u2size )
{
for( int i=0; i<u2size; i++ )
raw.v[i] = data[i];
// При получении данных от MTR слова необходимо перевернуть
raw.v[0] = data[1];
raw.v[1] = data[0];
val = raw.u2.val * pow(10,raw.u2.exp);
}
}
......@@ -305,8 +307,9 @@ namespace MTR
{
if( size >= u2size )
{
for( int i=0; i<u2size; i++ )
raw.v[i] = data[i];
// При получении данных от MTR слова необходимо перевернуть
raw.v[0] = data[1];
raw.v[1] = data[0];
val = raw.u2.val * pow(10,raw.u2.exp);
}
}
......@@ -357,8 +360,9 @@ namespace MTR
{
if( size >= u2size )
{
for( int i=0; i<u2size; i++ )
raw.v[i] = data[i];
// При получении данных от MTR слова необходимо перевернуть
raw.v[0] = data[1];
raw.v[1] = data[0];
val = raw.u2.val * pow(10,-4);
}
}
......@@ -404,8 +408,9 @@ namespace MTR
{
if( size >= u2size )
{
for( int i=0; i<u2size; i++ )
raw.v[i] = data[i];
// При получении данных от MTR слова необходимо перевернуть
raw.v[1] = data[0];
raw.v[0] = data[1];
}
}
......@@ -454,8 +459,9 @@ namespace MTR
{
if( size >= u2size )
{
for( int i=0; i<u2size; i++ )
raw.v[i] = data[i];
// При получении данных от MTR слова необходимо перевернуть
raw.v[0] = data[1];
raw.v[1] = data[0];
}
}
......@@ -503,8 +509,9 @@ namespace MTR
{
if( size >= u2size )
{
for( int i=0; i<u2size; i++ )
raw.v[i] = data[i];
// При получении данных от MTR слова необходимо перевернуть
raw.v[0] = data[1];
raw.v[1] = data[0];
}
}
......@@ -620,8 +627,9 @@ namespace MTR
{
if( size >= u2size )
{
for( int i=0; i<u2size; i++ )
raw.v[i] = data[i];
// При получении данных от MTR слова необходимо перевернуть
raw.v[0] = data[1];
raw.v[1] = data[0];
}
}
......
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