Commit a9002edf authored by Pavel Vainerman's avatar Pavel Vainerman

Merge branch 'master' of git.eter:/projects/asu/uniset2

Conflicts: IDL/Processes/IOController_i.idl IDL/UniSetTypes/UniSetManager_i.idl IDL/UniSetTypes/UniSetObject_i.idl IDL/UniSetTypes/UniSetTypes_i.idl TODO Utilities/Admin/admin.cc Utilities/MBTester/MBSlave.cc Utilities/MBTester/MBSlave.h Utilities/MBTester/MBTCPServer.cc Utilities/MBTester/MBTCPServer.h Utilities/MBTester/mbrtuslave.cc Utilities/MBTester/mbrtutester.cc Utilities/MBTester/mbslave.cc Utilities/MBTester/mbtcpserver.cc Utilities/MBTester/mbtcptester.cc Utilities/NullController/NullController.cc Utilities/NullController/NullController.h Utilities/NullController/main.cc Utilities/SImitator/main.cc Utilities/SMonit/smonitor.cc Utilities/SViewer-text/main.cc Utilities/codegen/ctl-cpp-cc-alone-ask.xsl Utilities/codegen/ctl-cpp-cc-ask.xsl Utilities/codegen/ctl-cpp-common.xsl Utilities/codegen/ctl-cpp-main-alone.xsl Utilities/codegen/ctl-cpp-main.xsl Utilities/codegen/skel-main.cc Utilities/codegen/skel.h Utilities/codegen/tests/TestGen.h Utilities/codegen/tests/TestGenAlone.h conf/test.xml configure.ac extensions/DBServer-MySQL/DBServer_MySQL.cc extensions/DBServer-MySQL/DBServer_MySQL.h extensions/DBServer-MySQL/MySQLInterface.cc extensions/DBServer-MySQL/MySQLInterface.h extensions/DBServer-MySQL/main.cc extensions/DBServer-MySQL/test.cc extensions/DBServer-SQLite/DBServer_SQLite.cc extensions/DBServer-SQLite/DBServer_SQLite.h extensions/DBServer-SQLite/SQLiteInterface.cc extensions/DBServer-SQLite/main.cc extensions/DBServer-SQLite/test.cc extensions/IOControl/ComediInterface.cc extensions/IOControl/ComediInterface.h extensions/IOControl/IOControl.cc extensions/IOControl/IOControl.h extensions/IOControl/iocalibr.cc extensions/IOControl/iocontrol.cc extensions/IOControl/iotest.cc extensions/LogicProcessor/Element.cc extensions/LogicProcessor/Element.h extensions/LogicProcessor/LProcessor.cc extensions/LogicProcessor/LProcessor.h extensions/LogicProcessor/PassiveLProcessor.h extensions/LogicProcessor/Schema.cc extensions/LogicProcessor/Schema.h extensions/LogicProcessor/SchemaXML.cc extensions/LogicProcessor/TAND.cc extensions/LogicProcessor/TDelay.cc extensions/LogicProcessor/TDelay.h extensions/LogicProcessor/TOR.cc extensions/LogicProcessor/plogicproc.cc extensions/ModbusMaster/MBExchange.cc extensions/ModbusMaster/MBExchange.h extensions/ModbusMaster/MBTCPMaster.cc extensions/ModbusMaster/MBTCPMaster.h extensions/ModbusMaster/MBTCPMultiMaster.cc extensions/ModbusMaster/MBTCPMultiMaster.h extensions/ModbusMaster/RTUExchange.cc extensions/ModbusMaster/RTUStorage.cc extensions/ModbusMaster/RTUStorage.h extensions/ModbusMaster/main.cc extensions/ModbusMaster/mtr-conv.cc extensions/ModbusMaster/mtr-read.cc extensions/ModbusMaster/mtr-setup.cc extensions/ModbusMaster/multi-main.cc extensions/ModbusMaster/rtuexchange.cc extensions/ModbusMaster/rtustate.cc extensions/ModbusMaster/vtconv.cc extensions/ModbusSlave/MBSlave.cc extensions/ModbusSlave/MBSlave.h extensions/ModbusSlave/MBTCPMultiSlave.cc extensions/ModbusSlave/mbslave.cc extensions/ModbusSlave/mbtcp-multislave.cc extensions/ModbusSlave/start_tcp_multi_fg.sh extensions/RRDServer/RRDServer.cc extensions/RRDServer/RRDServer.h extensions/RRDServer/main.cc extensions/SMDBServer/SMDBServer.cc extensions/SMDBServer/SMDBServer.h extensions/SMDBServer/main.cc extensions/SMViewer/SMViewer.h extensions/SharedMemory/SharedMemory.cc extensions/SharedMemory/SharedMemory.h extensions/SharedMemory/smemory.cc extensions/SharedMemoryPlus/smemory-plus.cc extensions/UNetUDP/UDPPacket.cc extensions/UNetUDP/UNetExchange.cc extensions/UNetUDP/UNetExchange.h extensions/UNetUDP/UNetReceiver.cc extensions/UNetUDP/UNetReceiver.h extensions/UNetUDP/UNetSender.cc extensions/UNetUDP/UNetSender.h extensions/UNetUDP/unet-udp-tester.cc extensions/UNetUDP/unetexchange.cc extensions/UniNetwork/UniExchange.cc extensions/UniNetwork/UniExchange.h extensions/UniNetwork/uninet.cc extensions/include/Calibration.h extensions/include/DigitalFilter.h extensions/include/Extensions.h extensions/include/IOBase.h extensions/include/MTR.h extensions/include/PID.h extensions/include/SMInterface.h extensions/include/SingleProcess.h extensions/include/VTypes.h extensions/lib/Calibration.cc extensions/lib/Extensions.cc extensions/lib/IOBase.cc extensions/lib/MTR.cc extensions/lib/PID.cc extensions/lib/SMInterface.cc extensions/lib/SingleProcess.cc extensions/lib/UObject_SK.cc extensions/tests/SMemoryTest/TestProc.cc extensions/tests/SMemoryTest/TestProc.h extensions/tests/SMemoryTest/smemory-test.cc extensions/tests/calibration.cc extensions/tests/digitalfilter.cc include/CallBackTimer.h include/ComPort.h include/ComPort485F.h include/Configuration.h include/DBServer.h include/Debug.h include/DebugStream.h include/DelayTimer.h include/Exceptions.h include/HourGlass.h include/IOController.h include/IONotifyController.h include/IORFile.h include/LT_Object.h include/MessageType.h include/Mutex.h include/NCRestorer.h include/ORepHelpers.h include/ObjectIndex.h include/ObjectIndex_Array.h include/ObjectRepository.h include/ObjectRepositoryFactory.h include/OmniThreadCreator.h include/PassiveObject.h include/PassiveTimer.h include/Pulse.h include/Restorer.h include/RunLock.h include/SMonitor.h include/SViewer.h include/ThreadCreator.h include/Trigger.h include/TriggerAND.h include/TriggerOR.h include/TriggerOutput.h include/UInterface.h include/UniSetActivator.h include/UniSetManager_LT.h include/UniSetTypes.h include/UniXML.h include/WDTInterface.h include/modbus/ModbusClient.h include/modbus/ModbusHelpers.h include/modbus/ModbusRTUMaster.h include/modbus/ModbusRTUSlave.h include/modbus/ModbusRTUSlaveSlot.h include/modbus/ModbusServer.h include/modbus/ModbusTCPMaster.h include/modbus/ModbusTCPServer.h include/modbus/ModbusTCPServerSlot.h include/modbus/ModbusTCPSession.h include/modbus/ModbusTypes.h include/modbus/TCPCheck.h python/lib/pyUniSet/Makefile.am python/lib/pyUniSet/PyUInterface.h python/lib/pyUniSet/UConnector.cc python/lib/pyUniSet/UConnector.h python/lib/pyUniSet/UConnector_wrap.cxx python/lib/pyUniSet/UExceptions.h python/lib/pyUniSet/UExceptions_wrap.cxx python/lib/pyUniSet/UInterface_wrap.cxx python/lib/pyUniSet/UModbus.cc python/lib/pyUniSet/UModbus.h python/lib/pyUniSet/UModbus_wrap.cxx python/lib/pyUniSet/UTypes.h python/lib/pyUniSet/pyUModbus.py src/Communications/ComPort.cc src/Communications/ComPort485F.cc src/Communications/Modbus/ModbusClient.cc src/Communications/Modbus/ModbusHelpers.cc src/Communications/Modbus/ModbusRTUMaster.cc src/Communications/Modbus/ModbusRTUSlave.cc src/Communications/Modbus/ModbusRTUSlaveSlot.cc src/Communications/Modbus/ModbusServer.cc src/Communications/Modbus/ModbusTCPCore.cc src/Communications/Modbus/ModbusTCPServer.cc src/Communications/Modbus/ModbusTCPServerSlot.cc src/Communications/Modbus/ModbusTCPSession.cc src/Communications/Modbus/ModbusTCPTypes.cc src/Communications/Modbus/ModbusTypes.cc src/Interfaces/UInterface.cc src/ObjectRepository/IORFile.cc src/ObjectRepository/ORepHelpers.cc src/ObjectRepository/ObjectIndex.cc src/ObjectRepository/ObjectIndex_Array.cc src/ObjectRepository/ObjectIndex_XML.cc src/ObjectRepository/ObjectIndex_idXML.cc src/ObjectRepository/ObjectRepository.cc src/ObjectRepository/ObjectRepositoryFactory.cc src/ObjectRepository/PassiveObject.cc src/ObjectRepository/ProxyManager.cc src/ObjectRepository/UniSetActivator.cc src/ObjectRepository/UniSetManager.cc src/ObjectRepository/UniSetManager_LT.cc src/ObjectRepository/UniSetObject.cc src/ObjectRepository/UniSetObject_LT.cc src/ObjectRepository/UniSetTypes.cc src/Processes/IOController.cc src/Processes/IONotifyController.cc src/Processes/IONotifyController_LT.cc src/Processes/NCRestorer_XML.cc src/Timers/PassiveSysTimer.cc src/Timers/WaitingPassiveTimer.cc src/Various/Configuration.cc src/Various/Debug.cc src/Various/DebugStream.cc src/Various/LT_Object.cc src/Various/Makefile.am src/Various/MessageType.cc src/Various/Mutex.cc src/Various/Restorer_XML.cc src/Various/RunLock.cc src/Various/SMonitor.cc src/Various/SViewer.cc src/Various/UniXML.cc src/Various/WDTInterface.cc tests/UniXmlTest/XmlTest.cc tests/calibration.cc tests/conftest.cc tests/delaytimer.cc tests/dlog.cc tests/hourglass.cc tests/iterator_test.cc tests/passivetimer.cc tests/threadtst.cc tests/ui.cc tests/umutex.cc tests/unixml.cc
parents c6a97f32 23478b23
...@@ -29,9 +29,9 @@ int main( int argc, const char** argv ) ...@@ -29,9 +29,9 @@ int main( int argc, const char** argv )
string logfilename(conf->getArgParam("--smdbserver-logfile")); string logfilename(conf->getArgParam("--smdbserver-logfile"));
if( logfilename.empty() ) if( logfilename.empty() )
logfilename = "smdbserver.log"; logfilename = "smdbserver.log";
conf->initDebug(dlog,"dlog"); conf->initDebug(dlog,"dlog");
std::ostringstream logname; std::ostringstream logname;
string dir(conf->getLogDir()); string dir(conf->getLogDir());
logname << dir << logfilename; logname << dir << logfilename;
...@@ -61,7 +61,7 @@ int main( int argc, const char** argv ) ...@@ -61,7 +61,7 @@ int main( int argc, const char** argv )
UniSetActivator act; UniSetActivator act;
act.addObject(static_cast<class UniSetObject*>(db)); act.addObject(static_cast<class UniSetObject*>(db));
SystemMessage sm(SystemMessage::StartUp); SystemMessage sm(SystemMessage::StartUp);
act.broadcast( sm.transport_msg() ); act.broadcast( sm.transport_msg() );
ulog << "\n\n\n"; ulog << "\n\n\n";
......
...@@ -28,3 +28,4 @@ bin_PROGRAMS = @PACKAGE@-smemory-plus ...@@ -28,3 +28,4 @@ bin_PROGRAMS = @PACKAGE@-smemory-plus
$(SIGC_CFLAGS) $(COMCPP_CFLAGS) $(SIGC_CFLAGS) $(COMCPP_CFLAGS)
@PACKAGE@_smemory_plus_SOURCES = smemory-plus.cc @PACKAGE@_smemory_plus_SOURCES = smemory-plus.cc
...@@ -23,18 +23,18 @@ ...@@ -23,18 +23,18 @@
- \ref pgUNetUDP_Reserv - \ref pgUNetUDP_Reserv
\section pgUNetUDP_Common Общее описание \section pgUNetUDP_Common Общее описание
Обмен построен на основе протокола UDP. Обмен построен на основе протокола UDP.
Основная идея заключается в том, что каждый узел на порту равном своему ID Основная идея заключается в том, что каждый узел на порту равном своему ID
посылает в сеть UDP-пакеты содержащие данные считанные из локальной SM. Формат данных - это набор посылает в сеть UDP-пакеты содержащие данные считанные из локальной SM. Формат данных - это набор
пар [id,value]. Другие узлы принимают их. Помимо этого данный процесс запускает пар [id,value]. Другие узлы принимают их. Помимо этого данный процесс запускает
по потоку приёма для каждого другого узла и ловит пакеты от них, сохраняя данные в SM. по потоку приёма для каждого другого узла и ловит пакеты от них, сохраняя данные в SM.
\par \par
При своём старте процесс считывает из секции \<nodes> список узлов которые необходимо "слушать", При своём старте процесс считывает из секции \<nodes> список узлов которые необходимо "слушать",
а также параметры своего узла. Открывает по потоку приёма на каждый узел и поток а также параметры своего узла. Открывает по потоку приёма на каждый узел и поток
передачи для своих данных. Помимо этого такие же потоки для резервных каналов, если они включены передачи для своих данных. Помимо этого такие же потоки для резервных каналов, если они включены
(см. \ref pgUNetUDP_Reserv ). (см. \ref pgUNetUDP_Reserv ).
\section pgUNetUDP_Conf Пример конфигурирования \section pgUNetUDP_Conf Пример конфигурирования
По умолчанию при считывании используется \b unet_broadcast_ip (указанный в секции \<nodes>) По умолчанию при считывании используется \b unet_broadcast_ip (указанный в секции \<nodes>)
и \b id узла - в качестве порта. и \b id узла - в качестве порта.
...@@ -55,22 +55,22 @@ ...@@ -55,22 +55,22 @@
\section pgUNetUDP_Reserv Настройка резервного канала связи \section pgUNetUDP_Reserv Настройка резервного канала связи
В текущей реализации поддерживается возможность обмена по двум подсетям (эзернет-каналам). В текущей реализации поддерживается возможность обмена по двум подсетям (эзернет-каналам).
Она основана на том, что, для каждого узла помимо основного "читателя", Она основана на том, что, для каждого узла помимо основного "читателя",
создаётся дополнительный "читатель"(поток) слушающий другой ip-адрес и порт. создаётся дополнительный "читатель"(поток) слушающий другой ip-адрес и порт.
А так же, для локального узла создаётся дополнительный "писатель"(поток), А так же, для локального узла создаётся дополнительный "писатель"(поток),
который посылает данные в (указанную) вторую подсеть. Для того, чтобы задействовать который посылает данные в (указанную) вторую подсеть. Для того, чтобы задействовать
второй канал, достаточно объявить в настройках переменные второй канал, достаточно объявить в настройках переменные
\b unet_broadcast_ip2. А также в случае необходимости для конкретного узла \b unet_broadcast_ip2. А также в случае необходимости для конкретного узла
можно указать \b unet_broadcast_ip2 и \b unet_port2. можно указать \b unet_broadcast_ip2 и \b unet_port2.
Переключение между "каналами" происходит по следующей логике: Переключение между "каналами" происходит по следующей логике:
При старте включается только первый канал. Второй канал работает в режиме "пассивного" чтения. При старте включается только первый канал. Второй канал работает в режиме "пассивного" чтения.
Т.е. все пакеты принимаются, но данные в SharedMemory не сохраняются. Т.е. все пакеты принимаются, но данные в SharedMemory не сохраняются.
Если во время работы пропадает связь по первому каналу, идёт переключение на второй канал. Если во время работы пропадает связь по первому каналу, идёт переключение на второй канал.
Первый канал переводиться в "пассивный" режим, а второй канал, переводится в "нормальный"(активный) Первый канал переводиться в "пассивный" режим, а второй канал, переводится в "нормальный"(активный)
режим. Далее работа ведётся по второму каналу, независимо от того, что связь на первом режим. Далее работа ведётся по второму каналу, независимо от того, что связь на первом
канале может восстановиться. Это сделано для защиты от постоянных перескакиваний канале может восстановиться. Это сделано для защиты от постоянных перескакиваний
с канала на канал. Работа на втором канале будет вестись, пока не пропадёт связь с канала на канал. Работа на втором канале будет вестись, пока не пропадёт связь
на нём. Тогда будет попытка переключиться обратно на первый канал и так "по кругу". на нём. Тогда будет попытка переключиться обратно на первый канал и так "по кругу".
В свою очередь "писатели"(если они не отключены) всегда посылают данные в оба канала. В свою очередь "писатели"(если они не отключены) всегда посылают данные в оба канала.
...@@ -158,8 +158,8 @@ class UNetExchange: ...@@ -158,8 +158,8 @@ class UNetExchange:
void step( SMInterface* shm, const std::string& myname ); void step( SMInterface* shm, const std::string& myname );
inline void setRespondID( UniSetTypes::ObjectId id, bool invert=false ) inline void setRespondID( UniSetTypes::ObjectId id, bool invert=false )
{ {
sidRespond = id; sidRespond = id;
respondInvert = invert; respondInvert = invert;
} }
inline void setLostPacketsID( UniSetTypes::ObjectId id ){ sidLostPackets = id; } inline void setLostPacketsID( UniSetTypes::ObjectId id ){ sidLostPackets = id; }
......
...@@ -28,7 +28,7 @@ namespace UniSetExtensions ...@@ -28,7 +28,7 @@ namespace UniSetExtensions
dcrit << err.str() << endl; dcrit << err.str() << endl;
throw SystemError(err.str()); throw SystemError(err.str());
} }
// cout << "(uniset): shm=" << name << " id=" << shmID << endl; // cout << "(uniset): shm=" << name << " id=" << shmID << endl;
return shmID; return shmID;
} }
...@@ -39,7 +39,7 @@ namespace UniSetExtensions ...@@ -39,7 +39,7 @@ namespace UniSetExtensions
return; return;
string::size_type pos = s.find("\\n"); string::size_type pos = s.find("\\n");
while( pos != string::npos ) while( pos != string::npos )
{ {
s.replace(pos,2,"\n"); s.replace(pos,2,"\n");
...@@ -53,10 +53,10 @@ namespace UniSetExtensions ...@@ -53,10 +53,10 @@ namespace UniSetExtensions
{ {
if( xmlCalibrationsNode ) if( xmlCalibrationsNode )
return xmlCalibrationsNode; return xmlCalibrationsNode;
xmlCalibrationsNode = conf->getNode("Calibrations"); xmlCalibrationsNode = conf->getNode("Calibrations");
return xmlCalibrationsNode; return xmlCalibrationsNode;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
...@@ -64,7 +64,7 @@ namespace UniSetExtensions ...@@ -64,7 +64,7 @@ namespace UniSetExtensions
{ {
if( !node ) if( !node )
return 0; return 0;
UniXML_iterator it(node); UniXML_iterator it(node);
if( !it.goChildren() ) if( !it.goChildren() )
return 0; return 0;
......
../../../conf/test.xml
\ No newline at end of file
...@@ -33,20 +33,20 @@ ...@@ -33,20 +33,20 @@
unlock() - удаляет файл. unlock() - удаляет файл.
\warning Код не переносимый, т.к. рассчитан на наличие каталога /proc, \warning Код не переносимый, т.к. рассчитан на наличие каталога /proc,
по которому проверяется статус процесса (по pid). по которому проверяется статус процесса (по pid).
*/ */
class RunLock class RunLock
{ {
public: public:
RunLock(); RunLock();
~RunLock(); ~RunLock();
static bool isLocked(const std::string& lockFile); //, char* **argv ); static bool isLocked(const std::string& lockFile); //, char* **argv );
static bool lock(const std::string& lockFile); static bool lock(const std::string& lockFile);
static bool unlock(const std::string& lockFile); static bool unlock(const std::string& lockFile);
protected: protected:
}; };
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
#endif #endif
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
/*! /*!
Реализация базового класса с использованием локальных таймеров Реализация базового класса с использованием локальных таймеров
*/ */
class UniSetManager_LT: class UniSetManager_LT:
public UniSetManager public UniSetManager
{ {
......
...@@ -10,8 +10,8 @@ class ModbusRTUMaster; ...@@ -10,8 +10,8 @@ class ModbusRTUMaster;
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
namespace ModbusHelpers namespace ModbusHelpers
{ {
ModbusRTU::ModbusAddr autodetectSlave( ModbusRTUMaster* m, ModbusRTU::ModbusAddr autodetectSlave( ModbusRTUMaster* m,
ModbusRTU::ModbusAddr beg=0, ModbusRTU::ModbusAddr beg=0,
ModbusRTU::ModbusAddr end=255, ModbusRTU::ModbusAddr end=255,
ModbusRTU::ModbusData reg=0, ModbusRTU::ModbusData reg=0,
ModbusRTU::SlaveFunctionCode fn=ModbusRTU::fnReadInputRegisters ModbusRTU::SlaveFunctionCode fn=ModbusRTU::fnReadInputRegisters
...@@ -19,7 +19,7 @@ namespace ModbusHelpers ...@@ -19,7 +19,7 @@ namespace ModbusHelpers
ModbusRTU::ModbusAddr autodetectSlave( std::string dev, ModbusRTU::ModbusAddr autodetectSlave( std::string dev,
ComPort::Speed s, int tout=1000, ComPort::Speed s, int tout=1000,
ModbusRTU::ModbusAddr beg=0, ModbusRTU::ModbusAddr beg=0,
ModbusRTU::ModbusAddr end=255, ModbusRTU::ModbusAddr end=255,
ModbusRTU::ModbusData reg=0, ModbusRTU::ModbusData reg=0,
ModbusRTU::SlaveFunctionCode fn=ModbusRTU::fnReadInputRegisters ModbusRTU::SlaveFunctionCode fn=ModbusRTU::fnReadInputRegisters
...@@ -31,7 +31,7 @@ namespace ModbusHelpers ...@@ -31,7 +31,7 @@ namespace ModbusHelpers
); // throw UniSetTypes::TimeOut(); ); // throw UniSetTypes::TimeOut();
ComPort::Speed autodetectSpeed( std::string dev, ComPort::Speed autodetectSpeed( std::string dev,
ModbusRTU::ModbusAddr slave, ModbusRTU::ModbusAddr slave,
int timeout_msec=1000, int timeout_msec=1000,
ModbusRTU::ModbusData reg=0, ModbusRTU::ModbusData reg=0,
ModbusRTU::SlaveFunctionCode fn=ModbusRTU::fnReadInputRegisters ModbusRTU::SlaveFunctionCode fn=ModbusRTU::fnReadInputRegisters
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#include "ModbusTypes.h" #include "ModbusTypes.h"
#include "ModbusClient.h" #include "ModbusClient.h"
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
/*! Modbus RTU master mode /*! Modbus RTU master mode
\todo Добавить ведение статистики по ошибкам \todo Добавить ведение статистики по ошибкам
*/ */
class ModbusRTUMaster: class ModbusRTUMaster:
...@@ -37,11 +37,11 @@ class ModbusRTUMaster: ...@@ -37,11 +37,11 @@ class ModbusRTUMaster:
protected: protected:
/*! get next data block from channel ot recv buffer /*! get next data block from channel ot recv buffer
\param begin - get from position \param begin - get from position
\param buf - buffer for data \param buf - buffer for data
\param len - size of buf \param len - size of buf
\return real data lenght ( must be <= len ) \return real data lenght ( must be <= len )
*/ */
virtual int getNextData( unsigned char* buf, int len ) override; virtual int getNextData( unsigned char* buf, int len ) override;
...@@ -51,7 +51,7 @@ class ModbusRTUMaster: ...@@ -51,7 +51,7 @@ class ModbusRTUMaster:
virtual ModbusRTU::mbErrCode sendData( unsigned char* buf, int len ) override; virtual ModbusRTU::mbErrCode sendData( unsigned char* buf, int len ) override;
/*! функция запрос-ответ */ /*! функция запрос-ответ */
virtual ModbusRTU::mbErrCode query( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusMessage& msg, virtual ModbusRTU::mbErrCode query( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusMessage& msg,
ModbusRTU::ModbusMessage& reply, timeout_t timeout ) override; ModbusRTU::ModbusMessage& reply, timeout_t timeout ) override;
......
...@@ -11,11 +11,11 @@ ...@@ -11,11 +11,11 @@
#include "ModbusTypes.h" #include "ModbusTypes.h"
#include "ModbusServer.h" #include "ModbusServer.h"
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
/*! Modbus RTU slave mode /*! Modbus RTU slave mode
Класс не самостоятельный и содержит "чисто" виртуальные функции Класс не самостоятельный и содержит "чисто" виртуальные функции
для реализации ответов на запросы. для реализации ответов на запросы.
\todo Разобратся с тем как отвечать на неправильные запросы! \todo Разобратся с тем как отвечать на неправильные запросы!
Формат ответных сообщений!!! Коды ошибок!!! Формат ответных сообщений!!! Коды ошибок!!!
\todo Доработать terminate, чтобы можно было прервать ожидание \todo Доработать terminate, чтобы можно было прервать ожидание
*/ */
......
...@@ -7,10 +7,10 @@ ...@@ -7,10 +7,10 @@
#include "ModbusRTUSlave.h" #include "ModbusRTUSlave.h"
#include "ModbusServerSlot.h" #include "ModbusServerSlot.h"
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
/*! /*!
Реализация позволяющая добавлять обработчики не наследуясь от ModbusRTUSlave. Реализация позволяющая добавлять обработчики не наследуясь от ModbusRTUSlave.
Основана на использовании слотов. Основана на использовании слотов.
\warning Пока реализована возможность подключения ТОЛЬКО ОДНОГО обработчика \warning Пока реализована возможность подключения ТОЛЬКО ОДНОГО обработчика
*/ */
class ModbusRTUSlaveSlot: class ModbusRTUSlaveSlot:
public ModbusRTUSlave, public ModbusRTUSlave,
...@@ -24,51 +24,51 @@ class ModbusRTUSlaveSlot: ...@@ -24,51 +24,51 @@ class ModbusRTUSlaveSlot:
virtual void sigterm( int signo ); virtual void sigterm( int signo );
inline ComPort* getComPort(){ return port; } inline ComPort* getComPort(){ return port; }
protected: protected:
virtual ModbusRTU::mbErrCode readCoilStatus( ModbusRTU::ReadCoilMessage& query, virtual ModbusRTU::mbErrCode readCoilStatus( ModbusRTU::ReadCoilMessage& query,
ModbusRTU::ReadCoilRetMessage& reply ); ModbusRTU::ReadCoilRetMessage& reply );
virtual ModbusRTU::mbErrCode readInputStatus( ModbusRTU::ReadInputStatusMessage& query, virtual ModbusRTU::mbErrCode readInputStatus( ModbusRTU::ReadInputStatusMessage& query,
ModbusRTU::ReadInputStatusRetMessage& reply ); ModbusRTU::ReadInputStatusRetMessage& reply );
virtual ModbusRTU::mbErrCode readOutputRegisters( ModbusRTU::ReadOutputMessage& query, virtual ModbusRTU::mbErrCode readOutputRegisters( ModbusRTU::ReadOutputMessage& query,
ModbusRTU::ReadOutputRetMessage& reply ); ModbusRTU::ReadOutputRetMessage& reply );
virtual ModbusRTU::mbErrCode readInputRegisters( ModbusRTU::ReadInputMessage& query, virtual ModbusRTU::mbErrCode readInputRegisters( ModbusRTU::ReadInputMessage& query,
ModbusRTU::ReadInputRetMessage& reply ); ModbusRTU::ReadInputRetMessage& reply );
virtual ModbusRTU::mbErrCode forceSingleCoil( ModbusRTU::ForceSingleCoilMessage& query, virtual ModbusRTU::mbErrCode forceSingleCoil( ModbusRTU::ForceSingleCoilMessage& query,
ModbusRTU::ForceSingleCoilRetMessage& reply ); ModbusRTU::ForceSingleCoilRetMessage& reply );
virtual ModbusRTU::mbErrCode writeOutputSingleRegister( ModbusRTU::WriteSingleOutputMessage& query, virtual ModbusRTU::mbErrCode writeOutputSingleRegister( ModbusRTU::WriteSingleOutputMessage& query,
ModbusRTU::WriteSingleOutputRetMessage& reply ); ModbusRTU::WriteSingleOutputRetMessage& reply );
virtual ModbusRTU::mbErrCode forceMultipleCoils( ModbusRTU::ForceCoilsMessage& query, virtual ModbusRTU::mbErrCode forceMultipleCoils( ModbusRTU::ForceCoilsMessage& query,
ModbusRTU::ForceCoilsRetMessage& reply ); ModbusRTU::ForceCoilsRetMessage& reply );
virtual ModbusRTU::mbErrCode writeOutputRegisters( ModbusRTU::WriteOutputMessage& query, virtual ModbusRTU::mbErrCode writeOutputRegisters( ModbusRTU::WriteOutputMessage& query,
ModbusRTU::WriteOutputRetMessage& reply ); ModbusRTU::WriteOutputRetMessage& reply );
virtual ModbusRTU::mbErrCode diagnostics( ModbusRTU::DiagnosticMessage& query, virtual ModbusRTU::mbErrCode diagnostics( ModbusRTU::DiagnosticMessage& query,
ModbusRTU::DiagnosticRetMessage& reply ); ModbusRTU::DiagnosticRetMessage& reply );
virtual ModbusRTU::mbErrCode read4314( ModbusRTU::MEIMessageRDI& query, virtual ModbusRTU::mbErrCode read4314( ModbusRTU::MEIMessageRDI& query,
ModbusRTU::MEIMessageRetRDI& reply ); ModbusRTU::MEIMessageRetRDI& reply );
virtual ModbusRTU::mbErrCode journalCommand( ModbusRTU::JournalCommandMessage& query, virtual ModbusRTU::mbErrCode journalCommand( ModbusRTU::JournalCommandMessage& query,
ModbusRTU::JournalCommandRetMessage& reply ); ModbusRTU::JournalCommandRetMessage& reply );
virtual ModbusRTU::mbErrCode setDateTime( ModbusRTU::SetDateTimeMessage& query, virtual ModbusRTU::mbErrCode setDateTime( ModbusRTU::SetDateTimeMessage& query,
ModbusRTU::SetDateTimeRetMessage& reply ); ModbusRTU::SetDateTimeRetMessage& reply );
virtual ModbusRTU::mbErrCode remoteService( ModbusRTU::RemoteServiceMessage& query, virtual ModbusRTU::mbErrCode remoteService( ModbusRTU::RemoteServiceMessage& query,
ModbusRTU::RemoteServiceRetMessage& reply ); ModbusRTU::RemoteServiceRetMessage& reply );
virtual ModbusRTU::mbErrCode fileTransfer( ModbusRTU::FileTransferMessage& query, virtual ModbusRTU::mbErrCode fileTransfer( ModbusRTU::FileTransferMessage& query,
ModbusRTU::FileTransferRetMessage& reply ); ModbusRTU::FileTransferRetMessage& reply );
private: private:
}; };
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
......
...@@ -39,7 +39,7 @@ class ModbusTCPMaster: ...@@ -39,7 +39,7 @@ class ModbusTCPMaster:
virtual int getNextData( unsigned char* buf, int len ) override; virtual int getNextData( unsigned char* buf, int len ) override;
virtual void setChannelTimeout( timeout_t msec ) override; virtual void setChannelTimeout( timeout_t msec ) override;
virtual ModbusRTU::mbErrCode sendData( unsigned char* buf, int len ) override; virtual ModbusRTU::mbErrCode sendData( unsigned char* buf, int len ) override;
virtual ModbusRTU::mbErrCode query( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusMessage& msg, virtual ModbusRTU::mbErrCode query( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusMessage& msg,
ModbusRTU::ModbusMessage& reply, timeout_t timeout ) override; ModbusRTU::ModbusMessage& reply, timeout_t timeout ) override;
private: private:
......
...@@ -26,7 +26,7 @@ class ModbusTCPServer: ...@@ -26,7 +26,7 @@ class ModbusTCPServer:
/*! Однопоточная обработка (каждый запрос последовательно), с разрывом соединения в конце */ /*! Однопоточная обработка (каждый запрос последовательно), с разрывом соединения в конце */
virtual ModbusRTU::mbErrCode receive( ModbusRTU::ModbusAddr mbaddr, timeout_t msecTimeout ) override; virtual ModbusRTU::mbErrCode receive( ModbusRTU::ModbusAddr mbaddr, timeout_t msecTimeout ) override;
/*! Многопоточная обработка (создаётся по потоку для каждого "клиента") /*! Многопоточная обработка (создаётся по потоку для каждого "клиента")
\ return TRUE - если запр*ос пришёл \ return TRUE - если запр*ос пришёл
\return FALSE - если timeout \return FALSE - если timeout
*/ */
......
...@@ -20,46 +20,46 @@ class ModbusTCPServerSlot: ...@@ -20,46 +20,46 @@ class ModbusTCPServerSlot:
protected: protected:
virtual ModbusRTU::mbErrCode readCoilStatus( ModbusRTU::ReadCoilMessage& query, virtual ModbusRTU::mbErrCode readCoilStatus( ModbusRTU::ReadCoilMessage& query,
ModbusRTU::ReadCoilRetMessage& reply ); ModbusRTU::ReadCoilRetMessage& reply );
virtual ModbusRTU::mbErrCode readInputStatus( ModbusRTU::ReadInputStatusMessage& query, virtual ModbusRTU::mbErrCode readInputStatus( ModbusRTU::ReadInputStatusMessage& query,
ModbusRTU::ReadInputStatusRetMessage& reply ); ModbusRTU::ReadInputStatusRetMessage& reply );
virtual ModbusRTU::mbErrCode readOutputRegisters( ModbusRTU::ReadOutputMessage& query, virtual ModbusRTU::mbErrCode readOutputRegisters( ModbusRTU::ReadOutputMessage& query,
ModbusRTU::ReadOutputRetMessage& reply ); ModbusRTU::ReadOutputRetMessage& reply );
virtual ModbusRTU::mbErrCode readInputRegisters( ModbusRTU::ReadInputMessage& query, virtual ModbusRTU::mbErrCode readInputRegisters( ModbusRTU::ReadInputMessage& query,
ModbusRTU::ReadInputRetMessage& reply ); ModbusRTU::ReadInputRetMessage& reply );
virtual ModbusRTU::mbErrCode forceSingleCoil( ModbusRTU::ForceSingleCoilMessage& query, virtual ModbusRTU::mbErrCode forceSingleCoil( ModbusRTU::ForceSingleCoilMessage& query,
ModbusRTU::ForceSingleCoilRetMessage& reply ); ModbusRTU::ForceSingleCoilRetMessage& reply );
virtual ModbusRTU::mbErrCode writeOutputSingleRegister( ModbusRTU::WriteSingleOutputMessage& query, virtual ModbusRTU::mbErrCode writeOutputSingleRegister( ModbusRTU::WriteSingleOutputMessage& query,
ModbusRTU::WriteSingleOutputRetMessage& reply ); ModbusRTU::WriteSingleOutputRetMessage& reply );
virtual ModbusRTU::mbErrCode forceMultipleCoils( ModbusRTU::ForceCoilsMessage& query, virtual ModbusRTU::mbErrCode forceMultipleCoils( ModbusRTU::ForceCoilsMessage& query,
ModbusRTU::ForceCoilsRetMessage& reply ); ModbusRTU::ForceCoilsRetMessage& reply );
virtual ModbusRTU::mbErrCode writeOutputRegisters( ModbusRTU::WriteOutputMessage& query, virtual ModbusRTU::mbErrCode writeOutputRegisters( ModbusRTU::WriteOutputMessage& query,
ModbusRTU::WriteOutputRetMessage& reply ); ModbusRTU::WriteOutputRetMessage& reply );
virtual ModbusRTU::mbErrCode diagnostics( ModbusRTU::DiagnosticMessage& query, virtual ModbusRTU::mbErrCode diagnostics( ModbusRTU::DiagnosticMessage& query,
ModbusRTU::DiagnosticRetMessage& reply ); ModbusRTU::DiagnosticRetMessage& reply );
virtual ModbusRTU::mbErrCode read4314( ModbusRTU::MEIMessageRDI& query, virtual ModbusRTU::mbErrCode read4314( ModbusRTU::MEIMessageRDI& query,
ModbusRTU::MEIMessageRetRDI& reply ); ModbusRTU::MEIMessageRetRDI& reply );
virtual ModbusRTU::mbErrCode journalCommand( ModbusRTU::JournalCommandMessage& query, virtual ModbusRTU::mbErrCode journalCommand( ModbusRTU::JournalCommandMessage& query,
ModbusRTU::JournalCommandRetMessage& reply ); ModbusRTU::JournalCommandRetMessage& reply );
virtual ModbusRTU::mbErrCode setDateTime( ModbusRTU::SetDateTimeMessage& query, virtual ModbusRTU::mbErrCode setDateTime( ModbusRTU::SetDateTimeMessage& query,
ModbusRTU::SetDateTimeRetMessage& reply ); ModbusRTU::SetDateTimeRetMessage& reply );
virtual ModbusRTU::mbErrCode remoteService( ModbusRTU::RemoteServiceMessage& query, virtual ModbusRTU::mbErrCode remoteService( ModbusRTU::RemoteServiceMessage& query,
ModbusRTU::RemoteServiceRetMessage& reply ); ModbusRTU::RemoteServiceRetMessage& reply );
virtual ModbusRTU::mbErrCode fileTransfer( ModbusRTU::FileTransferMessage& query, virtual ModbusRTU::mbErrCode fileTransfer( ModbusRTU::FileTransferMessage& query,
ModbusRTU::FileTransferRetMessage& reply ); ModbusRTU::FileTransferRetMessage& reply );
private: private:
......
...@@ -46,46 +46,46 @@ class ModbusTCPSession: ...@@ -46,46 +46,46 @@ class ModbusTCPSession:
virtual ModbusRTU::mbErrCode post_send_request( ModbusRTU::ModbusMessage& request ); virtual ModbusRTU::mbErrCode post_send_request( ModbusRTU::ModbusMessage& request );
virtual ModbusRTU::mbErrCode readCoilStatus( ModbusRTU::ReadCoilMessage& query, virtual ModbusRTU::mbErrCode readCoilStatus( ModbusRTU::ReadCoilMessage& query,
ModbusRTU::ReadCoilRetMessage& reply ); ModbusRTU::ReadCoilRetMessage& reply );
virtual ModbusRTU::mbErrCode readInputStatus( ModbusRTU::ReadInputStatusMessage& query, virtual ModbusRTU::mbErrCode readInputStatus( ModbusRTU::ReadInputStatusMessage& query,
ModbusRTU::ReadInputStatusRetMessage& reply ); ModbusRTU::ReadInputStatusRetMessage& reply );
virtual ModbusRTU::mbErrCode readOutputRegisters( ModbusRTU::ReadOutputMessage& query, virtual ModbusRTU::mbErrCode readOutputRegisters( ModbusRTU::ReadOutputMessage& query,
ModbusRTU::ReadOutputRetMessage& reply ); ModbusRTU::ReadOutputRetMessage& reply );
virtual ModbusRTU::mbErrCode readInputRegisters( ModbusRTU::ReadInputMessage& query, virtual ModbusRTU::mbErrCode readInputRegisters( ModbusRTU::ReadInputMessage& query,
ModbusRTU::ReadInputRetMessage& reply ); ModbusRTU::ReadInputRetMessage& reply );
virtual ModbusRTU::mbErrCode forceSingleCoil( ModbusRTU::ForceSingleCoilMessage& query, virtual ModbusRTU::mbErrCode forceSingleCoil( ModbusRTU::ForceSingleCoilMessage& query,
ModbusRTU::ForceSingleCoilRetMessage& reply ); ModbusRTU::ForceSingleCoilRetMessage& reply );
virtual ModbusRTU::mbErrCode writeOutputSingleRegister( ModbusRTU::WriteSingleOutputMessage& query, virtual ModbusRTU::mbErrCode writeOutputSingleRegister( ModbusRTU::WriteSingleOutputMessage& query,
ModbusRTU::WriteSingleOutputRetMessage& reply ); ModbusRTU::WriteSingleOutputRetMessage& reply );
virtual ModbusRTU::mbErrCode forceMultipleCoils( ModbusRTU::ForceCoilsMessage& query, virtual ModbusRTU::mbErrCode forceMultipleCoils( ModbusRTU::ForceCoilsMessage& query,
ModbusRTU::ForceCoilsRetMessage& reply ); ModbusRTU::ForceCoilsRetMessage& reply );
virtual ModbusRTU::mbErrCode writeOutputRegisters( ModbusRTU::WriteOutputMessage& query, virtual ModbusRTU::mbErrCode writeOutputRegisters( ModbusRTU::WriteOutputMessage& query,
ModbusRTU::WriteOutputRetMessage& reply ); ModbusRTU::WriteOutputRetMessage& reply );
virtual ModbusRTU::mbErrCode diagnostics( ModbusRTU::DiagnosticMessage& query, virtual ModbusRTU::mbErrCode diagnostics( ModbusRTU::DiagnosticMessage& query,
ModbusRTU::DiagnosticRetMessage& reply ); ModbusRTU::DiagnosticRetMessage& reply );
virtual ModbusRTU::mbErrCode read4314( ModbusRTU::MEIMessageRDI& query, virtual ModbusRTU::mbErrCode read4314( ModbusRTU::MEIMessageRDI& query,
ModbusRTU::MEIMessageRetRDI& reply ); ModbusRTU::MEIMessageRetRDI& reply );
virtual ModbusRTU::mbErrCode journalCommand( ModbusRTU::JournalCommandMessage& query, virtual ModbusRTU::mbErrCode journalCommand( ModbusRTU::JournalCommandMessage& query,
ModbusRTU::JournalCommandRetMessage& reply ); ModbusRTU::JournalCommandRetMessage& reply );
virtual ModbusRTU::mbErrCode setDateTime( ModbusRTU::SetDateTimeMessage& query, virtual ModbusRTU::mbErrCode setDateTime( ModbusRTU::SetDateTimeMessage& query,
ModbusRTU::SetDateTimeRetMessage& reply ); ModbusRTU::SetDateTimeRetMessage& reply );
virtual ModbusRTU::mbErrCode remoteService( ModbusRTU::RemoteServiceMessage& query, virtual ModbusRTU::mbErrCode remoteService( ModbusRTU::RemoteServiceMessage& query,
ModbusRTU::RemoteServiceRetMessage& reply ); ModbusRTU::RemoteServiceRetMessage& reply );
virtual ModbusRTU::mbErrCode fileTransfer( ModbusRTU::FileTransferMessage& query, virtual ModbusRTU::mbErrCode fileTransfer( ModbusRTU::FileTransferMessage& query,
ModbusRTU::FileTransferRetMessage& reply ); ModbusRTU::FileTransferRetMessage& reply );
private: private:
......
...@@ -16,9 +16,9 @@ class TCPCheck ...@@ -16,9 +16,9 @@ class TCPCheck
public: public:
TCPCheck(); TCPCheck();
~TCPCheck(); ~TCPCheck();
bool check( const std::string& _ip, int _port, timeout_t tout, timeout_t sleep_msec ); bool check( const std::string& _ip, int _port, timeout_t tout, timeout_t sleep_msec );
/*! \param iaddr - 'ip:port' */ /*! \param iaddr - 'ip:port' */
bool check( const std::string& iaddr, timeout_t tout, timeout_t sleep_msec ); bool check( const std::string& iaddr, timeout_t tout, timeout_t sleep_msec );
......
...@@ -21,7 +21,7 @@ UConnector_wrap.cxx: UConnector.i UConnector.h ...@@ -21,7 +21,7 @@ UConnector_wrap.cxx: UConnector.i UConnector.h
swig -python -c++ -classic UConnector.i swig -python -c++ -classic UConnector.i
_pyUModbus_la_SOURCES = UModbus.cc UModbus_wrap.cxx _pyUModbus_la_SOURCES = UModbus.cc UModbus_wrap.cxx
_pyUModbus_la_CXXFLAGS = $(UNISET_CFLAGS) $(UNISET_EXT_CFLAGS) $(COMCPP_CFLAGS) $(PYTHON_CFLAGS) _pyUModbus_la_CXXFLAGS = $(UNISET_CFLAGS) $(UNISET_EXT_CFLAGS) $(COMCPP_CFLAGS) $(PYTHON_CFLAGS)
_pyUModbus_la_LDFLAGS = -module -avoid-version _pyUModbus_la_LDFLAGS = -module -avoid-version
_pyUModbus_la_LIBADD = $(UNISET_LIBS) $(UNISET_EXT_LIBS) $(COMCPP_LIBS) $(PYTHON_LIBS) _pyUModbus_la_LIBADD = $(UNISET_LIBS) $(UNISET_EXT_LIBS) $(COMCPP_LIBS) $(PYTHON_LIBS)
......
#ifndef pyUInterface_H_ #ifndef pyUInterface_H_
#define pyUInterface_H_ #define pyUInterface_H_
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
#include <string> #include <string>
#include "UTypes.h" #include "UTypes.h"
#include "UExceptions.h" #include "UExceptions.h"
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
namespace pyUInterface namespace pyUInterface
{ {
void uniset_init_params( UTypes::Params* p, const char* xmlfile )throw(UException); void uniset_init_params( UTypes::Params* p, const char* xmlfile )throw(UException);
...@@ -15,13 +15,13 @@ namespace pyUInterface ...@@ -15,13 +15,13 @@ namespace pyUInterface
void setValue( long id, long val )throw(UException); void setValue( long id, long val )throw(UException);
long getSensorID( const char* ); long getSensorID( const char* );
const char* getShortName( long id ); const char* getShortName( long id );
const char* getName( long id ); const char* getName( long id );
const char* getTextName( long id ); const char* getTextName( long id );
const char* getConfFileName(); const char* getConfFileName();
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#endif #endif
......
...@@ -54,7 +54,7 @@ const char* UConnector::getConfFileName() ...@@ -54,7 +54,7 @@ const char* UConnector::getConfFileName()
// return xmlfile; // return xmlfile;
if( conf ) if( conf )
return conf->getConfFileName().c_str(); return conf->getConfFileName().c_str();
return ""; return "";
} }
...@@ -63,10 +63,10 @@ long UConnector::getValue( long id, long node )throw(UException) ...@@ -63,10 +63,10 @@ long UConnector::getValue( long id, long node )throw(UException)
{ {
if( !conf || !ui ) if( !conf || !ui )
throw USysError(); throw USysError();
if( node == UTypes::DefaultID ) if( node == UTypes::DefaultID )
node = conf->getLocalNode(); node = conf->getLocalNode();
try try
{ {
return ui->getValue(id,node); return ui->getValue(id,node);
...@@ -79,7 +79,7 @@ long UConnector::getValue( long id, long node )throw(UException) ...@@ -79,7 +79,7 @@ long UConnector::getValue( long id, long node )throw(UException)
{ {
throw UException("(getValue): catch..."); throw UException("(getValue): catch...");
} }
throw UException("(getValue): unknown error"); throw UException("(getValue): unknown error");
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -87,11 +87,11 @@ void UConnector::setValue( long id, long val, long node )throw(UException) ...@@ -87,11 +87,11 @@ void UConnector::setValue( long id, long val, long node )throw(UException)
{ {
if( !conf || !ui ) if( !conf || !ui )
throw USysError(); throw USysError();
if( node == UTypes::DefaultID ) if( node == UTypes::DefaultID )
node = conf->getLocalNode(); node = conf->getLocalNode();
try try
{ {
ui->setValue(id,val,node); ui->setValue(id,val,node);
...@@ -110,7 +110,7 @@ long UConnector::getSensorID( const char* name ) ...@@ -110,7 +110,7 @@ long UConnector::getSensorID( const char* name )
{ {
if( conf ) if( conf )
return conf->getSensorID(name); return conf->getSensorID(name);
return UTypes::DefaultID; return UTypes::DefaultID;
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -118,7 +118,7 @@ long UConnector::getNodeID( const char* name ) ...@@ -118,7 +118,7 @@ long UConnector::getNodeID( const char* name )
{ {
if( conf ) if( conf )
return conf->getNodeID(name); return conf->getNodeID(name);
return UTypes::DefaultID; return UTypes::DefaultID;
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -126,7 +126,7 @@ const char* UConnector::getName( long id ) ...@@ -126,7 +126,7 @@ const char* UConnector::getName( long id )
{ {
if( conf ) if( conf )
return conf->oind->getMapName(id).c_str(); return conf->oind->getMapName(id).c_str();
return ""; return "";
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -134,7 +134,7 @@ const char* UConnector::getShortName( long id ) ...@@ -134,7 +134,7 @@ const char* UConnector::getShortName( long id )
{ {
if( conf ) if( conf )
return ORepHelpers::getShortName(conf->oind->getMapName(id)).c_str(); return ORepHelpers::getShortName(conf->oind->getMapName(id)).c_str();
return ""; return "";
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -142,7 +142,7 @@ const char* UConnector::getTextName( long id ) ...@@ -142,7 +142,7 @@ const char* UConnector::getTextName( long id )
{ {
if( conf ) if( conf )
return conf->oind->getTextName(id).c_str(); return conf->oind->getTextName(id).c_str();
return ""; return "";
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -22,12 +22,12 @@ class UConnector ...@@ -22,12 +22,12 @@ class UConnector
long getSensorID( const char* ); long getSensorID( const char* );
long getNodeID( const char* ); long getNodeID( const char* );
const char* getShortName( long id ); const char* getShortName( long id );
const char* getName( long id ); const char* getName( long id );
const char* getTextName( long id ); const char* getTextName( long id );
private: private:
UniSetTypes::Configuration* conf; UniSetTypes::Configuration* conf;
UInterface* ui; UInterface* ui;
......
...@@ -2980,7 +2980,7 @@ static swig_module_info swig_module = {swig_types, 5, 0, 0, 0, 0}; ...@@ -2980,7 +2980,7 @@ static swig_module_info swig_module = {swig_types, 5, 0, 0, 0, 0};
#endif #endif
#define SWIG_name "_pyUConnector" #define SWIG_name "_pyUConnector"
#define SWIGVERSION 0x020010 #define SWIGVERSION 0x020010
#define SWIG_VERSION SWIGVERSION #define SWIG_VERSION SWIGVERSION
......
...@@ -7,9 +7,9 @@ struct UException ...@@ -7,9 +7,9 @@ struct UException
UException( const std::string& e ):err(e){} UException( const std::string& e ):err(e){}
UException( const char* e ):err( std::string(e)){} UException( const char* e ):err( std::string(e)){}
~UException(){} ~UException(){}
const char* getError(){ return err.c_str(); } const char* getError(){ return err.c_str(); }
std::string err; std::string err;
}; };
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
......
...@@ -2980,7 +2980,7 @@ static swig_module_info swig_module = {swig_types, 5, 0, 0, 0, 0}; ...@@ -2980,7 +2980,7 @@ static swig_module_info swig_module = {swig_types, 5, 0, 0, 0, 0};
#endif #endif
#define SWIG_name "_pyUExceptions" #define SWIG_name "_pyUExceptions"
#define SWIGVERSION 0x020010 #define SWIGVERSION 0x020010
#define SWIG_VERSION SWIGVERSION #define SWIG_VERSION SWIGVERSION
......
...@@ -2982,7 +2982,7 @@ static swig_module_info swig_module = {swig_types, 7, 0, 0, 0, 0}; ...@@ -2982,7 +2982,7 @@ static swig_module_info swig_module = {swig_types, 7, 0, 0, 0, 0};
#endif #endif
#define SWIG_name "_pyUniSet" #define SWIG_name "_pyUniSet"
#define SWIGVERSION 0x020010 #define SWIGVERSION 0x020010
#define SWIG_VERSION SWIGVERSION #define SWIG_VERSION SWIGVERSION
...@@ -3834,10 +3834,10 @@ SWIGINTERN PyObject *_wrap_new_UException__SWIG_1(PyObject *SWIGUNUSEDPARM(self) ...@@ -3834,10 +3834,10 @@ SWIGINTERN PyObject *_wrap_new_UException__SWIG_1(PyObject *SWIGUNUSEDPARM(self)
if (!PyArg_ParseTuple(args,(char *)"O:new_UException",&obj0)) SWIG_fail; if (!PyArg_ParseTuple(args,(char *)"O:new_UException",&obj0)) SWIG_fail;
res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_std__string, 0 | 0); res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_std__string, 0 | 0);
if (!SWIG_IsOK(res1)) { if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_UException" "', argument " "1"" of type '" "std::string const &""'"); SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_UException" "', argument " "1"" of type '" "std::string const &""'");
} }
if (!argp1) { if (!argp1) {
SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_UException" "', argument " "1"" of type '" "std::string const &""'"); SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_UException" "', argument " "1"" of type '" "std::string const &""'");
} }
arg1 = reinterpret_cast< std::string * >(argp1); arg1 = reinterpret_cast< std::string * >(argp1);
result = (UException *)new UException((std::string const &)*arg1); result = (UException *)new UException((std::string const &)*arg1);
...@@ -4047,10 +4047,10 @@ SWIGINTERN PyObject *_wrap_new_UTimeOut__SWIG_1(PyObject *SWIGUNUSEDPARM(self), ...@@ -4047,10 +4047,10 @@ SWIGINTERN PyObject *_wrap_new_UTimeOut__SWIG_1(PyObject *SWIGUNUSEDPARM(self),
if (!PyArg_ParseTuple(args,(char *)"O:new_UTimeOut",&obj0)) SWIG_fail; if (!PyArg_ParseTuple(args,(char *)"O:new_UTimeOut",&obj0)) SWIG_fail;
res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_std__string, 0 | 0); res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_std__string, 0 | 0);
if (!SWIG_IsOK(res1)) { if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_UTimeOut" "', argument " "1"" of type '" "std::string const &""'"); SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_UTimeOut" "', argument " "1"" of type '" "std::string const &""'");
} }
if (!argp1) { if (!argp1) {
SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_UTimeOut" "', argument " "1"" of type '" "std::string const &""'"); SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_UTimeOut" "', argument " "1"" of type '" "std::string const &""'");
} }
arg1 = reinterpret_cast< std::string * >(argp1); arg1 = reinterpret_cast< std::string * >(argp1);
result = (UTimeOut *)new UTimeOut((std::string const &)*arg1); result = (UTimeOut *)new UTimeOut((std::string const &)*arg1);
...@@ -4144,10 +4144,10 @@ SWIGINTERN PyObject *_wrap_new_USysError__SWIG_1(PyObject *SWIGUNUSEDPARM(self), ...@@ -4144,10 +4144,10 @@ SWIGINTERN PyObject *_wrap_new_USysError__SWIG_1(PyObject *SWIGUNUSEDPARM(self),
if (!PyArg_ParseTuple(args,(char *)"O:new_USysError",&obj0)) SWIG_fail; if (!PyArg_ParseTuple(args,(char *)"O:new_USysError",&obj0)) SWIG_fail;
res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_std__string, 0 | 0); res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_std__string, 0 | 0);
if (!SWIG_IsOK(res1)) { if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_USysError" "', argument " "1"" of type '" "std::string const &""'"); SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_USysError" "', argument " "1"" of type '" "std::string const &""'");
} }
if (!argp1) { if (!argp1) {
SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_USysError" "', argument " "1"" of type '" "std::string const &""'"); SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_USysError" "', argument " "1"" of type '" "std::string const &""'");
} }
arg1 = reinterpret_cast< std::string * >(argp1); arg1 = reinterpret_cast< std::string * >(argp1);
result = (USysError *)new USysError((std::string const &)*arg1); result = (USysError *)new USysError((std::string const &)*arg1);
......
...@@ -105,7 +105,7 @@ void UModbus::connect( const char* _ip, int _port )throw(UException) ...@@ -105,7 +105,7 @@ void UModbus::connect( const char* _ip, int _port )throw(UException)
std::ostringstream err; std::ostringstream err;
err << "Connection failed: ip=" << ip << " port=" << port; err << "Connection failed: ip=" << ip << " port=" << port;
throw UException(err.str()); throw UException(err.str());
} }
} }
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
long UModbus::getWord( int addr, int mbreg, int mbfunc )throw(UException) long UModbus::getWord( int addr, int mbreg, int mbfunc )throw(UException)
...@@ -130,10 +130,10 @@ long UModbus::mbread( int mbaddr, int mbreg, int mbfunc, const char* s_vtype, in ...@@ -130,10 +130,10 @@ long UModbus::mbread( int mbaddr, int mbreg, int mbfunc, const char* s_vtype, in
// const char* n_ip = strcmp(new_ip,"") ? new_ip : ip; // const char* n_ip = strcmp(new_ip,"") ? new_ip : ip;
const char* n_ip = (new_ip != 0) ? new_ip : ip.c_str(); const char* n_ip = (new_ip != 0) ? new_ip : ip.c_str();
int n_port = ( new_port > 0 ) ? new_port : port; int n_port = ( new_port > 0 ) ? new_port : port;
connect(n_ip,n_port); connect(n_ip,n_port);
VType vt = str2type(s_vtype); VType vt = str2type(s_vtype);
if( vt == vtUnknown ) if( vt == vtUnknown )
{ {
...@@ -217,7 +217,7 @@ long UModbus::mbread( int mbaddr, int mbreg, int mbfunc, const char* s_vtype, in ...@@ -217,7 +217,7 @@ long UModbus::mbread( int mbaddr, int mbreg, int mbfunc, const char* s_vtype, in
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
long UModbus::data2value( VTypes::VType vtype, ModbusRTU::ModbusData* data ) long UModbus::data2value( VTypes::VType vtype, ModbusRTU::ModbusData* data )
{ {
#if 0 #if 0
if( vt == VTypes::vtUnknown ) if( vt == VTypes::vtUnknown )
{ {
ModbusRTU::DataBits16 b(data[0]); ModbusRTU::DataBits16 b(data[0]);
......
...@@ -24,7 +24,7 @@ class UModbus ...@@ -24,7 +24,7 @@ class UModbus
// выставление паметров связи, без установления соединения (!) // выставление паметров связи, без установления соединения (!)
void prepare( const char* ip, int port )throw(UException); void prepare( const char* ip, int port )throw(UException);
void connect( const char* ip, int port )throw(UException); void connect( const char* ip, int port )throw(UException);
inline int conn_port(){ return port; } inline int conn_port(){ return port; }
inline std::string conn_ip(){ return ip; } inline std::string conn_ip(){ return ip; }
...@@ -32,7 +32,7 @@ class UModbus ...@@ -32,7 +32,7 @@ class UModbus
inline void setTimeout( int msec ){ tout_msec = msec; } inline void setTimeout( int msec ){ tout_msec = msec; }
/*! Универсальная функция для чтения регистров. /*! Универсальная функция для чтения регистров.
* Если не указывать ip и порт, будут использованы, те * Если не указывать ip и порт, будут использованы, те
* чтобы были заданы в UModbus::connect(). Если заданы другие ip и port, * чтобы были заданы в UModbus::connect(). Если заданы другие ip и port,
* будет сделано переподключение.. * будет сделано переподключение..
...@@ -54,7 +54,7 @@ class UModbus ...@@ -54,7 +54,7 @@ class UModbus
protected: protected:
long data2value( VTypes::VType vt, ModbusRTU::ModbusData* data ); long data2value( VTypes::VType vt, ModbusRTU::ModbusData* data );
private: private:
// DebugStream dlog; // DebugStream dlog;
ModbusTCPMaster* mb; ModbusTCPMaster* mb;
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
namespace UTypes namespace UTypes
{ {
const long DefaultID = UniSetTypes::DefaultObjectId; const long DefaultID = UniSetTypes::DefaultObjectId;
struct Params struct Params
{ {
static const int max = 20; static const int max = 20;
...@@ -25,7 +25,7 @@ namespace UTypes ...@@ -25,7 +25,7 @@ namespace UTypes
int argc; int argc;
char* argv[max]; char* argv[max];
static Params inst(){ return Params(); } static Params inst(){ return Params(); }
}; };
} }
......
...@@ -117,7 +117,7 @@ class UException(Exception): ...@@ -117,7 +117,7 @@ class UException(Exception):
__swig_getmethods__ = {} __swig_getmethods__ = {}
__getattr__ = lambda self, name: _swig_getattr(self, UException, name) __getattr__ = lambda self, name: _swig_getattr(self, UException, name)
__repr__ = _swig_repr __repr__ = _swig_repr
def __init__(self, *args): def __init__(self, *args):
this = _pyUModbus.new_UException(*args) this = _pyUModbus.new_UException(*args)
try: self.this.append(this) try: self.this.append(this)
except: self.this = this except: self.this = this
...@@ -137,7 +137,7 @@ class UTimeOut(UException): ...@@ -137,7 +137,7 @@ class UTimeOut(UException):
for _s in [UException]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{})) for _s in [UException]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
__getattr__ = lambda self, name: _swig_getattr(self, UTimeOut, name) __getattr__ = lambda self, name: _swig_getattr(self, UTimeOut, name)
__repr__ = _swig_repr __repr__ = _swig_repr
def __init__(self, *args): def __init__(self, *args):
this = _pyUModbus.new_UTimeOut(*args) this = _pyUModbus.new_UTimeOut(*args)
try: self.this.append(this) try: self.this.append(this)
except: self.this = this except: self.this = this
...@@ -154,7 +154,7 @@ class USysError(UException): ...@@ -154,7 +154,7 @@ class USysError(UException):
for _s in [UException]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{})) for _s in [UException]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
__getattr__ = lambda self, name: _swig_getattr(self, USysError, name) __getattr__ = lambda self, name: _swig_getattr(self, USysError, name)
__repr__ = _swig_repr __repr__ = _swig_repr
def __init__(self, *args): def __init__(self, *args):
this = _pyUModbus.new_USysError(*args) this = _pyUModbus.new_USysError(*args)
try: self.this.append(this) try: self.this.append(this)
except: self.this = this except: self.this = this
......
...@@ -53,12 +53,12 @@ void ComPort::openPort() ...@@ -53,12 +53,12 @@ void ComPort::openPort()
string strErr="Unable to open "+dev+" [Error: "+strerror(errno)+"]"; string strErr="Unable to open "+dev+" [Error: "+strerror(errno)+"]";
throw UniSetTypes::SystemError(strErr.c_str()); throw UniSetTypes::SystemError(strErr.c_str());
} }
/* Get the current options for the port */ /* Get the current options for the port */
tcgetattr(fd, &options); tcgetattr(fd, &options);
oldTermios=options; oldTermios=options;
cfsetispeed(&options, B19200); /* Set the baud rates to 19200 */ cfsetispeed(&options, B19200); /* Set the baud rates to 19200 */
cfsetospeed(&options, B19200); cfsetospeed(&options, B19200);
...@@ -93,7 +93,7 @@ void ComPort::reopen() ...@@ -93,7 +93,7 @@ void ComPort::reopen()
openPort(); openPort();
if( fd > 0 ) if( fd > 0 )
tcsetattr(fd, TCSAFLUSH, &options); tcsetattr(fd, TCSAFLUSH, &options);
} }
} }
// -------------------------------------------------------------------------------- // --------------------------------------------------------------------------------
void ComPort::setSpeed( Speed s ) void ComPort::setSpeed( Speed s )
...@@ -114,7 +114,7 @@ void ComPort::setParity(Parity parity) ...@@ -114,7 +114,7 @@ void ComPort::setParity(Parity parity)
struct termios options; struct termios options;
tcgetattr(fd, &options); tcgetattr(fd, &options);
switch(parity) switch(parity)
{ {
case Odd: case Odd:
...@@ -205,14 +205,14 @@ unsigned char ComPort::m_receiveByte( bool wait ) ...@@ -205,14 +205,14 @@ unsigned char ComPort::m_receiveByte( bool wait )
{ {
fd_set set; fd_set set;
timeval timeout; timeval timeout;
FD_ZERO (&set); FD_ZERO (&set);
FD_SET (fd, &set); FD_SET (fd, &set);
/* Initialize the timeout data structure. */ /* Initialize the timeout data structure. */
timeout.tv_sec = 0; timeout.tv_sec = 0;
timeout.tv_usec = uTimeout; timeout.tv_usec = uTimeout;
/* select' returns 0 if timeout, 1 if input available, -1 if error. */ /* select' returns 0 if timeout, 1 if input available, -1 if error. */
if(select(FD_SETSIZE, &set, NULL, NULL, &timeout)==1) if(select(FD_SETSIZE, &set, NULL, NULL, &timeout)==1)
...@@ -287,10 +287,10 @@ int ComPort::sendBlock(unsigned char* msg, int len) ...@@ -287,10 +287,10 @@ int ComPort::sendBlock(unsigned char* msg, int len)
int ComPort::receiveBlock(unsigned char* msg, int len) int ComPort::receiveBlock(unsigned char* msg, int len)
{ {
int k; int k;
if(!len) if(!len)
return 0; return 0;
for(k=0;k<len;k++) for(k=0;k<len;k++)
{ {
try try
...@@ -302,12 +302,12 @@ int ComPort::receiveBlock(unsigned char* msg, int len) ...@@ -302,12 +302,12 @@ int ComPort::receiveBlock(unsigned char* msg, int len)
break; break;
} }
} }
if(!k) if(!k)
{ {
throw UniSetTypes::TimeOut(); throw UniSetTypes::TimeOut();
} }
return k; return k;
} }
...@@ -424,13 +424,13 @@ std::string ComPort::getSpeed( Speed s ) ...@@ -424,13 +424,13 @@ std::string ComPort::getSpeed( Speed s )
// -------------------------------------------------------------------------------- // --------------------------------------------------------------------------------
#define CHECK_SPEED(var,speed) \ #define CHECK_SPEED(var,speed) \
if( var == __STRING(speed) ) \ if( var == __STRING(speed) ) \
return ComPort::ComSpeed##speed; return ComPort::ComSpeed##speed;
ComPort::Speed ComPort::getSpeed( const string& s ) ComPort::Speed ComPort::getSpeed( const string& s )
{ {
// см. ComPort.h // см. ComPort.h
// сперва самые вероятные // сперва самые вероятные
CHECK_SPEED(s,9600) CHECK_SPEED(s,9600)
CHECK_SPEED(s,19200) CHECK_SPEED(s,19200)
CHECK_SPEED(s,38400) CHECK_SPEED(s,38400)
...@@ -450,7 +450,7 @@ ComPort::Speed ComPort::getSpeed( const string& s ) ...@@ -450,7 +450,7 @@ ComPort::Speed ComPort::getSpeed( const string& s )
CHECK_SPEED(s,1800) CHECK_SPEED(s,1800)
CHECK_SPEED(s,2400) CHECK_SPEED(s,2400)
CHECK_SPEED(s,4800) CHECK_SPEED(s,4800)
CHECK_SPEED(s,230400) CHECK_SPEED(s,230400)
CHECK_SPEED(s,460800) CHECK_SPEED(s,460800)
CHECK_SPEED(s,500000) CHECK_SPEED(s,500000)
......
...@@ -87,7 +87,7 @@ unsigned char ComPort485F::m_receiveByte( bool wait ) ...@@ -87,7 +87,7 @@ unsigned char ComPort485F::m_receiveByte( bool wait )
gpio_low_set_value(gpio_num, 0); gpio_low_set_value(gpio_num, 0);
} }
if( rq.empty() ) if( rq.empty() )
{ {
int rc = 0; int rc = 0;
if( wait ) if( wait )
{ {
...@@ -100,17 +100,17 @@ unsigned char ComPort485F::m_receiveByte( bool wait ) ...@@ -100,17 +100,17 @@ unsigned char ComPort485F::m_receiveByte( bool wait )
{ {
ioctl(fd, FIONREAD, &rc); ioctl(fd, FIONREAD, &rc);
if( rc > 0 ) if( rc > 0 )
{ {
rc = ::read(fd,tbuf,sizeof(tbuf)); rc = ::read(fd,tbuf,sizeof(tbuf));
if( rc > 0 ) if( rc > 0 )
{ {
if( remove_echo(tbuf,rc) ) if( remove_echo(tbuf,rc) )
break; break;
} }
} }
usleep(3000); usleep(3000);
} }
if ( ptRecv.checkTime() ) if ( ptRecv.checkTime() )
rc = -1; rc = -1;
} }
...@@ -132,7 +132,7 @@ unsigned char ComPort485F::m_receiveByte( bool wait ) ...@@ -132,7 +132,7 @@ unsigned char ComPort485F::m_receiveByte( bool wait )
throw UniSetTypes::TimeOut(); throw UniSetTypes::TimeOut();
} }
unsigned char x = rq.front(); unsigned char x = rq.front();
rq.pop(); rq.pop();
return x; return x;
...@@ -250,7 +250,7 @@ bool ComPort485F::remove_echo( unsigned char tb[], int len ) ...@@ -250,7 +250,7 @@ bool ComPort485F::remove_echo( unsigned char tb[], int len )
rq.push(tb[i]); rq.push(tb[i]);
} }
// возвращаем число оставшихся символов // возвращаем число оставшихся символов
return wq.empty(); return wq.empty();
} }
// -------------------------------------------------------------------------------- // --------------------------------------------------------------------------------
...@@ -262,7 +262,7 @@ void ComPort485F::m_read( int tmsec ) ...@@ -262,7 +262,7 @@ void ComPort485F::m_read( int tmsec )
{ {
ioctl(fd, FIONREAD, &rc); ioctl(fd, FIONREAD, &rc);
if( rc > 0 ) if( rc > 0 )
{ {
rc = ::read(fd,tbuf,sizeof(tbuf)); rc = ::read(fd,tbuf,sizeof(tbuf));
if( rc > 0 ) if( rc > 0 )
{ {
......
...@@ -50,7 +50,7 @@ ModbusAddr ModbusHelpers::autodetectSlave( ModbusRTUMaster* m, ...@@ -50,7 +50,7 @@ ModbusAddr ModbusHelpers::autodetectSlave( ModbusRTUMaster* m,
{ {
ReadOutputRetMessage ret = m->read03(a,reg,1); ReadOutputRetMessage ret = m->read03(a,reg,1);
} }
else else
throw mbException(erOperationFailed); throw mbException(erOperationFailed);
return a; return a;
...@@ -65,7 +65,7 @@ ModbusAddr ModbusHelpers::autodetectSlave( ModbusRTUMaster* m, ...@@ -65,7 +65,7 @@ ModbusAddr ModbusHelpers::autodetectSlave( ModbusRTUMaster* m,
if( (beg == 0xff) || (end == 0xff) ) if( (beg == 0xff) || (end == 0xff) )
break; break;
} }
throw TimeOut(); throw TimeOut();
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
...@@ -109,7 +109,7 @@ ComPort::Speed ModbusHelpers::autodetectSpeed( ModbusRTUMaster* m, ModbusAddr sl ...@@ -109,7 +109,7 @@ ComPort::Speed ModbusHelpers::autodetectSpeed( ModbusRTUMaster* m, ModbusAddr sl
{ {
ReadOutputRetMessage ret = m->read03(slave,reg,1); ReadOutputRetMessage ret = m->read03(slave,reg,1);
} }
else else
throw mbException(erOperationFailed); throw mbException(erOperationFailed);
...@@ -126,12 +126,12 @@ ComPort::Speed ModbusHelpers::autodetectSpeed( ModbusRTUMaster* m, ModbusAddr sl ...@@ -126,12 +126,12 @@ ComPort::Speed ModbusHelpers::autodetectSpeed( ModbusRTUMaster* m, ModbusAddr sl
} }
catch(...){} catch(...){}
} }
m->setSpeed(cur); m->setSpeed(cur);
if( s!=ComPort::ComSpeed0 ) if( s!=ComPort::ComSpeed0 )
return s; return s;
throw TimeOut(); throw TimeOut();
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
......
...@@ -36,7 +36,7 @@ ModbusRTUMaster::ModbusRTUMaster( const string& dev, bool use485, bool tr_ctl ): ...@@ -36,7 +36,7 @@ ModbusRTUMaster::ModbusRTUMaster( const string& dev, bool use485, bool tr_ctl ):
port->setStopBits(ComPort::OneBit); port->setStopBits(ComPort::OneBit);
port->setWaiting(true); port->setWaiting(true);
port->setTimeout(replyTimeOut_ms); port->setTimeout(replyTimeOut_ms);
// port->setBlocking(false); // port->setBlocking(false);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
ModbusRTUMaster::ModbusRTUMaster( ComPort* com ): ModbusRTUMaster::ModbusRTUMaster( ComPort* com ):
...@@ -52,12 +52,12 @@ ModbusRTUMaster::ModbusRTUMaster( ComPort* com ): ...@@ -52,12 +52,12 @@ ModbusRTUMaster::ModbusRTUMaster( ComPort* com ):
port->setStopBits(ComPort::OneBit); port->setStopBits(ComPort::OneBit);
port->setWaiting(true); port->setWaiting(true);
port->setTimeout(replyTimeOut_ms); port->setTimeout(replyTimeOut_ms);
// port->setBlocking(false); // port->setBlocking(false);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
ModbusRTUMaster::~ModbusRTUMaster() ModbusRTUMaster::~ModbusRTUMaster()
{ {
if( myport ) if( myport )
delete port; delete port;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
......
...@@ -38,7 +38,7 @@ ModbusRTUSlave::ModbusRTUSlave( const string& dev, bool use485, bool tr_ctl ): ...@@ -38,7 +38,7 @@ ModbusRTUSlave::ModbusRTUSlave( const string& dev, bool use485, bool tr_ctl ):
port->setStopBits(ComPort::OneBit); port->setStopBits(ComPort::OneBit);
port->setWaiting(true); port->setWaiting(true);
port->setTimeout(recvTimeOut_ms); port->setTimeout(recvTimeOut_ms);
// port->setBlocking(false); // port->setBlocking(false);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
...@@ -52,7 +52,7 @@ ModbusRTUSlave::ModbusRTUSlave( ComPort* com ): ...@@ -52,7 +52,7 @@ ModbusRTUSlave::ModbusRTUSlave( ComPort* com ):
port->setStopBits(ComPort::OneBit); port->setStopBits(ComPort::OneBit);
port->setWaiting(true); port->setWaiting(true);
port->setTimeout(recvTimeOut_ms); port->setTimeout(recvTimeOut_ms);
// port->setBlocking(false); // port->setBlocking(false);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
...@@ -83,7 +83,7 @@ mbErrCode ModbusRTUSlave::receive( ModbusRTU::ModbusAddr addr, timeout_t timeout ...@@ -83,7 +83,7 @@ mbErrCode ModbusRTUSlave::receive( ModbusRTU::ModbusAddr addr, timeout_t timeout
// то посылаем // то посылаем
if( res < erInternalErrorCode ) if( res < erInternalErrorCode )
{ {
ErrorRetMessage em( buf.addr, buf.func, res ); ErrorRetMessage em( buf.addr, buf.func, res );
buf = em.transport_msg(); buf = em.transport_msg();
send(buf); send(buf);
printProcessingTime(); printProcessingTime();
...@@ -95,7 +95,7 @@ mbErrCode ModbusRTUSlave::receive( ModbusRTU::ModbusAddr addr, timeout_t timeout ...@@ -95,7 +95,7 @@ mbErrCode ModbusRTUSlave::receive( ModbusRTU::ModbusAddr addr, timeout_t timeout
return res; return res;
} }
// если полученный пакет адресован // если полученный пакет адресован
// не данному узлу (и не широковещательный) // не данному узлу (и не широковещательный)
// то ждать следующий... // то ждать следующий...
} }
...@@ -112,7 +112,7 @@ ComPort::Speed ModbusRTUSlave::getSpeed() ...@@ -112,7 +112,7 @@ ComPort::Speed ModbusRTUSlave::getSpeed()
{ {
if( port == NULL ) if( port == NULL )
return ComPort::ComSpeed0; return ComPort::ComSpeed0;
return port->getSpeed(); return port->getSpeed();
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
......
...@@ -144,7 +144,7 @@ ModbusRTU::mbErrCode ModbusRTUSlaveSlot::remoteService( ModbusRTU::RemoteService ...@@ -144,7 +144,7 @@ ModbusRTU::mbErrCode ModbusRTUSlaveSlot::remoteService( ModbusRTU::RemoteService
return erOperationFailed; return erOperationFailed;
return slRemoteService(query,reply); return slRemoteService(query,reply);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
ModbusRTU::mbErrCode ModbusRTUSlaveSlot::fileTransfer( ModbusRTU::FileTransferMessage& query, ModbusRTU::mbErrCode ModbusRTUSlaveSlot::fileTransfer( ModbusRTU::FileTransferMessage& query,
ModbusRTU::FileTransferRetMessage& reply ) ModbusRTU::FileTransferRetMessage& reply )
...@@ -153,7 +153,7 @@ ModbusRTU::mbErrCode ModbusRTUSlaveSlot::fileTransfer( ModbusRTU::FileTransferMe ...@@ -153,7 +153,7 @@ ModbusRTU::mbErrCode ModbusRTUSlaveSlot::fileTransfer( ModbusRTU::FileTransferMe
return erOperationFailed; return erOperationFailed;
return slFileTransfer(query,reply); return slFileTransfer(query,reply);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
void ModbusRTUSlaveSlot::sigterm( int signo ) void ModbusRTUSlaveSlot::sigterm( int signo )
{ {
......
...@@ -16,15 +16,15 @@ int ModbusTCPCore::readNextData( ost::TCPStream* tcp, ...@@ -16,15 +16,15 @@ int ModbusTCPCore::readNextData( ost::TCPStream* tcp,
tcp->read(&c,sizeof(c)); tcp->read(&c,sizeof(c));
if( tcp->gcount() <= 0 ) if( tcp->gcount() <= 0 )
break; break;
qrecv.push( (unsigned char)(c) ); qrecv.push( (unsigned char)(c) );
} }
return i; return i;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int ModbusTCPCore::getNextData( unsigned char* buf, int len, int ModbusTCPCore::getNextData( unsigned char* buf, int len,
std::queue<unsigned char>& qrecv, std::queue<unsigned char>& qrecv,
ost::TCPStream* tcp ) ost::TCPStream* tcp )
{ {
if( !tcp || !tcp->isConnected() ) if( !tcp || !tcp->isConnected() )
...@@ -60,17 +60,17 @@ mbErrCode ModbusTCPCore::sendData( unsigned char* buf, int len, ost::TCPStream* ...@@ -60,17 +60,17 @@ mbErrCode ModbusTCPCore::sendData( unsigned char* buf, int len, ost::TCPStream*
{ {
for( unsigned int i=0; i<len; i++ ) for( unsigned int i=0; i<len; i++ )
(*tcp) << buf[i]; (*tcp) << buf[i];
return erNoError; return erNoError;
} }
catch( ost::SockException& e ) catch( ost::SockException& e )
{ {
// cerr << "(send): " << e.getString() << ": " << e.getSystemErrorString() << endl; // cerr << "(send): " << e.getString() << ": " << e.getSystemErrorString() << endl;
} }
catch(...) catch(...)
{ {
// cerr << "(send): cath..." << endl; // cerr << "(send): cath..." << endl;
} }
return erHardwareError; return erHardwareError;
} }
......
...@@ -75,7 +75,7 @@ bool ModbusTCPServer::waitQuery( ModbusRTU::ModbusAddr mbaddr, timeout_t msec ) ...@@ -75,7 +75,7 @@ bool ModbusTCPServer::waitQuery( ModbusRTU::ModbusAddr mbaddr, timeout_t msec )
if( cancelled ) if( cancelled )
return false; return false;
try try
{ {
if( isPendingConnection(msec) ) if( isPendingConnection(msec) )
{ {
...@@ -94,8 +94,8 @@ bool ModbusTCPServer::waitQuery( ModbusRTU::ModbusAddr mbaddr, timeout_t msec ) ...@@ -94,8 +94,8 @@ bool ModbusTCPServer::waitQuery( ModbusRTU::ModbusAddr mbaddr, timeout_t msec )
s->connectWriteSingleOutput( sigc::mem_fun(this, &ModbusTCPServer::writeOutputSingleRegister) ); s->connectWriteSingleOutput( sigc::mem_fun(this, &ModbusTCPServer::writeOutputSingleRegister) );
s->connectMEIRDI( sigc::mem_fun(this, &ModbusTCPServer::read4314) ); s->connectMEIRDI( sigc::mem_fun(this, &ModbusTCPServer::read4314) );
s->connectSetDateTime( sigc::mem_fun(this, &ModbusTCPServer::setDateTime) ); s->connectSetDateTime( sigc::mem_fun(this, &ModbusTCPServer::setDateTime) );
s->connectDiagnostics( sigc::mem_fun(this, &ModbusTCPServer::diagnostics) ); s->connectDiagnostics( sigc::mem_fun(this, &ModbusTCPServer::diagnostics) );
s->connectFileTransfer( sigc::mem_fun(this, &ModbusTCPServer::fileTransfer) ); s->connectFileTransfer( sigc::mem_fun(this, &ModbusTCPServer::fileTransfer) );
s->connectJournalCommand( sigc::mem_fun(this, &ModbusTCPServer::journalCommand) ); s->connectJournalCommand( sigc::mem_fun(this, &ModbusTCPServer::journalCommand) );
s->connectRemoteService( sigc::mem_fun(this, &ModbusTCPServer::remoteService) ); s->connectRemoteService( sigc::mem_fun(this, &ModbusTCPServer::remoteService) );
s->connectFileTransfer( sigc::mem_fun(this, &ModbusTCPServer::fileTransfer) ); s->connectFileTransfer( sigc::mem_fun(this, &ModbusTCPServer::fileTransfer) );
...@@ -139,7 +139,7 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, timeout_t timeou ...@@ -139,7 +139,7 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, timeout_t timeou
assert(timeout); assert(timeout);
ptTimeout.reset(); ptTimeout.reset();
try try
{ {
if( isPendingConnection(timeout) ) if( isPendingConnection(timeout) )
{ {
...@@ -185,7 +185,7 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, timeout_t timeou ...@@ -185,7 +185,7 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, timeout_t timeou
// для режима игнорирования RTU-адреса // для режима игнорирования RTU-адреса
// просто подменяем его на то который пришёл // просто подменяем его на то который пришёл
// чтобы проверка всегда была успешной... // чтобы проверка всегда была успешной...
if( ignoreAddr ) if( ignoreAddr )
addr = _addr; addr = _addr;
else if( _addr != addr ) else if( _addr != addr )
{ {
...@@ -194,7 +194,7 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, timeout_t timeou ...@@ -194,7 +194,7 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, timeout_t timeou
/* /*
res = erBadReplyNodeAddress; res = erBadReplyNodeAddress;
tmProcessing.setTiming(replyTimeout_ms); tmProcessing.setTiming(replyTimeout_ms);
ErrorRetMessage em( _addr, buf.func, res ); ErrorRetMessage em( _addr, buf.func, res );
buf = em.transport_msg(); buf = em.transport_msg();
send(buf); send(buf);
printProcessingTime(); printProcessingTime();
...@@ -212,7 +212,7 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, timeout_t timeou ...@@ -212,7 +212,7 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, timeout_t timeou
{ {
if( res < erInternalErrorCode ) if( res < erInternalErrorCode )
{ {
ErrorRetMessage em( addr, buf.func, res ); ErrorRetMessage em( addr, buf.func, res );
buf = em.transport_msg(); buf = em.transport_msg();
send(buf); send(buf);
printProcessingTime(); printProcessingTime();
...@@ -305,7 +305,7 @@ mbErrCode ModbusTCPServer::tcp_processing( ost::TCPStream& tcp, ModbusTCP::MBAPH ...@@ -305,7 +305,7 @@ mbErrCode ModbusTCPServer::tcp_processing( ost::TCPStream& tcp, ModbusTCP::MBAPH
if( len<mhead.len ) if( len<mhead.len )
{ {
if( dlog.is_info() ) if( dlog.is_info() )
dlog.info() << "(ModbusTCPServer::tcp_processing): len(" << (int)len dlog.info() << "(ModbusTCPServer::tcp_processing): len(" << (int)len
<< ") < mhead.len(" << (int)mhead.len << ")" << endl; << ") < mhead.len(" << (int)mhead.len << ")" << endl;
return erInvalidFormat; return erInvalidFormat;
......
...@@ -140,7 +140,7 @@ ModbusRTU::mbErrCode ModbusTCPServerSlot::remoteService( ModbusRTU::RemoteServic ...@@ -140,7 +140,7 @@ ModbusRTU::mbErrCode ModbusTCPServerSlot::remoteService( ModbusRTU::RemoteServic
return slRemoteService(query,reply); return slRemoteService(query,reply);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
ModbusRTU::mbErrCode ModbusTCPServerSlot::fileTransfer( ModbusRTU::FileTransferMessage& query, ModbusRTU::mbErrCode ModbusTCPServerSlot::fileTransfer( ModbusRTU::FileTransferMessage& query,
ModbusRTU::FileTransferRetMessage& reply ) ModbusRTU::FileTransferRetMessage& reply )
{ {
if( !slFileTransfer ) if( !slFileTransfer )
......
...@@ -114,7 +114,7 @@ ModbusRTU::mbErrCode ModbusTCPSession::receive( ModbusRTU::ModbusAddr addr, time ...@@ -114,7 +114,7 @@ ModbusRTU::mbErrCode ModbusTCPSession::receive( ModbusRTU::ModbusAddr addr, time
// для режима игнорирования RTU-адреса // для режима игнорирования RTU-адреса
// просто подменяем его на то который пришёл // просто подменяем его на то который пришёл
// чтобы проверка всегда была успешной... // чтобы проверка всегда была успешной...
if( ignoreAddr ) if( ignoreAddr )
addr = _addr; addr = _addr;
else if( _addr != addr ) else if( _addr != addr )
{ {
...@@ -136,7 +136,7 @@ ModbusRTU::mbErrCode ModbusTCPSession::receive( ModbusRTU::ModbusAddr addr, time ...@@ -136,7 +136,7 @@ ModbusRTU::mbErrCode ModbusTCPSession::receive( ModbusRTU::ModbusAddr addr, time
{ {
if( res < erInternalErrorCode ) if( res < erInternalErrorCode )
{ {
ErrorRetMessage em( addr, buf.func, res ); ErrorRetMessage em( addr, buf.func, res );
buf = em.transport_msg(); buf = em.transport_msg();
send(buf); send(buf);
printProcessingTime(); printProcessingTime();
...@@ -219,7 +219,7 @@ mbErrCode ModbusTCPSession::tcp_processing( ost::TCPStream& tcp, ModbusTCP::MBAP ...@@ -219,7 +219,7 @@ mbErrCode ModbusTCPSession::tcp_processing( ost::TCPStream& tcp, ModbusTCP::MBAP
if( len<mhead.len ) if( len<mhead.len )
{ {
if( dlog.debugging(Debug::INFO) ) if( dlog.debugging(Debug::INFO) )
dlog[Debug::INFO] << peername << "(tcp_processing): len(" << (int)len dlog[Debug::INFO] << peername << "(tcp_processing): len(" << (int)len
<< ") < mhead.len(" << (int)mhead.len << ")" << endl; << ") < mhead.len(" << (int)mhead.len << ")" << endl;
return erInvalidFormat; return erInvalidFormat;
...@@ -286,7 +286,7 @@ void ModbusTCPSession::terminate() ...@@ -286,7 +286,7 @@ void ModbusTCPSession::terminate()
// ost::Thread::join(); // ost::Thread::join();
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
mbErrCode ModbusTCPSession::readCoilStatus( ReadCoilMessage& query, mbErrCode ModbusTCPSession::readCoilStatus( ReadCoilMessage& query,
ReadCoilRetMessage& reply ) ReadCoilRetMessage& reply )
{ {
if( !slReadCoil ) if( !slReadCoil )
...@@ -296,7 +296,7 @@ mbErrCode ModbusTCPSession::readCoilStatus( ReadCoilMessage& query, ...@@ -296,7 +296,7 @@ mbErrCode ModbusTCPSession::readCoilStatus( ReadCoilMessage& query,
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
mbErrCode ModbusTCPSession::readInputStatus( ReadInputStatusMessage& query, mbErrCode ModbusTCPSession::readInputStatus( ReadInputStatusMessage& query,
ReadInputStatusRetMessage& reply ) ReadInputStatusRetMessage& reply )
{ {
if( !slReadInputStatus ) if( !slReadInputStatus )
...@@ -307,7 +307,7 @@ mbErrCode ModbusTCPSession::readInputStatus( ReadInputStatusMessage& query, ...@@ -307,7 +307,7 @@ mbErrCode ModbusTCPSession::readInputStatus( ReadInputStatusMessage& query,
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
mbErrCode ModbusTCPSession::readOutputRegisters( ReadOutputMessage& query, mbErrCode ModbusTCPSession::readOutputRegisters( ReadOutputMessage& query,
ReadOutputRetMessage& reply ) ReadOutputRetMessage& reply )
{ {
if( !slReadOutputs ) if( !slReadOutputs )
...@@ -317,7 +317,7 @@ mbErrCode ModbusTCPSession::readOutputRegisters( ReadOutputMessage& query, ...@@ -317,7 +317,7 @@ mbErrCode ModbusTCPSession::readOutputRegisters( ReadOutputMessage& query,
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
mbErrCode ModbusTCPSession::readInputRegisters( ReadInputMessage& query, mbErrCode ModbusTCPSession::readInputRegisters( ReadInputMessage& query,
ReadInputRetMessage& reply ) ReadInputRetMessage& reply )
{ {
if( !slReadInputs ) if( !slReadInputs )
...@@ -327,7 +327,7 @@ mbErrCode ModbusTCPSession::readInputRegisters( ReadInputMessage& query, ...@@ -327,7 +327,7 @@ mbErrCode ModbusTCPSession::readInputRegisters( ReadInputMessage& query,
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
mbErrCode ModbusTCPSession::forceMultipleCoils( ForceCoilsMessage& query, mbErrCode ModbusTCPSession::forceMultipleCoils( ForceCoilsMessage& query,
ForceCoilsRetMessage& reply ) ForceCoilsRetMessage& reply )
{ {
if( !slForceCoils ) if( !slForceCoils )
...@@ -338,7 +338,7 @@ mbErrCode ModbusTCPSession::forceMultipleCoils( ForceCoilsMessage& query, ...@@ -338,7 +338,7 @@ mbErrCode ModbusTCPSession::forceMultipleCoils( ForceCoilsMessage& query,
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
mbErrCode ModbusTCPSession::writeOutputRegisters( WriteOutputMessage& query, mbErrCode ModbusTCPSession::writeOutputRegisters( WriteOutputMessage& query,
WriteOutputRetMessage& reply ) WriteOutputRetMessage& reply )
{ {
if( !slWriteOutputs ) if( !slWriteOutputs )
...@@ -348,7 +348,7 @@ mbErrCode ModbusTCPSession::writeOutputRegisters( WriteOutputMessage& query, ...@@ -348,7 +348,7 @@ mbErrCode ModbusTCPSession::writeOutputRegisters( WriteOutputMessage& query,
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
mbErrCode ModbusTCPSession::diagnostics( DiagnosticMessage& query, mbErrCode ModbusTCPSession::diagnostics( DiagnosticMessage& query,
DiagnosticRetMessage& reply ) DiagnosticRetMessage& reply )
{ {
if( !slDiagnostics ) if( !slDiagnostics )
...@@ -357,7 +357,7 @@ mbErrCode ModbusTCPSession::diagnostics( DiagnosticMessage& query, ...@@ -357,7 +357,7 @@ mbErrCode ModbusTCPSession::diagnostics( DiagnosticMessage& query,
return slDiagnostics(query,reply); return slDiagnostics(query,reply);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
ModbusRTU::mbErrCode ModbusTCPSession::read4314( ModbusRTU::MEIMessageRDI& query, ModbusRTU::mbErrCode ModbusTCPSession::read4314( ModbusRTU::MEIMessageRDI& query,
ModbusRTU::MEIMessageRetRDI& reply ) ModbusRTU::MEIMessageRetRDI& reply )
{ {
if( !slMEIRDI ) if( !slMEIRDI )
...@@ -366,7 +366,7 @@ ModbusRTU::mbErrCode ModbusTCPSession::read4314( ModbusRTU::MEIMessageRDI& query ...@@ -366,7 +366,7 @@ ModbusRTU::mbErrCode ModbusTCPSession::read4314( ModbusRTU::MEIMessageRDI& query
return slMEIRDI(query,reply); return slMEIRDI(query,reply);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
mbErrCode ModbusTCPSession::forceSingleCoil( ForceSingleCoilMessage& query, mbErrCode ModbusTCPSession::forceSingleCoil( ForceSingleCoilMessage& query,
ForceSingleCoilRetMessage& reply ) ForceSingleCoilRetMessage& reply )
{ {
if( !slForceSingleCoil ) if( !slForceSingleCoil )
...@@ -376,7 +376,7 @@ mbErrCode ModbusTCPSession::forceSingleCoil( ForceSingleCoilMessage& query, ...@@ -376,7 +376,7 @@ mbErrCode ModbusTCPSession::forceSingleCoil( ForceSingleCoilMessage& query,
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
mbErrCode ModbusTCPSession::writeOutputSingleRegister( WriteSingleOutputMessage& query, mbErrCode ModbusTCPSession::writeOutputSingleRegister( WriteSingleOutputMessage& query,
WriteSingleOutputRetMessage& reply ) WriteSingleOutputRetMessage& reply )
{ {
if( !slWriteSingleOutputs ) if( !slWriteSingleOutputs )
...@@ -386,7 +386,7 @@ mbErrCode ModbusTCPSession::writeOutputSingleRegister( WriteSingleOutputMessage& ...@@ -386,7 +386,7 @@ mbErrCode ModbusTCPSession::writeOutputSingleRegister( WriteSingleOutputMessage&
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
mbErrCode ModbusTCPSession::journalCommand( JournalCommandMessage& query, mbErrCode ModbusTCPSession::journalCommand( JournalCommandMessage& query,
JournalCommandRetMessage& reply ) JournalCommandRetMessage& reply )
{ {
if( !slJournalCommand ) if( !slJournalCommand )
...@@ -395,7 +395,7 @@ mbErrCode ModbusTCPSession::journalCommand( JournalCommandMessage& query, ...@@ -395,7 +395,7 @@ mbErrCode ModbusTCPSession::journalCommand( JournalCommandMessage& query,
return slJournalCommand(query,reply); return slJournalCommand(query,reply);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
ModbusRTU::mbErrCode ModbusTCPSession::setDateTime( ModbusRTU::SetDateTimeMessage& query, ModbusRTU::mbErrCode ModbusTCPSession::setDateTime( ModbusRTU::SetDateTimeMessage& query,
ModbusRTU::SetDateTimeRetMessage& reply ) ModbusRTU::SetDateTimeRetMessage& reply )
{ {
if( !slSetDateTime ) if( !slSetDateTime )
...@@ -404,7 +404,7 @@ ModbusRTU::mbErrCode ModbusTCPSession::setDateTime( ModbusRTU::SetDateTimeMessag ...@@ -404,7 +404,7 @@ ModbusRTU::mbErrCode ModbusTCPSession::setDateTime( ModbusRTU::SetDateTimeMessag
return slSetDateTime(query,reply); return slSetDateTime(query,reply);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
ModbusRTU::mbErrCode ModbusTCPSession::remoteService( ModbusRTU::RemoteServiceMessage& query, ModbusRTU::mbErrCode ModbusTCPSession::remoteService( ModbusRTU::RemoteServiceMessage& query,
ModbusRTU::RemoteServiceRetMessage& reply ) ModbusRTU::RemoteServiceRetMessage& reply )
{ {
if( !slRemoteService ) if( !slRemoteService )
...@@ -413,7 +413,7 @@ ModbusRTU::mbErrCode ModbusTCPSession::remoteService( ModbusRTU::RemoteServiceMe ...@@ -413,7 +413,7 @@ ModbusRTU::mbErrCode ModbusTCPSession::remoteService( ModbusRTU::RemoteServiceMe
return slRemoteService(query,reply); return slRemoteService(query,reply);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
ModbusRTU::mbErrCode ModbusTCPSession::fileTransfer( ModbusRTU::FileTransferMessage& query, ModbusRTU::mbErrCode ModbusTCPSession::fileTransfer( ModbusRTU::FileTransferMessage& query,
ModbusRTU::FileTransferRetMessage& reply ) ModbusRTU::FileTransferRetMessage& reply )
{ {
if( !slFileTransfer ) if( !slFileTransfer )
......
...@@ -115,7 +115,7 @@ void UInterface::initBackId( const UniSetTypes::ObjectId backid ) ...@@ -115,7 +115,7 @@ void UInterface::initBackId( const UniSetTypes::ObjectId backid )
* \exception IOBadParam - генерируется если указано неправильное имя датчика или секции * \exception IOBadParam - генерируется если указано неправильное имя датчика или секции
* \exception IOTimeOut - генерируется если в течение времени timeout небыл получен ответ * \exception IOTimeOut - генерируется если в течение времени timeout небыл получен ответ
*/ */
long UInterface::getValue( const ObjectId id, const ObjectId node ) const long UInterface::getValue( const ObjectId id, const ObjectId node ) const
throw(IO_THROW_EXCEPTIONS) throw(IO_THROW_EXCEPTIONS)
{ {
if ( id == DefaultObjectId ) if ( id == DefaultObjectId )
...@@ -252,7 +252,7 @@ void UInterface::setUndefinedState( const IOController_i::SensorInfo& si, bool u ...@@ -252,7 +252,7 @@ void UInterface::setUndefinedState( const IOController_i::SensorInfo& si, bool u
catch(CORBA::NO_IMPLEMENT) catch(CORBA::NO_IMPLEMENT)
{ {
rcache.erase(si.id, si.node); rcache.erase(si.id, si.node);
uwarn << set_err("UI(setUndefinedState): method no implement",si.id,si.node) << endl; uwarn << set_err("UI(setUndefinedState): method no implement",si.id,si.node) << endl;
} }
catch(CORBA::OBJECT_NOT_EXIST) catch(CORBA::OBJECT_NOT_EXIST)
{ {
...@@ -344,7 +344,7 @@ void UInterface::setValue( const ObjectId id, long value, const ObjectId node ) ...@@ -344,7 +344,7 @@ void UInterface::setValue( const ObjectId id, long value, const ObjectId node )
throw UniSetTypes::TimeOut(set_err("UI(setValue): Timeout",id,node)); throw UniSetTypes::TimeOut(set_err("UI(setValue): Timeout",id,node));
} }
void UInterface::setValue( const ObjectId name, long value ) const void UInterface::setValue( const ObjectId name, long value ) const
{ {
setValue(name, value, uconf->getLocalNode()); setValue(name, value, uconf->getLocalNode());
} }
...@@ -884,7 +884,7 @@ ObjectPtr UInterface::resolve( const ObjectId rid , const ObjectId node, int tim ...@@ -884,7 +884,7 @@ ObjectPtr UInterface::resolve( const ObjectId rid , const ObjectId node, int tim
} }
// ------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------
void UInterface::send( const ObjectId name, const TransportMessage& msg, const ObjectId node ) void UInterface::send( const ObjectId name, const TransportMessage& msg, const ObjectId node )
throw(IO_THROW_EXCEPTIONS) throw(IO_THROW_EXCEPTIONS)
{ {
if ( name == DefaultObjectId ) if ( name == DefaultObjectId )
...@@ -1157,7 +1157,7 @@ string UInterface::set_err( const std::string& pre, const ObjectId id, const Obj ...@@ -1157,7 +1157,7 @@ string UInterface::set_err( const std::string& pre, const ObjectId id, const Obj
nm = "UnknownName"; nm = "UnknownName";
ostringstream s; ostringstream s;
s << pre << " (" << id << ":" << node <<")" << nm; s << pre << " (" << id << ":" << node <<")" << nm;
return s.str(); return s.str();
} }
// -------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
*/ */
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
/*! /*!
\todo Добавить проверку на предельный номер id \todo Добавить проверку на предельный номер id
*/ */
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
#include <sstream> #include <sstream>
......
...@@ -35,12 +35,12 @@ using namespace std; ...@@ -35,12 +35,12 @@ using namespace std;
namespace ORepHelpers namespace ORepHelpers
{ {
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
/*! /*!
* \param cname - полное имя контекста ссылку на который, возвратит функция. * \param cname - полное имя контекста ссылку на который, возвратит функция.
* \param argc, argv - параметры инициализации ORB * \param argc, argv - параметры инициализации ORB
*/ */
CosNaming::NamingContext_ptr getContext(const string& cname, int argc, const char* const* argv, const string& nsName ) throw(ORepFailed) CosNaming::NamingContext_ptr getContext(const string& cname, int argc, const char* const* argv, const string& nsName ) throw(ORepFailed)
{ {
...@@ -192,7 +192,7 @@ namespace ORepHelpers ...@@ -192,7 +192,7 @@ namespace ORepHelpers
// --------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------
/*! /*!
* \param fname - полное имя включающее в себя путь ("Root/Section1/name|Node:Alias") * \param fname - полное имя включающее в себя путь ("Root/Section1/name|Node:Alias")
* \param brk - используемый символ разделитель * \param brk - используемый символ разделитель
*/ */
const string getShortName( const string& fname, const std::string& brk ) const string getShortName( const string& fname, const std::string& brk )
{ {
...@@ -206,7 +206,7 @@ namespace ORepHelpers ...@@ -206,7 +206,7 @@ namespace ORepHelpers
// --------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------
/*! /*!
* \param fullName - полное имя включающее в себя путь * \param fullName - полное имя включающее в себя путь
* \param brk - используемый символ разделитель * \param brk - используемый символ разделитель
* \note Функция возвращает путь без последнего символа разделителя ("Root/Section1/name" -> "Root/Section1") * \note Функция возвращает путь без последнего символа разделителя ("Root/Section1/name" -> "Root/Section1")
*/ */
const string getSectionName( const string& fullName, const std::string& brk ) const string getSectionName( const string& fullName, const std::string& brk )
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
*/ */
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
/*! /*!
\todo Добавить проверку на предельный номер id \todo Добавить проверку на предельный номер id
*/ */
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
#include "ObjectIndex.h" #include "ObjectIndex.h"
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
*/ */
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
/*! /*!
\todo Добавить проверку на предельный номер id \todo Добавить проверку на предельный номер id
*/ */
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
#include <iomanip> #include <iomanip>
...@@ -56,7 +56,7 @@ ObjectId ObjectIndex_Array::getIdByName( const string& name ) ...@@ -56,7 +56,7 @@ ObjectId ObjectIndex_Array::getIdByName( const string& name )
auto it = mok.find(name); auto it = mok.find(name);
if( it != mok.end() ) if( it != mok.end() )
return it->second; return it->second;
return DefaultObjectId; return DefaultObjectId;
} }
...@@ -67,9 +67,9 @@ string ObjectIndex_Array::getMapName( const ObjectId id ) ...@@ -67,9 +67,9 @@ string ObjectIndex_Array::getMapName( const ObjectId id )
return objectInfo[id].repName; return objectInfo[id].repName;
return ""; return "";
// throw OutOfRange("ObjectIndex_Array::getMapName OutOfRange"); // throw OutOfRange("ObjectIndex_Array::getMapName OutOfRange");
} }
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
string ObjectIndex_Array::getTextName( const ObjectId id ) string ObjectIndex_Array::getTextName( const ObjectId id )
{ {
if( id!=UniSetTypes::DefaultObjectId && id>=0 && id<maxId ) if( id!=UniSetTypes::DefaultObjectId && id>=0 && id<maxId )
...@@ -94,7 +94,7 @@ std::ostream& ObjectIndex_Array::printMap( std::ostream& os ) ...@@ -94,7 +94,7 @@ std::ostream& ObjectIndex_Array::printMap( std::ostream& os )
assert (i==objectInfo[i].id); assert (i==objectInfo[i].id);
os << setw(5) << objectInfo[i].id << " " os << setw(5) << objectInfo[i].id << " "
<< setw(45) << conf->oind->getBaseName(objectInfo[i].repName) << setw(45) << conf->oind->getBaseName(objectInfo[i].repName)
<< " " << objectInfo[i].textName << endl; << " " << objectInfo[i].textName << endl;
} }
......
...@@ -88,9 +88,9 @@ std::ostream& ObjectIndex_XML::printMap( std::ostream& os ) ...@@ -88,9 +88,9 @@ std::ostream& ObjectIndex_XML::printMap( std::ostream& os )
if( it->repName == NULL ) if( it->repName == NULL )
continue; continue;
os << setw(5) << it->id << " " os << setw(5) << it->id << " "
// << setw(45) << ORepHelpers::getShortName(it->repName,'/') // << setw(45) << ORepHelpers::getShortName(it->repName,'/')
<< setw(45) << it->repName << setw(45) << it->repName
<< " " << it->textName << endl; << " " << it->textName << endl;
} }
...@@ -107,8 +107,8 @@ void ObjectIndex_XML::build(UniXML& xml) ...@@ -107,8 +107,8 @@ void ObjectIndex_XML::build(UniXML& xml)
ind = read_section(xml,"controllers",ind); ind = read_section(xml,"controllers",ind);
ind = read_section(xml,"services",ind); ind = read_section(xml,"services",ind);
ind = read_nodes(xml,"nodes",ind); ind = read_nodes(xml,"nodes",ind);
// //
omap.resize(ind); omap.resize(ind);
// omap[ind].repName=NULL; // omap[ind].repName=NULL;
// omap[ind].textName=NULL; // omap[ind].textName=NULL;
...@@ -255,7 +255,7 @@ unsigned int ObjectIndex_XML::read_nodes( UniXML& xml, const std::string& sec, u ...@@ -255,7 +255,7 @@ unsigned int ObjectIndex_XML::read_nodes( UniXML& xml, const std::string& sec, u
strcpy( omap[ind].textName, textname.c_str() ); strcpy( omap[ind].textName, textname.c_str() );
omap[ind].data = (void*)(xmlNode*)(it); omap[ind].data = (void*)(xmlNode*)(it);
// //
mok[omap[ind].repName] = ind; mok[omap[ind].repName] = ind;
// cout << "read: " << "(" << ind << ") " << omap[ind].repName << "\t" << omap[ind].textName << endl; // cout << "read: " << "(" << ind << ") " << omap[ind].repName << "\t" << omap[ind].textName << endl;
......
...@@ -45,7 +45,7 @@ string ObjectIndex_idXML::getMapName( const ObjectId id ) ...@@ -45,7 +45,7 @@ string ObjectIndex_idXML::getMapName( const ObjectId id )
return ""; return "";
} }
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
string ObjectIndex_idXML::getTextName( const ObjectId id ) string ObjectIndex_idXML::getTextName( const ObjectId id )
{ {
auto it = omap.find(id); auto it = omap.find(id);
...@@ -68,9 +68,9 @@ std::ostream& ObjectIndex_idXML::printMap( std::ostream& os ) ...@@ -68,9 +68,9 @@ std::ostream& ObjectIndex_idXML::printMap( std::ostream& os )
if( it->second.repName == NULL ) if( it->second.repName == NULL )
continue; continue;
os << setw(5) << it->second.id << " " os << setw(5) << it->second.id << " "
// << setw(45) << ORepHelpers::getShortName(it->repName,'/') // << setw(45) << ORepHelpers::getShortName(it->repName,'/')
<< setw(45) << it->second.repName << setw(45) << it->second.repName
<< " " << it->second.textName << endl; << " " << it->second.textName << endl;
} }
...@@ -136,7 +136,7 @@ void ObjectIndex_idXML::read_section( UniXML& xml, const std::string& sec ) ...@@ -136,7 +136,7 @@ void ObjectIndex_idXML::read_section( UniXML& xml, const std::string& sec )
if( inf.id <= 0 ) if( inf.id <= 0 )
{ {
ostringstream msg; ostringstream msg;
msg << "(ObjectIndex_idXML::build): НЕ УКАЗАН id для " << it.getProp("name") msg << "(ObjectIndex_idXML::build): НЕ УКАЗАН id для " << it.getProp("name")
<< " секция " << sec; << " секция " << sec;
throw NameNotFound(msg.str()); throw NameNotFound(msg.str());
} }
......
...@@ -162,7 +162,7 @@ void ObjectRepository::registration(const string& name, const ObjectPtr oRef, co ...@@ -162,7 +162,7 @@ void ObjectRepository::registration(const string& name, const ObjectPtr oRef, co
* \note При этом надо иметь ввиду, что задается полное имя объекта. * \note При этом надо иметь ввиду, что задается полное имя объекта.
* Пример: registration("Root/SensorSection/sens1", oRef); * Пример: registration("Root/SensorSection/sens1", oRef);
* \param fullName - полное имя регистрируемого объекта (т.е. включающее в себя имя секции) * \param fullName - полное имя регистрируемого объекта (т.е. включающее в себя имя секции)
* \param oRef - ссылка на объект * \param oRef - ссылка на объект
* \exception ORepFailed - генерируется если произошла ошибка при регистрации * \exception ORepFailed - генерируется если произошла ошибка при регистрации
* \sa registration(const string name, const ObjectPtr oRef, const string section) * \sa registration(const string name, const ObjectPtr oRef, const string section)
*/ */
...@@ -325,7 +325,7 @@ bool ObjectRepository::list(const string& section, ListObjectName *ls, unsigned ...@@ -325,7 +325,7 @@ bool ObjectRepository::list(const string& section, ListObjectName *ls, unsigned
try try
{ {
CORBA::ORB_var orb = uconf->getORB(); CORBA::ORB_var orb = uconf->getORB();
ctx = ORepHelpers::getContext(orb, section, nsName); ctx = ORepHelpers::getContext(orb, section, nsName);
} }
catch(ORepFailed) catch(ORepFailed)
{ {
...@@ -358,7 +358,7 @@ bool ObjectRepository::list(const string& section, ListObjectName *ls, unsigned ...@@ -358,7 +358,7 @@ bool ObjectRepository::list(const string& section, ListObjectName *ls, unsigned
for( unsigned int i=0; i<how_many;i++) for( unsigned int i=0; i<how_many;i++)
{ {
switch( type ) switch( type )
{ {
case ObjectRef: case ObjectRef:
{ {
if(bl[i].binding_type == CosNaming::nobject) if(bl[i].binding_type == CosNaming::nobject)
......
...@@ -121,7 +121,7 @@ bool ObjectRepositoryFactory::createRootSection(const string& name) ...@@ -121,7 +121,7 @@ bool ObjectRepositoryFactory::createRootSection(const string& name)
// ----------------------------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------------------------
bool ObjectRepositoryFactory::createContext(const char *cname, CosNaming::NamingContext_ptr ctx) bool ObjectRepositoryFactory::createContext(const char *cname, CosNaming::NamingContext_ptr ctx)
{ {
CosNaming::Name_var nc = omniURI::stringToName(cname); CosNaming::Name_var nc = omniURI::stringToName(cname);
try try
{ {
...@@ -133,12 +133,12 @@ bool ObjectRepositoryFactory::createContext(const char *cname, CosNaming::Naming ...@@ -133,12 +133,12 @@ bool ObjectRepositoryFactory::createContext(const char *cname, CosNaming::Naming
catch(const CosNaming::NamingContext::AlreadyBound &ab) catch(const CosNaming::NamingContext::AlreadyBound &ab)
{ {
// ctx->resolve(nc); // ctx->resolve(nc);
ulogrep << "ORepFactory(createContext): context "<< cname << " уже есть"<< endl; ulogrep << "ORepFactory(createContext): context "<< cname << " уже есть"<< endl;
return true; return true;
} }
catch(CosNaming::NamingContext::NotFound) catch(CosNaming::NamingContext::NotFound)
{ {
ulogrep << "ORepFactory(createContext): NotFound "<< cname << endl; ulogrep << "ORepFactory(createContext): NotFound "<< cname << endl;
throw NameNotFound(); throw NameNotFound();
} }
catch(const CosNaming::NamingContext::InvalidName &nf) catch(const CosNaming::NamingContext::InvalidName &nf)
...@@ -147,7 +147,7 @@ bool ObjectRepositoryFactory::createContext(const char *cname, CosNaming::Naming ...@@ -147,7 +147,7 @@ bool ObjectRepositoryFactory::createContext(const char *cname, CosNaming::Naming
} }
catch(const CosNaming::NamingContext::CannotProceed &cp) catch(const CosNaming::NamingContext::CannotProceed &cp)
{ {
uwarn << "ORepFactory(createContext): catch CannotProced " uwarn << "ORepFactory(createContext): catch CannotProced "
<< cname << " bad part=" << cname << " bad part="
<< omniURI::nameToString(cp.rest_of_name); << omniURI::nameToString(cp.rest_of_name);
throw NameNotFound(); throw NameNotFound();
...@@ -212,7 +212,7 @@ bool ObjectRepositoryFactory::removeSection(const string& fullName, bool recursi ...@@ -212,7 +212,7 @@ bool ObjectRepositoryFactory::removeSection(const string& fullName, bool recursi
unsigned int how_many = 1000; unsigned int how_many = 1000;
CosNaming::NamingContext_var ctx; CosNaming::NamingContext_var ctx;
try try
{ {
int argc(uconf->getArgc()); int argc(uconf->getArgc());
const char * const* argv(uconf->getArgv()); const char * const* argv(uconf->getArgv());
ctx = ORepHelpers::getContext(fullName, argc, argv, nsName); ctx = ORepHelpers::getContext(fullName, argc, argv, nsName);
...@@ -231,11 +231,11 @@ bool ObjectRepositoryFactory::removeSection(const string& fullName, bool recursi ...@@ -231,11 +231,11 @@ bool ObjectRepositoryFactory::removeSection(const string& fullName, bool recursi
if( how_many>bl->length() ) if( how_many>bl->length() )
how_many = bl->length(); how_many = bl->length();
bool rem = true; // удалять или нет bool rem = true; // удалять или нет
for(unsigned int i=0; i<how_many;i++) for(unsigned int i=0; i<how_many;i++)
{ {
if( bl[i].binding_type == CosNaming::nobject) if( bl[i].binding_type == CosNaming::nobject)
{ {
// cout <<"удаляем "<< omniURI::nameToString(bl[i].binding_name) << endl; // cout <<"удаляем "<< omniURI::nameToString(bl[i].binding_name) << endl;
...@@ -317,8 +317,8 @@ bool ObjectRepositoryFactory::renameSection( const string& newFName, const strin ...@@ -317,8 +317,8 @@ bool ObjectRepositoryFactory::renameSection( const string& newFName, const strin
{ {
int argc(uconf->getArgc()); int argc(uconf->getArgc());
const char * const* argv(uconf->getArgv()); const char * const* argv(uconf->getArgv());
CosNaming::NamingContext_var in_ctx = ORepHelpers::getContext(in_sec, argc, argv, nsName); CosNaming::NamingContext_var in_ctx = ORepHelpers::getContext(in_sec, argc, argv, nsName);
CosNaming::NamingContext_var ctx = ORepHelpers::getContext(oldFName, argc, argv, nsName); CosNaming::NamingContext_var ctx = ORepHelpers::getContext(oldFName, argc, argv, nsName);
// заменит контекст newFName если он существовал // заменит контекст newFName если он существовал
in_ctx->rebind_context(ctxNewName, ctx); in_ctx->rebind_context(ctxNewName, ctx);
......
...@@ -42,7 +42,7 @@ PassiveObject::PassiveObject( UniSetTypes::ObjectId id ): ...@@ -42,7 +42,7 @@ PassiveObject::PassiveObject( UniSetTypes::ObjectId id ):
id(id) id(id)
{ {
string myfullname = conf->oind->getNameById(id); string myfullname = conf->oind->getNameById(id);
myname = ORepHelpers::getShortName(myfullname.c_str()); myname = ORepHelpers::getShortName(myfullname.c_str());
} }
PassiveObject::PassiveObject( ObjectId id, ProxyManager* mngr ): PassiveObject::PassiveObject( ObjectId id, ProxyManager* mngr ):
...@@ -116,7 +116,7 @@ void PassiveObject::processingMessage( UniSetTypes::VoidMessage *msg ) ...@@ -116,7 +116,7 @@ void PassiveObject::processingMessage( UniSetTypes::VoidMessage *msg )
{ {
uwarn << myname << "(processingMessage): CORBA::Exception: " << ex._name() << endl; uwarn << myname << "(processingMessage): CORBA::Exception: " << ex._name() << endl;
} }
catch( omniORB::fatalException& fe ) catch( omniORB::fatalException& fe )
{ {
if( ulog.is_crit() ) if( ulog.is_crit() )
{ {
......
...@@ -81,7 +81,7 @@ bool ProxyManager::activateObject() ...@@ -81,7 +81,7 @@ bool ProxyManager::activateObject()
{ {
try try
{ {
uinfo << myname << "(registered): попытка " uinfo << myname << "(registered): попытка "
<< i+1 << " регистриую (id=" << it.first << ") " << i+1 << " регистриую (id=" << it.first << ") "
<< " (pname=" << it.second->getName() << ") " << " (pname=" << it.second->getName() << ") "
<< conf->oind->getNameById(it.first) << endl; << conf->oind->getNameById(it.first) << endl;
...@@ -144,7 +144,7 @@ void ProxyManager::processingMessage( UniSetTypes::VoidMessage *msg ) ...@@ -144,7 +144,7 @@ void ProxyManager::processingMessage( UniSetTypes::VoidMessage *msg )
auto it = omap.find(msg->consumer); auto it = omap.find(msg->consumer);
if( it!=omap.end() ) if( it!=omap.end() )
it->second->processingMessage(msg); it->second->processingMessage(msg);
else else
ucrit << myname << "(processingMessage): не найден объект " ucrit << myname << "(processingMessage): не найден объект "
<< " consumer= " << msg->consumer << endl; << " consumer= " << msg->consumer << endl;
} }
......
...@@ -233,7 +233,7 @@ void UniSetActivator::run(bool thread) ...@@ -233,7 +233,7 @@ void UniSetActivator::run(bool thread)
int ret = orbthr->start(); int ret = orbthr->start();
if( ret !=0 ) if( ret !=0 )
{ {
ucrit << myname << "(run): НЕ СМОГЛИ СОЗДАТЬ ORB-поток"<<endl; ucrit << myname << "(run): НЕ СМОГЛИ СОЗДАТЬ ORB-поток"<<endl;
throw SystemError("(UniSetActivator::run): CREATE ORB THREAD FAILED"); throw SystemError("(UniSetActivator::run): CREATE ORB THREAD FAILED");
} }
} }
......
...@@ -201,7 +201,7 @@ bool UniSetManager::removeObject( UniSetObject* obj ) ...@@ -201,7 +201,7 @@ bool UniSetManager::removeObject( UniSetObject* obj )
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
/*! /*!
* Функция работы со списком менеджеров * Функция работы со списком менеджеров
*/ */
void UniSetManager::managers( OManagerCommand cmd ) void UniSetManager::managers( OManagerCommand cmd )
...@@ -264,7 +264,7 @@ void UniSetManager::managers( OManagerCommand cmd ) ...@@ -264,7 +264,7 @@ void UniSetManager::managers( OManagerCommand cmd )
*/ */
void UniSetManager::objects(OManagerCommand cmd) void UniSetManager::objects(OManagerCommand cmd)
{ {
uinfo << myname <<"(objects): olist.size=" uinfo << myname <<"(objects): olist.size="
<< olist.size() << " cmd=" << cmd << endl; << olist.size() << " cmd=" << cmd << endl;
{ //lock { //lock
uniset_rwmutex_rlock lock(olistMutex); uniset_rwmutex_rlock lock(olistMutex);
...@@ -306,11 +306,11 @@ void UniSetManager::objects(OManagerCommand cmd) ...@@ -306,11 +306,11 @@ void UniSetManager::objects(OManagerCommand cmd)
} }
catch( CORBA::Exception& ex ) catch( CORBA::Exception& ex )
{ {
ucrit << myname << "(objects): Caught CORBA::Exception. " ucrit << myname << "(objects): Caught CORBA::Exception. "
<< ex._name() << ex._name()
<< " (" << li->getName() << ")" << endl; << " (" << li->getName() << ")" << endl;
} }
catch( omniORB::fatalException& fe ) catch( omniORB::fatalException& fe )
{ {
ucrit << myname << "(objects): Caught omniORB::fatalException:" << endl; ucrit << myname << "(objects): Caught omniORB::fatalException:" << endl;
ucrit << myname << "(objects): file: " << fe.file() ucrit << myname << "(objects): file: " << fe.file()
...@@ -387,9 +387,9 @@ bool UniSetManager::addManager( UniSetManager *child ) ...@@ -387,9 +387,9 @@ bool UniSetManager::addManager( UniSetManager *child )
mlist.push_back( child ); mlist.push_back( child );
uinfo << myname << ": добавляем менеджер "<< child->getName()<< endl; uinfo << myname << ": добавляем менеджер "<< child->getName()<< endl;
} }
else else
uwarn << myname << ": попытка повторного добавления объекта "<< child->getName() << endl; uwarn << myname << ": попытка повторного добавления объекта "<< child->getName() << endl;
} // unlock } // unlock
return true; return true;
} }
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
/*! \file /*! \file
* \author Pavel Vainerman * \author Pavel Vainerman
*/ */
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
#include "Exceptions.h" #include "Exceptions.h"
#include "UniSetManager_LT.h" #include "UniSetManager_LT.h"
#include "Debug.h" #include "Debug.h"
...@@ -37,20 +37,20 @@ sleepTime(UniSetTimer::WaitUpTime) ...@@ -37,20 +37,20 @@ sleepTime(UniSetTimer::WaitUpTime)
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
UniSetManager_LT::UniSetManager_LT(): UniSetManager_LT::UniSetManager_LT():
sleepTime(UniSetTimer::WaitUpTime) sleepTime(UniSetTimer::WaitUpTime)
{ {
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
UniSetManager_LT::~UniSetManager_LT() UniSetManager_LT::~UniSetManager_LT()
{ {
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
void UniSetManager_LT::callback() void UniSetManager_LT::callback()
{ {
// При реализации с использованием waitMessage() каждый раз при вызове askTimer() необходимо // При реализации с использованием waitMessage() каждый раз при вызове askTimer() необходимо
// проверять возвращаемое значение на UniSetTimers::WaitUpTime и вызывать termWaiting(), // проверять возвращаемое значение на UniSetTimers::WaitUpTime и вызывать termWaiting(),
// чтобы избежать ситуации, когда процесс до заказа таймера 'спал'(в функции waitMessage()) и после // чтобы избежать ситуации, когда процесс до заказа таймера 'спал'(в функции waitMessage()) и после
// заказа продолжит спать(т.е. обработчик вызван не будет)... // заказа продолжит спать(т.е. обработчик вызван не будет)...
try try
{ {
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
using namespace std; using namespace std;
using namespace UniSetTypes; using namespace UniSetTypes;
#define CREATE_TIMER new ThrPassiveTimer(); #define CREATE_TIMER new ThrPassiveTimer();
// new PassiveSysTimer(); // new PassiveSysTimer();
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
...@@ -188,7 +188,7 @@ void UniSetObject::setID( UniSetTypes::ObjectId id ) ...@@ -188,7 +188,7 @@ void UniSetObject::setID( UniSetTypes::ObjectId id )
throw ObjectNameAlready("ObjectId already set(setID)"); throw ObjectNameAlready("ObjectId already set(setID)");
string myfullname = ui.getNameById(id); string myfullname = ui.getNameById(id);
myname = ORepHelpers::getShortName(myfullname.c_str()); myname = ORepHelpers::getShortName(myfullname.c_str());
section = ORepHelpers::getSectionName(myfullname.c_str()); section = ORepHelpers::getSectionName(myfullname.c_str());
myid = id; myid = id;
ui.initBackId(myid); ui.initBackId(myid);
...@@ -253,13 +253,13 @@ struct MsgInfo ...@@ -253,13 +253,13 @@ struct MsgInfo
inline bool operator < ( const MsgInfo& mi ) const inline bool operator < ( const MsgInfo& mi ) const
{ {
if( type != mi.type ) if( type != mi.type )
return type < mi.type; return type < mi.type;
if( id != mi.id ) if( id != mi.id )
return id < mi.id; return id < mi.id;
if( node != mi.node ) if( node != mi.node )
return node < mi.node; return node < mi.node;
if( tm.tv_sec != mi.tm.tv_sec ) if( tm.tv_sec != mi.tm.tv_sec )
return tm.tv_sec < mi.tm.tv_sec; return tm.tv_sec < mi.tm.tv_sec;
...@@ -282,7 +282,7 @@ struct CInfo ...@@ -282,7 +282,7 @@ struct CInfo
confirm(0) confirm(0)
{ {
} }
CInfo( ConfirmMessage& cm ): CInfo( ConfirmMessage& cm ):
sensor_id(cm.sensor_id), sensor_id(cm.sensor_id),
value(cm.value), value(cm.value),
...@@ -359,15 +359,15 @@ void UniSetObject::registered() ...@@ -359,15 +359,15 @@ void UniSetObject::registered()
catch( ObjectNameAlready& al ) catch( ObjectNameAlready& al )
{ {
/*! /*!
\warning По умолчанию объекты должны быть уникальны! Поэтому если идёт попытка повторной регистрации. \warning По умолчанию объекты должны быть уникальны! Поэтому если идёт попытка повторной регистрации.
Мы чистим существующую ссылку и заменяем её на новую. Мы чистим существующую ссылку и заменяем её на новую.
Это сделано для более надежной работы, иначе может получится, что если объект перед завершением Это сделано для более надежной работы, иначе может получится, что если объект перед завершением
не очистил за собой ссылку(не разрегистрировался), то больше он никогда не сможет вновь зарегистрироваться. не очистил за собой ссылку(не разрегистрировался), то больше он никогда не сможет вновь зарегистрироваться.
Т.к. \b надёжной функции проверки "жив" ли объект пока нет... Т.к. \b надёжной функции проверки "жив" ли объект пока нет...
(так бы можно было проверить и если "не жив", то смело заменять ссылку на новую). Но существует обратная сторона: (так бы можно было проверить и если "не жив", то смело заменять ссылку на новую). Но существует обратная сторона:
если заменяемый объект "жив" и завершит свою работу, то он может почистить за собой ссылку и это тогда наш(новый) если заменяемый объект "жив" и завершит свою работу, то он может почистить за собой ссылку и это тогда наш(новый)
объект станет недоступен другим, а знать об этом не будет!!! объект станет недоступен другим, а знать об этом не будет!!!
*/ */
ucrit << myname << "(registered): replace object (ObjectNameAlready)" << endl; ucrit << myname << "(registered): replace object (ObjectNameAlready)" << endl;
reg = true; reg = true;
...@@ -578,8 +578,8 @@ void UniSetObject::cleanMsgQueue( MessagesQueue& q ) ...@@ -578,8 +578,8 @@ void UniSetObject::cleanMsgQueue( MessagesQueue& q )
q.push(v); q.push(v);
} }
ucrit << myname ucrit << myname
<< "(cleanMsgQueue): ******* result size of queue: " << "(cleanMsgQueue): ******* result size of queue: "
<< q.size() << q.size()
<< " < " << getMaxSizeOfMessageQueue() << endl; << " < " << getMaxSizeOfMessageQueue() << endl;
...@@ -590,8 +590,8 @@ void UniSetObject::cleanMsgQueue( MessagesQueue& q ) ...@@ -590,8 +590,8 @@ void UniSetObject::cleanMsgQueue( MessagesQueue& q )
for( unsigned int i=0; i<getMaxCountRemoveOfMessage(); i++ ) for( unsigned int i=0; i<getMaxCountRemoveOfMessage(); i++ )
{ {
q.top(); q.top();
q.pop(); q.pop();
if( q.empty() ) if( q.empty() )
break; break;
} }
...@@ -627,7 +627,7 @@ bool UniSetObject::deactivate() ...@@ -627,7 +627,7 @@ bool UniSetObject::deactivate()
{ // lock { // lock
uniset_rwmutex_wrlock mlk(qmutex); uniset_rwmutex_wrlock mlk(qmutex);
while( !queueMsg.empty() ) while( !queueMsg.empty() )
queueMsg.pop(); queueMsg.pop();
} }
try try
...@@ -700,8 +700,8 @@ bool UniSetObject::activate() ...@@ -700,8 +700,8 @@ bool UniSetObject::activate()
} }
else else
{ {
// А если myid==UniSetTypes::DefaultObjectId // А если myid==UniSetTypes::DefaultObjectId
// то myname = noname. ВСЕГДА! // то myname = noname. ВСЕГДА!
if( myid == UniSetTypes::DefaultObjectId ) if( myid == UniSetTypes::DefaultObjectId )
{ {
ucrit << myname << "(activate): Не задан ID!!! activate failure..." << endl; ucrit << myname << "(activate): Не задан ID!!! activate failure..." << endl;
...@@ -736,10 +736,10 @@ bool UniSetObject::activate() ...@@ -736,10 +736,10 @@ bool UniSetObject::activate()
thr = new ThreadCreator<UniSetObject>(this, &UniSetObject::work); thr = new ThreadCreator<UniSetObject>(this, &UniSetObject::work);
thr->start(); thr->start();
} }
else else
{ {
uinfo << myname << ": ?? не задан ObjectId...(" uinfo << myname << ": ?? не задан ObjectId...("
<< "myid=" << myid << " threadcreate=" << threadcreate << "myid=" << myid << " threadcreate=" << threadcreate
<< ")" << endl; << ")" << endl;
thread(false); thread(false);
} }
...@@ -806,7 +806,7 @@ void UniSetObject::processingMessage( UniSetTypes::VoidMessage *msg ) ...@@ -806,7 +806,7 @@ void UniSetObject::processingMessage( UniSetTypes::VoidMessage *msg )
{ {
uwarn << myname << "(processingMessage): CORBA::Exception: " << ex._name() << endl; uwarn << myname << "(processingMessage): CORBA::Exception: " << ex._name() << endl;
} }
catch( omniORB::fatalException& fe ) catch( omniORB::fatalException& fe )
{ {
if( ulog.is_crit() ) if( ulog.is_crit() )
{ {
...@@ -831,26 +831,26 @@ UniSetTypes::SimpleInfo* UniSetObject::getInfo() ...@@ -831,26 +831,26 @@ UniSetTypes::SimpleInfo* UniSetObject::getInfo()
info << "tid=" << setw(10); info << "tid=" << setw(10);
if( threadcreate ) if( threadcreate )
{ {
if(thr) if(thr)
{ {
msgpid = thr->getId(); // заодно(на всякий) обновим и внутреннюю информацию msgpid = thr->getId(); // заодно(на всякий) обновим и внутреннюю информацию
info << msgpid; info << msgpid;
} }
else else
info << "не запущен"; info << "не запущен";
} }
else else
info << "откл."; info << "откл.";
info << "\tcount=" << countMessages(); info << "\tcount=" << countMessages();
info << "\tmaxMsg=" << stMaxQueueMessages; info << "\tmaxMsg=" << stMaxQueueMessages;
info << "\tqFull("<< SizeOfMessageQueue << ")=" << stCountOfQueueFull; info << "\tqFull("<< SizeOfMessageQueue << ")=" << stCountOfQueueFull;
// info << "\n"; // info << "\n";
SimpleInfo* res = new SimpleInfo(); SimpleInfo* res = new SimpleInfo();
res->info = info.str().c_str(); // CORBA::string_dup(info.str().c_str()); res->info = info.str().c_str(); // CORBA::string_dup(info.str().c_str());
res->id = myid; res->id = myid;
return res; // ._retn(); return res; // ._retn();
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
......
...@@ -48,12 +48,12 @@ UniSetObject_LT::~UniSetObject_LT() ...@@ -48,12 +48,12 @@ UniSetObject_LT::~UniSetObject_LT()
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
void UniSetObject_LT::callback() void UniSetObject_LT::callback()
{ {
// При реализации с использованием waitMessage() каждый раз при вызове askTimer() необходимо // При реализации с использованием waitMessage() каждый раз при вызове askTimer() необходимо
// проверять возвращаемое значение на UniSetTimers::WaitUpTime и вызывать termWaiting(), // проверять возвращаемое значение на UniSetTimers::WaitUpTime и вызывать termWaiting(),
// чтобы избежать ситуации, когда процесс до заказа таймера 'спал'(в функции waitMessage()) и после // чтобы избежать ситуации, когда процесс до заказа таймера 'спал'(в функции waitMessage()) и после
// заказа продолжит спать(т.е. обработчик вызван не будет)... // заказа продолжит спать(т.е. обработчик вызван не будет)...
try try
{ {
if( waitMessage(msg, sleepTime) ) if( waitMessage(msg, sleepTime) )
processingMessage(&msg); processingMessage(&msg);
......
...@@ -292,7 +292,7 @@ std::list<UniSetTypes::ParamSInfo> UniSetTypes::getSInfoList( const string& str, ...@@ -292,7 +292,7 @@ std::list<UniSetTypes::ParamSInfo> UniSetTypes::getSInfoList( const string& str,
res.push_back(item); res.push_back(item);
} }
return res; return res;
} }
// -------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------
......
...@@ -144,7 +144,7 @@ long IOController::localGetValue( IOController::IOStateList::iterator& li, const ...@@ -144,7 +144,7 @@ long IOController::localGetValue( IOController::IOStateList::iterator& li, const
// ------------- // -------------
ostringstream err; ostringstream err;
err << myname << "(localGetValue): Not found sensor (" << sid << ") " err << myname << "(localGetValue): Not found sensor (" << sid << ") "
<< conf->oind->getNameById(sid); << conf->oind->getNameById(sid);
uinfo << err.str() << endl; uinfo << err.str() << endl;
...@@ -157,7 +157,7 @@ void IOController::setUndefinedState( UniSetTypes::ObjectId sid, CORBA::Boolean ...@@ -157,7 +157,7 @@ void IOController::setUndefinedState( UniSetTypes::ObjectId sid, CORBA::Boolean
localSetUndefinedState( li,undefined, sid ); localSetUndefinedState( li,undefined, sid );
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void IOController::localSetUndefinedState( IOStateList::iterator& li, void IOController::localSetUndefinedState( IOStateList::iterator& li,
bool undefined, const UniSetTypes::ObjectId sid ) bool undefined, const UniSetTypes::ObjectId sid )
{ {
// сохранение текущего состояния // сохранение текущего состояния
...@@ -241,7 +241,7 @@ void IOController::setValue( UniSetTypes::ObjectId sid, CORBA::Long value, UniSe ...@@ -241,7 +241,7 @@ void IOController::setValue( UniSetTypes::ObjectId sid, CORBA::Long value, UniSe
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
void IOController::localSetValue( IOController::IOStateList::iterator& li, void IOController::localSetValue( IOController::IOStateList::iterator& li,
UniSetTypes::ObjectId sid, UniSetTypes::ObjectId sid,
CORBA::Long value, UniSetTypes::ObjectId sup_id ) CORBA::Long value, UniSetTypes::ObjectId sup_id )
{ {
if( sup_id == UniSetTypes::DefaultObjectId ) if( sup_id == UniSetTypes::DefaultObjectId )
...@@ -252,7 +252,7 @@ void IOController::localSetValue( IOController::IOStateList::iterator& li, ...@@ -252,7 +252,7 @@ void IOController::localSetValue( IOController::IOStateList::iterator& li,
li = ioList.find(sid); li = ioList.find(sid);
if( li==ioList.end() ) if( li==ioList.end() )
{ {
ostringstream err; ostringstream err;
err << myname << "(localSaveValue): Unknown sensor (" << sid << ")" err << myname << "(localSaveValue): Unknown sensor (" << sid << ")"
<< "name: " << conf->oind->getNameById(sid); << "name: " << conf->oind->getNameById(sid);
...@@ -351,7 +351,7 @@ void IOController::ioRegistration( USensorInfo&& ainf, bool force ) ...@@ -351,7 +351,7 @@ void IOController::ioRegistration( USensorInfo&& ainf, bool force )
if( li!=ioList.end() ) if( li!=ioList.end() )
{ {
ostringstream err; ostringstream err;
err << "Попытка повторной регистрации датчика("<< ainf.si.id << "). имя: " err << "Попытка повторной регистрации датчика("<< ainf.si.id << "). имя: "
<< conf->oind->getNameById(ainf.si.id); << conf->oind->getNameById(ainf.si.id);
throw ObjectNameAlready(err.str().c_str()); throw ObjectNameAlready(err.str().c_str());
} }
...@@ -378,8 +378,8 @@ void IOController::ioRegistration( USensorInfo&& ainf, bool force ) ...@@ -378,8 +378,8 @@ void IOController::ioRegistration( USensorInfo&& ainf, bool force )
{ {
try try
{ {
uinfo << myname uinfo << myname
<< "(ioRegistration): регистрирую " << "(ioRegistration): регистрирую "
<< conf->oind->getNameById(ainf.si.id) << endl; << conf->oind->getNameById(ainf.si.id) << endl;
ui.registered( ainf.si.id, getRef(), true ); ui.registered( ainf.si.id, getRef(), true );
...@@ -442,7 +442,7 @@ void IOController::dumpToDB() ...@@ -442,7 +442,7 @@ void IOController::dumpToDB()
{ // lock { // lock
// uniset_mutex_lock lock(ioMutex, 100); // uniset_mutex_lock lock(ioMutex, 100);
for( auto li = ioList.begin(); li!=ioList.end(); ++li ) for( auto li = ioList.begin(); li!=ioList.end(); ++li )
{ {
uniset_rwmutex_rlock lock(li->second.val_lock); uniset_rwmutex_rlock lock(li->second.val_lock);
SensorMessage sm; SensorMessage sm;
...@@ -458,19 +458,19 @@ void IOController::dumpToDB() ...@@ -458,19 +458,19 @@ void IOController::dumpToDB()
if ( !li->second.dbignore ) if ( !li->second.dbignore )
logging(sm); logging(sm);
} }
} // unlock } // unlock
} }
// -------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------
IOController_i::SensorInfoSeq* IOController::getSensorsMap() IOController_i::SensorInfoSeq* IOController::getSensorsMap()
{ {
// ЗА ОСВОБОЖДЕНИЕ ПАМЯТИ ОТВЕЧАЕТ КЛИЕНТ!!!!!! // ЗА ОСВОБОЖДЕНИЕ ПАМЯТИ ОТВЕЧАЕТ КЛИЕНТ!!!!!!
// поэтому ему лучше пользоваться при получении _var-классом // поэтому ему лучше пользоваться при получении _var-классом
IOController_i::SensorInfoSeq* res = new IOController_i::SensorInfoSeq(); IOController_i::SensorInfoSeq* res = new IOController_i::SensorInfoSeq();
res->length( ioList.size()); res->length( ioList.size());
unsigned int i=0; unsigned int i=0;
for( auto &it: ioList ) for( auto &it: ioList )
{ {
uniset_rwmutex_rlock lock(it.second.val_lock); uniset_rwmutex_rlock lock(it.second.val_lock);
(*res)[i] = it.second; (*res)[i] = it.second;
i++; i++;
...@@ -499,7 +499,7 @@ IOController_i::SensorIOInfo IOController::getSensorIOInfo( const UniSetTypes::O ...@@ -499,7 +499,7 @@ IOController_i::SensorIOInfo IOController::getSensorIOInfo( const UniSetTypes::O
// ------------- // -------------
ostringstream err; ostringstream err;
err << myname << "(getSensorIOInfo): Unknown sensor (" << sid << ")" err << myname << "(getSensorIOInfo): Unknown sensor (" << sid << ")"
<< conf->oind->getNameById(sid); << conf->oind->getNameById(sid);
uinfo << err.str() << endl; uinfo << err.str() << endl;
...@@ -513,7 +513,7 @@ CORBA::Long IOController::getRawValue( UniSetTypes::ObjectId sid ) ...@@ -513,7 +513,7 @@ CORBA::Long IOController::getRawValue( UniSetTypes::ObjectId sid )
if( it==ioList.end() ) if( it==ioList.end() )
{ {
ostringstream err; ostringstream err;
err << myname << "(getRawValue): Unknown analog sensor (" << sid << ")" err << myname << "(getRawValue): Unknown analog sensor (" << sid << ")"
<< conf->oind->getNameById(sid); << conf->oind->getNameById(sid);
throw IOController_i::NameNotFound(err.str().c_str()); throw IOController_i::NameNotFound(err.str().c_str());
} }
...@@ -526,14 +526,14 @@ CORBA::Long IOController::getRawValue( UniSetTypes::ObjectId sid ) ...@@ -526,14 +526,14 @@ CORBA::Long IOController::getRawValue( UniSetTypes::ObjectId sid )
if( it->second.type == UniversalIO::AI ) if( it->second.type == UniversalIO::AI )
return UniSetTypes::lcalibrate(it->second.value,ci.minRaw,ci.maxRaw,ci.minCal,ci.maxCal,true); return UniSetTypes::lcalibrate(it->second.value,ci.minRaw,ci.maxRaw,ci.minCal,ci.maxCal,true);
if( it->second.type == UniversalIO::AO ) if( it->second.type == UniversalIO::AO )
return UniSetTypes::lcalibrate(it->second.value,ci.minCal,ci.maxCal,ci.minRaw,ci.maxRaw,true); return UniSetTypes::lcalibrate(it->second.value,ci.minCal,ci.maxCal,ci.minRaw,ci.maxRaw,true);
} }
return it->second.value; return it->second.value;
} }
// -------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------
void IOController::calibrate( UniSetTypes::ObjectId sid, void IOController::calibrate( UniSetTypes::ObjectId sid,
const IOController_i::CalibrateInfo& ci, const IOController_i::CalibrateInfo& ci,
UniSetTypes::ObjectId adminId ) UniSetTypes::ObjectId adminId )
{ {
...@@ -541,7 +541,7 @@ void IOController::calibrate( UniSetTypes::ObjectId sid, ...@@ -541,7 +541,7 @@ void IOController::calibrate( UniSetTypes::ObjectId sid,
if( it==ioList.end() ) if( it==ioList.end() )
{ {
ostringstream err; ostringstream err;
err << myname << "(calibrate): Unknown analog sensor (" << sid << ")" err << myname << "(calibrate): Unknown analog sensor (" << sid << ")"
<< conf->oind->getNameById(sid); << conf->oind->getNameById(sid);
throw IOController_i::NameNotFound(err.str().c_str()); throw IOController_i::NameNotFound(err.str().c_str());
} }
...@@ -557,7 +557,7 @@ IOController_i::CalibrateInfo IOController::getCalibrateInfo( UniSetTypes::Objec ...@@ -557,7 +557,7 @@ IOController_i::CalibrateInfo IOController::getCalibrateInfo( UniSetTypes::Objec
if( it==ioList.end() ) if( it==ioList.end() )
{ {
ostringstream err; ostringstream err;
err << myname << "(calibrate): Unknown analog sensor (" << sid << ")" err << myname << "(calibrate): Unknown analog sensor (" << sid << ")"
<< conf->oind->getNameById(sid); << conf->oind->getNameById(sid);
throw IOController_i::NameNotFound(err.str().c_str()); throw IOController_i::NameNotFound(err.str().c_str());
} }
...@@ -579,7 +579,7 @@ IOController::USensorInfo::USensorInfo(IOController_i::SensorIOInfo* ai): ...@@ -579,7 +579,7 @@ IOController::USensorInfo::USensorInfo(IOController_i::SensorIOInfo* ai):
any(0) any(0)
{} {}
IOController::USensorInfo& IOController::USensorInfo&
IOController::USensorInfo::operator=(IOController_i::SensorIOInfo& r) IOController::USensorInfo::operator=(IOController_i::SensorIOInfo& r)
{ {
(*this) = r; (*this) = r;
...@@ -587,16 +587,16 @@ IOController::USensorInfo& ...@@ -587,16 +587,16 @@ IOController::USensorInfo&
return *this; return *this;
} }
IOController::USensorInfo& IOController::USensorInfo&
IOController::USensorInfo::operator=(IOController_i::SensorIOInfo* r) IOController::USensorInfo::operator=(IOController_i::SensorIOInfo* r)
{ {
(*this) = (*r); (*this) = (*r);
// any=0; // any=0;
return *this; return *this;
} }
const IOController::USensorInfo& const IOController::USensorInfo&
IOController::USensorInfo::operator=(const IOController_i::SensorIOInfo& r) IOController::USensorInfo::operator=(const IOController_i::SensorIOInfo& r)
{ {
(*this) = r; (*this) = r;
...@@ -605,7 +605,7 @@ const IOController::USensorInfo& ...@@ -605,7 +605,7 @@ const IOController::USensorInfo&
} }
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
bool IOController::checkIOFilters( const USensorInfo& ai, CORBA::Long& newvalue, bool IOController::checkIOFilters( const USensorInfo& ai, CORBA::Long& newvalue,
UniSetTypes::ObjectId sup_id ) UniSetTypes::ObjectId sup_id )
{ {
for( auto &it: iofilters ) for( auto &it: iofilters )
...@@ -716,7 +716,7 @@ IOController_i::ShortIOInfo IOController::getChangedTime( UniSetTypes::ObjectId ...@@ -716,7 +716,7 @@ IOController_i::ShortIOInfo IOController::getChangedTime( UniSetTypes::ObjectId
// ------------- // -------------
ostringstream err; ostringstream err;
err << myname << "(getChangedTime): вход(выход) с именем " err << myname << "(getChangedTime): вход(выход) с именем "
<< conf->oind->getNameById(sid) << " не найден"; << conf->oind->getNameById(sid) << " не найден";
uinfo << err.str() << endl; uinfo << err.str() << endl;
...@@ -752,7 +752,7 @@ IOController::ChangeSignal IOController::signal_change_value( UniSetTypes::Objec ...@@ -752,7 +752,7 @@ IOController::ChangeSignal IOController::signal_change_value( UniSetTypes::Objec
if( it==ioList.end() ) if( it==ioList.end() )
{ {
ostringstream err; ostringstream err;
err << myname << "(signal_change_value): вход(выход) с именем " err << myname << "(signal_change_value): вход(выход) с именем "
<< conf->oind->getNameById(sid) << " не найден"; << conf->oind->getNameById(sid) << " не найден";
uinfo << err.str() << endl; uinfo << err.str() << endl;
...@@ -774,7 +774,7 @@ IOController::ChangeUndefinedStateSignal IOController::signal_change_undefined_s ...@@ -774,7 +774,7 @@ IOController::ChangeUndefinedStateSignal IOController::signal_change_undefined_s
if( it==ioList.end() ) if( it==ioList.end() )
{ {
ostringstream err; ostringstream err;
err << myname << "(signal_change_undefine): вход(выход) с именем " err << myname << "(signal_change_undefine): вход(выход) с именем "
<< conf->oind->getNameById(sid) << " не найден"; << conf->oind->getNameById(sid) << " не найден";
uinfo << err.str() << endl; uinfo << err.str() << endl;
......
...@@ -49,12 +49,12 @@ IONotifyController_LT::~IONotifyController_LT() ...@@ -49,12 +49,12 @@ IONotifyController_LT::~IONotifyController_LT()
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
void IONotifyController_LT::callback() void IONotifyController_LT::callback()
{ {
// При реализации с использованием waitMessage() каждый раз при вызове askTimer() необходимо // При реализации с использованием waitMessage() каждый раз при вызове askTimer() необходимо
// проверять возвращаемое значение на UniSetTimers::WaitUpTime и вызывать termWaiting(), // проверять возвращаемое значение на UniSetTimers::WaitUpTime и вызывать termWaiting(),
// чтобы избежать ситуации, когда процесс до заказа таймера 'спал'(в функции waitMessage()) и после // чтобы избежать ситуации, когда процесс до заказа таймера 'спал'(в функции waitMessage()) и после
// заказа продолжит спать(т.е. обработчик вызван не будет)... // заказа продолжит спать(т.е. обработчик вызван не будет)...
try try
{ {
if( waitMessage(msg, sleepTime) ) if( waitMessage(msg, sleepTime) )
processingMessage(&msg); processingMessage(&msg);
......
...@@ -96,13 +96,13 @@ void NCRestorer_XML::init( const std::string& fname ) ...@@ -96,13 +96,13 @@ void NCRestorer_XML::init( const std::string& fname )
} }
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
void NCRestorer_XML::dump(const IONotifyController* ic, SInfo& inf, void NCRestorer_XML::dump(const IONotifyController* ic, SInfo& inf,
const IONotifyController::ConsumerListInfo& lst) const IONotifyController::ConsumerListInfo& lst)
{ {
uwarn << "NCRestorer_XML::dump NOT SUPPORT!!!!" << endl; uwarn << "NCRestorer_XML::dump NOT SUPPORT!!!!" << endl;
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
void NCRestorer_XML::dumpThreshold(const IONotifyController* ic, SInfo& inf, void NCRestorer_XML::dumpThreshold(const IONotifyController* ic, SInfo& inf,
const IONotifyController::ThresholdExtList& lst) const IONotifyController::ThresholdExtList& lst)
{ {
uwarn << "NCRestorer_XML::dumpThreshold NOT SUPPORT!!!!" << endl; uwarn << "NCRestorer_XML::dumpThreshold NOT SUPPORT!!!!" << endl;
...@@ -312,7 +312,7 @@ bool NCRestorer_XML::getSensorInfo( const UniXML& xml, xmlNode* it, SInfo& inf ) ...@@ -312,7 +312,7 @@ bool NCRestorer_XML::getSensorInfo( const UniXML& xml, xmlNode* it, SInfo& inf )
inf.d_si.id = conf->getSensorID(d_txt); inf.d_si.id = conf->getSensorID(d_txt);
if( inf.d_si.id == UniSetTypes::DefaultObjectId ) if( inf.d_si.id == UniSetTypes::DefaultObjectId )
{ {
ucrit << "(NCRestorer_XML:getSensorInfo): sensor='" ucrit << "(NCRestorer_XML:getSensorInfo): sensor='"
<< xml.getProp(it,"name") << "' err: " << xml.getProp(it,"name") << "' err: "
<< " Unknown SensorID for depend='" << d_txt << " Unknown SensorID for depend='" << d_txt
<< endl; << endl;
...@@ -343,7 +343,7 @@ void NCRestorer_XML::read_thresholds(const UniXML& xml, xmlNode* node, IONotifyC ...@@ -343,7 +343,7 @@ void NCRestorer_XML::read_thresholds(const UniXML& xml, xmlNode* node, IONotifyC
NCRestorer_XML::SInfo inf; NCRestorer_XML::SInfo inf;
if( !getSensorInfo(xml,it.getCurrent(),inf) ) if( !getSensorInfo(xml,it.getCurrent(),inf) )
{ {
uwarn << ic->getName() uwarn << ic->getName()
<< "(read_thresholds): не смог получить информацию по датчику" << endl; << "(read_thresholds): не смог получить информацию по датчику" << endl;
continue; continue;
} }
...@@ -360,17 +360,17 @@ void NCRestorer_XML::read_thresholds(const UniXML& xml, xmlNode* node, IONotifyC ...@@ -360,17 +360,17 @@ void NCRestorer_XML::read_thresholds(const UniXML& xml, xmlNode* node, IONotifyC
IONotifyController::ThresholdInfoExt ti(0,0,0,0); IONotifyController::ThresholdInfoExt ti(0,0,0,0);
if( !getThresholdInfo(xml,tit,ti) ) if( !getThresholdInfo(xml,tit,ti) )
{ {
uwarn << ic->getName() uwarn << ic->getName()
<< "(read_thresholds): не смог получить информацию о пороге" << "(read_thresholds): не смог получить информацию о пороге"
<< " для датчика " << " для датчика "
<< conf->oind->getNameById(inf.si.id) << endl; << conf->oind->getNameById(inf.si.id) << endl;
continue; continue;
} }
uinfo << "(read_thresholds): \tthreshold low=" uinfo << "(read_thresholds): \tthreshold low="
<< ti.lowlimit << " \thi=" << ti.hilimit << ti.lowlimit << " \thi=" << ti.hilimit
<< " \t sid=" << ti.sid << " \t sid=" << ti.sid
<< " \t invert=" << ti.invert << " \t invert=" << ti.invert
<< endl << flush; << endl << flush;
xmlNode* cnode = find_node(xml,tit,"consumers",""); xmlNode* cnode = find_node(xml,tit,"consumers","");
...@@ -381,9 +381,9 @@ void NCRestorer_XML::read_thresholds(const UniXML& xml, xmlNode* node, IONotifyC ...@@ -381,9 +381,9 @@ void NCRestorer_XML::read_thresholds(const UniXML& xml, xmlNode* node, IONotifyC
{ {
if( !getConsumerList(xml,ask_it,ti.clst) ) if( !getConsumerList(xml,ask_it,ti.clst) )
{ {
uwarn << ic->getName() uwarn << ic->getName()
<< "(read_thresholds): не смог получить список заказчиков" << "(read_thresholds): не смог получить список заказчиков"
<< " для порога " << ti.id << " для порога " << ti.id
<< " датчика " << conf->oind->getNameById(inf.si.id) << endl; << " датчика " << conf->oind->getNameById(inf.si.id) << endl;
} }
} }
...@@ -399,7 +399,7 @@ void NCRestorer_XML::read_thresholds(const UniXML& xml, xmlNode* node, IONotifyC ...@@ -399,7 +399,7 @@ void NCRestorer_XML::read_thresholds(const UniXML& xml, xmlNode* node, IONotifyC
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
void NCRestorer_XML::read_consumers( const UniXML& xml, xmlNode* it, void NCRestorer_XML::read_consumers( const UniXML& xml, xmlNode* it,
NCRestorer_XML::SInfo&& inf, IONotifyController* ic ) NCRestorer_XML::SInfo&& inf, IONotifyController* ic )
{ {
// в новых ask-файлах список выделен <consumers>...</consumers>, // в новых ask-файлах список выделен <consumers>...</consumers>,
...@@ -417,7 +417,7 @@ void NCRestorer_XML::read_consumers( const UniXML& xml, xmlNode* it, ...@@ -417,7 +417,7 @@ void NCRestorer_XML::read_consumers( const UniXML& xml, xmlNode* it,
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
bool NCRestorer_XML::getConsumerList( const UniXML& xml, xmlNode* node, bool NCRestorer_XML::getConsumerList( const UniXML& xml, xmlNode* node,
IONotifyController::ConsumerListInfo& lst ) IONotifyController::ConsumerListInfo& lst )
{ {
UniXML_iterator it(node); UniXML_iterator it(node);
...@@ -439,7 +439,7 @@ bool NCRestorer_XML::getConsumerList( const UniXML& xml, xmlNode* node, ...@@ -439,7 +439,7 @@ bool NCRestorer_XML::getConsumerList( const UniXML& xml, xmlNode* node,
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
bool NCRestorer_XML::getThresholdInfo( const UniXML& xml,xmlNode* node, bool NCRestorer_XML::getThresholdInfo( const UniXML& xml,xmlNode* node,
IONotifyController::ThresholdInfoExt& ti ) IONotifyController::ThresholdInfoExt& ti )
{ {
UniXML_iterator uit(node); UniXML_iterator uit(node);
...@@ -450,7 +450,7 @@ bool NCRestorer_XML::getThresholdInfo( const UniXML& xml,xmlNode* node, ...@@ -450,7 +450,7 @@ bool NCRestorer_XML::getThresholdInfo( const UniXML& xml,xmlNode* node,
ti.sid = conf->getSensorID(sid_name); ti.sid = conf->getSensorID(sid_name);
if( ti.sid == UniSetTypes::DefaultObjectId ) if( ti.sid == UniSetTypes::DefaultObjectId )
{ {
ucrit << "(NCRestorer_XML:getThresholdInfo): " ucrit << "(NCRestorer_XML:getThresholdInfo): "
<< " Not found ID for " << sid_name << endl; << " Not found ID for " << sid_name << endl;
} }
else else
......
...@@ -71,7 +71,7 @@ void PassiveSysTimer::init() ...@@ -71,7 +71,7 @@ void PassiveSysTimer::init()
{ {
cerr << "PassiveSysTimer: error sigaction" << endl; cerr << "PassiveSysTimer: error sigaction" << endl;
throw NotSetSignal("PassiveTimer: errir sigaction"); throw NotSetSignal("PassiveTimer: errir sigaction");
} }
*/ */
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
...@@ -101,7 +101,7 @@ bool PassiveSysTimer::wait(timeout_t timeMS) ...@@ -101,7 +101,7 @@ bool PassiveSysTimer::wait(timeout_t timeMS)
{ {
cerr << "PassiveSysTimer: error sigaction" << endl; cerr << "PassiveSysTimer: error sigaction" << endl;
return false; return false;
} }
// if ( !terminated ) // if ( !terminated )
...@@ -110,7 +110,7 @@ bool PassiveSysTimer::wait(timeout_t timeMS) ...@@ -110,7 +110,7 @@ bool PassiveSysTimer::wait(timeout_t timeMS)
timeout_t sec; timeout_t sec;
timeout_t msec; timeout_t msec;
if (timeMS == WaitUpTime) if (timeMS == WaitUpTime)
{ {
sec=15*60; // 15min sec=15*60; // 15min
...@@ -129,7 +129,7 @@ bool PassiveSysTimer::wait(timeout_t timeMS) ...@@ -129,7 +129,7 @@ bool PassiveSysTimer::wait(timeout_t timeMS)
setitimer( ITIMER_REAL, &mtimer, (struct itimerval *)0 ); setitimer( ITIMER_REAL, &mtimer, (struct itimerval *)0 );
PassiveTimer::setTiming(timeMS); // вызываем для совместимости с обычным PassiveTimer-ом PassiveTimer::setTiming(timeMS); // вызываем для совместимости с обычным PassiveTimer-ом
sigset_t mask, oldmask; sigset_t mask, oldmask;
sigemptyset(&mask); sigemptyset(&mask);
...@@ -146,7 +146,7 @@ bool PassiveSysTimer::wait(timeout_t timeMS) ...@@ -146,7 +146,7 @@ bool PassiveSysTimer::wait(timeout_t timeMS)
terminated = 1; terminated = 1;
sigprocmask( SIG_UNBLOCK, &mask, NULL ); sigprocmask( SIG_UNBLOCK, &mask, NULL );
// cout << "PassiveSysTimer: time ok"<< endl; // cout << "PassiveSysTimer: time ok"<< endl;
return true; return true;
} }
...@@ -158,21 +158,21 @@ bool PassiveSysTimer::wait(timeout_t timeMS) ...@@ -158,21 +158,21 @@ bool PassiveSysTimer::wait(timeout_t timeMS)
struct itimerspec val; struct itimerspec val;
struct tm do_time; struct tm do_time;
timer_t t_id; timer_t t_id;
sigemptyset(&sigv.sa_mask); sigemptyset(&sigv.sa_mask);
sigv.sa_flags = SA_SIGINFO; sigv.sa_flags = SA_SIGINFO;
sigv.sa_sigaction = call; sigv.sa_sigaction = call;
if (sigaction (SIGUSR1, &sigv, 0) == -1) if (sigaction (SIGUSR1, &sigv, 0) == -1)
{ {
cerr << "Timer: sigaction" << endl; cerr << "Timer: sigaction" << endl;
return -1; return -1;
} }
sigx.sigev_notify = SIGEV_SIGNAL; sigx.sigev_notify = SIGEV_SIGNAL;
sigx.sigev_signo = SIGUSR1; sigx.sigev_signo = SIGUSR1;
sigx.sigev_value.sival_int = timeMS; sigx.sigev_value.sival_int = timeMS;
if ( timer_create(CLOCK_REALTIME, &sigx, &t_id) == -1 ) if ( timer_create(CLOCK_REALTIME, &sigx, &t_id) == -1 )
{ {
cerr << "Timer: timer create" << endl; cerr << "Timer: timer create" << endl;
...@@ -181,7 +181,7 @@ bool PassiveSysTimer::wait(timeout_t timeMS) ...@@ -181,7 +181,7 @@ bool PassiveSysTimer::wait(timeout_t timeMS)
int sec=timeMS/1000; int sec=timeMS/1000;
int micsec=(timeMS%1000)*1000; int micsec=(timeMS%1000)*1000;
val.it_value.tv_sec = sec; val.it_value.tv_sec = sec;
val.it_value.tv_nsec= micsec; val.it_value.tv_nsec= micsec;
val.it_interval.tv_sec = sec; val.it_interval.tv_sec = sec;
...@@ -197,6 +197,6 @@ bool PassiveSysTimer::wait(timeout_t timeMS) ...@@ -197,6 +197,6 @@ bool PassiveSysTimer::wait(timeout_t timeMS)
{ {
cerr << "Timer: timer delete" << endl; cerr << "Timer: timer delete" << endl;
} }
return 0; return 0;
*/ */
...@@ -37,10 +37,10 @@ void WaitingPassiveTimer::checkCount() ...@@ -37,10 +37,10 @@ void WaitingPassiveTimer::checkCount()
{ {
char err[200]; char err[200];
sprintf(err,"LimitThrPassiveTimers: превышено максимальное количество таймеров %d", MAX_COUNT_THRPASSIVE_TIMERS); sprintf(err,"LimitThrPassiveTimers: превышено максимальное количество таймеров %d", MAX_COUNT_THRPASSIVE_TIMERS);
throw LimitWaitingPTimers(err); throw LimitWaitingPTimers(err);
} }
countTimers++; countTimers++;
} }
WaitingPassiveTimer::WaitingPassiveTimer()throw(LimitWaitingPTimers): WaitingPassiveTimer::WaitingPassiveTimer()throw(LimitWaitingPTimers):
...@@ -86,26 +86,26 @@ void WaitingPassiveTimer::work() ...@@ -86,26 +86,26 @@ void WaitingPassiveTimer::work()
terminated = false; terminated = false;
while( !terminated ) while( !terminated )
{ {
usleep(sleepMKS); usleep(sleepMKS);
if ( checkTime() ) if ( checkTime() )
break; break;
} }
terminated = true; terminated = true;
if(pValue != NULL) if(pValue != NULL)
*pValue ^= true; *pValue ^= true;
/* /*
if(pCall!=NULL) if(pCall!=NULL)
{ {
pCall(); pCall();
} }
*/ */
/* /*
check = false; check = false;
pause(); pause();
check = true; check = true;
*/ */
stop(); stop();
// cout << "Timer: завершил поток..."<< endl; // cout << "Timer: завершил поток..."<< endl;
} }
......
...@@ -66,7 +66,7 @@ ostream& UniSetTypes::Configuration::help(ostream& os) ...@@ -66,7 +66,7 @@ ostream& UniSetTypes::Configuration::help(ostream& os)
print_help(os,25,"--uniport num","использовать заданный порт (переопеределяет 'defaultport' заданный в конф. файле в разделе <nodes>)\n"); print_help(os,25,"--uniport num","использовать заданный порт (переопеределяет 'defaultport' заданный в конф. файле в разделе <nodes>)\n");
print_help(os,25,"--localIOR {1,0}","использовать локальные файлы для получения IOR (т.е. не использовать omniNames). Переопределяет параметр в конфигурационном файле.\n"); print_help(os,25,"--localIOR {1,0}","использовать локальные файлы для получения IOR (т.е. не использовать omniNames). Переопределяет параметр в конфигурационном файле.\n");
print_help(os,25,"--transientIOR {1,0}","использовать генерируемые IOR(не постоянные). Переопределяет параметр в конфигурационном файле. Default=1\n"); print_help(os,25,"--transientIOR {1,0}","использовать генерируемые IOR(не постоянные). Переопределяет параметр в конфигурационном файле. Default=1\n");
return os << "\nПример использования:\t myUniSetProgram " return os << "\nПример использования:\t myUniSetProgram "
<< "--ulog-add-levels level1,info,system,warn --ulog-log-in-file myprogrpam.log\n\n"; << "--ulog-add-levels level1,info,system,warn --ulog-log-in-file myprogrpam.log\n\n";
} }
...@@ -80,7 +80,7 @@ namespace UniSetTypes ...@@ -80,7 +80,7 @@ namespace UniSetTypes
Configuration::Configuration(): Configuration::Configuration():
oind(NULL), oind(NULL),
NSName("NameService"), NSName("NameService"),
repeatCount(2),repeatTimeout(100), repeatCount(2),repeatTimeout(100),
localDBServer(UniSetTypes::DefaultObjectId), localDBServer(UniSetTypes::DefaultObjectId),
localNode(UniSetTypes::DefaultObjectId), localNode(UniSetTypes::DefaultObjectId),
localNodeName(""), localNodeName(""),
...@@ -124,7 +124,7 @@ Configuration::Configuration( int argc, const char* const* argv, ObjectIndex* _o ...@@ -124,7 +124,7 @@ Configuration::Configuration( int argc, const char* const* argv, ObjectIndex* _o
_argc(argc), _argc(argc),
_argv(argv), _argv(argv),
NSName("NameService"), NSName("NameService"),
repeatCount(2),repeatTimeout(100), repeatCount(2),repeatTimeout(100),
localDBServer(UniSetTypes::DefaultObjectId), localDBServer(UniSetTypes::DefaultObjectId),
localNode(UniSetTypes::DefaultObjectId), localNode(UniSetTypes::DefaultObjectId),
localNodeName(""), localNodeName(""),
...@@ -143,7 +143,7 @@ Configuration::Configuration( int argc, const char* const* argv, const string& f ...@@ -143,7 +143,7 @@ Configuration::Configuration( int argc, const char* const* argv, const string& f
_argc(argc), _argc(argc),
_argv(argv), _argv(argv),
NSName("NameService"), NSName("NameService"),
repeatCount(2),repeatTimeout(100), repeatCount(2),repeatTimeout(100),
localDBServer(UniSetTypes::DefaultObjectId), localDBServer(UniSetTypes::DefaultObjectId),
localNode(UniSetTypes::DefaultObjectId), localNode(UniSetTypes::DefaultObjectId),
localNodeName(""), localNodeName(""),
...@@ -203,7 +203,7 @@ void Configuration::initConfiguration( int argc, const char* const* argv ) ...@@ -203,7 +203,7 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
// cerr << "*************** initConfiguration: xmlOpen: " << pt.getCurrent() << " msec " << endl; // cerr << "*************** initConfiguration: xmlOpen: " << pt.getCurrent() << " msec " << endl;
// pt.reset(); // pt.reset();
// Init ObjectIndex interface // Init ObjectIndex interface
{ {
if( oind == NULL ) if( oind == NULL )
...@@ -229,7 +229,7 @@ void Configuration::initConfiguration( int argc, const char* const* argv ) ...@@ -229,7 +229,7 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
} }
} }
} }
// Настраиваем отладочные логи // Настраиваем отладочные логи
initDebug(ulog,"UniSetDebug"); initDebug(ulog,"UniSetDebug");
...@@ -294,7 +294,7 @@ void Configuration::initConfiguration( int argc, const char* const* argv ) ...@@ -294,7 +294,7 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
ostringstream uri; ostringstream uri;
uri << "corbaname::" << it.host << ":" << it.port; uri << "corbaname::" << it.host << ":" << it.port;
if( !omni::omniInitialReferences::setFromArgs(name.c_str(), uri.str().c_str()) ) if( !omni::omniInitialReferences::setFromArgs(name.c_str(), uri.str().c_str()) )
cerr << "**********************!!!! FAILED ADD name=" << name << " uri=" << uri.str() << endl; cerr << "**********************!!!! FAILED ADD name=" << name << " uri=" << uri.str() << endl;
assert( i < _argc ); assert( i < _argc );
} }
...@@ -329,12 +329,12 @@ void Configuration::initConfiguration( int argc, const char* const* argv ) ...@@ -329,12 +329,12 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
ostringstream uri; ostringstream uri;
uri << "corbaname::" << getProp(nsnode,"host") << ":" << defPort; uri << "corbaname::" << getProp(nsnode,"host") << ":" << defPort;
if( !omni::omniInitialReferences::setFromArgs(ns_name.str().c_str(), uri.str().c_str()) ) if( !omni::omniInitialReferences::setFromArgs(ns_name.str().c_str(), uri.str().c_str()) )
cerr << "**********************!!!! FAILED ADD name=" <<ns_name << " uri=" << uri.str() << endl; cerr << "**********************!!!! FAILED ADD name=" <<ns_name << " uri=" << uri.str() << endl;
} }
} }
_argv = new_argv; _argv = new_argv;
// ------------- CORBA INIT ------------- // ------------- CORBA INIT -------------
// orb init // orb init
orb = CORBA::ORB_init(_argc,(char**)_argv); orb = CORBA::ORB_init(_argc,(char**)_argv);
// create policy // create policy
...@@ -357,10 +357,10 @@ void Configuration::initConfiguration( int argc, const char* const* argv ) ...@@ -357,10 +357,10 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
pl[1] = root_poa->create_servant_retention_policy(PortableServer::RETAIN); pl[1] = root_poa->create_servant_retention_policy(PortableServer::RETAIN);
pl[2] = root_poa->create_request_processing_policy(PortableServer::USE_ACTIVE_OBJECT_MAP_ONLY); pl[2] = root_poa->create_request_processing_policy(PortableServer::USE_ACTIVE_OBJECT_MAP_ONLY);
// pl[3] = root_poa->create_thread_policy(PortableServer::SINGLE_THREAD_MODEL); // pl[3] = root_poa->create_thread_policy(PortableServer::SINGLE_THREAD_MODEL);
} }
policyList = pl; policyList = pl;
// --------------------------------------- // ---------------------------------------
} }
catch( Exception& ex ) catch( Exception& ex )
...@@ -663,7 +663,7 @@ void Configuration::createNodesList() ...@@ -663,7 +663,7 @@ void Configuration::createNodesList()
initNode(ninf, it); initNode(ninf, it);
uinfo << "Configuration(createNodesList): add to list of nodes: node=" << nodename << " id=" << ninf.id << endl; uinfo << "Configuration(createNodesList): add to list of nodes: node=" << nodename << " id=" << ninf.id << endl;
lnodes.push_back(ninf); lnodes.push_back(ninf);
} }
uinfo << "Configuration(createNodesList): size of node list " << lnodes.size() << endl; uinfo << "Configuration(createNodesList): size of node list " << lnodes.size() << endl;
} }
...@@ -957,7 +957,7 @@ UniversalIO::IOType Configuration::getIOType( UniSetTypes::ObjectId id ) ...@@ -957,7 +957,7 @@ UniversalIO::IOType Configuration::getIOType( UniSetTypes::ObjectId id )
UniversalIO::IOType Configuration::getIOType( const std::string& name ) UniversalIO::IOType Configuration::getIOType( const std::string& name )
{ {
// Если указано "короткое" имя // Если указано "короткое" имя
// то просто сперва ищём ID, а потом по нему // то просто сперва ищём ID, а потом по нему
// iotype // iotype
ObjectId id = getSensorID(name); ObjectId id = getSensorID(name);
if( id != DefaultObjectId ) if( id != DefaultObjectId )
......
...@@ -38,21 +38,21 @@ static error_item errorTags[] = { ...@@ -38,21 +38,21 @@ static error_item errorTags[] = {
{ Debug::LEVEL2, "level2", ("UniSet debug level2")}, { Debug::LEVEL2, "level2", ("UniSet debug level2")},
{ Debug::LEVEL3, "level3", ("UniSet debug level3")}, { Debug::LEVEL3, "level3", ("UniSet debug level3")},
{ Debug::LEVEL4, "level4", ("UniSet debug level4")}, { Debug::LEVEL4, "level4", ("UniSet debug level4")},
{ Debug::LEVEL5, "level5", ("UniSet debug level5")}, { Debug::LEVEL5, "level5", ("UniSet debug level5")},
{ Debug::LEVEL6, "level6", ("UniSet debug level6")}, { Debug::LEVEL6, "level6", ("UniSet debug level6")},
{ Debug::LEVEL7, "level7", ("UniSet debug level7")}, { Debug::LEVEL7, "level7", ("UniSet debug level7")},
{ Debug::LEVEL8, "level8", ("UniSet debug level8")}, { Debug::LEVEL8, "level8", ("UniSet debug level8")},
{ Debug::LEVEL9, "level9", ("UniSet debug level9")}, { Debug::LEVEL9, "level9", ("UniSet debug level9")},
{ Debug::REPOSITORY,"repository",("UniSet repository messages")}, { Debug::REPOSITORY,"repository",("UniSet repository messages")},
{ Debug::ANY, "any", ("All debugging messages")}, { Debug::ANY, "any", ("All debugging messages")},
{ Debug::EXCEPTION, "exception", ("Exception debug messages")}, { Debug::EXCEPTION, "exception", ("Exception debug messages")},
}; };
static const int numErrorTags = sizeof(errorTags)/sizeof(error_item); static const int numErrorTags = sizeof(errorTags)/sizeof(error_item);
Debug::type const Debug::ANY = Debug::type( Debug::type const Debug::ANY = Debug::type(
Debug::INFO | Debug::INIT | Debug::WARN | Debug::CRIT | Debug::INFO | Debug::INIT | Debug::WARN | Debug::CRIT |
Debug::LEVEL1 | Debug::LEVEL2 | Debug::LEVEL3 | Debug::LEVEL4 | Debug::LEVEL1 | Debug::LEVEL2 | Debug::LEVEL3 | Debug::LEVEL4 |
...@@ -71,13 +71,13 @@ Debug::type Debug::value(string const & val) ...@@ -71,13 +71,13 @@ Debug::type Debug::value(string const & val)
string tmp(v.substr(0, st)); string tmp(v.substr(0, st));
if (tmp.empty()) if (tmp.empty())
break; break;
// Is it a number? // Is it a number?
//if (isStrInt(tmp)) //if (isStrInt(tmp))
// l |= static_cast<type>(strToInt(tmp)); // l |= static_cast<type>(strToInt(tmp));
//else //else
// Search for an explicit name // Search for an explicit name
for (int i = 0 ; i < numErrorTags ; ++i) for (int i = 0 ; i < numErrorTags ; ++i)
if (tmp == errorTags[i].name) { if (tmp == errorTags[i].name) {
l |= errorTags[i].level; l |= errorTags[i].level;
break; break;
...@@ -112,7 +112,7 @@ void Debug::showTags(ostream & os) ...@@ -112,7 +112,7 @@ void Debug::showTags(ostream & os)
std::ostream& operator<<(std::ostream& os, Debug::type level ) std::ostream& operator<<(std::ostream& os, Debug::type level )
{ {
for (int i = 0 ; i < numErrorTags ; ++i) for (int i = 0 ; i < numErrorTags ; ++i)
{ {
if( errorTags[i].level & level) // errorTags[i].level != Debug::ANY && errorTags[i].level != Debug::NONE if( errorTags[i].level & level) // errorTags[i].level != Debug::ANY && errorTags[i].level != Debug::NONE
......
...@@ -216,7 +216,7 @@ const DebugStream& DebugStream::operator=( const DebugStream& r ) ...@@ -216,7 +216,7 @@ const DebugStream& DebugStream::operator=( const DebugStream& r )
fname = r.fname; fname = r.fname;
if( !r.fname.empty() ) if( !r.fname.empty() )
logFile(fname); logFile(fname);
return *this; return *this;
} }
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
...@@ -243,7 +243,7 @@ std::ostream & DebugStream::debug(Debug::type t) ...@@ -243,7 +243,7 @@ std::ostream & DebugStream::debug(Debug::type t)
*this << "(" << std::setfill(' ') << std::setw(6) << t << "): "; // "):\t"; *this << "(" << std::setfill(' ') << std::setw(6) << t << "): "; // "):\t";
return *this; return *this;
} }
return nullstream; return nullstream;
} }
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
...@@ -251,7 +251,7 @@ std::ostream& DebugStream::operator()(Debug::type t) ...@@ -251,7 +251,7 @@ std::ostream& DebugStream::operator()(Debug::type t)
{ {
if(dt & t) if(dt & t)
return *this; return *this;
return nullstream; return nullstream;
} }
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
...@@ -265,7 +265,7 @@ std::ostream& DebugStream::printDate(Debug::type t, char brk) ...@@ -265,7 +265,7 @@ std::ostream& DebugStream::printDate(Debug::type t, char brk)
<< std::setw(2) << std::setfill('0') << tms->tm_mon+1 << brk << std::setw(2) << std::setfill('0') << tms->tm_mon+1 << brk
<< std::setw(4) << std::setfill('0') << tms->tm_year+1900; << std::setw(4) << std::setfill('0') << tms->tm_year+1900;
} }
return nullstream; return nullstream;
} }
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
...@@ -279,7 +279,7 @@ std::ostream& DebugStream::printTime(Debug::type t, char brk) ...@@ -279,7 +279,7 @@ std::ostream& DebugStream::printTime(Debug::type t, char brk)
<< std::setw(2) << std::setfill('0') << tms->tm_min << brk << std::setw(2) << std::setfill('0') << tms->tm_min << brk
<< std::setw(2) << std::setfill('0') << tms->tm_sec; << std::setw(2) << std::setfill('0') << tms->tm_sec;
} }
return nullstream; return nullstream;
} }
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
...@@ -296,7 +296,7 @@ std::ostream& DebugStream::printDateTime(Debug::type t) ...@@ -296,7 +296,7 @@ std::ostream& DebugStream::printDateTime(Debug::type t)
<< std::setw(2) << std::setfill('0') << tms->tm_min << ":" << std::setw(2) << std::setfill('0') << tms->tm_min << ":"
<< std::setw(2) << std::setfill('0') << tms->tm_sec; << std::setw(2) << std::setfill('0') << tms->tm_sec;
} }
return nullstream; return nullstream;
} }
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
......
...@@ -159,7 +159,7 @@ timeout_t LT_Object::askTimer( UniSetTypes::TimerId timerid, timeout_t timeMS, c ...@@ -159,7 +159,7 @@ timeout_t LT_Object::askTimer( UniSetTypes::TimerId timerid, timeout_t timeMS, c
} }
else // отказ (при timeMS == 0) else // отказ (при timeMS == 0)
{ {
uinfo << "(LT_askTimer): поступил отказ по таймеру id="<< timerid << endl; uinfo << "(LT_askTimer): поступил отказ по таймеру id="<< timerid << endl;
{ // lock { // lock
uniset_rwmutex_wrlock lock(lstMutex); uniset_rwmutex_wrlock lock(lstMutex);
tlst.erase( std::remove_if(tlst.begin(),tlst.end(),Timer_eq(timerid)), tlst.end() ); tlst.erase( std::remove_if(tlst.begin(),tlst.end(),Timer_eq(timerid)), tlst.end() );
......
...@@ -6,7 +6,7 @@ noinst_LTLIBRARIES = libVarious.la ...@@ -6,7 +6,7 @@ noinst_LTLIBRARIES = libVarious.la
libVarious_la_CPPFLAGS = $(SIGC_CFLAGS) $(COMCPP_CFLAGS) libVarious_la_CPPFLAGS = $(SIGC_CFLAGS) $(COMCPP_CFLAGS)
libVarious_la_LIBADD = $(SIGC_LIBS) $(COMCPP_LIBS) libVarious_la_LIBADD = $(SIGC_LIBS) $(COMCPP_LIBS)
libVarious_la_SOURCES = DebugStream.cc Debug.cc UniXML.cc MessageType.cc Configuration.cc \ libVarious_la_SOURCES = DebugStream.cc Debug.cc UniXML.cc MessageType.cc Configuration.cc \
Restorer_XML.cc RunLock.cc Mutex.cc SViewer.cc SMonitor.cc LT_Object.cc WDTInterface.cc Restorer_XML.cc RunLock.cc Mutex.cc SViewer.cc SMonitor.cc LT_Object.cc WDTInterface.cc
local-clean: local-clean:
rm -rf *iSK.cc rm -rf *iSK.cc
...@@ -90,7 +90,7 @@ tid(UniSetTypes::DefaultThresholdId) ...@@ -90,7 +90,7 @@ tid(UniSetTypes::DefaultThresholdId)
} }
SensorMessage::SensorMessage(ObjectId id, long value, const IOController_i::CalibrateInfo& ci, SensorMessage::SensorMessage(ObjectId id, long value, const IOController_i::CalibrateInfo& ci,
Priority priority, Priority priority,
UniversalIO::IOType st, ObjectId consumer): UniversalIO::IOType st, ObjectId consumer):
id(id), id(id),
value(value), value(value),
...@@ -102,7 +102,7 @@ tid(UniSetTypes::DefaultThresholdId) ...@@ -102,7 +102,7 @@ tid(UniSetTypes::DefaultThresholdId)
{ {
type = Message::SensorInfo; type = Message::SensorInfo;
this->priority = priority; this->priority = priority;
this->consumer = consumer; this->consumer = consumer;
sm_tv_sec = tm.tv_sec; sm_tv_sec = tm.tv_sec;
sm_tv_usec = tm.tv_usec; sm_tv_usec = tm.tv_usec;
} }
...@@ -154,7 +154,7 @@ TimerMessage::TimerMessage(const VoidMessage *msg): ...@@ -154,7 +154,7 @@ TimerMessage::TimerMessage(const VoidMessage *msg):
memcpy(this,msg,sizeof(*this)); memcpy(this,msg,sizeof(*this));
assert(this->type == Message::Timer); assert(this->type == Message::Timer);
} }
//-------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------
ConfirmMessage::ConfirmMessage( const VoidMessage *msg ): ConfirmMessage::ConfirmMessage( const VoidMessage *msg ):
Message(1) // вызываем dummy-конструктор, который не инициализирует данные (оптимизация) Message(1) // вызываем dummy-конструктор, который не инициализирует данные (оптимизация)
{ {
...@@ -180,7 +180,7 @@ ConfirmMessage::ConfirmMessage(long in_sensor_id, ...@@ -180,7 +180,7 @@ ConfirmMessage::ConfirmMessage(long in_sensor_id,
priority = in_priority; priority = in_priority;
} }
//-------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------
} // end of namespace UniSetTypes } // end of namespace UniSetTypes
//-------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------
...@@ -87,7 +87,7 @@ uniset_mutex_lock::uniset_mutex_lock( uniset_mutex& m, const time_t timeMS ): ...@@ -87,7 +87,7 @@ uniset_mutex_lock::uniset_mutex_lock( uniset_mutex& m, const time_t timeMS ):
{ {
if( !mutex->name().empty() ) if( !mutex->name().empty() )
{ {
ulog9 << "(mutex_lock): вышло заданное время ожидания " ulog9 << "(mutex_lock): вышло заданное время ожидания "
<< timeMS << " msec для " << mutex->name() << endl; << timeMS << " msec для " << mutex->name() << endl;
} }
return; return;
......
...@@ -79,7 +79,7 @@ bool Restorer_XML::getConsumerInfo( UniXML_iterator& it, ...@@ -79,7 +79,7 @@ bool Restorer_XML::getConsumerInfo( UniXML_iterator& it,
cname = conf->getServicesSection()+"/"+cname; cname = conf->getServicesSection()+"/"+cname;
else else
{ {
uwarn << "(Restorer_XML:getConsumerInfo): неизвестный тип объекта " uwarn << "(Restorer_XML:getConsumerInfo): неизвестный тип объекта "
<< otype << endl; << otype << endl;
return false; return false;
} }
...@@ -87,7 +87,7 @@ bool Restorer_XML::getConsumerInfo( UniXML_iterator& it, ...@@ -87,7 +87,7 @@ bool Restorer_XML::getConsumerInfo( UniXML_iterator& it,
cid = conf->oind->getIdByName(cname); cid = conf->oind->getIdByName(cname);
if( cid == UniSetTypes::DefaultObjectId ) if( cid == UniSetTypes::DefaultObjectId )
{ {
ucrit << "(Restorer_XML:getConsumerInfo): НЕ НАЙДЕН ИДЕНТИФИКАТОР заказчика -->" ucrit << "(Restorer_XML:getConsumerInfo): НЕ НАЙДЕН ИДЕНТИФИКАТОР заказчика -->"
<< cname << endl; << cname << endl;
return false; return false;
} }
...@@ -100,7 +100,7 @@ bool Restorer_XML::getConsumerInfo( UniXML_iterator& it, ...@@ -100,7 +100,7 @@ bool Restorer_XML::getConsumerInfo( UniXML_iterator& it,
if( cnode == UniSetTypes::DefaultObjectId ) if( cnode == UniSetTypes::DefaultObjectId )
{ {
ucrit << "(Restorer_XML:getConsumerInfo): НЕ НАЙДЕН ИДЕНТИФИКАТОР узла -->" ucrit << "(Restorer_XML:getConsumerInfo): НЕ НАЙДЕН ИДЕНТИФИКАТОР узла -->"
<< cnodename << endl; << cnodename << endl;
return false; return false;
} }
...@@ -119,7 +119,7 @@ bool Restorer_XML::check_consumer_item( UniXML_iterator& it ) ...@@ -119,7 +119,7 @@ bool Restorer_XML::check_consumer_item( UniXML_iterator& it )
return UniSetTypes::check_filter(it,c_filterField,c_filterValue); return UniSetTypes::check_filter(it,c_filterField,c_filterValue);
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
xmlNode* Restorer_XML::find_node( const UniXML& xml, xmlNode* root, xmlNode* Restorer_XML::find_node( const UniXML& xml, xmlNode* root,
const string& nodename, const string& nm ) const string& nodename, const string& nm )
{ {
UniXML_iterator it(root); UniXML_iterator it(root);
...@@ -131,7 +131,7 @@ xmlNode* Restorer_XML::find_node( const UniXML& xml, xmlNode* root, ...@@ -131,7 +131,7 @@ xmlNode* Restorer_XML::find_node( const UniXML& xml, xmlNode* root,
{ {
if( nm.empty() ) if( nm.empty() )
return it; return it;
if( xml.getProp(it, "name") == nm ) if( xml.getProp(it, "name") == nm )
return it; return it;
} }
......
...@@ -42,18 +42,18 @@ RunLock::~RunLock() ...@@ -42,18 +42,18 @@ RunLock::~RunLock()
bool RunLock::isLocked(const string& name) bool RunLock::isLocked(const string& name)
{ {
FILE *out = fopen( string(name + ".lock" ).c_str(), "r" ); FILE *out = fopen( string(name + ".lock" ).c_str(), "r" );
if( out ) if( out )
{ {
char ptr[10]; char ptr[10];
fscanf( out, "%9s", ptr ); fscanf( out, "%9s", ptr );
DIR *d = opendir( "/proc" ); DIR *d = opendir( "/proc" );
dirent *dir; dirent *dir;
while((dir = readdir(d))) while((dir = readdir(d)))
{ {
if( !strcmp( ptr, dir->d_name ) ) if( !strcmp( ptr, dir->d_name ) )
{ {
// по хорошему здесь надо бы проверять // по хорошему здесь надо бы проверять
// статус на зомби // статус на зомби
/* /*
string path(dir->d_name); string path(dir->d_name);
...@@ -70,19 +70,19 @@ bool RunLock::isLocked(const string& name) ...@@ -70,19 +70,19 @@ bool RunLock::isLocked(const string& name)
break; break;
} }
} }
*/ */
uinfo << "(RunLock): programm " << name << " already run" << endl; uinfo << "(RunLock): programm " << name << " already run" << endl;
fclose(out); fclose(out);
closedir(d); closedir(d);
return true; return true;
} }
} }
fclose(out); fclose(out);
closedir(d); closedir(d);
} }
return false; return false;
} }
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
...@@ -90,7 +90,7 @@ bool RunLock::lock( const string& name ) ...@@ -90,7 +90,7 @@ bool RunLock::lock( const string& name )
{ {
if( !isLocked(name) ) if( !isLocked(name) )
{ {
FILE *out = fopen( string(name + ".lock" ).c_str(), "w+" ); FILE *out = fopen( string(name + ".lock" ).c_str(), "w+" );
if(out) if(out)
{ {
fprintf( out, "%d\n", getpid() ); fprintf( out, "%d\n", getpid() );
...@@ -98,14 +98,14 @@ bool RunLock::lock( const string& name ) ...@@ -98,14 +98,14 @@ bool RunLock::lock( const string& name )
return true; return true;
} }
} }
return false; return false;
} }
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
bool RunLock::unlock(const string& name) bool RunLock::unlock(const string& name)
{ {
string fname(name + ".lock"); string fname(name + ".lock");
FILE *out = fopen( fname.c_str(), "r" ); FILE *out = fopen( fname.c_str(), "r" );
if( out ) if( out )
{ {
fclose(out); fclose(out);
......
...@@ -21,8 +21,8 @@ SMonitor::SMonitor(ObjectId id): ...@@ -21,8 +21,8 @@ SMonitor::SMonitor(ObjectId id):
script("") script("")
{ {
string sid(conf->getArgParam("--sid")); string sid(conf->getArgParam("--sid"));
lst = UniSetTypes::getSInfoList(sid,UniSetTypes::conf); lst = UniSetTypes::getSInfoList(sid,UniSetTypes::conf);
if( lst.empty() ) if( lst.empty() )
throw SystemError("Не задан список датчиков (--sid)"); throw SystemError("Не задан список датчиков (--sid)");
...@@ -84,7 +84,7 @@ void SMonitor::sysCommand( const SystemMessage *sm ) ...@@ -84,7 +84,7 @@ void SMonitor::sysCommand( const SystemMessage *sm )
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
void SMonitor::sensorInfo( const SensorMessage* si ) void SMonitor::sensorInfo( const SensorMessage* si )
{ {
cout << "(" << setw(6) << si->id << "): " << setw(8) << timeToString(si->sm_tv_sec,":") cout << "(" << setw(6) << si->id << "): " << setw(8) << timeToString(si->sm_tv_sec,":")
<< "(" << setw(6) << si->sm_tv_usec << "): "; << "(" << setw(6) << si->sm_tv_usec << "): ";
cout << setw(45) << conf->oind->getMapName(si->id); cout << setw(45) << conf->oind->getMapName(si->id);
cout << "\tvalue=" << si->value << "\tfvalue=" << ( (float)si->value / pow(10.0,si->ci.precision) ) << endl; cout << "\tvalue=" << si->value << "\tfvalue=" << ( (float)si->value / pow(10.0,si->ci.precision) ) << endl;
...@@ -97,7 +97,7 @@ void SMonitor::sensorInfo( const SensorMessage* si ) ...@@ -97,7 +97,7 @@ void SMonitor::sensorInfo( const SensorMessage* si )
if( script[0] == '.' || script[0] == '/' ) if( script[0] == '.' || script[0] == '/' )
cmd << script; cmd << script;
else else
cmd << conf->getBinDir() << script; cmd << conf->getBinDir() << script;
cmd << " " << si->id << " " << si->value << " " << si->sm_tv_sec << " " << si->sm_tv_usec; cmd << " " << si->id << " " << si->value << " " << si->sm_tv_sec << " " << si->sm_tv_usec;
......
...@@ -50,7 +50,7 @@ SViewer::~SViewer() ...@@ -50,7 +50,7 @@ SViewer::~SViewer()
void SViewer::on_SViewer_destroy() void SViewer::on_SViewer_destroy()
{ {
// activator->oakill(SIGINT); // activator->oakill(SIGINT);
// msleep(500); // msleep(500);
// activator->oakill(SIGKILL); // activator->oakill(SIGKILL);
} }
...@@ -82,14 +82,14 @@ void SViewer::view() ...@@ -82,14 +82,14 @@ void SViewer::view()
void SViewer::readSection( const string& section, const string& secRoot ) void SViewer::readSection( const string& section, const string& secRoot )
{ {
ListObjectName lst; ListObjectName lst;
string curSection; string curSection;
try try
{ {
if ( secRoot.empty() ) if ( secRoot.empty() )
curSection = section; curSection = section;
else else
curSection=secRoot+"/"+section; curSection=secRoot+"/"+section;
// cout << " read sectionlist ..."<< endl; // cout << " read sectionlist ..."<< endl;
if( !rep.listSections(curSection, &lst, 1000) ) if( !rep.listSections(curSection, &lst, 1000) )
{ {
...@@ -102,7 +102,7 @@ void SViewer::readSection( const string& section, const string& secRoot ) ...@@ -102,7 +102,7 @@ void SViewer::readSection( const string& section, const string& secRoot )
cout << "(readSection): get sectionlist ... catch..." << endl; cout << "(readSection): get sectionlist ... catch..." << endl;
} }
if( !lst.empty() ) if( !lst.empty() )
{ {
for ( ListObjectName::const_iterator li=lst.begin();li!=lst.end();++li) for ( ListObjectName::const_iterator li=lst.begin();li!=lst.end();++li)
{ {
...@@ -184,7 +184,7 @@ void SViewer::getInfo( ObjectId id ) ...@@ -184,7 +184,7 @@ void SViewer::getInfo( ObjectId id )
IOController_i::SensorInfoSeq_var amap = ioc->getSensorsMap(); IOController_i::SensorInfoSeq_var amap = ioc->getSensorsMap();
IONotifyController_i::ThresholdsListSeq_var tlst = ioc->getThresholdsList(); IONotifyController_i::ThresholdsListSeq_var tlst = ioc->getThresholdsList();
try try
{ updateSensors(amap, id); { updateSensors(amap, id);
}catch(...){} }catch(...){}
...@@ -226,7 +226,7 @@ void SViewer::updateSensors( IOController_i::SensorInfoSeq_var& amap, UniSetType ...@@ -226,7 +226,7 @@ void SViewer::updateSensors( IOController_i::SensorInfoSeq_var& amap, UniSetType
printInfo( amap[i].si.id, name, amap[i].value, owner, txtname, "AI"); printInfo( amap[i].si.id, name, amap[i].value, owner, txtname, "AI");
} }
} }
cout << "------------------------------------------------------\n"; cout << "------------------------------------------------------\n";
cout << "\n======================================================\n" << owner; cout << "\n======================================================\n" << owner;
cout << "\t Выходы"; cout << "\t Выходы";
...@@ -242,7 +242,7 @@ void SViewer::updateSensors( IOController_i::SensorInfoSeq_var& amap, UniSetType ...@@ -242,7 +242,7 @@ void SViewer::updateSensors( IOController_i::SensorInfoSeq_var& amap, UniSetType
printInfo( amap[i].si.id, name, amap[i].value, owner, txtname, "AO"); printInfo( amap[i].si.id, name, amap[i].value, owner, txtname, "AO");
} }
} }
cout << "------------------------------------------------------\n"; cout << "------------------------------------------------------\n";
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
...@@ -276,7 +276,7 @@ void SViewer::updateThresholds( IONotifyController_i::ThresholdsListSeq_var& tls ...@@ -276,7 +276,7 @@ void SViewer::updateThresholds( IONotifyController_i::ThresholdsListSeq_var& tls
if( isShort ) if( isShort )
sname = ORepHelpers::getShortName(sname); sname = ORepHelpers::getShortName(sname);
cout << " | " << setw(60) << sname << " | " << setw(5) << tlst[i].value << endl; cout << " | " << setw(60) << sname << " | " << setw(5) << tlst[i].value << endl;
int m = tlst[i].tlist.length(); int m = tlst[i].tlist.length();
for( unsigned int k=0; k<m; k++ ) for( unsigned int k=0; k<m; k++ )
......
...@@ -106,7 +106,7 @@ void UniXML::close() ...@@ -106,7 +106,7 @@ void UniXML::close()
xmlFreeDoc(doc); xmlFreeDoc(doc);
doc=0; doc=0;
} }
filename = ""; filename = "";
} }
...@@ -121,7 +121,7 @@ string UniXML::getProp(const xmlNode* node, const string& name) ...@@ -121,7 +121,7 @@ string UniXML::getProp(const xmlNode* node, const string& name)
const char * text = (const char*)::xmlGetProp((xmlNode*)node, (const xmlChar*)name.c_str()); const char * text = (const char*)::xmlGetProp((xmlNode*)node, (const xmlChar*)name.c_str());
if( text == NULL ) if( text == NULL )
return ""; return "";
string t(text); string t(text);
xmlFree( (void*)text ); xmlFree( (void*)text );
return t; return t;
...@@ -137,7 +137,7 @@ int UniXML::getPIntProp(const xmlNode* node, const string& name, int def ) ...@@ -137,7 +137,7 @@ int UniXML::getPIntProp(const xmlNode* node, const string& name, int def )
string param = getProp(node,name); string param = getProp(node,name);
if( param.empty() ) if( param.empty() )
return def; return def;
return UniSetTypes::uni_atoi(param); return UniSetTypes::uni_atoi(param);
} }
...@@ -173,7 +173,7 @@ xmlNode* UniXML::copyNode(xmlNode* node, int recursive) ...@@ -173,7 +173,7 @@ xmlNode* UniXML::copyNode(xmlNode* node, int recursive)
/*! \bug Почему-то портятся русские имена (точнее становятся UTF8) /*! \bug Почему-то портятся русские имена (точнее становятся UTF8)
независимо от текущей локали файла независимо от текущей локали файла
спасает только такое вот дополнительное копирование списка свойств спасает только такое вот дополнительное копирование списка свойств
\bug Непонятный параметр 'target' \bug Непонятный параметр 'target'
- при указании NULL нормально работает - при указании NULL нормально работает
- при указании copynode - проблеммы с русским при сохранении - при указании copynode - проблеммы с русским при сохранении
- при указании node - SEGFAULT при попытке удалить исходный(node) узел - при указании node - SEGFAULT при попытке удалить исходный(node) узел
...@@ -323,7 +323,7 @@ bool UniXML_iterator::goThrowNext() ...@@ -323,7 +323,7 @@ bool UniXML_iterator::goThrowNext()
return goThrowNext(); return goThrowNext();
return true; return true;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
bool UniXML_iterator::goPrev() bool UniXML_iterator::goPrev()
{ {
if( !curNode ) // || !curNode->prev ) if( !curNode ) // || !curNode->prev )
...@@ -335,33 +335,33 @@ bool UniXML_iterator::goPrev() ...@@ -335,33 +335,33 @@ bool UniXML_iterator::goPrev()
return goPrev(); return goPrev();
return true; return true;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
bool UniXML_iterator::canPrev() bool UniXML_iterator::canPrev()
{ {
if( !curNode || !curNode->prev ) if( !curNode || !curNode->prev )
return false; return false;
return true; return true;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
bool UniXML_iterator::canNext() bool UniXML_iterator::canNext()
{ {
if (!curNode || !curNode->next ) if (!curNode || !curNode->next )
return false; return false;
return true; return true;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
bool UniXML_iterator::goParent() bool UniXML_iterator::goParent()
{ {
if( !curNode ) if( !curNode )
return false; return false;
if( !curNode->parent ) if( !curNode->parent )
return false; return false;
curNode = curNode->parent; curNode = curNode->parent;
return true; return true;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
bool UniXML_iterator::goChildren() bool UniXML_iterator::goChildren()
{ {
if (!curNode || !curNode->children ) if (!curNode || !curNode->children )
...@@ -422,9 +422,9 @@ void UniXML_iterator::setProp( const string& name, const string& text ) ...@@ -422,9 +422,9 @@ void UniXML_iterator::setProp( const string& name, const string& text )
UniXML::setProp(curNode, name, text); UniXML::setProp(curNode, name, text);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
bool UniXML_iterator::findName( const std::string& node, const std::string& searchname ) bool UniXML_iterator::findName( const std::string& node, const std::string& searchname )
{ {
while( this->find(node) ) while( this->find(node) )
{ {
if ( searchname == getProp("name") ) if ( searchname == getProp("name") )
...@@ -435,47 +435,47 @@ bool UniXML_iterator::findName( const std::string& node, const std::string& sear ...@@ -435,47 +435,47 @@ bool UniXML_iterator::findName( const std::string& node, const std::string& sear
return false; return false;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
bool UniXML_iterator::find( const std::string& searchnode ) bool UniXML_iterator::find( const std::string& searchnode )
{ {
// Функция ищет "в ширину и в глубь" // Функция ищет "в ширину и в глубь"
xmlNode* rnode = curNode; xmlNode* rnode = curNode;
while (curNode != NULL) while (curNode != NULL)
{ {
while( curNode->children ) while( curNode->children )
{ {
curNode = curNode->children; curNode = curNode->children;
if ( searchnode == (const char*)curNode->name ) if ( searchnode == (const char*)curNode->name )
return true; return true;
} }
while( !curNode->next && curNode->parent ) while( !curNode->next && curNode->parent )
{ {
// выше исходного узла "подыматься" нельзя // выше исходного узла "подыматься" нельзя
if( curNode == rnode ) if( curNode == rnode )
break; break;
curNode = curNode->parent; curNode = curNode->parent;
} }
curNode = curNode->next; curNode = curNode->next;
if ( curNode && searchnode == (const char*)curNode->name ) if ( curNode && searchnode == (const char*)curNode->name )
{ {
return true; return true;
} }
} }
return false; return false;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
UniXML_iterator UniXML_iterator::operator++() UniXML_iterator UniXML_iterator::operator++()
{ {
if (!curNode->next) if (!curNode->next)
{ {
curNode=curNode->next; curNode=curNode->next;
return *this; return *this;
} }
...@@ -486,7 +486,7 @@ UniXML_iterator UniXML_iterator::operator++() ...@@ -486,7 +486,7 @@ UniXML_iterator UniXML_iterator::operator++()
if (getName() == "text" || getName() == "comment") if (getName() == "text" || getName() == "comment")
continue; continue;
else else
break; break;
} }
return *this; return *this;
...@@ -497,18 +497,18 @@ UniXML_iterator UniXML_iterator::operator++(int) ...@@ -497,18 +497,18 @@ UniXML_iterator UniXML_iterator::operator++(int)
UniXML_iterator it = *this; UniXML_iterator it = *this;
if (!curNode->next) if (!curNode->next)
{ {
curNode=curNode->next; curNode=curNode->next;
return it; return it;
} }
for(;;) for(;;)
{ {
curNode=curNode->next; curNode=curNode->next;
if (getName() == "text" || getName() == "comment") if (getName() == "text" || getName() == "comment")
continue; continue;
else else
break; break;
} }
return it; return it;
...@@ -518,7 +518,7 @@ UniXML_iterator UniXML_iterator::operator++(int) ...@@ -518,7 +518,7 @@ UniXML_iterator UniXML_iterator::operator++(int)
UniXML_iterator UniXML_iterator::operator--() UniXML_iterator UniXML_iterator::operator--()
{ {
if (!curNode->prev) if (!curNode->prev)
{ {
curNode=curNode->prev; curNode=curNode->prev;
return *this; return *this;
} }
...@@ -529,7 +529,7 @@ UniXML_iterator UniXML_iterator::operator--() ...@@ -529,7 +529,7 @@ UniXML_iterator UniXML_iterator::operator--()
if (getName() == "text" || getName() == "comment") if (getName() == "text" || getName() == "comment")
continue; continue;
else else
break; break;
} }
return *this; return *this;
...@@ -540,18 +540,18 @@ UniXML_iterator UniXML_iterator::operator--(int) ...@@ -540,18 +540,18 @@ UniXML_iterator UniXML_iterator::operator--(int)
UniXML_iterator it = *this; UniXML_iterator it = *this;
if (!curNode->prev) if (!curNode->prev)
{ {
curNode=curNode->prev; curNode=curNode->prev;
return it; return it;
} }
for(;;) for(;;)
{ {
curNode=curNode->prev; curNode=curNode->prev;
if (getName() == "text" || getName() == "comment") if (getName() == "text" || getName() == "comment")
continue; continue;
else else
break; break;
} }
return it; return it;
......
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
#include <iostream> #include <iostream>
#include <cstring> #include <cstring>
...@@ -43,7 +43,7 @@ bool WDTInterface::stop() ...@@ -43,7 +43,7 @@ bool WDTInterface::stop()
cerr << ": Unable to open device " << dev << " with err: " << strerror(errno) << endl; cerr << ": Unable to open device " << dev << " with err: " << strerror(errno) << endl;
return false; return false;
} }
write(fd, (void*)CMD_STOP, sizeof(CMD_STOP)); write(fd, (void*)CMD_STOP, sizeof(CMD_STOP));
close(fd); close(fd);
return true; return true;
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
int main() int main()
{ {
UniXML* f = new UniXML(); UniXML* f = new UniXML();
f->newDoc("journal"); f->newDoc("journal");
xmlNode *cur,*beg; xmlNode *cur,*beg;
......
...@@ -21,12 +21,12 @@ int main(int argc, const char **argv) ...@@ -21,12 +21,12 @@ int main(int argc, const char **argv)
// conf = new Configuration(argc, argv, confile); // conf = new Configuration(argc, argv, confile);
for( int i=-5; i<4095; i+=100 ) for( int i=-5; i<4095; i+=100 )
{ {
cout << "raw=" << (817+i) cout << "raw=" << (817+i)
<< " cal=" << lcalibrate(817+i,817,4095,0,400) << " cal=" << lcalibrate(817+i,817,4095,0,400)
<< endl; << endl;
} }
return 0; return 0;
} }
catch(SystemError& err) catch(SystemError& err)
...@@ -41,6 +41,6 @@ int main(int argc, const char **argv) ...@@ -41,6 +41,6 @@ int main(int argc, const char **argv)
{ {
cerr << "(calibration): catch(...)" << endl; cerr << "(calibration): catch(...)" << endl;
} }
return 1; return 1;
} }
...@@ -14,7 +14,7 @@ int main(int argc, const char **argv) ...@@ -14,7 +14,7 @@ int main(int argc, const char **argv)
cout << "--confile - Configuration file. Default: test.xml" << endl; cout << "--confile - Configuration file. Default: test.xml" << endl;
return 0; return 0;
} }
cout << "**** uni_atoi('')=" << uni_atoi("") << endl; cout << "**** uni_atoi('')=" << uni_atoi("") << endl;
try try
...@@ -23,7 +23,7 @@ int main(int argc, const char **argv) ...@@ -23,7 +23,7 @@ int main(int argc, const char **argv)
conf = new Configuration(argc, argv, confile); conf = new Configuration(argc, argv, confile);
cout << "getLocalNode()=" << conf->getLocalNode() << endl; cout << "getLocalNode()=" << conf->getLocalNode() << endl;
string t(conf->oind->getTextName(1)); string t(conf->oind->getTextName(1));
cout << "**** check getTextName: " << ( t.empty() ? "FAILED" : "OK" ) << endl; cout << "**** check getTextName: " << ( t.empty() ? "FAILED" : "OK" ) << endl;
...@@ -35,8 +35,8 @@ int main(int argc, const char **argv) ...@@ -35,8 +35,8 @@ int main(int argc, const char **argv)
cout << "**** check getMapName: " << ( mn.empty() ? "FAILED" : "OK" ) << endl; cout << "**** check getMapName: " << ( mn.empty() ? "FAILED" : "OK" ) << endl;
cout << "getSensorID(Input1_S): " << conf->getSensorID("Input1_S") << endl; cout << "getSensorID(Input1_S): " << conf->getSensorID("Input1_S") << endl;
std::string iname = conf->oind->getNameById(1); std::string iname = conf->oind->getNameById(1);
cout << "getNameById(1): " << iname << endl; cout << "getNameById(1): " << iname << endl;
...@@ -45,11 +45,11 @@ int main(int argc, const char **argv) ...@@ -45,11 +45,11 @@ int main(int argc, const char **argv)
UniversalIO::IOType t1=conf->getIOType(1); UniversalIO::IOType t1=conf->getIOType(1);
cout << "**** getIOType for " << mn << endl; cout << "**** getIOType for " << mn << endl;
cout << "**** check getIOType(id): (" << t1 << ") " << ( t1 == UniversalIO::UnknownIOType ? "FAILED" : "OK" ) << endl; cout << "**** check getIOType(id): (" << t1 << ") " << ( t1 == UniversalIO::UnknownIOType ? "FAILED" : "OK" ) << endl;
UniversalIO::IOType t2=conf->getIOType(mn); UniversalIO::IOType t2=conf->getIOType(mn);
cout << "**** check getIOType(name): (" << t2 << ") " << ( t2 == UniversalIO::UnknownIOType ? "FAILED" : "OK" ) << endl; cout << "**** check getIOType(name): (" << t2 << ") " << ( t2 == UniversalIO::UnknownIOType ? "FAILED" : "OK" ) << endl;
UniversalIO::IOType t3=conf->getIOType("Input1_S"); UniversalIO::IOType t3=conf->getIOType("Input1_S");
cout << "**** check getIOType(name): for short name 'Input1_S': (" << t3 << ") " << ( t3 == UniversalIO::UnknownIOType ? "FAILED" : "OK" ) << endl; cout << "**** check getIOType(name): for short name 'Input1_S': (" << t3 << ") " << ( t3 == UniversalIO::UnknownIOType ? "FAILED" : "OK" ) << endl;
int i1 = uni_atoi("-100"); int i1 = uni_atoi("-100");
...@@ -57,7 +57,7 @@ int main(int argc, const char **argv) ...@@ -57,7 +57,7 @@ int main(int argc, const char **argv)
int i2 = uni_atoi("20"); int i2 = uni_atoi("20");
cout << "**** check uni_atoi: '20' " << ( ( i2 != 20 ) ? "FAILED" : "OK" ) << endl; cout << "**** check uni_atoi: '20' " << ( ( i2 != 20 ) ? "FAILED" : "OK" ) << endl;
xmlNode* cnode = conf->getNode("testnode"); xmlNode* cnode = conf->getNode("testnode");
if( cnode == NULL ) if( cnode == NULL )
{ {
...@@ -83,10 +83,10 @@ int main(int argc, const char **argv) ...@@ -83,10 +83,10 @@ int main(int argc, const char **argv)
int prop5 = conf->getArgPInt("--prop-dummy",it.getProp("dummy"),0); int prop5 = conf->getArgPInt("--prop-dummy",it.getProp("dummy"),0);
cerr << "**** check conf->getArgPInt(...,...,defval): " << ( (prop5 != 0) ? "[FAILED]" : "OK" ) << endl; cerr << "**** check conf->getArgPInt(...,...,defval): " << ( (prop5 != 0) ? "[FAILED]" : "OK" ) << endl;
return 0; return 0;
} }
catch(SystemError& err) catch(SystemError& err)
...@@ -101,6 +101,6 @@ int main(int argc, const char **argv) ...@@ -101,6 +101,6 @@ int main(int argc, const char **argv)
{ {
cerr << "(conftest): catch(...)" << endl; cerr << "(conftest): catch(...)" << endl;
} }
return 1; return 1;
} }
...@@ -8,7 +8,7 @@ using namespace std; ...@@ -8,7 +8,7 @@ using namespace std;
int main() int main()
{ {
// ---------------------- // ----------------------
// test DelayTimer // test DelayTimer
DelayTimer dtm(1000,500); DelayTimer dtm(1000,500);
...@@ -85,14 +85,14 @@ int main() ...@@ -85,14 +85,14 @@ int main()
if( !dtm2.check(true) ) if( !dtm2.check(true) )
{ {
cerr << "DelayTimer: TEST9 FAILED! " << endl; cerr << "DelayTimer: TEST9 FAILED! " << endl;
return 1; return 1;
} }
cerr << "DelayTimer: TEST9 OK! " << endl; cerr << "DelayTimer: TEST9 OK! " << endl;
if( dtm2.check(false) ) if( dtm2.check(false) )
{ {
cerr << "DelayTimer: TEST10 FAILED! " << endl; cerr << "DelayTimer: TEST10 FAILED! " << endl;
return 1; return 1;
} }
cerr << "DelayTimer: TEST10 OK! " << endl; cerr << "DelayTimer: TEST10 OK! " << endl;
...@@ -106,7 +106,7 @@ int main() ...@@ -106,7 +106,7 @@ int main()
if( dtm3.check(true) ) if( dtm3.check(true) )
{ {
cerr << "DelayTimer: TEST11 FAILED! " << endl; cerr << "DelayTimer: TEST11 FAILED! " << endl;
return 1; return 1;
} }
cerr << "DelayTimer: TEST11 OK! " << endl; cerr << "DelayTimer: TEST11 OK! " << endl;
...@@ -114,7 +114,7 @@ int main() ...@@ -114,7 +114,7 @@ int main()
if( !dtm3.check(true) ) if( !dtm3.check(true) )
{ {
cerr << "DelayTimer: TEST12 FAILED! " << endl; cerr << "DelayTimer: TEST12 FAILED! " << endl;
return 1; return 1;
} }
cerr << "DelayTimer: TEST12 OK! " << endl; cerr << "DelayTimer: TEST12 OK! " << endl;
......
...@@ -8,9 +8,9 @@ using namespace UniSetTypes; ...@@ -8,9 +8,9 @@ using namespace UniSetTypes;
int main( int argc, const char **argv ) int main( int argc, const char **argv )
{ {
DebugStream tlog; DebugStream tlog;
tlog.addLevel(Debug::ANY); tlog.addLevel(Debug::ANY);
tlog[Debug::INFO] << ": [info] ..." << endl; tlog[Debug::INFO] << ": [info] ..." << endl;
tlog(Debug::INFO) << ": (info) ..." << endl; tlog(Debug::INFO) << ": (info) ..." << endl;
cout << endl; cout << endl;
......
...@@ -9,7 +9,7 @@ using namespace std; ...@@ -9,7 +9,7 @@ using namespace std;
int main() int main()
{ {
HourGlass hg; HourGlass hg;
hg.run(1000); hg.run(1000);
hg.rotate(true); hg.rotate(true);
msleep(200); msleep(200);
...@@ -18,14 +18,14 @@ int main() ...@@ -18,14 +18,14 @@ int main()
cerr << "HourGlass: TEST1 FAILED! " << endl; cerr << "HourGlass: TEST1 FAILED! " << endl;
return 1; return 1;
} }
msleep(1000); msleep(1000);
if( !hg.check() ) if( !hg.check() )
{ {
cerr << "HourGlass: TEST1 FAILED! " << endl; cerr << "HourGlass: TEST1 FAILED! " << endl;
return 1; return 1;
} }
cout << "HourGlass: TEST1 OK!" << endl; cout << "HourGlass: TEST1 OK!" << endl;
hg.rotate(false); hg.rotate(false);
......
...@@ -24,12 +24,12 @@ void myf(xmlNode it) ...@@ -24,12 +24,12 @@ void myf(xmlNode it)
{ {
cout<<it.name<<endl; cout<<it.name<<endl;
} }
int main() int main()
{ {
UniXML xml("iterator_test.xml"); UniXML xml("iterator_test.xml");
UniXML::iterator it=xml.begin(); UniXML::iterator it=xml.begin();
it.find("messages"); it.find("messages");
check( "Check find():", "messages", it.getName() ); check( "Check find():", "messages", it.getName() );
...@@ -58,7 +58,7 @@ int main() ...@@ -58,7 +58,7 @@ int main()
--it; --it;
check( "Check iterator -- :", "a2", it.getName() ); check( "Check iterator -- :", "a2", it.getName() );
it=xml.begin(); it=xml.begin();
it.goChildren(); it.goChildren();
cout<<"Check algorythm 'for_each()':\n"; cout<<"Check algorythm 'for_each()':\n";
...@@ -73,6 +73,6 @@ int main() ...@@ -73,6 +73,6 @@ int main()
if( it.find("messages") ) if( it.find("messages") )
cout << "ERROR! begin=<UniSet> but find <messages>!" << endl; cout << "ERROR! begin=<UniSet> but find <messages>!" << endl;
return 0; return 0;
} }
...@@ -18,7 +18,7 @@ int main() ...@@ -18,7 +18,7 @@ int main()
PassiveTimer pt1(5000); PassiveTimer pt1(5000);
cout << " pt1.getInterval()=" << pt1.getInterval() << " TEST: " << ((pt1.getInterval()==5000) ? "OK" : "FAILED") << endl; cout << " pt1.getInterval()=" << pt1.getInterval() << " TEST: " << ((pt1.getInterval()==5000) ? "OK" : "FAILED") << endl;
PassiveTimer pt2; PassiveTimer pt2;
cout << " pt2.getInterval()=" << pt2.getInterval() << endl; cout << " pt2.getInterval()=" << pt2.getInterval() << endl;
if( pt2.getInterval() != 0 ) if( pt2.getInterval() != 0 )
......
...@@ -22,22 +22,22 @@ class MyClass ...@@ -22,22 +22,22 @@ class MyClass
{ {
thr = new ThreadCreator<MyClass>(this, &MyClass::thread); thr = new ThreadCreator<MyClass>(this, &MyClass::thread);
} }
~MyClass() ~MyClass()
{ {
delete thr; delete thr;
} }
inline cctid_t start(){ return thr->start(); } inline cctid_t start(){ return thr->start(); }
inline void stop(){ thr->stop(); } inline void stop(){ thr->stop(); }
inline pid_t getTID(){ return thr->getTID(); } inline pid_t getTID(){ return thr->getTID(); }
// BAD code...only for tests // BAD code...only for tests
inline ThreadCreator<MyClass>* mythr(){ return thr; } inline ThreadCreator<MyClass>* mythr(){ return thr; }
protected: protected:
std::string nm; std::string nm;
void thread() void thread()
{ {
...@@ -49,7 +49,7 @@ class MyClass ...@@ -49,7 +49,7 @@ class MyClass
cout << nm << ": finish thread (" << getTID() << ")" << endl; cout << nm << ": finish thread (" << getTID() << ")" << endl;
} }
private: private:
ThreadCreator<MyClass>* thr; ThreadCreator<MyClass>* thr;
}; };
...@@ -61,17 +61,17 @@ class MyClass2 ...@@ -61,17 +61,17 @@ class MyClass2
{ {
thr = new ThreadCreator<MyClass2>(this, &MyClass2::thread); thr = new ThreadCreator<MyClass2>(this, &MyClass2::thread);
} }
~MyClass2(){ delete thr; } ~MyClass2(){ delete thr; }
inline cctid_t start(){ return thr->start(); } inline cctid_t start(){ return thr->start(); }
inline void stop(){ thr->stop(); } inline void stop(){ thr->stop(); }
inline pid_t getTID(){ return thr->getTID(); } inline pid_t getTID(){ return thr->getTID(); }
protected: protected:
std::string nm; std::string nm;
TCPCheck tcp; TCPCheck tcp;
void thread() void thread()
{ {
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE,NULL); pthread_setcancelstate(PTHREAD_CANCEL_ENABLE,NULL);
...@@ -91,7 +91,7 @@ class MyClass2 ...@@ -91,7 +91,7 @@ class MyClass2
cout << nm << ": finish thread (" << getTID() << ")" << endl; cout << nm << ": finish thread (" << getTID() << ")" << endl;
} }
private: private:
ThreadCreator<MyClass2>* thr; ThreadCreator<MyClass2>* thr;
}; };
...@@ -115,7 +115,7 @@ int main( int argc, const char **argv ) ...@@ -115,7 +115,7 @@ int main( int argc, const char **argv )
cout << "start2..." << endl; cout << "start2..." << endl;
t1.start(); t1.start();
int prior = t1.mythr()->getPriority(); int prior = t1.mythr()->getPriority();
cout << "priority: " << prior << endl; cout << "priority: " << prior << endl;
...@@ -136,7 +136,7 @@ int main( int argc, const char **argv ) ...@@ -136,7 +136,7 @@ int main( int argc, const char **argv )
// cout << "start3..." << endl; // cout << "start3..." << endl;
// t1.start(); // t1.start();
// pause(); // pause();
cout << "finished3..." << endl; cout << "finished3..." << endl;
...@@ -149,8 +149,8 @@ int main( int argc, const char **argv ) ...@@ -149,8 +149,8 @@ int main( int argc, const char **argv )
msleep(50); msleep(50);
cout << "check finished..." << endl; cout << "check finished..." << endl;
// поток в потоке.. // поток в потоке..
MyClass2 t2("Thread2"); MyClass2 t2("Thread2");
cout << "thread2 start..." << endl; cout << "thread2 start..." << endl;
......
...@@ -44,7 +44,7 @@ int main( int argc, const char **argv ) ...@@ -44,7 +44,7 @@ int main( int argc, const char **argv )
char t_str[ 150 ]; char t_str[ 150 ];
strftime( t_str, sizeof(t_str), "%d %b %Y %H:%M:%S", tms ); strftime( t_str, sizeof(t_str), "%d %b %Y %H:%M:%S", tms );
cout << "id=" << id cout << "id=" << id
<< " value=" << inf.value << " value=" << inf.value
<< " last changed: " << string(t_str) << endl; << " last changed: " << string(t_str) << endl;
...@@ -62,7 +62,7 @@ int main( int argc, const char **argv ) ...@@ -62,7 +62,7 @@ int main( int argc, const char **argv )
{ {
cout << "(uitest): catch ..."<< endl; cout << "(uitest): catch ..."<< endl;
} }
return 0; return 0;
} }
...@@ -18,26 +18,26 @@ class MyClass ...@@ -18,26 +18,26 @@ class MyClass
{ {
thr = new ThreadCreator<MyClass>(this, &MyClass::thread); thr = new ThreadCreator<MyClass>(this, &MyClass::thread);
} }
~MyClass() ~MyClass()
{ {
delete thr; delete thr;
} }
void execute() void execute()
{ {
thr->start(); thr->start();
} }
void terminate() { term=true; } void terminate() { term=true; }
inline std::string name(){ return nm; } inline std::string name(){ return nm; }
inline int lock_count(){ return count; } inline int lock_count(){ return count; }
// BAD CODE... only for test.. // BAD CODE... only for test..
inline ThreadCreator<MyClass>* get(){ return thr; } inline ThreadCreator<MyClass>* get(){ return thr; }
protected: protected:
std::string nm; std::string nm;
std::atomic_bool term; std::atomic_bool term;
...@@ -52,7 +52,7 @@ class MyClass ...@@ -52,7 +52,7 @@ class MyClass
} }
} }
} }
private: private:
ThreadCreator<MyClass>* thr; ThreadCreator<MyClass>* thr;
int count; int count;
...@@ -65,12 +65,12 @@ class MyClassSpin ...@@ -65,12 +65,12 @@ class MyClassSpin
{ {
thr = new ThreadCreator<MyClassSpin>(this, &MyClassSpin::thread); thr = new ThreadCreator<MyClassSpin>(this, &MyClassSpin::thread);
} }
~MyClassSpin() ~MyClassSpin()
{ {
delete thr; delete thr;
} }
void execute() void execute()
{ {
thr->start(); thr->start();
...@@ -81,10 +81,10 @@ class MyClassSpin ...@@ -81,10 +81,10 @@ class MyClassSpin
inline std::string name(){ return nm; } inline std::string name(){ return nm; }
inline int lock_count(){ return count; } inline int lock_count(){ return count; }
// BAD CODE... only for test.. // BAD CODE... only for test..
inline ThreadCreator<MyClassSpin>* get(){ return thr; } inline ThreadCreator<MyClassSpin>* get(){ return thr; }
protected: protected:
std::string nm; std::string nm;
bool readLock; bool readLock;
...@@ -104,17 +104,17 @@ class MyClassSpin ...@@ -104,17 +104,17 @@ class MyClassSpin
uniset_rwmutex_rlock l(m_rw); uniset_rwmutex_rlock l(m_rw);
count++; count++;
} }
//msleep(20); //msleep(20);
} }
} }
private: private:
ThreadCreator<MyClassSpin>* thr; ThreadCreator<MyClassSpin>* thr;
int count; int count;
}; };
bool check_wr_lock( ost::ThreadLock& m ) bool check_wr_lock( ost::ThreadLock& m )
{ {
if( m.tryWriteLock() ) if( m.tryWriteLock() )
...@@ -122,7 +122,7 @@ bool check_wr_lock( ost::ThreadLock& m ) ...@@ -122,7 +122,7 @@ bool check_wr_lock( ost::ThreadLock& m )
m.unlock(); m.unlock();
return true; return true;
} }
return false; return false;
} }
...@@ -133,7 +133,7 @@ bool check_r_lock( ost::ThreadLock& m ) ...@@ -133,7 +133,7 @@ bool check_r_lock( ost::ThreadLock& m )
m.unlock(); m.unlock();
return true; return true;
} }
return false; return false;
} }
...@@ -142,60 +142,60 @@ int main( int argc, const char **argv ) ...@@ -142,60 +142,60 @@ int main( int argc, const char **argv )
try try
{ {
#if 0 #if 0
{ {
cout << "check timed_mutex..." << endl; cout << "check timed_mutex..." << endl;
std::timed_mutex m; std::timed_mutex m;
cout << " 'unlock' without 'lock'.."; cout << " 'unlock' without 'lock'..";
m.unlock(); m.unlock();
cout << " ok." << endl; cout << " ok." << endl;
cout << "try lock (lock): " << ( m.try_lock() ? "OK" : "FAIL" ) << endl; cout << "try lock (lock): " << ( m.try_lock() ? "OK" : "FAIL" ) << endl;
m.unlock(); m.unlock();
m.lock(); m.lock();
cout << "try lock (fail): " << ( m.try_lock() ? "FAIL" : "OK" ) << endl; cout << "try lock (fail): " << ( m.try_lock() ? "FAIL" : "OK" ) << endl;
m.unlock(); m.unlock();
} }
{ {
uniset_mutex m("testmutex"); uniset_mutex m("testmutex");
{ {
uniset_mutex_lock l(m); uniset_mutex_lock l(m);
msleep(20); msleep(20);
} }
{ {
uniset_mutex_lock l(m,100); uniset_mutex_lock l(m,100);
msleep(50); msleep(50);
} }
} }
#endif #endif
#if 0 #if 0
{ {
uniset_rwmutex m1("mutex1"); uniset_rwmutex m1("mutex1");
uniset_rwmutex m2("mutex2"); uniset_rwmutex m2("mutex2");
uniset_rwmutex m3_lcopy("mutex3"); uniset_rwmutex m3_lcopy("mutex3");
cout << "m1: " << m1.name() << endl; cout << "m1: " << m1.name() << endl;
cout << "m2: " << m2.name() << endl; cout << "m2: " << m2.name() << endl;
cout << "m3: " << m3_lcopy.name() << endl; cout << "m3: " << m3_lcopy.name() << endl;
m2 = m1; m2 = m1;
cout << "copy m1... m2: " << m2.name() << endl; cout << "copy m1... m2: " << m2.name() << endl;
m1.wrlock(); m1.wrlock();
m3_lcopy = m1; m3_lcopy = m1;
cout << "copy m1... m3: " << m2.name() << endl; cout << "copy m1... m3: " << m2.name() << endl;
cout << "m3.lock: ..." << endl; cout << "m3.lock: ..." << endl;
m3_lcopy.wrlock(); m3_lcopy.wrlock();
cout << "m3.lock: wrlock OK" << endl; cout << "m3.lock: wrlock OK" << endl;
} }
// return 0; // return 0;
#endif #endif
...@@ -258,7 +258,7 @@ int main( int argc, const char **argv ) ...@@ -258,7 +258,7 @@ int main( int argc, const char **argv )
cerr << "test lock: " << ( !um.isRelease() ? "OK" : "FAIL") << endl; cerr << "test lock: " << ( !um.isRelease() ? "OK" : "FAIL") << endl;
} }
cerr << "test unlock: " << (um.isRelease() ? "OK" : "FAIL") << endl; cerr << "test unlock: " << (um.isRelease() ? "OK" : "FAIL") << endl;
{ {
uniset_mutex_lock l(um); uniset_mutex_lock l(um);
cerr << "test second lock: " << (!um.isRelease() ? "OK" : "FAIL") << endl; cerr << "test second lock: " << (!um.isRelease() ? "OK" : "FAIL") << endl;
...@@ -266,20 +266,20 @@ int main( int argc, const char **argv ) ...@@ -266,20 +266,20 @@ int main( int argc, const char **argv )
uniset_mutex_lock l2(um,500); uniset_mutex_lock l2(um,500);
cerr << "test wait lock: " << ( !l2.lock_ok() ? "OK" : "FAIL") << endl; cerr << "test wait lock: " << ( !l2.lock_ok() ? "OK" : "FAIL") << endl;
} }
uniset_mutex_lock l3(um,500); uniset_mutex_lock l3(um,500);
cerr << "test wait lock: " << ( l3.lock_ok() ? "OK" : "FAIL") << endl; cerr << "test wait lock: " << ( l3.lock_ok() ? "OK" : "FAIL") << endl;
return 0; return 0;
#endif #endif
int max = 10; int max = 10;
if( argc > 1 ) if( argc > 1 )
max = UniSetTypes::uni_atoi(argv[1]); max = UniSetTypes::uni_atoi(argv[1]);
#if 1 #if 1
typedef std::vector<MyClass*> TVec; typedef std::vector<MyClass*> TVec;
TVec tvec(max); TVec tvec(max);
...@@ -291,20 +291,20 @@ int main( int argc, const char **argv ) ...@@ -291,20 +291,20 @@ int main( int argc, const char **argv )
tvec[i] = t; tvec[i] = t;
t->execute(); t->execute();
msleep(50); msleep(50);
} }
cout << "TEST MUTEX LOCK wait 10 sec.. (" << tvec.size() << " threads)" << endl; cout << "TEST MUTEX LOCK wait 10 sec.. (" << tvec.size() << " threads)" << endl;
msleep(10000); msleep(10000);
cout << "TEST MUTEX LOCK RESULT: " << endl; cout << "TEST MUTEX LOCK RESULT: " << endl;
for( TVec::iterator it=tvec.begin(); it!=tvec.end(); it++ ) for( TVec::iterator it=tvec.begin(); it!=tvec.end(); it++ )
{ {
int c = (*it)->lock_count(); int c = (*it)->lock_count();
(*it)->terminate(); (*it)->terminate();
if( (*it)->get()->isRunning() ) if( (*it)->get()->isRunning() )
(*it)->get()->join(); (*it)->get()->join();
//(*it)->get()->stop(); //(*it)->get()->stop();
cout << (*it)->name() << ": locked counter: " << (c/10) << " " << ( c!=0 ? "OK":"FAIL" ) << endl; cout << (*it)->name() << ": locked counter: " << (c/10) << " " << ( c!=0 ? "OK":"FAIL" ) << endl;
} }
#endif #endif
...@@ -318,14 +318,14 @@ int main( int argc, const char **argv ) ...@@ -318,14 +318,14 @@ int main( int argc, const char **argv )
ostringstream s; ostringstream s;
bool r=false; bool r=false;
#if 1 #if 1
if( i>=half ) if( i>=half )
{ {
r = true; r = true;
s << "(R)"; s << "(R)";
} }
else else
#endif #endif
s << "(W)"; s << "(W)";
s << "t" << i; s << "t" << i;
...@@ -364,7 +364,7 @@ int main( int argc, const char **argv ) ...@@ -364,7 +364,7 @@ int main( int argc, const char **argv )
tsvec[i] = t; tsvec[i] = t;
t->execute(); t->execute();
msleep(50); msleep(50);
} }
std::atomic_int cnt(0); std::atomic_int cnt(0);
std::atomic_int num(10); std::atomic_int num(10);
...@@ -394,7 +394,7 @@ int main( int argc, const char **argv ) ...@@ -394,7 +394,7 @@ int main( int argc, const char **argv )
} }
#endif #endif
// pause(); // pause();
} }
...@@ -404,7 +404,7 @@ int main( int argc, const char **argv ) ...@@ -404,7 +404,7 @@ int main( int argc, const char **argv )
cerr << " file: " << fe.file() << endl; cerr << " file: " << fe.file() << endl;
cerr << " line: " << fe.line() << endl; cerr << " line: " << fe.line() << endl;
cerr << " mesg: " << fe.errmsg() << endl; cerr << " mesg: " << fe.errmsg() << endl;
} }
catch( std::exception& e ) catch( std::exception& e )
{ {
cerr << "catch: " << e.what() << endl; cerr << "catch: " << e.what() << endl;
...@@ -413,6 +413,6 @@ int main( int argc, const char **argv ) ...@@ -413,6 +413,6 @@ int main( int argc, const char **argv )
{ {
cerr << "catch(...)" << endl; cerr << "catch(...)" << endl;
} }
return 0; return 0;
} }
...@@ -18,7 +18,7 @@ int main() ...@@ -18,7 +18,7 @@ int main()
{ {
cerr << "<testnode> not found" << endl; cerr << "<testnode> not found" << endl;
return 1; return 1;
} }
UniXML_iterator it(cnode); UniXML_iterator it(cnode);
cout << "string id=" << it.getProp("id") cout << "string id=" << it.getProp("id")
...@@ -31,7 +31,7 @@ int main() ...@@ -31,7 +31,7 @@ int main()
{ {
cerr << "<testnode> not found" << endl; cerr << "<testnode> not found" << endl;
return 1; return 1;
} }
cout << "string id=" << it.getProp("dbrepeat") cout << "string id=" << it.getProp("dbrepeat")
<< " int id=" << it.getIntProp("dbrepeat") << " int id=" << it.getIntProp("dbrepeat")
...@@ -44,13 +44,13 @@ int main() ...@@ -44,13 +44,13 @@ int main()
{ {
cerr << "<testnode> not found" << endl; cerr << "<testnode> not found" << endl;
return 1; return 1;
} }
UniXML_iterator it = xml.findNode(xml.getFirstNode(),"item", "LocalhostNode"); UniXML_iterator it = xml.findNode(xml.getFirstNode(),"item", "LocalhostNode");
if( it == NULL ) if( it == NULL )
{ {
cerr << "<testnode> not found" << endl; cerr << "<testnode> not found" << endl;
return 1; return 1;
} }
cout << "textname=" << it.getProp("textname"); cout << "textname=" << it.getProp("textname");
} }
......
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