Commit 5589b01c authored by Pavel Vainerman's avatar Pavel Vainerman

Изменения после проверки cppcheck (performance)

parent f49163bc
...@@ -458,12 +458,12 @@ int omap() ...@@ -458,12 +458,12 @@ int omap()
int setValue( const string& args, UInterface &ui, Configuration* conf ) int setValue( const string& args, UInterface &ui, Configuration* conf )
{ {
int err = 0; int err = 0;
typedef std::list<UniSetTypes::ParamSInfo> SList; typedef std::list<UniSetTypes::ParamSInfo> SList;
SList sl = UniSetTypes::getSInfoList(args, conf); SList sl = UniSetTypes::getSInfoList(args, conf);
cout << "====== setValue ======" << endl; cout << "====== setValue ======" << endl;
for( SList::iterator it=sl.begin(); it!=sl.end(); it++ ) for( SList::iterator it=sl.begin(); it!=sl.end(); ++it )
{ {
try try
{ {
UniversalIO::IOType t = conf->getIOType(it->si.id); UniversalIO::IOType t = conf->getIOType(it->si.id);
...@@ -471,10 +471,10 @@ int setValue( const string& args, UInterface &ui, Configuration* conf ) ...@@ -471,10 +471,10 @@ int setValue( const string& args, UInterface &ui, Configuration* conf )
cout << " name: (" << it->si.id << ") " << it->fname << endl; cout << " name: (" << it->si.id << ") " << it->fname << endl;
cout << " iotype: " << t << endl; cout << " iotype: " << t << endl;
cout << " text: " << conf->oind->getTextName(it->si.id) << "\n\n"; cout << " text: " << conf->oind->getTextName(it->si.id) << "\n\n";
if( it->si.node == DefaultObjectId ) if( it->si.node == DefaultObjectId )
it->si.node = conf->getLocalNode(); it->si.node = conf->getLocalNode();
switch(t) switch(t)
{ {
case UniversalIO::DI: case UniversalIO::DI:
...@@ -494,9 +494,9 @@ int setValue( const string& args, UInterface &ui, Configuration* conf ) ...@@ -494,9 +494,9 @@ int setValue( const string& args, UInterface &ui, Configuration* conf )
{ {
cerr << "(setValue): " << ex << endl;; cerr << "(setValue): " << ex << endl;;
err = 1; err = 1;
} }
} }
return err; return err;
} }
...@@ -504,11 +504,11 @@ int setValue( const string& args, UInterface &ui, Configuration* conf ) ...@@ -504,11 +504,11 @@ int setValue( const string& args, UInterface &ui, Configuration* conf )
int getValue( const string& args, UInterface &ui, Configuration* conf ) int getValue( const string& args, UInterface &ui, Configuration* conf )
{ {
int err = 0; int err = 0;
typedef std::list<UniSetTypes::ParamSInfo> SList; typedef std::list<UniSetTypes::ParamSInfo> SList;
SList sl = UniSetTypes::getSInfoList( args, UniSetTypes::conf ); SList sl = UniSetTypes::getSInfoList( args, UniSetTypes::conf );
cout << "====== getValue ======" << endl; cout << "====== getValue ======" << endl;
for( SList::iterator it=sl.begin(); it!=sl.end(); it++ ) for( SList::iterator it=sl.begin(); it!=sl.end(); ++it )
{ {
try try
{ {
...@@ -516,10 +516,10 @@ int getValue( const string& args, UInterface &ui, Configuration* conf ) ...@@ -516,10 +516,10 @@ int getValue( const string& args, UInterface &ui, Configuration* conf )
cout << " name: (" << it->si.id << ") " << it->fname << endl; cout << " name: (" << it->si.id << ") " << it->fname << endl;
cout << " iotype: " << t << endl; cout << " iotype: " << t << endl;
cout << " text: " << conf->oind->getTextName(it->si.id) << "\n\n"; cout << " text: " << conf->oind->getTextName(it->si.id) << "\n\n";
if( it->si.node == DefaultObjectId ) if( it->si.node == DefaultObjectId )
it->si.node = conf->getLocalNode(); it->si.node = conf->getLocalNode();
switch(t) switch(t)
{ {
case UniversalIO::DO: case UniversalIO::DO:
...@@ -528,7 +528,7 @@ int getValue( const string& args, UInterface &ui, Configuration* conf ) ...@@ -528,7 +528,7 @@ int getValue( const string& args, UInterface &ui, Configuration* conf )
case UniversalIO::AI: case UniversalIO::AI:
cout << " value: " << ui.getValue(it->si.id,it->si.node) << endl; cout << " value: " << ui.getValue(it->si.id,it->si.node) << endl;
break; break;
default: default:
cerr << "FAILED: Unknown 'iotype' for " << it->fname << endl; cerr << "FAILED: Unknown 'iotype' for " << it->fname << endl;
err = 1; err = 1;
...@@ -539,9 +539,9 @@ int getValue( const string& args, UInterface &ui, Configuration* conf ) ...@@ -539,9 +539,9 @@ int getValue( const string& args, UInterface &ui, Configuration* conf )
{ {
cerr << "(getValue): " << ex << endl; cerr << "(getValue): " << ex << endl;
err = 1; err = 1;
} }
} }
return err; return err;
} }
// -------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------
...@@ -551,11 +551,11 @@ int getCalibrate( const std::string& args, UInterface &ui ) ...@@ -551,11 +551,11 @@ int getCalibrate( const std::string& args, UInterface &ui )
typedef std::list<UniSetTypes::ParamSInfo> SList; typedef std::list<UniSetTypes::ParamSInfo> SList;
SList sl = UniSetTypes::getSInfoList( args, UniSetTypes::conf ); SList sl = UniSetTypes::getSInfoList( args, UniSetTypes::conf );
cout << "====== getCalibrate ======" << endl; cout << "====== getCalibrate ======" << endl;
for( SList::iterator it=sl.begin(); it!=sl.end(); it++ ) for( SList::iterator it=sl.begin(); it!=sl.end(); ++it )
{ {
if( it->si.node == DefaultObjectId ) if( it->si.node == DefaultObjectId )
it->si.node = conf->getLocalNode(); it->si.node = conf->getLocalNode();
cout << " name: (" << it->si.id << ") " << it->fname << endl; cout << " name: (" << it->si.id << ") " << it->fname << endl;
cout << " text: " << conf->oind->getTextName(it->si.id) << "\n"; cout << " text: " << conf->oind->getTextName(it->si.id) << "\n";
try try
...@@ -568,9 +568,9 @@ int getCalibrate( const std::string& args, UInterface &ui ) ...@@ -568,9 +568,9 @@ int getCalibrate( const std::string& args, UInterface &ui )
{ {
cerr << "(getCalibrate): " << ex << endl;; cerr << "(getCalibrate): " << ex << endl;;
err = 1; err = 1;
} }
} }
return err; return err;
} }
...@@ -578,14 +578,14 @@ int getCalibrate( const std::string& args, UInterface &ui ) ...@@ -578,14 +578,14 @@ int getCalibrate( const std::string& args, UInterface &ui )
int getRawValue( const std::string& args, UInterface &ui ) int getRawValue( const std::string& args, UInterface &ui )
{ {
int err = 0; int err = 0;
typedef std::list<UniSetTypes::ParamSInfo> SList; typedef std::list<UniSetTypes::ParamSInfo> SList;
SList sl = UniSetTypes::getSInfoList( args, UniSetTypes::conf ); SList sl = UniSetTypes::getSInfoList( args, UniSetTypes::conf );
cout << "====== getRawValue ======" << endl; cout << "====== getRawValue ======" << endl;
for( SList::iterator it=sl.begin(); it!=sl.end(); it++ ) for( SList::iterator it=sl.begin(); it!=sl.end(); ++it )
{ {
if( it->si.node == DefaultObjectId ) if( it->si.node == DefaultObjectId )
it->si.node = conf->getLocalNode(); it->si.node = conf->getLocalNode();
cout << " name: (" << it->si.id << ") " << it->fname << endl; cout << " name: (" << it->si.id << ") " << it->fname << endl;
cout << " text: " << conf->oind->getTextName(it->si.id) << "\n\n"; cout << " text: " << conf->oind->getTextName(it->si.id) << "\n\n";
try try
...@@ -596,7 +596,7 @@ int getRawValue( const std::string& args, UInterface &ui ) ...@@ -596,7 +596,7 @@ int getRawValue( const std::string& args, UInterface &ui )
{ {
cerr << "(getRawValue): " << ex << endl;; cerr << "(getRawValue): " << ex << endl;;
err = 1; err = 1;
} }
} }
return err; return err;
} }
...@@ -621,7 +621,7 @@ int logRotate( const string& arg, UInterface &ui ) ...@@ -621,7 +621,7 @@ int logRotate( const string& arg, UInterface &ui )
cout << "(logrotate): name='" << arg << "' не найдено!!!\n"; cout << "(logrotate): name='" << arg << "' не найдено!!!\n";
return 1; return 1;
} }
SystemMessage sm(SystemMessage::LogRotate); SystemMessage sm(SystemMessage::LogRotate);
TransportMessage tm(sm.transport_msg()); TransportMessage tm(sm.transport_msg());
ui.send(id,tm); ui.send(id,tm);
...@@ -655,7 +655,7 @@ int configure( const string& arg, UInterface &ui ) ...@@ -655,7 +655,7 @@ int configure( const string& arg, UInterface &ui )
ui.send(id,tm); ui.send(id,tm);
cout << "\nSend 'ReConfigure' to " << arg << " OK.\n"; cout << "\nSend 'ReConfigure' to " << arg << " OK.\n";
} }
return 0; return 0;
} }
// -------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------
...@@ -667,7 +667,7 @@ int oinfo( const string& arg, UInterface &ui ) ...@@ -667,7 +667,7 @@ int oinfo( const string& arg, UInterface &ui )
cout << "(oinfo): Не задан OID!"<< endl; cout << "(oinfo): Не задан OID!"<< endl;
return 1; return 1;
} }
UniSetTypes::ObjectVar o = ui.resolve(oid); UniSetTypes::ObjectVar o = ui.resolve(oid);
UniSetObject_i_var obj = UniSetObject_i::_narrow(o); UniSetObject_i_var obj = UniSetObject_i::_narrow(o);
if(CORBA::is_nil(obj)) if(CORBA::is_nil(obj))
...@@ -679,7 +679,7 @@ int oinfo( const string& arg, UInterface &ui ) ...@@ -679,7 +679,7 @@ int oinfo( const string& arg, UInterface &ui )
SimpleInfo_var inf = obj->getInfo(); SimpleInfo_var inf = obj->getInfo();
cout << inf->info << endl; cout << inf->info << endl;
} }
return 0; return 0;
} }
......
...@@ -270,7 +270,7 @@ int main(int argc, char* argv[]) ...@@ -270,7 +270,7 @@ int main(int argc, char* argv[])
} }
usleep(1000000); usleep(1000000);
} }
return 0; return 0;
} }
......
...@@ -74,7 +74,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID ) ...@@ -74,7 +74,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
throw SystemError(err.str()); throw SystemError(err.str());
} }
for(;it_rra.getCurrent(); it_rra++ ) for(;it_rra.getCurrent(); ++it_rra )
{ {
string rra( it_rra.getProp("rra") ); string rra( it_rra.getProp("rra") );
if( rra.empty() ) if( rra.empty() )
......
...@@ -10,7 +10,7 @@ using namespace UniSetTypes; ...@@ -10,7 +10,7 @@ using namespace UniSetTypes;
using namespace UniSetExtensions; using namespace UniSetExtensions;
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
SMDBServer::SMDBServer( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId, SharedMemory* ic, SMDBServer::SMDBServer( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId, SharedMemory* ic,
const string prefix ): const string& prefix ):
DBServer_MySQL(objId), DBServer_MySQL(objId),
prefix(prefix) prefix(prefix)
{ {
...@@ -178,7 +178,7 @@ void SMDBServer::help_print( int argc, const char* const* argv ) ...@@ -178,7 +178,7 @@ void SMDBServer::help_print( int argc, const char* const* argv )
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
SMDBServer* SMDBServer::init_smdbserver( int argc, const char* const* argv, SMDBServer* SMDBServer::init_smdbserver( int argc, const char* const* argv,
UniSetTypes::ObjectId icID, SharedMemory* ic, UniSetTypes::ObjectId icID, SharedMemory* ic,
const std::string prefix ) const std::string& prefix )
{ {
string name = conf->getArgParam("--" + prefix + "-name","DBServer"); string name = conf->getArgParam("--" + prefix + "-name","DBServer");
if( name.empty() ) if( name.empty() )
......
...@@ -12,13 +12,13 @@ class SMDBServer: ...@@ -12,13 +12,13 @@ class SMDBServer:
{ {
public: public:
SMDBServer( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmID, SharedMemory* ic=0, SMDBServer( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmID, SharedMemory* ic=0,
const std::string prefix="dbserver" ); const std::string& prefix="dbserver" );
virtual ~SMDBServer(); virtual ~SMDBServer();
/*! глобальная функция для инициализации объекта */ /*! глобальная функция для инициализации объекта */
static SMDBServer* init_smdbserver( int argc, const char* const* argv, static SMDBServer* init_smdbserver( int argc, const char* const* argv,
UniSetTypes::ObjectId shmID, SharedMemory* ic=0, UniSetTypes::ObjectId shmID, SharedMemory* ic=0,
const std::string prefix="dbserver" ); const std::string& prefix="dbserver" );
/*! глобальная функция для вывода help-а */ /*! глобальная функция для вывода help-а */
static void help_print( int argc, const char* const* argv ); static void help_print( int argc, const char* const* argv );
......
...@@ -197,18 +197,18 @@ namespace ModbusRTU ...@@ -197,18 +197,18 @@ namespace ModbusRTU
std::ostream& operator<<(std::ostream& os, ErrorRetMessage* m ); std::ostream& operator<<(std::ostream& os, ErrorRetMessage* m );
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
struct DataBits struct DataBits
{ {
DataBits( ModbusByte b ); DataBits( ModbusByte b );
DataBits( std::string s ); // example "10001111" DataBits( std::string s ); // example "10001111"
DataBits(); DataBits();
const DataBits& operator=(const ModbusByte& r); const DataBits& operator=(const ModbusByte& r);
operator ModbusByte(); operator ModbusByte();
ModbusByte mbyte(); ModbusByte mbyte();
bool operator[]( const int i ){ return b[i]; } bool operator[]( const size_t i ){ return b[i]; }
std::bitset<BitsPerByte> b; std::bitset<BitsPerByte> b;
}; };
...@@ -216,33 +216,33 @@ namespace ModbusRTU ...@@ -216,33 +216,33 @@ namespace ModbusRTU
std::ostream& operator<<(std::ostream& os, DataBits* m ); std::ostream& operator<<(std::ostream& os, DataBits* m );
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
struct DataBits16 struct DataBits16
{ {
DataBits16( ModbusData d ); DataBits16( ModbusData d );
DataBits16( std::string s ); // example "1000111110001111" DataBits16( const std::string& s ); // example "1000111110001111"
DataBits16(); DataBits16();
const DataBits16& operator=(const ModbusData& r); const DataBits16& operator=(const ModbusData& r);
operator ModbusData(); operator ModbusData();
ModbusData mdata(); ModbusData mdata();
bool operator[]( const int i ){ return b[i]; } bool operator[]( const size_t i ){ return b[i]; }
void set( int n, bool s ){ b.set(n,s); } void set( int n, bool s ){ b.set(n,s); }
std::bitset<BitsPerData> b; std::bitset<BitsPerData> b;
}; };
std::ostream& operator<<(std::ostream& os, DataBits16& m ); std::ostream& operator<<(std::ostream& os, DataBits16& m );
std::ostream& operator<<(std::ostream& os, DataBits16* m ); std::ostream& operator<<(std::ostream& os, DataBits16* m );
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
/*! Запрос 0x01 */ /*! Запрос 0x01 */
struct ReadCoilMessage: struct ReadCoilMessage:
public ModbusHeader public ModbusHeader
{ {
ModbusData start; ModbusData start;
ModbusData count; ModbusData count;
ModbusCRC crc; ModbusCRC crc;
// ------- to slave ------- // ------- to slave -------
ReadCoilMessage( ModbusAddr addr, ModbusData start, ModbusData count ); ReadCoilMessage( ModbusAddr addr, ModbusData start, ModbusData count );
/*! преобразование для посылки в сеть */ /*! преобразование для посылки в сеть */
...@@ -262,7 +262,7 @@ namespace ModbusRTU ...@@ -262,7 +262,7 @@ namespace ModbusRTU
std::ostream& operator<<(std::ostream& os, ReadCoilMessage* m ); std::ostream& operator<<(std::ostream& os, ReadCoilMessage* m );
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
/*! Ответ на 0x01 */ /*! Ответ на 0x01 */
struct ReadCoilRetMessage: struct ReadCoilRetMessage:
public ModbusHeader public ModbusHeader
...@@ -285,7 +285,7 @@ namespace ModbusRTU ...@@ -285,7 +285,7 @@ namespace ModbusRTU
/*! узнать длину данных следующий за предварительным заголовком ( в байтах ) */ /*! узнать длину данных следующий за предварительным заголовком ( в байтах ) */
static int getDataLen( ModbusMessage& m ); static int getDataLen( ModbusMessage& m );
ModbusCRC crc; ModbusCRC crc;
// ------- to master ------- // ------- to master -------
ReadCoilRetMessage( ModbusAddr _from ); ReadCoilRetMessage( ModbusAddr _from );
...@@ -314,7 +314,7 @@ namespace ModbusRTU ...@@ -314,7 +314,7 @@ namespace ModbusRTU
/*! очистка данных */ /*! очистка данных */
void clear(); void clear();
/*! проверка на переполнение */ /*! проверка на переполнение */
inline bool isFull() inline bool isFull()
{ {
...@@ -322,8 +322,8 @@ namespace ModbusRTU ...@@ -322,8 +322,8 @@ namespace ModbusRTU
} }
/*! размер данных(после заголовка) у данного типа сообщения */ /*! размер данных(после заголовка) у данного типа сообщения */
int szData(); size_t szData();
/*! преобразование для посылки в сеть */ /*! преобразование для посылки в сеть */
ModbusMessage transport_msg(); ModbusMessage transport_msg();
}; };
...@@ -338,7 +338,7 @@ namespace ModbusRTU ...@@ -338,7 +338,7 @@ namespace ModbusRTU
ModbusData start; ModbusData start;
ModbusData count; ModbusData count;
ModbusCRC crc; ModbusCRC crc;
// ------- to slave ------- // ------- to slave -------
ReadInputStatusMessage( ModbusAddr addr, ModbusData start, ModbusData count ); ReadInputStatusMessage( ModbusAddr addr, ModbusData start, ModbusData count );
/*! преобразование для посылки в сеть */ /*! преобразование для посылки в сеть */
...@@ -379,7 +379,7 @@ namespace ModbusRTU ...@@ -379,7 +379,7 @@ namespace ModbusRTU
/*! узнать длину данных следующий за предварительным заголовком ( в байтах ) */ /*! узнать длину данных следующий за предварительным заголовком ( в байтах ) */
static int getDataLen( ModbusMessage& m ); static int getDataLen( ModbusMessage& m );
ModbusCRC crc; ModbusCRC crc;
// ------- to master ------- // ------- to master -------
ReadInputStatusRetMessage( ModbusAddr _from ); ReadInputStatusRetMessage( ModbusAddr _from );
...@@ -408,16 +408,16 @@ namespace ModbusRTU ...@@ -408,16 +408,16 @@ namespace ModbusRTU
/*! очистка данных */ /*! очистка данных */
void clear(); void clear();
/*! проверка на переполнение */ /*! проверка на переполнение */
inline bool isFull() inline bool isFull()
{ {
return ( (int)bcnt >= MAXLENPACKET ); return ( (int)bcnt >= MAXLENPACKET );
} }
/*! размер данных(после заголовка) у данного типа сообщения */ /*! размер данных(после заголовка) у данного типа сообщения */
int szData(); size_t szData();
/*! преобразование для посылки в сеть */ /*! преобразование для посылки в сеть */
ModbusMessage transport_msg(); ModbusMessage transport_msg();
}; };
...@@ -426,14 +426,14 @@ namespace ModbusRTU ...@@ -426,14 +426,14 @@ namespace ModbusRTU
std::ostream& operator<<(std::ostream& os, ReadInputStatusRetMessage* m ); std::ostream& operator<<(std::ostream& os, ReadInputStatusRetMessage* m );
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
/*! Запрос 0x03 */ /*! Запрос 0x03 */
struct ReadOutputMessage: struct ReadOutputMessage:
public ModbusHeader public ModbusHeader
{ {
ModbusData start; ModbusData start;
ModbusData count; ModbusData count;
ModbusCRC crc; ModbusCRC crc;
// ------- to slave ------- // ------- to slave -------
ReadOutputMessage( ModbusAddr addr, ModbusData start, ModbusData count ); ReadOutputMessage( ModbusAddr addr, ModbusData start, ModbusData count );
/*! преобразование для посылки в сеть */ /*! преобразование для посылки в сеть */
...@@ -475,7 +475,7 @@ namespace ModbusRTU ...@@ -475,7 +475,7 @@ namespace ModbusRTU
/*! узнать длину данных следующий за предварительным заголовком ( в байтах ) */ /*! узнать длину данных следующий за предварительным заголовком ( в байтах ) */
static int getDataLen( ModbusMessage& m ); static int getDataLen( ModbusMessage& m );
ModbusCRC crc; ModbusCRC crc;
// ------- to master ------- // ------- to master -------
ReadOutputRetMessage( ModbusAddr _from ); ReadOutputRetMessage( ModbusAddr _from );
...@@ -487,19 +487,19 @@ namespace ModbusRTU ...@@ -487,19 +487,19 @@ namespace ModbusRTU
/*! очистка данных */ /*! очистка данных */
void clear(); void clear();
/*! проверка на переполнение */ /*! проверка на переполнение */
inline bool isFull() inline bool isFull()
{ {
return ( count*sizeof(ModbusData) >= MAXLENPACKET ); return ( count*sizeof(ModbusData) >= MAXLENPACKET );
} }
/*! размер данных(после заголовка) у данного типа сообщения */ /*! размер данных(после заголовка) у данного типа сообщения */
int szData(); size_t szData();
/*! преобразование для посылки в сеть */ /*! преобразование для посылки в сеть */
ModbusMessage transport_msg(); ModbusMessage transport_msg();
// Это поле не входит в стандарт modbus // Это поле не входит в стандарт modbus
// оно вспомогательное и игнорируется при // оно вспомогательное и игнорируется при
// преобразовании в ModbusMessage. // преобразовании в ModbusMessage.
...@@ -518,7 +518,7 @@ namespace ModbusRTU ...@@ -518,7 +518,7 @@ namespace ModbusRTU
ModbusData start; ModbusData start;
ModbusData count; ModbusData count;
ModbusCRC crc; ModbusCRC crc;
// ------- to slave ------- // ------- to slave -------
ReadInputMessage( ModbusAddr addr, ModbusData start, ModbusData count ); ReadInputMessage( ModbusAddr addr, ModbusData start, ModbusData count );
/*! преобразование для посылки в сеть */ /*! преобразование для посылки в сеть */
...@@ -561,7 +561,7 @@ namespace ModbusRTU ...@@ -561,7 +561,7 @@ namespace ModbusRTU
/*! узнать длину данных следующий за предварительным заголовком ( в байтах ) */ /*! узнать длину данных следующий за предварительным заголовком ( в байтах ) */
static int getDataLen( ModbusMessage& m ); static int getDataLen( ModbusMessage& m );
ModbusCRC crc; ModbusCRC crc;
// ------- to master ------- // ------- to master -------
ReadInputRetMessage( ModbusAddr _from ); ReadInputRetMessage( ModbusAddr _from );
...@@ -573,21 +573,21 @@ namespace ModbusRTU ...@@ -573,21 +573,21 @@ namespace ModbusRTU
/*! очистка данных */ /*! очистка данных */
void clear(); void clear();
/*! проверка на переполнение */ /*! проверка на переполнение */
inline bool isFull() inline bool isFull()
{ {
return ( count*sizeof(ModbusData) >= MAXLENPACKET ); return ( count*sizeof(ModbusData) >= MAXLENPACKET );
} }
void swapData(); void swapData();
/*! размер данных(после заголовка) у данного типа сообщения */ /*! размер данных(после заголовка) у данного типа сообщения */
int szData(); size_t szData();
/*! преобразование для посылки в сеть */ /*! преобразование для посылки в сеть */
ModbusMessage transport_msg(); ModbusMessage transport_msg();
// Это поле не входит в стандарт modbus // Это поле не входит в стандарт modbus
// оно вспомогательное и игнорируется при // оно вспомогательное и игнорируется при
// преобразовании в ModbusMessage. // преобразовании в ModbusMessage.
...@@ -599,7 +599,7 @@ namespace ModbusRTU ...@@ -599,7 +599,7 @@ namespace ModbusRTU
std::ostream& operator<<(std::ostream& os, ReadInputRetMessage& m ); std::ostream& operator<<(std::ostream& os, ReadInputRetMessage& m );
std::ostream& operator<<(std::ostream& os, ReadInputRetMessage* m ); std::ostream& operator<<(std::ostream& os, ReadInputRetMessage* m );
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
/*! Запрос на запись 0x0F */ /*! Запрос на запись 0x0F */
struct ForceCoilsMessage: struct ForceCoilsMessage:
public ModbusHeader public ModbusHeader
{ {
...@@ -651,7 +651,7 @@ namespace ModbusRTU ...@@ -651,7 +651,7 @@ namespace ModbusRTU
void init( ModbusMessage& m ); void init( ModbusMessage& m );
/*! размер данных(после заголовка) у данного типа сообщения */ /*! размер данных(после заголовка) у данного типа сообщения */
int szData(); size_t szData();
/*! размер предварительного заголовка /*! размер предварительного заголовка
* (после основного до фактических данных) * (после основного до фактических данных)
...@@ -741,7 +741,7 @@ namespace ModbusRTU ...@@ -741,7 +741,7 @@ namespace ModbusRTU
void init( ModbusMessage& m ); void init( ModbusMessage& m );
/*! размер данных(после заголовка) у данного типа сообщения */ /*! размер данных(после заголовка) у данного типа сообщения */
int szData(); size_t szData();
/*! размер предварительного заголовка /*! размер предварительного заголовка
* (после основного до фактических данных) * (после основного до фактических данных)
...@@ -828,7 +828,7 @@ namespace ModbusRTU ...@@ -828,7 +828,7 @@ namespace ModbusRTU
void init( ModbusMessage& m ); void init( ModbusMessage& m );
/*! размер данных(после заголовка) у данного типа сообщения */ /*! размер данных(после заголовка) у данного типа сообщения */
int szData(); size_t szData();
/*! размер предварительного заголовка /*! размер предварительного заголовка
* (после основного до фактических данных) * (после основного до фактических данных)
...@@ -911,7 +911,7 @@ namespace ModbusRTU ...@@ -911,7 +911,7 @@ namespace ModbusRTU
void init( ModbusMessage& m ); void init( ModbusMessage& m );
/*! размер данных(после заголовка) у данного типа сообщения */ /*! размер данных(после заголовка) у данного типа сообщения */
int szData(); size_t szData();
/*! размер предварительного заголовка /*! размер предварительного заголовка
* (после основного до фактических данных) * (после основного до фактических данных)
...@@ -1015,7 +1015,7 @@ namespace ModbusRTU ...@@ -1015,7 +1015,7 @@ namespace ModbusRTU
} }
/*! размер данных(после заголовка) у данного типа сообщения */ /*! размер данных(после заголовка) у данного типа сообщения */
int szData(); size_t szData();
/*! преобразование для посылки в сеть */ /*! преобразование для посылки в сеть */
ModbusMessage transport_msg(); ModbusMessage transport_msg();
...@@ -1143,7 +1143,7 @@ namespace ModbusRTU ...@@ -1143,7 +1143,7 @@ namespace ModbusRTU
} }
/*! размер данных(после заголовка) у данного типа сообщения */ /*! размер данных(после заголовка) у данного типа сообщения */
int szData(); size_t szData();
/*! преобразование для посылки в сеть */ /*! преобразование для посылки в сеть */
ModbusMessage transport_msg(); ModbusMessage transport_msg();
...@@ -1211,7 +1211,7 @@ namespace ModbusRTU ...@@ -1211,7 +1211,7 @@ namespace ModbusRTU
} }
/*! размер данных(после заголовка) у данного типа сообщения */ /*! размер данных(после заголовка) у данного типа сообщения */
int szData(); size_t szData();
/*! преобразование для посылки в сеть */ /*! преобразование для посылки в сеть */
ModbusMessage transport_msg(); ModbusMessage transport_msg();
...@@ -1314,7 +1314,7 @@ namespace ModbusRTU ...@@ -1314,7 +1314,7 @@ namespace ModbusRTU
void init( ModbusMessage& m ); void init( ModbusMessage& m );
/*! размер данных(после заголовка) у данного типа сообщения */ /*! размер данных(после заголовка) у данного типа сообщения */
int szData(); size_t szData();
/*! размер предварительного заголовка /*! размер предварительного заголовка
* (после основного до фактических данных) * (после основного до фактических данных)
...@@ -1355,7 +1355,7 @@ namespace ModbusRTU ...@@ -1355,7 +1355,7 @@ namespace ModbusRTU
{ return ( count >= sizeof(data) ); } { return ( count >= sizeof(data) ); }
/*! размер данных(после заголовка) у данного типа сообщения */ /*! размер данных(после заголовка) у данного типа сообщения */
int szData(); size_t szData();
/*! преобразование для посылки в сеть */ /*! преобразование для посылки в сеть */
ModbusMessage transport_msg(); ModbusMessage transport_msg();
...@@ -1390,7 +1390,7 @@ namespace ModbusRTU ...@@ -1390,7 +1390,7 @@ namespace ModbusRTU
void init( ModbusMessage& m ); void init( ModbusMessage& m );
/*! размер данных(после заголовка) у данного типа сообщения */ /*! размер данных(после заголовка) у данного типа сообщения */
int szData(); size_t szData();
/*! размер предварительного заголовка /*! размер предварительного заголовка
* (после основного до фактических данных) * (после основного до фактических данных)
...@@ -1473,7 +1473,7 @@ namespace ModbusRTU ...@@ -1473,7 +1473,7 @@ namespace ModbusRTU
void clear(); void clear();
/*! размер данных(после заголовка) у данного типа сообщения */ /*! размер данных(после заголовка) у данного типа сообщения */
int szData(); size_t szData();
/*! преобразование для посылки в сеть */ /*! преобразование для посылки в сеть */
ModbusMessage transport_msg(); ModbusMessage transport_msg();
......
...@@ -1448,7 +1448,7 @@ ModbusRTU::mbErrCode ModbusServer::replyFileTransfer( const std::string &fname, ...@@ -1448,7 +1448,7 @@ ModbusRTU::mbErrCode ModbusServer::replyFileTransfer( const std::string &fname,
} }
return ModbusRTU::erNoError; return ModbusRTU::erNoError;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
ModbusRTU::mbErrCode ModbusServer::replySetDateTime( ModbusRTU::SetDateTimeMessage& query, ModbusRTU::mbErrCode ModbusServer::replySetDateTime( ModbusRTU::SetDateTimeMessage& query,
ModbusRTU::SetDateTimeRetMessage& reply, ModbusRTU::SetDateTimeRetMessage& reply,
...@@ -1462,15 +1462,16 @@ ModbusRTU::mbErrCode ModbusServer::replySetDateTime( ModbusRTU::SetDateTimeMessa ...@@ -1462,15 +1462,16 @@ ModbusRTU::mbErrCode ModbusServer::replySetDateTime( ModbusRTU::SetDateTimeMessa
if( gettimeofday(&set,&tz) == 0 ) if( gettimeofday(&set,&tz) == 0 )
{ {
struct tm* t = localtime(&set.tv_sec); struct tm t;
t->tm_sec = query.sec; localtime_r(&set.tv_sec,&t);
t->tm_min = query.min; t.tm_sec = query.sec;
t->tm_hour = query.hour; t.tm_min = query.min;
t->tm_mday = query.day; t.tm_hour = query.hour;
t->tm_mon = query.mon-1; t.tm_mday = query.day;
// t->tm_year = (query.century>19) ? query.year + query.century*10 - 1900 : query.year; t.tm_mon = query.mon-1;
t->tm_year = (query.century>19) ? query.year + 2000 - 1900 : query.year; // t.tm_year = (query.century>19) ? query.year + query.century*10 - 1900 : query.year;
set.tv_sec = mktime(t); t.tm_year = (query.century>19) ? query.year + 2000 - 1900 : query.year;
set.tv_sec = mktime(&t);
set.tv_usec = 0; set.tv_usec = 0;
if( settimeofday(&set,&tz)==0 ) if( settimeofday(&set,&tz)==0 )
......
...@@ -385,14 +385,14 @@ const DataBits& DataBits::operator=( const ModbusByte& r ) ...@@ -385,14 +385,14 @@ const DataBits& DataBits::operator=( const ModbusByte& r )
{ {
for( unsigned int i=0; i<b.size(); i++ ) for( unsigned int i=0; i<b.size(); i++ )
b[i] = r&(1<<i); b[i] = r&(1<<i);
return (*this); return (*this);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
std::ostream& ModbusRTU::operator<<(std::ostream& os, DataBits& d ) std::ostream& ModbusRTU::operator<<(std::ostream& os, DataBits& d )
{ {
os << "["; os << "[";
for( unsigned int i = (int)d.b.size()-1; i>=0; i-- ) for( int i=d.b.size()-1; i>=0; i-- )
os << d.b[i]; os << d.b[i];
os << "]"; os << "]";
...@@ -404,10 +404,10 @@ std::ostream& ModbusRTU::operator<<(std::ostream& os, DataBits* d ) ...@@ -404,10 +404,10 @@ std::ostream& ModbusRTU::operator<<(std::ostream& os, DataBits* d )
return os << (*d); return os << (*d);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
DataBits16::DataBits16( std::string s ): DataBits16::DataBits16( const std::string& s ):
b(s) b(s)
{ {
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
DataBits16::DataBits16( ModbusData d ) DataBits16::DataBits16( ModbusData d )
...@@ -439,16 +439,17 @@ ModbusData DataBits16::mdata() ...@@ -439,16 +439,17 @@ ModbusData DataBits16::mdata()
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
const DataBits16& DataBits16::operator=( const ModbusData& r ) const DataBits16& DataBits16::operator=( const ModbusData& r )
{ {
for( unsigned int i=0; i<b.size(); i++ ) const size_t sz = b.size();
for( unsigned int i=0; i<sz; i++ )
b[i] = r&(1<<i); b[i] = r&(1<<i);
return (*this); return (*this);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
std::ostream& ModbusRTU::operator<<(std::ostream& os, DataBits16& d ) std::ostream& ModbusRTU::operator<<(std::ostream& os, DataBits16& d )
{ {
os << "["; os << "[";
for( unsigned int i=(int)d.b.size()-1; i>=0; i-- ) for( int i=d.b.size()-1; i>=0; i-- )
os << d.b[i]; os << d.b[i];
os << "]"; os << "]";
...@@ -478,14 +479,14 @@ void ReadCoilRetMessage::init( ModbusMessage& m ) ...@@ -478,14 +479,14 @@ void ReadCoilRetMessage::init( ModbusMessage& m )
memset(this,0,sizeof(*this)); memset(this,0,sizeof(*this));
addr = m.addr; addr = m.addr;
func = m.func; func = m.func;
bcnt = m.data[0]; bcnt = m.data[0];
if( bcnt > MAXLENPACKET ) if( bcnt > MAXLENPACKET )
throw mbException(erPacketTooLong); throw mbException(erPacketTooLong);
memcpy(&data,&(m.data[1]),bcnt); memcpy(&data,&(m.data[1]),bcnt);
memcpy(&crc,&(m.data[bcnt+1]),szCRC); memcpy(&crc,&(m.data[bcnt+1]),szCRC);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int ReadCoilRetMessage::getDataLen( ModbusMessage& m ) int ReadCoilRetMessage::getDataLen( ModbusMessage& m )
{ {
...@@ -512,7 +513,7 @@ bool ReadCoilRetMessage::setBit( unsigned char dnum, unsigned char bnum, bool st ...@@ -512,7 +513,7 @@ bool ReadCoilRetMessage::setBit( unsigned char dnum, unsigned char bnum, bool st
data[dnum] = d; data[dnum] = d;
return true; return true;
} }
return false; return false;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
...@@ -520,7 +521,7 @@ bool ReadCoilRetMessage::addData( DataBits d ) ...@@ -520,7 +521,7 @@ bool ReadCoilRetMessage::addData( DataBits d )
{ {
if( isFull() ) if( isFull() )
return false; return false;
data[bcnt++] = d.mbyte(); data[bcnt++] = d.mbyte();
return true; return true;
} }
...@@ -532,7 +533,7 @@ bool ReadCoilRetMessage::getData( unsigned char dnum, DataBits& d ) ...@@ -532,7 +533,7 @@ bool ReadCoilRetMessage::getData( unsigned char dnum, DataBits& d )
d = data[dnum]; d = data[dnum];
return true; return true;
} }
return false; return false;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
...@@ -551,7 +552,7 @@ ModbusMessage ReadCoilRetMessage::transport_msg() ...@@ -551,7 +552,7 @@ ModbusMessage ReadCoilRetMessage::transport_msg()
// копируем заголовок и данные // копируем заголовок и данные
memcpy(&mm,this,szModbusHeader); memcpy(&mm,this,szModbusHeader);
memcpy(&mm.data,&bcnt,sizeof(bcnt)); memcpy(&mm.data,&bcnt,sizeof(bcnt));
int ind = sizeof(bcnt); int ind = sizeof(bcnt);
// копируем данные // копируем данные
...@@ -570,7 +571,7 @@ ModbusMessage ReadCoilRetMessage::transport_msg() ...@@ -570,7 +571,7 @@ ModbusMessage ReadCoilRetMessage::transport_msg()
return mm; return mm;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int ReadCoilRetMessage::szData() size_t ReadCoilRetMessage::szData()
{ {
// фактическое число данных + контрольная сумма // фактическое число данных + контрольная сумма
return sizeof(bcnt)+bcnt+szCRC; return sizeof(bcnt)+bcnt+szCRC;
...@@ -639,7 +640,7 @@ void ReadInputStatusMessage::init( ModbusMessage& m ) ...@@ -639,7 +640,7 @@ void ReadInputStatusMessage::init( ModbusMessage& m )
assert( m.func == fnReadInputStatus ); assert( m.func == fnReadInputStatus );
memset(this,0,sizeof(*this)); memset(this,0,sizeof(*this));
memcpy(this,&m,sizeof(*this)); // m.len memcpy(this,&m,sizeof(*this)); // m.len
// переворачиваем слова // переворачиваем слова
start = SWAPSHORT(start); start = SWAPSHORT(start);
count = SWAPSHORT(count); count = SWAPSHORT(count);
...@@ -678,14 +679,14 @@ void ReadInputStatusRetMessage::init( ModbusMessage& m ) ...@@ -678,14 +679,14 @@ void ReadInputStatusRetMessage::init( ModbusMessage& m )
memset(this,0,sizeof(*this)); memset(this,0,sizeof(*this));
addr = m.addr; addr = m.addr;
func = m.func; func = m.func;
bcnt = m.data[0]; bcnt = m.data[0];
if( bcnt > MAXLENPACKET ) if( bcnt > MAXLENPACKET )
throw mbException(erPacketTooLong); throw mbException(erPacketTooLong);
memcpy(&data,&(m.data[1]),bcnt); memcpy(&data,&(m.data[1]),bcnt);
memcpy(&crc,&(m.data[bcnt+1]),szCRC); memcpy(&crc,&(m.data[bcnt+1]),szCRC);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int ReadInputStatusRetMessage::getDataLen( ModbusMessage& m ) int ReadInputStatusRetMessage::getDataLen( ModbusMessage& m )
{ {
...@@ -770,7 +771,7 @@ ModbusMessage ReadInputStatusRetMessage::transport_msg() ...@@ -770,7 +771,7 @@ ModbusMessage ReadInputStatusRetMessage::transport_msg()
return mm; return mm;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int ReadInputStatusRetMessage::szData() size_t ReadInputStatusRetMessage::szData()
{ {
// фактическое число данных + контрольная сумма // фактическое число данных + контрольная сумма
return sizeof(bcnt)+bcnt+szCRC; return sizeof(bcnt)+bcnt+szCRC;
...@@ -989,7 +990,7 @@ ModbusMessage ReadOutputRetMessage::transport_msg() ...@@ -989,7 +990,7 @@ ModbusMessage ReadOutputRetMessage::transport_msg()
return mm; return mm;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int ReadOutputRetMessage::szData() size_t ReadOutputRetMessage::szData()
{ {
// фактическое число данных + контрольная сумма // фактическое число данных + контрольная сумма
return sizeof(bcnt)+count*sizeof(ModbusData)+szCRC; return sizeof(bcnt)+count*sizeof(ModbusData)+szCRC;
...@@ -1197,7 +1198,7 @@ ModbusMessage ReadInputRetMessage::transport_msg() ...@@ -1197,7 +1198,7 @@ ModbusMessage ReadInputRetMessage::transport_msg()
return mm; return mm;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int ReadInputRetMessage::szData() size_t ReadInputRetMessage::szData()
{ {
// фактическое число данных + контрольная сумма // фактическое число данных + контрольная сумма
return sizeof(bcnt)+count*sizeof(ModbusData)+szCRC; return sizeof(bcnt)+count*sizeof(ModbusData)+szCRC;
...@@ -1370,7 +1371,7 @@ bool ForceCoilsMessage::checkFormat() ...@@ -1370,7 +1371,7 @@ bool ForceCoilsMessage::checkFormat()
return ( func==fnForceMultipleCoils ); return ( func==fnForceMultipleCoils );
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int ForceCoilsMessage::szData() size_t ForceCoilsMessage::szData()
{ {
return szHead()+bcnt+szCRC; return szHead()+bcnt+szCRC;
} }
...@@ -1617,7 +1618,7 @@ bool WriteOutputMessage::checkFormat() ...@@ -1617,7 +1618,7 @@ bool WriteOutputMessage::checkFormat()
return ( (bcnt==(quant*sizeof(ModbusData))) && (func==fnWriteOutputRegisters) ); return ( (bcnt==(quant*sizeof(ModbusData))) && (func==fnWriteOutputRegisters) );
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int WriteOutputMessage::szData() size_t WriteOutputMessage::szData()
{ {
return szHead()+bcnt+szCRC; return szHead()+bcnt+szCRC;
} }
...@@ -1812,7 +1813,7 @@ bool ForceSingleCoilMessage::checkFormat() ...@@ -1812,7 +1813,7 @@ bool ForceSingleCoilMessage::checkFormat()
return (func==fnForceSingleCoil); return (func==fnForceSingleCoil);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int ForceSingleCoilMessage::szData() size_t ForceSingleCoilMessage::szData()
{ {
return szHead()+sizeof(ModbusData)+szCRC; return szHead()+sizeof(ModbusData)+szCRC;
} }
...@@ -1984,7 +1985,7 @@ bool WriteSingleOutputMessage::checkFormat() ...@@ -1984,7 +1985,7 @@ bool WriteSingleOutputMessage::checkFormat()
return ( (func==fnWriteOutputSingleRegister) ); return ( (func==fnWriteOutputSingleRegister) );
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int WriteSingleOutputMessage::szData() size_t WriteSingleOutputMessage::szData()
{ {
return szHead()+sizeof(ModbusData)+szCRC; return szHead()+sizeof(ModbusData)+szCRC;
} }
...@@ -2266,7 +2267,7 @@ ModbusMessage DiagnosticMessage::transport_msg() ...@@ -2266,7 +2267,7 @@ ModbusMessage DiagnosticMessage::transport_msg()
return mm; return mm;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int DiagnosticMessage::szData() size_t DiagnosticMessage::szData()
{ {
// фактическое число данных + контрольная сумма // фактическое число данных + контрольная сумма
return sizeof(subf)+count*sizeof(ModbusData)+szCRC; return sizeof(subf)+count*sizeof(ModbusData)+szCRC;
...@@ -2595,7 +2596,7 @@ ModbusMessage MEIMessageRetRDI::transport_msg() ...@@ -2595,7 +2596,7 @@ ModbusMessage MEIMessageRetRDI::transport_msg()
return mm; return mm;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int MEIMessageRetRDI::szData() size_t MEIMessageRetRDI::szData()
{ {
// заголовочные поля + фактическое число данных + контрольная сумма // заголовочные поля + фактическое число данных + контрольная сумма
return 6 + bcnt + szCRC; return 6 + bcnt + szCRC;
...@@ -2761,7 +2762,7 @@ ModbusMessage JournalCommandRetMessage::transport_msg() ...@@ -2761,7 +2762,7 @@ ModbusMessage JournalCommandRetMessage::transport_msg()
return mm; return mm;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int JournalCommandRetMessage::szData() size_t JournalCommandRetMessage::szData()
{ {
// фактическое число данных + контрольная сумма // фактическое число данных + контрольная сумма
return sizeof(bcnt)+count*sizeof(ModbusData)+szCRC; return sizeof(bcnt)+count*sizeof(ModbusData)+szCRC;
...@@ -3097,12 +3098,12 @@ void RemoteServiceMessage::init( ModbusMessage& m ) ...@@ -3097,12 +3098,12 @@ void RemoteServiceMessage::init( ModbusMessage& m )
// copy not include CRC // copy not include CRC
memcpy(this,&m,szModbusHeader+m.len); memcpy(this,&m,szModbusHeader+m.len);
// последний элемент это CRC // последний элемент это CRC
memcpy(&crc,&(m.data[m.len-szCRC]),szCRC); memcpy(&crc,&(m.data[m.len-szCRC]),szCRC);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int RemoteServiceMessage::szData() size_t RemoteServiceMessage::szData()
{ {
return szHead()+bcnt+szCRC; return szHead()+bcnt+szCRC;
} }
...@@ -3162,7 +3163,7 @@ void RemoteServiceRetMessage::clear() ...@@ -3162,7 +3163,7 @@ void RemoteServiceRetMessage::clear()
bcnt = 0; bcnt = 0;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int RemoteServiceRetMessage::szData() size_t RemoteServiceRetMessage::szData()
{ {
// фактическое число данных + контрольная сумма // фактическое число данных + контрольная сумма
return sizeof(bcnt)+count*sizeof(ModbusByte)+szCRC; return sizeof(bcnt)+count*sizeof(ModbusByte)+szCRC;
...@@ -3222,10 +3223,10 @@ void ReadFileRecordMessage::init( ModbusMessage& m ) ...@@ -3222,10 +3223,10 @@ void ReadFileRecordMessage::init( ModbusMessage& m )
assert( m.func == fnReadFileRecord ); assert( m.func == fnReadFileRecord );
memset(this,0,sizeof(*this)); memset(this,0,sizeof(*this));
// copy not include CRC // copy not include CRC
memcpy(this,&m,szModbusHeader+m.len); memcpy(this,&m,szModbusHeader+m.len);
// потом проверяем // потом проверяем
if( !checkFormat() ) if( !checkFormat() )
{ {
...@@ -3249,7 +3250,7 @@ void ReadFileRecordMessage::init( ModbusMessage& m ) ...@@ -3249,7 +3250,7 @@ void ReadFileRecordMessage::init( ModbusMessage& m )
} }
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int ReadFileRecordMessage::szData() size_t ReadFileRecordMessage::szData()
{ {
// фактическое число данных + контрольная сумма // фактическое число данных + контрольная сумма
return sizeof(bcnt)+count*sizeof(SubRequest)+szCRC; return sizeof(bcnt)+count*sizeof(SubRequest)+szCRC;
...@@ -3419,7 +3420,7 @@ int FileTransferRetMessage::getDataLen( ModbusMessage& m ) ...@@ -3419,7 +3420,7 @@ int FileTransferRetMessage::getDataLen( ModbusMessage& m )
return m.data[0]; return m.data[0];
} }
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
int FileTransferRetMessage::szData() size_t FileTransferRetMessage::szData()
{ {
// фактическое число данных + контрольная сумма // фактическое число данных + контрольная сумма
return sizeof(ModbusByte)*2+sizeof(ModbusData)*3+dlen+szCRC; return sizeof(ModbusByte)*2+sizeof(ModbusData)*3+dlen+szCRC;
......
...@@ -235,12 +235,12 @@ using namespace UniSetTypes; ...@@ -235,12 +235,12 @@ using namespace UniSetTypes;
std::list<UniSetTypes::ParamSInfo> UniSetTypes::getSInfoList( const string& str, Configuration* conf ) std::list<UniSetTypes::ParamSInfo> UniSetTypes::getSInfoList( const string& str, Configuration* conf )
{ {
std::list<UniSetTypes::ParamSInfo> res; std::list<UniSetTypes::ParamSInfo> res;
std::list<std::string> l = UniSetTypes::explode_str(str,','); std::list<std::string> l = UniSetTypes::explode_str(str,',');
for( std::list<std::string>::iterator it=l.begin(); it!=l.end(); it++ ) for( std::list<std::string>::iterator it=l.begin(); it!=l.end(); ++it )
{ {
UniSetTypes::ParamSInfo item; UniSetTypes::ParamSInfo item;
std::list<std::string> p = UniSetTypes::explode_str((*it),'='); std::list<std::string> p = UniSetTypes::explode_str((*it),'=');
std::string s = ""; std::string s = "";
if( p.size() == 1 ) if( p.size() == 1 )
......
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