Commit cc9c171c authored by Pavel Vainerman's avatar Pavel Vainerman

(MTR): добавил коды ошибок (close eterbug #8659)

parent 7ae75677
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
//! \version $Id: MTR.h,v 1.1 2008/12/14 21:57:50 vpashka Exp $
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
#ifndef _MTR_H_ #ifndef _MTR_H_
#define _MTR_H_ #define _MTR_H_
...@@ -38,7 +39,7 @@ namespace MTR ...@@ -38,7 +39,7 @@ namespace MTR
}; };
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
std::string type2str( MTRType t ); /*!< преоразование строки в тип */ std::string type2str( MTRType t ); /*!< преоразование строки в тип */
MTRType str2type( const std::string& s ); /*!< преобразование названия в строку */ MTRType str2type( const std::string s ); /*!< преобразование названия в строку */
int wsize( MTRType t ); /*!< длина данных в словах */ int wsize( MTRType t ); /*!< длина данных в словах */
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// Информация // Информация
...@@ -49,7 +50,6 @@ namespace MTR ...@@ -49,7 +50,6 @@ 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 */
...@@ -100,7 +100,7 @@ namespace MTR ...@@ -100,7 +100,7 @@ namespace MTR
std::ostream& operator<<(std::ostream& os, MTRError& e ); std::ostream& operator<<(std::ostream& os, MTRError& e );
// Настройка из конф. файла // Настройка из конф. файла
MTRError update_configuration( ModbusRTUMaster* mb, ModbusRTU::ModbusAddr addr, MTRError update_configuration( ModbusRTUMaster* mb, ModbusRTU::ModbusAddr addr,
const std::string& mtrconfile, int verbose=0 ); const std::string mtrconfile, int verbose=0 );
// --------------------------- // ---------------------------
// вспомогательные функции и типы данных // вспомогательные функции и типы данных
typedef std::list<ModbusRTU::ModbusData> DataList; typedef std::list<ModbusRTU::ModbusData> DataList;
...@@ -109,8 +109,8 @@ namespace MTR ...@@ -109,8 +109,8 @@ namespace MTR
static const ModbusRTU::ModbusData skip[] = {48, 49, 59}; // registers which should not write static const ModbusRTU::ModbusData skip[] = {48, 49, 59}; // registers which should not write
bool send_param( ModbusRTUMaster* mb, DataMap& dmap, ModbusRTU::ModbusAddr addr, int verb ); bool send_param( ModbusRTUMaster* mb, DataMap& dmap, ModbusRTU::ModbusAddr addr, int verb );
bool read_param( const std::string& str, std::string& str1, std::string& str2 ); bool read_param( const std::string str, std::string& str1, std::string& str2 );
DataMap read_confile( const std::string& f ); DataMap read_confile( const std::string f );
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 );
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
...@@ -664,13 +664,12 @@ namespace MTR ...@@ -664,13 +664,12 @@ namespace MTR
T_Str16():sval(""){} T_Str16():sval(""){}
T_Str16( const ModbusRTU::ReadInputRetMessage& ret ) T_Str16( const ModbusRTU::ReadInputRetMessage& ret )
{ {
char c[17]; char c[16];
ModbusRTU::ModbusData data[8]; ModbusRTU::ModbusData data[8];
for( int i=0; i<8; i++ ) for( int i=0; i<8; i++ )
data[i] = ModbusRTU::SWAPSHORT(ret.data[i]); data[i] = ModbusRTU::SWAPSHORT(ret.data[i]);
memcpy(c,&data,16); memcpy(c,&data,sizeof(c));
c[16] = '\0';
sval = std::string(c); sval = std::string(c);
} }
...@@ -694,12 +693,11 @@ namespace MTR ...@@ -694,12 +693,11 @@ namespace MTR
T_Str8():sval(""){} T_Str8():sval(""){}
T_Str8( const ModbusRTU::ReadInputRetMessage& ret ) T_Str8( const ModbusRTU::ReadInputRetMessage& ret )
{ {
char c[9]; char c[8];
ModbusRTU::ModbusData data[4]; ModbusRTU::ModbusData data[4];
for( int i=0; i<4; i++ ) for( int i=0; i<4; i++ )
data[i] = ModbusRTU::SWAPSHORT(ret.data[i]); data[i] = ModbusRTU::SWAPSHORT(ret.data[i]);
memcpy(c,&data,8); memcpy(c,&data,sizeof(c));
c[8] = '\0';
sval = std::string(c); sval = std::string(c);
} }
......
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