Commit 115f617f authored by Pavel Vainerman's avatar Pavel Vainerman

(MBExchange): сделал завершение работы не через abort(), а через SIGTERM,

а так де мелкие правки оформления кода.
parent 54b685e2
...@@ -618,8 +618,7 @@ end_private(false) ...@@ -618,8 +618,7 @@ end_private(false)
throw SystemError( err.str() ); throw SystemError( err.str() );
} }
mylog.setLogName(myname);
<xsl:for-each select="//smap/item"> <xsl:for-each select="//smap/item">
<xsl:if test="normalize-space(@no_check_id)!='1'"> <xsl:if test="normalize-space(@no_check_id)!='1'">
...@@ -943,6 +942,8 @@ askPause(uniset_conf()->getPIntProp(cnode,"askPause",2000)) ...@@ -943,6 +942,8 @@ askPause(uniset_conf()->getPIntProp(cnode,"askPause",2000))
throw SystemError( err.str() ); throw SystemError( err.str() );
} }
mylog.setLogName(myname);
si.node = conf->getLocalNode(); si.node = conf->getLocalNode();
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
USERID=0 USERID=0
BASEOMNIPORT=2809 BASEOMNIPORT=2809
UNISET_SCRIPT_VERBOSE= [ -z "$UNISET_SCRIPT_VERBOSE" ] && UNISET_SCRIPT_VERBOSE=
# Получаем наш внутренний номер пользователя # Получаем наш внутренний номер пользователя
function get_userid() function get_userid()
......
...@@ -41,9 +41,9 @@ class MBExchange: ...@@ -41,9 +41,9 @@ class MBExchange:
enum ExchangeMode enum ExchangeMode
{ {
emNone=0, /*!< нормальная работа (по умолчанию) */ emNone=0, /*!< нормальная работа (по умолчанию) */
emWriteOnly=1, /*!< "только посылка данных" (работают только write-функции) */ emWriteOnly=1, /*!< "только посылка данных" (работают только write-функции) */
emReadOnly=2, /*!< "только чтение" (работают только read-функции) */ emReadOnly=2, /*!< "только чтение" (работают только read-функции) */
emSkipSaveToSM=3, /*!< не писать данные в SM (при этом работают и read и write функции */ emSkipSaveToSM=3, /*!< не писать данные в SM (при этом работают и read и write функции) */
emSkipExchange=4 /*!< отключить обмен */ emSkipExchange=4 /*!< отключить обмен */
}; };
...@@ -51,9 +51,9 @@ class MBExchange: ...@@ -51,9 +51,9 @@ class MBExchange:
enum DeviceType enum DeviceType
{ {
dtUnknown, /*!< неизвестный */ dtUnknown, /*!< неизвестный */
dtRTU, /*!< RTU (default) */ dtRTU, /*!< RTU (default) */
dtMTR, /*!< MTR (DEIF) */ dtMTR, /*!< MTR (DEIF) */
dtRTU188 /*!< RTU188 (Fastwell) */ dtRTU188 /*!< RTU188 (Fastwell) */
}; };
...@@ -67,9 +67,9 @@ class MBExchange: ...@@ -67,9 +67,9 @@ class MBExchange:
public IOBase public IOBase
{ {
// only for RTU // only for RTU
short nbit; /*!< bit number) */ short nbit; /*!< bit number) */
VTypes::VType vType; /*!< type of value */ VTypes::VType vType; /*!< type of value */
short rnum; /*!< count of registers */ short rnum; /*!< count of registers */
short nbyte; /*!< byte number (1-2) */ short nbyte; /*!< byte number (1-2) */
RSProperty(): RSProperty():
......
...@@ -392,7 +392,7 @@ void MBSlave::waitSMReady() ...@@ -392,7 +392,7 @@ void MBSlave::waitSMReady()
// throw SystemError(err.str()); // throw SystemError(err.str());
raise(SIGTERM); raise(SIGTERM);
terminate(); terminate();
// abort(); // abort();
} }
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
......
...@@ -21,24 +21,24 @@ ...@@ -21,24 +21,24 @@
#include "DebugStream.h" #include "DebugStream.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
class UObject_SK: class UObject_SK:
public UniSetObject, public UniSetObject,
public LT_Object public LT_Object
{ {
public: public:
UObject_SK( UniSetTypes::ObjectId id, xmlNode* node=UniSetTypes::uniset_conf()->getNode("UObject"), const std::string& argprefix="" ); UObject_SK( UniSetTypes::ObjectId id, xmlNode* node=UniSetTypes::uniset_conf()->getNode("UObject"), const std::string& argprefix="" );
UObject_SK(); UObject_SK();
virtual ~UObject_SK(); virtual ~UObject_SK();
bool alarm( UniSetTypes::ObjectId sid, bool state ); bool alarm( UniSetTypes::ObjectId sid, bool state );
long getValue( UniSetTypes::ObjectId sid ); long getValue( UniSetTypes::ObjectId sid );
void setValue( UniSetTypes::ObjectId sid, long value ); void setValue( UniSetTypes::ObjectId sid, long value );
void askSensor( UniSetTypes::ObjectId sid, UniversalIO::UIOCommand, UniSetTypes::ObjectId node = UniSetTypes::uniset_conf()->getLocalNode() ); void askSensor( UniSetTypes::ObjectId sid, UniversalIO::UIOCommand, UniSetTypes::ObjectId node = UniSetTypes::uniset_conf()->getLocalNode() );
void updateValues(); void updateValues();
void setMsg( UniSetTypes::ObjectId code, bool state ); void setMsg( UniSetTypes::ObjectId code, bool state );
DebugStream mylog; DebugStream mylog;
void init_dlog( DebugStream& d ); void init_dlog( DebugStream& d );
// "синтаксический сахар"..для логов // "синтаксический сахар"..для логов
#define myinfo if( mylog.debugging(Debug::INFO) ) mylog #define myinfo if( mylog.debugging(Debug::INFO) ) mylog
...@@ -55,91 +55,91 @@ class UObject_SK: ...@@ -55,91 +55,91 @@ class UObject_SK:
#define mylog9 if( mylog.debugging(Debug::LEVEL9) ) mylog #define mylog9 if( mylog.debugging(Debug::LEVEL9) ) mylog
// Используемые идентификаторы // Используемые идентификаторы
// Используемые идентификаторы сообщений // Используемые идентификаторы сообщений
// Текущее значение // Текущее значение
// --- public variables --- // --- public variables ---
// --- end of public variables --- // --- end of public variables ---
protected: protected:
// --- protected variables --- // --- protected variables ---
// ---- end of protected variables ---- // ---- end of protected variables ----
virtual void callback() override; virtual void callback() override;
virtual void processingMessage( UniSetTypes::VoidMessage* msg ) override; virtual void processingMessage( UniSetTypes::VoidMessage* msg ) override;
virtual void sysCommand( const UniSetTypes::SystemMessage* sm ) override; virtual void sysCommand( const UniSetTypes::SystemMessage* sm ) override;
virtual void askSensors( UniversalIO::UIOCommand cmd ){} virtual void askSensors( UniversalIO::UIOCommand cmd ){}
virtual void sensorInfo( const UniSetTypes::SensorMessage* sm ) override{} virtual void sensorInfo( const UniSetTypes::SensorMessage* sm ) override{}
virtual void timerInfo( const UniSetTypes::TimerMessage* tm ) override{} virtual void timerInfo( const UniSetTypes::TimerMessage* tm ) override{}
virtual void sigterm( int signo ) override; virtual void sigterm( int signo ) override;
virtual bool activateObject() override; virtual bool activateObject() override;
virtual void testMode( bool state ); virtual void testMode( bool state );
void updatePreviousValues(); void updatePreviousValues();
void checkSensors(); void checkSensors();
void updateOutputs( bool force ); void updateOutputs( bool force );
void preAskSensors( UniversalIO::UIOCommand cmd ); void preAskSensors( UniversalIO::UIOCommand cmd );
void preSensorInfo( const UniSetTypes::SensorMessage* sm ); void preSensorInfo( const UniSetTypes::SensorMessage* sm );
void preTimerInfo( const UniSetTypes::TimerMessage* tm ); void preTimerInfo( const UniSetTypes::TimerMessage* tm );
void waitSM( int wait_msec, UniSetTypes::ObjectId testID = UniSetTypes::DefaultObjectId ); void waitSM( int wait_msec, UniSetTypes::ObjectId testID = UniSetTypes::DefaultObjectId );
void resetMsg(); void resetMsg();
Trigger trResetMsg; Trigger trResetMsg;
PassiveTimer ptResetMsg; PassiveTimer ptResetMsg;
int resetMsgTime; int resetMsgTime;
// Выполнение очередного шага программы // Выполнение очередного шага программы
virtual void step(){} virtual void step(){}
int sleep_msec; /*!< пауза между итерациями */ int sleep_msec; /*!< пауза между итерациями */
bool active; bool active;
UniSetTypes::ObjectId smTestID; /*!< идентификатор датчика для тестирования готовности SM */ UniSetTypes::ObjectId smTestID; /*!< идентификатор датчика для тестирования готовности SM */
// управление датчиком "сердцебиения" // управление датчиком "сердцебиения"
PassiveTimer ptHeartBeat; /*! < период "сердцебиения" */ PassiveTimer ptHeartBeat; /*! < период "сердцебиения" */
UniSetTypes::ObjectId idHeartBeat; /*! < идентификатор датчика (AI) "сердцебиения" */ UniSetTypes::ObjectId idHeartBeat; /*! < идентификатор датчика (AI) "сердцебиения" */
int maxHeartBeat; /*! < сохраняемое значение */ int maxHeartBeat; /*! < сохраняемое значение */
xmlNode* confnode; xmlNode* confnode;
/*! получить числовое свойство из конф. файла по привязанной confnode */ /*! получить числовое свойство из конф. файла по привязанной confnode */
int getIntProp(const std::string& name) { return UniSetTypes::uniset_conf()->getIntProp(confnode, name); } int getIntProp(const std::string& name) { return UniSetTypes::uniset_conf()->getIntProp(confnode, name); }
/*! получить текстовое свойство из конф. файла по привязанной confnode */ /*! получить текстовое свойство из конф. файла по привязанной confnode */
inline const std::string getProp(const std::string& name) { return UniSetTypes::uniset_conf()->getProp(confnode, name); } inline const std::string getProp(const std::string& name) { return UniSetTypes::uniset_conf()->getProp(confnode, name); }
int smReadyTimeout; /*!< время ожидания готовности SM */ int smReadyTimeout; /*!< время ожидания готовности SM */
std::atomic_bool activated; std::atomic_bool activated;
int activateTimeout; /*!< время ожидания готовности UniSetObject к работе */ int activateTimeout; /*!< время ожидания готовности UniSetObject к работе */
PassiveTimer ptStartUpTimeout; /*!< время на блокировку обработки WatchDog, если недавно был StartUp */ PassiveTimer ptStartUpTimeout; /*!< время на блокировку обработки WatchDog, если недавно был StartUp */
int askPause; /*!< пауза между неудачными попытками заказать датчики */ int askPause; /*!< пауза между неудачными попытками заказать датчики */
IOController_i::SensorInfo si; IOController_i::SensorInfo si;
bool forceOut; /*!< флаг принудительного обноления "выходов" */ bool forceOut; /*!< флаг принудительного обноления "выходов" */
private: private:
// --- private variables --- // --- private variables ---
// --- end of private variables --- // --- end of private variables ---
// предыдущее значение (для работы UpdateValue()) // предыдущее значение (для работы UpdateValue())
// Используемые идентификаторы сообщений // Используемые идентификаторы сообщений
bool end_private; // вспомогательное поле (для внутреннего использования при генерировании кода) bool end_private; // вспомогательное поле (для внутреннего использования при генерировании кода)
}; };
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
......
...@@ -44,19 +44,19 @@ forceOut(false), ...@@ -44,19 +44,19 @@ forceOut(false),
end_private(false) end_private(false)
{ {
ucrit << "UObject: init failed!!!!!!!!!!!!!!!" << endl; ucrit << "UObject: init failed!!!!!!!!!!!!!!!" << endl;
throw Exception( string(myname+": init failed!!!") ); throw Exception( string(myname+": init failed!!!") );
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// ( val, confval, default val ) // ( val, confval, default val )
static const std::string init3_str( const std::string& s1, const std::string& s2, const std::string& s3 ) static const std::string init3_str( const std::string& s1, const std::string& s2, const std::string& s3 )
{ {
if( !s1.empty() ) if( !s1.empty() )
return s1; return s1;
if( !s2.empty() ) if( !s2.empty() )
return s2; return s2;
return s3; return s3;
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
UObject_SK::UObject_SK( ObjectId id, xmlNode* cnode, const std::string& argprefix ): UObject_SK::UObject_SK( ObjectId id, xmlNode* cnode, const std::string& argprefix ):
...@@ -80,77 +80,77 @@ forceOut(false), ...@@ -80,77 +80,77 @@ forceOut(false),
end_private(false) end_private(false)
{ {
auto conf = uniset_conf(); auto conf = uniset_conf();
if( UniSetTypes::findArgParam("--print-id-list",uniset_conf()->getArgc(),uniset_conf()->getArgv()) != -1 )
{
// abort();
}
if( UniSetTypes::findArgParam("--print-id-list",uniset_conf()->getArgc(),uniset_conf()->getArgv()) != -1 )
{
if( getId() == DefaultObjectId ) // abort();
{ }
ostringstream err;
err << "(UObject::init): Unknown ObjectID!";
throw SystemError( err.str() );
}
if( getId() == DefaultObjectId )
{
ostringstream err;
err << "(UObject::init): Unknown ObjectID!";
throw SystemError( err.str() );
}
UniXML::iterator it(cnode);
forceOut = conf->getArgPInt("--" + argprefix + "force-out",it.getProp("forceOut"),false);
string heart = conf->getArgParam("--" + argprefix + "heartbeat-id",it.getProp("heartbeat_id")); UniXML::iterator it(cnode);
if( !heart.empty() )
{
idHeartBeat = conf->getSensorID(heart);
if( idHeartBeat == DefaultObjectId )
{
ostringstream err;
err << myname << ": не найден идентификатор для датчика 'HeartBeat' " << heart;
throw SystemError(err.str());
}
int heartbeatTime = conf->getArgPInt("--" + argprefix + "heartbeat-time",it.getProp("heartbeatTime"),conf->getHeartBeatTime()); forceOut = conf->getArgPInt("--" + argprefix + "force-out",it.getProp("forceOut"),false);
if( heartbeatTime>0 )
ptHeartBeat.setTiming(heartbeatTime);
else
ptHeartBeat.setTiming(UniSetTimer::WaitUpTime);
maxHeartBeat = conf->getArgPInt("--" + argprefix + "heartbeat-max",it.getProp("heartbeat_max"), 10); string heart = conf->getArgParam("--" + argprefix + "heartbeat-id",it.getProp("heartbeat_id"));
} if( !heart.empty() )
{
idHeartBeat = conf->getSensorID(heart);
if( idHeartBeat == DefaultObjectId )
{
ostringstream err;
err << myname << ": не найден идентификатор для датчика 'HeartBeat' " << heart;
throw SystemError(err.str());
}
int heartbeatTime = conf->getArgPInt("--" + argprefix + "heartbeat-time",it.getProp("heartbeatTime"),conf->getHeartBeatTime());
if( heartbeatTime>0 )
ptHeartBeat.setTiming(heartbeatTime);
else
ptHeartBeat.setTiming(UniSetTimer::WaitUpTime);
maxHeartBeat = conf->getArgPInt("--" + argprefix + "heartbeat-max",it.getProp("heartbeat_max"), 10);
}
// Инициализация значений // Инициализация значений
sleep_msec = conf->getArgPInt("--" + argprefix + "sleep-msec","150", 150); sleep_msec = conf->getArgPInt("--" + argprefix + "sleep-msec","150", 150);
resetMsgTime = conf->getPIntProp(cnode,"resetMsgTime", 2000); resetMsgTime = conf->getPIntProp(cnode,"resetMsgTime", 2000);
ptResetMsg.setTiming(resetMsgTime); ptResetMsg.setTiming(resetMsgTime);
smReadyTimeout = conf->getArgInt("--" + argprefix + "sm-ready-timeout",""); smReadyTimeout = conf->getArgInt("--" + argprefix + "sm-ready-timeout","");
if( smReadyTimeout == 0 ) if( smReadyTimeout == 0 )
smReadyTimeout = 60000; smReadyTimeout = 60000;
else if( smReadyTimeout < 0 ) else if( smReadyTimeout < 0 )
smReadyTimeout = UniSetTimer::WaitUpTime; smReadyTimeout = UniSetTimer::WaitUpTime;
smTestID = conf->getSensorID(init3_str(conf->getArgParam("--" + argprefix + "sm-test-id"),conf->getProp(cnode,"smTestID"),"")); smTestID = conf->getSensorID(init3_str(conf->getArgParam("--" + argprefix + "sm-test-id"),conf->getProp(cnode,"smTestID"),""));
activateTimeout = conf->getArgPInt("--" + argprefix + "activate-timeout", 20000); activateTimeout = conf->getArgPInt("--" + argprefix + "activate-timeout", 20000);
int msec = conf->getArgPInt("--" + argprefix + "startup-timeout", 10000); int msec = conf->getArgPInt("--" + argprefix + "startup-timeout", 10000);
ptStartUpTimeout.setTiming(msec); ptStartUpTimeout.setTiming(msec);
// ===================== <variables> ===================== // ===================== <variables> =====================
// ===================== end of <variables> ===================== // ===================== end of <variables> =====================
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
...@@ -161,36 +161,36 @@ UObject_SK::~UObject_SK() ...@@ -161,36 +161,36 @@ UObject_SK::~UObject_SK()
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void UObject_SK::updateValues() void UObject_SK::updateValues()
{ {
// Опрашиваем все входы... // Опрашиваем все входы...
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void UObject_SK::updatePreviousValues() void UObject_SK::updatePreviousValues()
{ {
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void UObject_SK::checkSensors() void UObject_SK::checkSensors()
{ {
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
bool UObject_SK::alarm( UniSetTypes::ObjectId _code, bool _state ) bool UObject_SK::alarm( UniSetTypes::ObjectId _code, bool _state )
{ {
if( _code == UniSetTypes::DefaultObjectId ) if( _code == UniSetTypes::DefaultObjectId )
{ {
ucrit << getName() ucrit << getName()
<< "(alarm): попытка послать сообщение с DefaultObjectId" << "(alarm): попытка послать сообщение с DefaultObjectId"
<< endl; << endl;
return false; return false;
} }
ulog1 << getName() << "(alarm): " << ( _state ? "SEND " : "RESET " ) << endl; ulog1 << getName() << "(alarm): " << ( _state ? "SEND " : "RESET " ) << endl;
ulog1 << " not found MessgeOID?!!" << endl; ulog1 << " not found MessgeOID?!!" << endl;
return false; return false;
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void UObject_SK::resetMsg() void UObject_SK::resetMsg()
...@@ -201,11 +201,11 @@ void UObject_SK::resetMsg() ...@@ -201,11 +201,11 @@ void UObject_SK::resetMsg()
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void UObject_SK::testMode( bool _state ) void UObject_SK::testMode( bool _state )
{ {
if( !_state ) if( !_state )
return; return;
// отключаем все выходы // отключаем все выходы
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
...@@ -214,140 +214,140 @@ void UObject_SK::testMode( bool _state ) ...@@ -214,140 +214,140 @@ void UObject_SK::testMode( bool _state )
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
void UObject_SK::init_dlog( DebugStream& d ) void UObject_SK::init_dlog( DebugStream& d )
{ {
UObject_SK::mylog = d; UObject_SK::mylog = d;
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
void UObject_SK::processingMessage( UniSetTypes::VoidMessage* _msg ) void UObject_SK::processingMessage( UniSetTypes::VoidMessage* _msg )
{ {
try try
{ {
switch( _msg->type ) switch( _msg->type )
{ {
case Message::SensorInfo: case Message::SensorInfo:
preSensorInfo( reinterpret_cast<SensorMessage*>(_msg) ); preSensorInfo( reinterpret_cast<SensorMessage*>(_msg) );
break; break;
case Message::Timer: case Message::Timer:
preTimerInfo( reinterpret_cast<TimerMessage*>(_msg) ); preTimerInfo( reinterpret_cast<TimerMessage*>(_msg) );
break; break;
case Message::SysCommand: case Message::SysCommand:
sysCommand( reinterpret_cast<SystemMessage*>(_msg) ); sysCommand( reinterpret_cast<SystemMessage*>(_msg) );
break; break;
default: default:
break; break;
} }
} }
catch( Exception& ex ) catch( Exception& ex )
{ {
ucrit << myname << "(processingMessage): " << ex << endl; ucrit << myname << "(processingMessage): " << ex << endl;
} }
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void UObject_SK::sysCommand( const SystemMessage* _sm ) void UObject_SK::sysCommand( const SystemMessage* _sm )
{ {
switch( _sm->command ) switch( _sm->command )
{ {
case SystemMessage::WatchDog: case SystemMessage::WatchDog:
ulog << myname << "(sysCommand): WatchDog" << endl; ulog << myname << "(sysCommand): WatchDog" << endl;
if( !active || !ptStartUpTimeout.checkTime() ) if( !active || !ptStartUpTimeout.checkTime() )
{ {
uwarn << myname << "(sysCommand): игнорируем WatchDog, потому-что только-что стартанули" << endl; uwarn << myname << "(sysCommand): игнорируем WatchDog, потому-что только-что стартанули" << endl;
break; break;
} }
case SystemMessage::StartUp: case SystemMessage::StartUp:
{ {
waitSM(smReadyTimeout); waitSM(smReadyTimeout);
ptStartUpTimeout.reset(); ptStartUpTimeout.reset();
// т.к. для io-переменных важно соблюдать последовательность! // т.к. для io-переменных важно соблюдать последовательность!
// сперва обновить входы.. а потом уже выходы // сперва обновить входы.. а потом уже выходы
updateValues(); updateValues();
updateOutputs(true); // принудительное обновление выходов updateOutputs(true); // принудительное обновление выходов
preAskSensors(UniversalIO::UIONotify); preAskSensors(UniversalIO::UIONotify);
askSensors(UniversalIO::UIONotify); askSensors(UniversalIO::UIONotify);
active = true; active = true;
break; break;
} }
case SystemMessage::FoldUp: case SystemMessage::FoldUp:
case SystemMessage::Finish: case SystemMessage::Finish:
preAskSensors(UniversalIO::UIODontNotify); preAskSensors(UniversalIO::UIODontNotify);
askSensors(UniversalIO::UIODontNotify); askSensors(UniversalIO::UIODontNotify);
break; break;
case SystemMessage::LogRotate: case SystemMessage::LogRotate:
{ {
// переоткрываем логи // переоткрываем логи
mylog << myname << "(sysCommand): logRotate" << endl; mylog << myname << "(sysCommand): logRotate" << endl;
string fname( mylog.getLogFile() ); string fname( mylog.getLogFile() );
if( !fname.empty() ) if( !fname.empty() )
{ {
mylog.logFile(fname.c_str(),true); mylog.logFile(fname.c_str(),true);
mylog << myname << "(sysCommand): ***************** mylog LOG ROTATE *****************" << endl; mylog << myname << "(sysCommand): ***************** mylog LOG ROTATE *****************" << endl;
} }
} }
break; break;
default: default:
break; break;
} }
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void UObject_SK::sigterm( int signo ) void UObject_SK::sigterm( int signo )
{ {
UniSetObject::sigterm(signo); UniSetObject::sigterm(signo);
active = false; active = false;
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
bool UObject_SK::activateObject() bool UObject_SK::activateObject()
{ {
// блокирование обработки Startup // блокирование обработки Startup
// пока не пройдёт инициализация датчиков // пока не пройдёт инициализация датчиков
// см. sysCommand() // см. sysCommand()
{ {
activated = false; activated = false;
UniSetObject::activateObject(); UniSetObject::activateObject();
activated = true; activated = true;
} }
return true; return true;
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void UObject_SK::preTimerInfo( const UniSetTypes::TimerMessage* _tm ) void UObject_SK::preTimerInfo( const UniSetTypes::TimerMessage* _tm )
{ {
timerInfo(_tm); timerInfo(_tm);
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
void UObject_SK::waitSM( int wait_msec, ObjectId _testID ) void UObject_SK::waitSM( int wait_msec, ObjectId _testID )
{ {
if( _testID == DefaultObjectId ) if( _testID == DefaultObjectId )
_testID = smTestID; _testID = smTestID;
if( _testID == DefaultObjectId ) if( _testID == DefaultObjectId )
return; return;
uinfo << myname << "(waitSM): waiting SM ready " uinfo << myname << "(waitSM): waiting SM ready "
<< wait_msec << " msec" << wait_msec << " msec"
<< " testID=" << _testID << endl; << " testID=" << _testID << endl;
if( !ui->waitReady(_testID,wait_msec) ) if( !ui->waitReady(_testID,wait_msec) )
{ {
ostringstream err; ostringstream err;
err << myname err << myname
<< "(waitSM): Не дождались готовности(exist) SharedMemory к работе в течение " << "(waitSM): Не дождались готовности(exist) SharedMemory к работе в течение "
<< wait_msec << " мсек"; << wait_msec << " мсек";
ucrit << err.str() << endl; ucrit << err.str() << endl;
// terminate(); // terminate();
// abort(); // abort();
raise(SIGTERM); raise(SIGTERM);
terminate(); terminate();
// throw SystemError(err.str()); // throw SystemError(err.str());
} }
} }
...@@ -356,153 +356,153 @@ void UObject_SK::waitSM( int wait_msec, ObjectId _testID ) ...@@ -356,153 +356,153 @@ void UObject_SK::waitSM( int wait_msec, ObjectId _testID )
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
void UObject_SK::callback() void UObject_SK::callback()
{ {
if( !active ) if( !active )
return; return;
try try
{ {
// проверка таймеров // проверка таймеров
checkTimers(this); checkTimers(this);
if( resetMsgTime>0 && trResetMsg.hi(ptResetMsg.checkTime()) ) if( resetMsgTime>0 && trResetMsg.hi(ptResetMsg.checkTime()) )
{ {
// cout << myname << ": ********* reset messages *********" << endl; // cout << myname << ": ********* reset messages *********" << endl;
resetMsg(); resetMsg();
} }
// обработка сообщений (таймеров и т.п.) // обработка сообщений (таймеров и т.п.)
for( unsigned int i=0; i<20; i++ ) for( unsigned int i=0; i<20; i++ )
{ {
if( !receiveMessage(msg) ) if( !receiveMessage(msg) )
break; break;
processingMessage(&msg); processingMessage(&msg);
updateOutputs(forceOut); updateOutputs(forceOut);
// updatePreviousValues(); // updatePreviousValues();
} }
// Выполнение шага программы // Выполнение шага программы
step(); step();
// "сердцебиение" // "сердцебиение"
if( idHeartBeat!=DefaultObjectId && ptHeartBeat.checkTime() ) if( idHeartBeat!=DefaultObjectId && ptHeartBeat.checkTime() )
{ {
ui->setValue(idHeartBeat,maxHeartBeat,UniversalIO::AI); ui->setValue(idHeartBeat,maxHeartBeat,UniversalIO::AI);
ptHeartBeat.reset(); ptHeartBeat.reset();
} }
// обновление выходов // обновление выходов
updateOutputs(forceOut); updateOutputs(forceOut);
updatePreviousValues(); updatePreviousValues();
} }
catch( Exception& ex ) catch( Exception& ex )
{ {
ucrit << myname << "(execute): " << ex << endl; ucrit << myname << "(execute): " << ex << endl;
} }
catch(CORBA::SystemException& ex) catch(CORBA::SystemException& ex)
{ {
ucrit << myname << "(execute): СORBA::SystemException: " ucrit << myname << "(execute): СORBA::SystemException: "
<< ex.NP_minorString() << endl; << ex.NP_minorString() << endl;
} }
catch( std::exception&ex ) catch( std::exception&ex )
{ {
ucrit << myname << "(execute): catch " << ex.what() << endl; ucrit << myname << "(execute): catch " << ex.what() << endl;
} }
if( !active ) if( !active )
return; return;
msleep( sleep_msec ); msleep( sleep_msec );
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void UObject_SK::setValue( UniSetTypes::ObjectId _sid, long _val ) void UObject_SK::setValue( UniSetTypes::ObjectId _sid, long _val )
{ {
ui->setValue(_sid,_val); ui->setValue(_sid,_val);
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void UObject_SK::updateOutputs( bool _force ) void UObject_SK::updateOutputs( bool _force )
{ {
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void UObject_SK::preSensorInfo( const UniSetTypes::SensorMessage* _sm ) void UObject_SK::preSensorInfo( const UniSetTypes::SensorMessage* _sm )
{ {
sensorInfo(_sm); sensorInfo(_sm);
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void UObject_SK::askSensor( UniSetTypes::ObjectId _sid, UniversalIO::UIOCommand _cmd, UniSetTypes::ObjectId _node ) void UObject_SK::askSensor( UniSetTypes::ObjectId _sid, UniversalIO::UIOCommand _cmd, UniSetTypes::ObjectId _node )
{ {
ui->askRemoteSensor(_sid,_cmd,_node,getId()); ui->askRemoteSensor(_sid,_cmd,_node,getId());
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
long UObject_SK::getValue( UniSetTypes::ObjectId _sid ) long UObject_SK::getValue( UniSetTypes::ObjectId _sid )
{ {
try try
{ {
return ui->getValue(_sid); return ui->getValue(_sid);
} }
catch(Exception& ex) catch(Exception& ex)
{ {
ucrit << myname << "(getValue): " << ex << endl; ucrit << myname << "(getValue): " << ex << endl;
throw; throw;
} }
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void UObject_SK::preAskSensors( UniversalIO::UIOCommand _cmd ) void UObject_SK::preAskSensors( UniversalIO::UIOCommand _cmd )
{ {
PassiveTimer ptAct(activateTimeout); PassiveTimer ptAct(activateTimeout);
while( !activated && !ptAct.checkTime() ) while( !activated && !ptAct.checkTime() )
{ {
cout << myname << "(preAskSensors): wait activate..." << endl; cout << myname << "(preAskSensors): wait activate..." << endl;
msleep(300); msleep(300);
if( activated ) if( activated )
break; break;
} }
if( !activated ) if( !activated )
ucrit << myname ucrit << myname
<< "(preAskSensors): ************* don`t activated?! ************" << endl; << "(preAskSensors): ************* don`t activated?! ************" << endl;
for( ;; ) for( ;; )
{ {
try try
{ {
return; return;
} }
catch(SystemError& err) catch(SystemError& err)
{ {
ucrit << myname << "(preAskSensors): " << err << endl; ucrit << myname << "(preAskSensors): " << err << endl;
} }
catch(Exception& ex) catch(Exception& ex)
{ {
ucrit << myname << "(preAskSensors): " << ex << endl; ucrit << myname << "(preAskSensors): " << ex << endl;
} }
catch( std::exception&ex ) catch( std::exception&ex )
{ {
ucrit << myname << "(execute): catch " << ex.what() << endl; ucrit << myname << "(execute): catch " << ex.what() << endl;
} }
msleep(askPause); msleep(askPause);
} }
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void UObject_SK::setMsg( UniSetTypes::ObjectId _code, bool _state ) void UObject_SK::setMsg( UniSetTypes::ObjectId _code, bool _state )
{ {
// блокируем сброс (т.к. он автоматически по таймеру) // блокируем сброс (т.к. он автоматически по таймеру)
if( !_state ) if( !_state )
{ {
ptResetMsg.reset(); ptResetMsg.reset();
return; return;
} }
alarm( _code, _state ); alarm( _code, _state );
ptResetMsg.reset(); ptResetMsg.reset();
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
...@@ -33,8 +33,6 @@ ...@@ -33,8 +33,6 @@
#include "UniSetObject.h" #include "UniSetObject.h"
#include "UniSetManager.h" #include "UniSetManager.h"
#include "OmniThreadCreator.h" #include "OmniThreadCreator.h"
//#include "OmniThreadCreator.h"
//---------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------
class UniSetActivator; class UniSetActivator;
typedef std::shared_ptr<UniSetActivator> UniSetActivatorPtr; typedef std::shared_ptr<UniSetActivator> UniSetActivatorPtr;
...@@ -46,7 +44,7 @@ typedef std::shared_ptr<UniSetActivator> UniSetActivatorPtr; ...@@ -46,7 +44,7 @@ typedef std::shared_ptr<UniSetActivator> UniSetActivatorPtr;
* \warning Авктиватор может быть создан только один. Для его создания используйте код: * \warning Авктиватор может быть создан только один. Для его создания используйте код:
\code \code
... ...
UniSetActivator* act = UniSetActivator::Instance() auto act = UniSetActivator::Instance()
... ...
\endcode \endcode
* Активатор в свою очередь сам является менеджером(и объектом) и обладает всеми его свойствами * Активатор в свою очередь сам является менеджером(и объектом) и обладает всеми его свойствами
...@@ -75,24 +73,6 @@ class UniSetActivator: ...@@ -75,24 +73,6 @@ class UniSetActivator:
protected: protected:
/*! Команды доступные при заказе сигналов
* см. askSignal()
*/
enum AskSigCommand {
Ask, /*!< заказать получение сигнала */
Denial /*!< отказаться от получения сигнала */
};
/*! заказ на обработку сигнала signo
* Для обработки предназначена функция signal().
* \warning Сообщение о приходе сигналов SITERM, SIGINT, SIGABRT приходит
* вне зависимости от заказа. От этих сообщений нельзя отказаться...
* \warning Заказ других сигналов пока не работает..
* \warning функция временно недоступна (private). Ведуться работы...
* \todo сделать возможность заказа других сигналов
*/
// void askSignal(int signo, AskSigCommand cmd=Ask);
virtual void work(); virtual void work();
inline CORBA::ORB_ptr getORB() inline CORBA::ORB_ptr getORB()
...@@ -102,11 +82,9 @@ class UniSetActivator: ...@@ -102,11 +82,9 @@ class UniSetActivator:
virtual void sysCommand( const UniSetTypes::SystemMessage *sm ) override; virtual void sysCommand( const UniSetTypes::SystemMessage *sm ) override;
// уносим в protected, т.к. Activator должен быть только один.. // уносим в protected, т.к. Activator должен быть только один..
UniSetActivator(); UniSetActivator();
UniSetActivator( const UniSetTypes::ObjectId id ); UniSetActivator( const UniSetTypes::ObjectId id );
static std::shared_ptr<UniSetActivator> inst; static std::shared_ptr<UniSetActivator> inst;
private: private:
...@@ -125,23 +103,10 @@ class UniSetActivator: ...@@ -125,23 +103,10 @@ class UniSetActivator:
CORBA::ORB_var orb; CORBA::ORB_var orb;
TerminateEvent_Signal s_term; TerminateEvent_Signal s_term;
ost::AtomicCounter orbthrIsFinished;
bool omDestroy; std::atomic_bool omDestroy;
bool sig;
pid_t thpid; // pid orb потока pid_t thpid; // pid orb потока
}; };
//----------------------------------------------------------------------------------------
/*
template<class TClass>
int UniSetActivator::attach(TClass* p, void(TClass:: *f)(void*) )
{
if( next >= MAX_CHILD_THREAD )
return -1;
callpull[next] = new OmniThreadCreator<TClass>( p, f);
next++;
return 0;
}
*/
#endif #endif
//----------------------------------------------------------------------------------------
...@@ -268,16 +268,14 @@ void UniSetActivator::Destroy() ...@@ -268,16 +268,14 @@ void UniSetActivator::Destroy()
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
UniSetActivator::UniSetActivator( const ObjectId id ): UniSetActivator::UniSetActivator( const ObjectId id ):
UniSetManager(id), UniSetManager(id),
omDestroy(false), omDestroy(false)
sig(false)
{ {
UniSetActivator::init(); UniSetActivator::init();
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
UniSetActivator::UniSetActivator(): UniSetActivator::UniSetActivator():
UniSetManager(UniSetTypes::DefaultObjectId), UniSetManager(UniSetTypes::DefaultObjectId),
omDestroy(false), omDestroy(false)
sig(false)
{ {
// thread(false); // отключаем поток (раз не задан id) // thread(false); // отключаем поток (раз не задан id)
UniSetActivator::init(); UniSetActivator::init();
...@@ -301,7 +299,7 @@ void UniSetActivator::init() ...@@ -301,7 +299,7 @@ void UniSetActivator::init()
ucrit << myname << "(init): init poa failed!!!" << endl; ucrit << myname << "(init): init poa failed!!!" << endl;
// Чтобы подключиться к функциям завершения как можно раньше (раньше создания объектов) // Чтобы подключиться к функциям завершения как можно раньше (раньше создания объектов)
// этот код перенесён в Configuration::uniset_init (в надежде, что uniset_init всегда вызывается одной из первых). // этот код перенесён в Configuration::uniset_init (в надежде, что uniset_init всегда вызывается одной из первых).
// atexit( UniSetActivator::normalexit ); // atexit( UniSetActivator::normalexit );
// set_terminate( UniSetActivator::normalterminate ); // ловушка для неизвестных исключений // set_terminate( UniSetActivator::normalterminate ); // ловушка для неизвестных исключений
} }
...@@ -403,8 +401,7 @@ void UniSetActivator::run( bool thread ) ...@@ -403,8 +401,7 @@ void UniSetActivator::run( bool thread )
offThread(); // отключение потока обработки сообщений, раз не задан ObjectId offThread(); // отключение потока обработки сообщений, раз не задан ObjectId
UniSetManager::activate(); // а там вызывается активация всех подчиненных объектов и менеджеров UniSetManager::activate(); // а там вызывается активация всех подчиненных объектов и менеджеров
active = true;
active=true;
ulogsys << myname << "(run): активизируем менеджер"<<endl; ulogsys << myname << "(run): активизируем менеджер"<<endl;
pman->activate(); pman->activate();
...@@ -431,38 +428,37 @@ void UniSetActivator::run( bool thread ) ...@@ -431,38 +428,37 @@ void UniSetActivator::run( bool thread )
*/ */
void UniSetActivator::stop() void UniSetActivator::stop()
{ {
// uniset_mutex_lock l(deactivateMutex, 500); if( !active )
if( active ) return;
{
active=false;
ulogsys << myname << "(stop): deactivate... "<< endl; active = false;
deactivate(); ulogsys << myname << "(stop): deactivate... "<< endl;
try deactivate();
{
deactivateObject(); try
} {
catch(omniORB::fatalException& fe) deactivateObject();
{ }
ucrit << myname << "(stop): : поймали omniORB::fatalException:" << endl; catch(omniORB::fatalException& fe)
ucrit << myname << "(stop): file: " << fe.file() << endl; {
ucrit << myname << "(stop): line: " << fe.line() << endl; ucrit << myname << "(stop): : поймали omniORB::fatalException:" << endl;
ucrit << myname << "(stop): mesg: " << fe.errmsg() << endl; ucrit << myname << "(stop): file: " << fe.file() << endl;
} ucrit << myname << "(stop): line: " << fe.line() << endl;
catch( std::exception& ex ) ucrit << myname << "(stop): mesg: " << fe.errmsg() << endl;
{ }
ucrit << myname << "(stop): " << ex.what() << endl; catch( std::exception& ex )
} {
ucrit << myname << "(stop): " << ex.what() << endl;
}
ulogsys << myname << "(stop): deactivate ok. "<<endl; ulogsys << myname << "(stop): deactivate ok. "<<endl;
ulogsys << myname << "(stop): discard request..."<< endl; ulogsys << myname << "(stop): discard request..."<< endl;
pman->discard_requests(true); pman->discard_requests(true);
ulogsys << myname << "(stop): discard request ok."<< endl; ulogsys << myname << "(stop): discard request ok."<< endl;
}
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
...@@ -517,17 +513,17 @@ void UniSetActivator::sysCommand( const UniSetTypes::SystemMessage *sm ) ...@@ -517,17 +513,17 @@ void UniSetActivator::sysCommand( const UniSetTypes::SystemMessage *sm )
{ {
switch(sm->command) switch(sm->command)
{ {
case SystemMessage::LogRotate: case SystemMessage::LogRotate:
{
ulogsys << myname << "(sysCommand): logRotate" << endl;
// переоткрываем логи
string fname = ulog.getLogFile();
if( !fname.empty() )
{ {
ulog.logFile(fname.c_str(),true); ulogsys << myname << "(sysCommand): logRotate" << endl;
ulog << myname << "(sysCommand): ***************** ulog LOG ROTATE *****************" << endl; // переоткрываем логи
string fname = ulog.getLogFile();
if( !fname.empty() )
{
ulog.logFile(fname.c_str(),true);
ulog << myname << "(sysCommand): ***************** ulog LOG ROTATE *****************" << endl;
}
} }
}
break; break;
} }
} }
...@@ -602,69 +598,69 @@ void UniSetActivator::terminated( int signo ) ...@@ -602,69 +598,69 @@ void UniSetActivator::terminated( int signo )
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
void UniSetActivator::normalexit() void UniSetActivator::normalexit()
{ {
if( g_act ) if( !g_act )
return;
ulogsys << g_act->getName() << "(default exit): ..begin..."<< endl << flush;
if( g_term == false )
{ {
ulogsys << g_act->getName() << "(default exit): ..begin..."<< endl << flush; // прежде чем вызывать notify_one(), мы должны освободить mutex!
if( g_term == false )
{ {
// прежде чем вызывать notify_one(), мы должны освободить mutex! std::unique_lock<std::mutex> locker(g_termmutex);
{ g_term = true;
std::unique_lock<std::mutex> locker(g_termmutex); g_signo = 0;
g_term = true;
g_signo = 0;
}
ulogsys << "(default exit): notify terminate.." << endl << flush;
g_termevent.notify_one();
} }
ulogsys << "(default exit): notify terminate.." << endl << flush;
g_termevent.notify_one();
}
ulogsys << "(default exit): wait done.." << endl << flush; ulogsys << "(default exit): wait done.." << endl << flush;
#if 1 #if 1
if( g_term_thread && g_term_thread->joinable() ) if( g_term_thread && g_term_thread->joinable() )
g_term_thread->join(); g_term_thread->join();
#else #else
if( g_doneevent ) if( g_doneevent )
{ {
std::unique_lock<std::mutex> locker(g_donemutex); std::unique_lock<std::mutex> locker(g_donemutex);
while( !g_done ) while( !g_done )
g_doneevent.wait(locker); g_doneevent.wait(locker);
} }
#endif #endif
ulogsys << "(default exit): wait done OK (good bye)" << endl << flush; ulogsys << "(default exit): wait done OK (good bye)" << endl << flush;
}
} }
// ------------------------------------------------------------------------------------------
void UniSetActivator::normalterminate() void UniSetActivator::normalterminate()
{ {
if( g_act ) if( !g_act )
return;
ulogsys << g_act->getName() << "(default terminate): ..begin..."<< endl << flush;
if( g_term == false )
{ {
ulogsys << g_act->getName() << "(default terminate): ..begin..."<< endl << flush; // прежде чем вызывать notify_one(), мы должны освободить mutex!
if( g_term == false )
{ {
// прежде чем вызывать notify_one(), мы должны освободить mutex! std::unique_lock<std::mutex> locker(g_termmutex);
{ g_term = true;
std::unique_lock<std::mutex> locker(g_termmutex); g_signo = 0;
g_term = true;
g_signo = 0;
}
ulogsys << "(default terminate): notify terminate.." << endl << flush;
g_termevent.notify_one();
} }
ulogsys << "(default terminate): notify terminate.." << endl << flush;
g_termevent.notify_one();
}
ulogsys << "(default terminate): wait done.." << endl << flush; ulogsys << "(default terminate): wait done.." << endl << flush;
#if 1 #if 1
if( g_term_thread && g_term_thread->joinable() ) if( g_term_thread && g_term_thread->joinable() )
g_term_thread->join(); g_term_thread->join();
#else #else
if( g_doneevent ) if( g_doneevent )
{ {
std::unique_lock<std::mutex> locker(g_donemutex); std::unique_lock<std::mutex> locker(g_donemutex);
while( !g_done ) while( !g_done )
g_doneevent.wait(locker); g_doneevent.wait(locker);
}
#endif
ulogsys << "(default terminate): wait done OK (good bye)" << endl << flush;
} }
#endif
ulogsys << "(default terminate): wait done OK (good bye)" << endl << flush;
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
void UniSetActivator::term( int signo ) void UniSetActivator::term( int signo )
...@@ -677,9 +673,6 @@ void UniSetActivator::term( int signo ) ...@@ -677,9 +673,6 @@ void UniSetActivator::term( int signo )
return; return;
} }
if( signo )
sig = true;
try try
{ {
ulogsys << myname << "(term): вызываем sigterm()" << endl; ulogsys << myname << "(term): вызываем sigterm()" << endl;
......
// ADD PREDEFINED MACROS HERE!
conf/test.xml
docs/examples/uniset-configure-example.xml
docs/Makefile.am
extensions/DBServer-MySQL/DBServer_MySQL.cc
extensions/DBServer-MySQL/DBServer_MySQL.h
extensions/DBServer-MySQL/libUniSet2MySQL.pc.in
extensions/DBServer-MySQL/main.cc
extensions/DBServer-MySQL/Makefile.am
extensions/DBServer-MySQL/MySQLInterface.cc
extensions/DBServer-MySQL/MySQLInterface.h
extensions/DBServer-MySQL/test.cc
extensions/DBServer-PostgreSQL/test.xml
extensions/DBServer-SQLite/DBServer_SQLite.cc
extensions/DBServer-SQLite/DBServer_SQLite.h
extensions/DBServer-SQLite/libUniSet2SQLite.pc.in
extensions/DBServer-SQLite/main.cc
extensions/DBServer-SQLite/Makefile.am
extensions/DBServer-SQLite/SQLiteInterface.cc
extensions/DBServer-SQLite/SQLiteInterface.h
extensions/DBServer-SQLite/test.cc
extensions/DBServer-SQLite/test.xml
extensions/include/Calibration.h
extensions/include/ComediInterface.h
extensions/include/DigitalFilter.h
extensions/include/Element.h
extensions/include/Extensions.h
extensions/include/IB.h
extensions/include/IOBase.h
extensions/include/IOControl.h
extensions/include/LProcessor.h
extensions/include/Makefile.am
extensions/include/MBExchange.h
extensions/include/MBSlave.h
extensions/include/MBTCPMaster.h
extensions/include/MBTCPMultiMaster.h
extensions/include/MBTCPMultiSlave.h
extensions/include/MTR.h
extensions/include/PassiveLProcessor.h
extensions/include/PID.h
extensions/include/RRDServer.h
extensions/include/RTUExchange.h
extensions/include/RTUStorage.h
extensions/include/Schema.h
extensions/include/SharedMemory.h
extensions/include/SingleProcess.h
extensions/include/SMInterface.h
extensions/include/TDelay.h
extensions/include/UDPPacket.h
extensions/include/UNetExchange.h
extensions/include/UNetReceiver.h
extensions/include/UNetSender.h
extensions/include/UniExchange.h
extensions/include/UObject_SK.h
extensions/include/VTypes.h
extensions/IOControl/ComediInterface.cc
extensions/IOControl/ComediInterface.h
extensions/IOControl/iocalibr.cc
extensions/IOControl/IOControl.cc
extensions/IOControl/iocontrol.cc
extensions/IOControl/IOControl.h
extensions/IOControl/iotest.cc
extensions/IOControl/libUniSet2IOControl.pc.in
extensions/IOControl/Makefile.am
extensions/lib/Calibration.cc
extensions/lib/DigitalFilter.cc
extensions/lib/Extensions.cc
extensions/lib/IOBase.cc
extensions/lib/Makefile.am
extensions/lib/MTR.cc
extensions/lib/PID.cc
extensions/lib/SingleProcess.cc
extensions/lib/SMInterface.cc
extensions/lib/UObject_SK.cc
extensions/lib/VTypes.cc
extensions/LogicProcessor/tests/lproc.cc
extensions/LogicProcessor/tests/Makefile.am
extensions/LogicProcessor/tests/schema.xml
extensions/LogicProcessor/tests/tests.cc
extensions/LogicProcessor/Element.cc
extensions/LogicProcessor/Element.h
extensions/LogicProcessor/libUniSet2LogicProcessor.pc.in
extensions/LogicProcessor/logicproc.cc
extensions/LogicProcessor/LProcessor.cc
extensions/LogicProcessor/LProcessor.h
extensions/LogicProcessor/Makefile.am
extensions/LogicProcessor/PassiveLProcessor.cc
extensions/LogicProcessor/PassiveLProcessor.h
extensions/LogicProcessor/plogicproc.cc
extensions/LogicProcessor/Schema.cc
extensions/LogicProcessor/Schema.h
extensions/LogicProcessor/schema.xml
extensions/LogicProcessor/SchemaXML.cc
extensions/LogicProcessor/TAND.cc
extensions/LogicProcessor/TDelay.cc
extensions/LogicProcessor/TDelay.h
extensions/LogicProcessor/TNOT.cc
extensions/LogicProcessor/TOR.cc
extensions/ModbusMaster/tests/Makefile.am
extensions/ModbusMaster/tests/mbmaster-test-configure.xml
extensions/ModbusMaster/tests/MBTCPTestServer.cc
extensions/ModbusMaster/tests/MBTCPTestServer.h
extensions/ModbusMaster/tests/run_test_mbtcpmaster.cc
extensions/ModbusMaster/tests/run_test_mbtcpmultimaster.cc
extensions/ModbusMaster/tests/test_mbtcpmaster.cc
extensions/ModbusMaster/tests/test_mbtcpmultimaster.cc
extensions/ModbusMaster/libUniSet2MBTCPMaster.pc.in
extensions/ModbusMaster/libUniSet2RTU.pc.in
extensions/ModbusMaster/main.cc
extensions/ModbusMaster/Makefile.am
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/mtr-conv.cc
extensions/ModbusMaster/mtr-read.cc
extensions/ModbusMaster/mtr-setup.cc
extensions/ModbusMaster/multi-main.cc
extensions/ModbusMaster/RTUExchange.cc
extensions/ModbusMaster/rtuexchange.cc
extensions/ModbusMaster/RTUExchange.h
extensions/ModbusMaster/rtustate.cc
extensions/ModbusMaster/RTUStorage.cc
extensions/ModbusMaster/RTUStorage.h
extensions/ModbusMaster/test.xml
extensions/ModbusMaster/vtconv.cc
extensions/ModbusSlave/tests/Makefile.am
extensions/ModbusSlave/tests/mbslave-test-configure.xml
extensions/ModbusSlave/tests/t.cc
extensions/ModbusSlave/tests/test_mbslave.cc
extensions/ModbusSlave/tests/tests_individual_process.cc
extensions/ModbusSlave/tests/tests_with_sm.cc
extensions/ModbusSlave/libUniSet2MBSlave.pc.in
extensions/ModbusSlave/Makefile.am
extensions/ModbusSlave/MBSlave.cc
extensions/ModbusSlave/mbslave.cc
extensions/ModbusSlave/MBSlave.h
extensions/ModbusSlave/mbtcp-multislave.cc
extensions/ModbusSlave/MBTCPMultiSlave.cc
extensions/ModbusSlave/MBTCPMultiSlave.h
extensions/ModbusSlave/test.xml
extensions/RRDServer/libUniSet2RRDServer.pc.in
extensions/RRDServer/main.cc
extensions/RRDServer/Makefile.am
extensions/RRDServer/RRDServer.cc
extensions/RRDServer/RRDServer.h
extensions/SharedMemory/libUniSet2SharedMemory.pc.in
extensions/SharedMemory/Makefile.am
extensions/SharedMemory/SharedMemory.cc
extensions/SharedMemory/SharedMemory.h
extensions/SharedMemory/smemory.cc
extensions/SharedMemory/test.xml
extensions/SharedMemoryPlus/Makefile.am
extensions/SharedMemoryPlus/smemory-plus.cc
extensions/SharedMemoryPlus/test.xml
extensions/SMDBServer/libUniSet2SMDBServer.pc.in
extensions/SMDBServer/main.cc
extensions/SMDBServer/Makefile.am
extensions/SMDBServer/SMDBServer.cc
extensions/SMDBServer/SMDBServer.h
extensions/SMViewer/main.cc
extensions/SMViewer/Makefile.am
extensions/SMViewer/SMViewer.cc
extensions/SMViewer/SMViewer.h
extensions/tests/r/t.cc
extensions/tests/r/val.report.xml
extensions/tests/SMemoryTest/Makefile.am
extensions/tests/SMemoryTest/smemory-test.cc
extensions/tests/SMemoryTest/test.xml
extensions/tests/SMemoryTest/TestProc.cc
extensions/tests/SMemoryTest/TestProc.h
extensions/tests/SMemoryTest/testproc.src.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32403.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32404.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32405.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32406.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32407.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32408.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32409.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32410.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32411.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32412.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32413.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32414.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32415.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32416.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32418.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32420.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32421.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32422.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32423.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32424.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32425.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32428.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32429.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32430.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32432.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32433.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32434.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32436.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32437.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32438.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32439.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32440.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32441.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32442.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32444.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32445.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32448.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32450.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32451.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32452.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32453.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32454.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32455.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32457.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32458.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32459.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32461.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32462.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32463.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32464.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32465.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32466.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32467.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32469.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32470.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32473.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32475.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32481.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32483.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32484.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32486.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32489.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32490.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32491.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32492.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32493.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32494.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32495.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32497.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32498.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32499.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32501.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32502.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32503.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32504.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32505.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32506.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32507.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32509.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32510.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32513.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32515.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32516.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32517.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32518.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32519.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32520.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32522.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32523.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32524.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32526.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32527.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32528.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32529.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32530.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32531.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32534.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32536.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32537.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32540.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32542.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32548.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32550.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32551.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32553.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32556.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.32557.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3580.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3591.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3592.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3593.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3594.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3595.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3596.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3597.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3598.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3599.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3600.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3601.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3602.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3603.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3604.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3605.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3606.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3607.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3608.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3609.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3610.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3611.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3612.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3613.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3614.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3616.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3617.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3618.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3620.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3621.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3622.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3623.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3624.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3625.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3626.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3628.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3629.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3632.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3634.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3635.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3636.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3637.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3638.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3639.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3641.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3642.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3643.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3645.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3646.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3647.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3648.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3649.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3650.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3651.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3653.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3654.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3657.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3659.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3665.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3667.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3668.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3671.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3672.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3676.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3677.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3678.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3679.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3680.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3682.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3683.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3684.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3686.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3687.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3688.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3689.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3690.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3691.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3692.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3694.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3695.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3698.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3700.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3701.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3702.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3703.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3704.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3705.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3707.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3708.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3709.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3711.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3712.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3713.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3714.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3715.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3716.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3717.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3719.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3720.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3723.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3725.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3732.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3734.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3735.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3738.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3739.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3744.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3745.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3746.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3747.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3764.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3765.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3767.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3769.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3770.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3771.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3772.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3773.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3774.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3777.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3779.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3780.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3783.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3785.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3791.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3793.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3794.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3797.valgrind.xml
extensions/tests/valgrind-reports/tests_with_sm.sh.3798.valgrind.xml
extensions/tests/Makefile.am
extensions/tests/test.xml
extensions/tests/test_calibration.cc
extensions/tests/test_digitalfilter.cc
extensions/tests/test_iobase.cc
extensions/tests/test_iobase_with_sm.cc
extensions/tests/test_ui.cc
extensions/tests/test_vtypes.cc
extensions/tests/tests.cc
extensions/tests/tests_with_conf.cc
extensions/tests/tests_with_conf.xml
extensions/tests/tests_with_sm.cc
extensions/tests/tests_with_sm.h
extensions/tests/tests_with_sm.xml
extensions/tests/u.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12624.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12625.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12626.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12630.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12632.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12634.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12635.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12637.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12639.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12640.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12641.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12642.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12643.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12644.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12645.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12647.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12648.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12652.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12655.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12656.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12657.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12658.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12661.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12662.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12663.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12664.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12665.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12666.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12667.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12668.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12669.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12670.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12671.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12674.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12675.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12676.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12677.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12678.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12679.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12680.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12681.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12683.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12684.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12685.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12687.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12688.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12689.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12690.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12691.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12692.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12693.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12695.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12696.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12699.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12701.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12702.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12703.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12704.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12705.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12706.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12708.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12709.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12710.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12712.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12713.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12714.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12715.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12716.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12717.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12718.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12720.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12721.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12724.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12726.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12732.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12734.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12735.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12738.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12739.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12743.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12744.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12745.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12746.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12747.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12749.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12750.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12751.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12753.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12754.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12755.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12756.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12757.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12758.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12759.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12761.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12762.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12765.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12768.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12771.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12772.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12773.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12896.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12946.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12980.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12982.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12983.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12985.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12986.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12987.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12988.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12989.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12990.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12991.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12993.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12994.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12997.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.12999.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13007.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13009.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13010.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13013.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13014.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13019.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13020.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13021.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13022.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13024.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13025.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13026.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13028.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13029.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13030.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13031.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13032.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13033.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13034.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13036.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13037.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13040.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13042.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13048.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13050.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13051.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13059.valgrind.xml
extensions/UNetUDP/tests/valgrind-reports/tests_with_sm.sh.13060.valgrind.xml
extensions/UNetUDP/tests/Makefile.am
extensions/UNetUDP/tests/test_unetudp.cc
extensions/UNetUDP/tests/tests_individual_process.cc
extensions/UNetUDP/tests/tests_with_sm.cc
extensions/UNetUDP/tests/unetudp-test-configure.xml
extensions/UNetUDP/libUniSet2UNetUDP.pc.in
extensions/UNetUDP/Makefile.am
extensions/UNetUDP/test.xml
extensions/UNetUDP/UDPPacket.cc
extensions/UNetUDP/UDPPacket.h
extensions/UNetUDP/unet-udp-tester.cc
extensions/UNetUDP/UNetExchange.cc
extensions/UNetUDP/unetexchange.cc
extensions/UNetUDP/UNetExchange.cc.c
extensions/UNetUDP/UNetExchange.h
extensions/UNetUDP/UNetReceiver.cc
extensions/UNetUDP/UNetReceiver.h
extensions/UNetUDP/UNetSender.cc
extensions/UNetUDP/UNetSender.h
extensions/UniNetwork/libUniSet2Network.pc.in
extensions/UniNetwork/Makefile.am
extensions/UniNetwork/UniExchange.cc
extensions/UniNetwork/UniExchange.h
extensions/UniNetwork/uninet.cc
extensions/libUniSet2Extensions.pc.in
extensions/Makefile.am
IDL/Processes/Makefile.am
IDL/UniSetTypes/Makefile.am
IDL/Makefile.am
include/modbus/Makefile.am
include/modbus/ModbusClient.h
include/modbus/ModbusHelpers.h
include/modbus/ModbusRTUErrors.h
include/modbus/ModbusRTUMaster.h
include/modbus/ModbusRTUSlave.h
include/modbus/ModbusRTUSlaveSlot.h
include/modbus/ModbusServer.h
include/modbus/ModbusServerSlot.h
include/modbus/ModbusTCPCore.h
include/modbus/ModbusTCPMaster.h
include/modbus/ModbusTCPServer.h
include/modbus/ModbusTCPServerSlot.h
include/modbus/ModbusTCPSession.h
include/modbus/ModbusTypes.h
include/CallbackTimer.h
include/ComPort.h
include/ComPort485F.h
include/Configuration.1.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/IONotifyController_LT.h
include/IORFile.h
include/LogAgregator.h
include/LogReader.h
include/LogServer.h
include/LogServerTypes.h
include/LogSession.h
include/LT_Object.h
include/Makefile.am
include/MessageType.h
include/Mutex.h
include/NCRestorer.h
include/ObjectIndex.h
include/ObjectIndex_Array.h
include/ObjectIndex_idXML.h
include/ObjectIndex_XML.h
include/ObjectRepository.h
include/ObjectRepositoryFactory.h
include/OmniThreadCreator.h
include/ORepHelpers.h
include/PassiveObject.h
include/PassiveTimer.h
include/ProxyManager.h
include/Pulse.h
include/Restorer.h
include/RunLock.h
include/SMonitor.h
include/SViewer.h
include/TCPCheck.h
include/ThreadCreator.h
include/Trigger.h
include/TriggerAND.h
include/TriggerOR.h
include/TriggerOUT.h
include/UInterface.h
include/UniSetActivator.h
include/UniSetManager.h
include/UniSetManager_LT.h
include/UniSetObject.h
include/UniSetObject_LT.h
include/UniSetTypes.h
include/UniXML.h
include/UTCPStream.h
include/WDTInterface.h
lib/Makefile.am
python/examples/test.xml
python/lib/pyUniSet/Makefile.am
python/lib/pyUniSet/PyUInterface.cc
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/Makefile.am
python/tests/UConnector/test.xml
python/tests/UInterface/test.xml
python/Makefile.am
src/Communications/Modbus/Makefile.am
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/ModbusServerSlot.cc
src/Communications/Modbus/ModbusTCPCore.cc
src/Communications/Modbus/ModbusTCPMaster.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/Communications/TCP/Makefile.am
src/Communications/TCP/TCPCheck.cc
src/Communications/TCP/UTCPStream.cc
src/Communications/ComPort.cc
src/Communications/ComPort485F.cc
src/Communications/Makefile.am
src/Interfaces/Makefile.am
src/Interfaces/UInterface.cc
src/Log/Debug.cc
src/Log/DebugExtBuf.h
src/Log/DebugStream.cc
src/Log/LogAgregator.cc
src/Log/LogReader.cc
src/Log/LogServer.cc
src/Log/LogServerTypes.cc
src/Log/LogSession.cc
src/Log/Makefile.am
src/ObjectRepository/IORFile.cc
src/ObjectRepository/Makefile.am
src/ObjectRepository/ObjectIndex.cc
src/ObjectRepository/ObjectIndex_Array.cc
src/ObjectRepository/ObjectIndex_idXML.cc
src/ObjectRepository/ObjectIndex_XML.cc
src/ObjectRepository/ObjectRepository.cc
src/ObjectRepository/ObjectRepositoryFactory.cc
src/ObjectRepository/ORepHelpers.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/Makefile.am
src/Processes/NCRestorer.cc
src/Processes/NCRestorer_XML.cc
src/Services/DBServer.cc
src/Services/Makefile.am
src/Timers/Makefile.am
src/Timers/PassiveCondTimer.cc
src/Timers/PassiveSigTimer.cc
src/Timers/PassiveTimer.cc
src/Timers/WaitingPassiveTimer.cc
src/Various/Configuration.1.cc
src/Various/Configuration.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
src/Makefile.am
tests/UniXmlTest/Makefile.am
tests/UniXmlTest/XmlTest.cc
tests/valgrind-reports/tests_with_conf.sh.32206.valgrind.xml
tests/valgrind-reports/tests_with_conf.sh.32207.valgrind.xml
tests/valgrind-reports/tests_with_conf.sh.32213.valgrind.xml
tests/valgrind-reports/tests_with_conf.sh.32215.valgrind.xml
tests/valgrind-reports/tests_with_conf.sh.32216.valgrind.xml
tests/valgrind-reports/tests_with_conf.sh.32219.valgrind.xml
tests/valgrind-reports/tests_with_conf.sh.32220.valgrind.xml
tests/int_unsigned.cc
tests/Makefile.am
tests/test.xml
tests/test_callbacktimer.cc
tests/test_conftest.cc
tests/test_delaytimer.cc
tests/test_dlog.cc
tests/test_hourglass.cc
tests/test_iorfile.cc
tests/test_messagetype.cc
tests/test_modbustypes.cc
tests/test_mutex.cc
tests/test_passivecondtimer.cc
tests/test_passivetimer.cc
tests/test_pulse.cc
tests/test_sscanf_hex.cc
tests/test_trigger.cc
tests/test_triggerAND.cc
tests/test_triggerOR.cc
tests/test_triggerOUT.cc
tests/test_ui.cc
tests/test_unixml.cc
tests/test_utypes.cc
tests/tests-junit.xml
tests/tests.cc
tests/tests_bad_config.xml
tests/tests_no_objectsmap.xml
tests/tests_no_uniset_section.xml
tests/tests_unixml.xml
tests/tests_unixml_badfile.xml
tests/tests_with_conf.cc
tests/tests_with_conf.xml
tests/threadtst.cc
tests/umutex.cc
testsuite/Makefile.am
Utilities/Admin/admin.cc
Utilities/Admin/Makefile.am
Utilities/Admin/test.xml
Utilities/codegen/tests/Makefile.am
Utilities/codegen/tests/test.xml
Utilities/codegen/tests/testgen-alone.src.xml
Utilities/codegen/tests/TestGen-main.cc
Utilities/codegen/tests/TestGen.cc
Utilities/codegen/tests/TestGen.h
Utilities/codegen/tests/testgen.src.xml
Utilities/codegen/tests/TestGen_SK.cc
Utilities/codegen/tests/TestGen_SK.h
Utilities/codegen/tests/TestGenAlone-main.cc
Utilities/codegen/tests/TestGenAlone.cc
Utilities/codegen/tests/TestGenAlone.h
Utilities/codegen/tests/TestGenAlone_SK.cc
Utilities/codegen/tests/TestGenAlone_SK.h
Utilities/codegen/tests/uobject.src.xml
Utilities/codegen/tests/UObject_SK.cc
Utilities/codegen/tests/UObject_SK.h
Utilities/codegen/Makefile.am
Utilities/codegen/skel-main.cc
Utilities/codegen/skel-Makefile.am
Utilities/codegen/skel.cc
Utilities/codegen/skel.h
Utilities/codegen/skel.src.xml
Utilities/MBTester/Makefile.am
Utilities/MBTester/mbrtuslave.cc
Utilities/MBTester/mbrtutester.cc
Utilities/MBTester/MBSlave.cc
Utilities/MBTester/mbslave.cc
Utilities/MBTester/MBSlave.h
Utilities/MBTester/mbtcpserver.cc
Utilities/MBTester/MBTCPServer.cc
Utilities/MBTester/MBTCPServer.h
Utilities/MBTester/mbtcptester.cc
Utilities/NullController/main.cc
Utilities/NullController/Makefile.am
Utilities/NullController/NullController.cc
Utilities/NullController/NullController.h
Utilities/NullController/test.xml
Utilities/scripts/Makefile.am
Utilities/SImitator/main.cc
Utilities/SImitator/Makefile.am
Utilities/SImitator/test.xml
Utilities/SMonit/Makefile.am
Utilities/SMonit/smonitor.cc
Utilities/SMonit/test.xml
Utilities/SViewer-text/main.cc
Utilities/SViewer-text/Makefile.am
Utilities/SViewer-text/test.xml
Utilities/ULog/log-stdin.cc
Utilities/ULog/log-wrap.cc
Utilities/ULog/log.cc
Utilities/ULog/log2val.cc
Utilities/ULog/logserver.cc
Utilities/ULog/Makefile.am
Utilities/Makefile.am
libUniSet2.pc.in
Makefile.am
uniset-config.h
\ No newline at end of file
.
extensions/DBServer-MySQL
extensions/DBServer-SQLite
extensions/include
extensions/IOControl
extensions/LogicProcessor
extensions/ModbusMaster
extensions/ModbusMaster/tests
extensions/ModbusSlave
extensions/RRDServer
extensions/SharedMemory
extensions/SMDBServer
extensions/SMViewer
extensions/tests
extensions/tests/SMemoryTest
extensions/UNetUDP
extensions/UniNetwork
include
include/modbus
python/lib/pyUniSet
src/Log
Utilities/codegen
Utilities/codegen/tests
Utilities/MBTester
Utilities/NullController
\ No newline at end of file
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