Commit 458d94ba authored by Pavel Vainerman's avatar Pavel Vainerman

Сделал чтобы процессы ModbusMaster,ModbusSlave и т.п. добавляли себя в

лог-агрегатор SharedMemory (если они запущены с ней в одном адресном пространстве). Т.е. чтобы через SM можно было управлять их логами.
parent 4c8f7e9a
...@@ -22,7 +22,6 @@ Version 2.0 ...@@ -22,7 +22,6 @@ Version 2.0
- сделать ли ObjectId short? - сделать ли ObjectId short?
- "продумать" функцию key()... может наложить ограничение на диапазон id.. - "продумать" функцию key()... может наложить ограничение на диапазон id..
- depend_invert - возможность инвертировать логику, т.е. задать не "разрешающий датчик", а "запрещающий" (для механизма который на уровне SharedMemory) - depend_invert - возможность инвертировать логику, т.е. задать не "разрешающий датчик", а "запрещающий" (для механизма который на уровне SharedMemory)
- uniset-codegen: сделать в src.xml <description> и генерировать на его основе описание класса - uniset-codegen: сделать в src.xml <description> и генерировать на его основе описание класса
...@@ -39,13 +38,10 @@ Version 2.0 ...@@ -39,13 +38,10 @@ Version 2.0
- ТЕСТЫ! ТЕСТЫ! ТЕСТЫ! - ТЕСТЫ! ТЕСТЫ! ТЕСТЫ!
- Перевести взаимодействие PassiveObject <--> ProxyManager на shared_ptr (или weak_ptr). - Перевести взаимодействие PassiveObject <--> ProxyManager на shared_ptr (или weak_ptr).
uniset-codegen: добавить ключ --gen-sensor-name для генерирования name_Item.. (чтобы можно было в логах использовать текстовые названия) uniset-codegen: добавить ключ --gen-sensor-name для генерирования name_Item.. (чтобы можно было в логах использовать текстовые названия)
- перевести PassiveTimer на использование crono:: (c++11)
SQL: SQL:
==== ====
- добавить работу с History (при передаче указателя на SM в конструкторе). - добавить работу с History (при передаче указателя на SM в конструкторе).
......
...@@ -145,7 +145,7 @@ class DBServer_MySQL: ...@@ -145,7 +145,7 @@ class DBServer_MySQL:
/*! глобальная функция для вывода help-а */ /*! глобальная функция для вывода help-а */
static void help_print( int argc, const char* const* argv ); static void help_print( int argc, const char* const* argv );
inline std::shared_ptr<LogAgregator> getLogAggregator() inline std::shared_ptr<LogAgregator> logAggregator()
{ {
return loga; return loga;
} }
......
...@@ -21,7 +21,7 @@ class DBServer_PostgreSQL: ...@@ -21,7 +21,7 @@ class DBServer_PostgreSQL:
/*! глобальная функция для вывода help-а */ /*! глобальная функция для вывода help-а */
static void help_print( int argc, const char* const* argv ); static void help_print( int argc, const char* const* argv );
inline std::shared_ptr<LogAgregator> getLogAggregator() inline std::shared_ptr<LogAgregator> logAggregator()
{ {
return loga; return loga;
} }
......
...@@ -145,7 +145,7 @@ class DBServer_SQLite: ...@@ -145,7 +145,7 @@ class DBServer_SQLite:
/*! глобальная функция для вывода help-а */ /*! глобальная функция для вывода help-а */
static void help_print( int argc, const char* const* argv ); static void help_print( int argc, const char* const* argv );
inline std::shared_ptr<LogAgregator> getLogAggregator() inline std::shared_ptr<LogAgregator> logAggregator()
{ {
return loga; return loga;
} }
......
...@@ -62,7 +62,7 @@ IOControl::IOControl( UniSetTypes::ObjectId id, UniSetTypes::ObjectId icID, ...@@ -62,7 +62,7 @@ IOControl::IOControl( UniSetTypes::ObjectId id, UniSetTypes::ObjectId icID,
iolog->setLogName(myname); iolog->setLogName(myname);
conf->initLogStream(iolog, prefix + "-log"); conf->initLogStream(iolog, prefix + "-log");
loga = make_shared<LogAgregator>(); loga = make_shared<LogAgregator>(myname+"-loga");
loga->add(iolog); loga->add(iolog);
loga->add(ulog()); loga->add(ulog());
loga->add(dlog()); loga->add(dlog());
...@@ -84,6 +84,9 @@ IOControl::IOControl( UniSetTypes::ObjectId id, UniSetTypes::ObjectId icID, ...@@ -84,6 +84,9 @@ IOControl::IOControl( UniSetTypes::ObjectId id, UniSetTypes::ObjectId icID,
logserv_port = conf->getArgPInt("--" + prefix + "-logserver-port", it.getProp("logserverPort"), getId()); logserv_port = conf->getArgPInt("--" + prefix + "-logserver-port", it.getProp("logserverPort"), getId());
} }
if( ic )
ic->logAgregator()->add(loga);
noCards = true; noCards = true;
for( unsigned int i = 1; i < cards.size(); i++ ) for( unsigned int i = 1; i < cards.size(); i++ )
......
...@@ -14,7 +14,7 @@ using namespace UniSetTypes; ...@@ -14,7 +14,7 @@ using namespace UniSetTypes;
using namespace UniSetExtensions; using namespace UniSetExtensions;
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
MBExchange::MBExchange( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId, MBExchange::MBExchange( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId,
const std::shared_ptr<SharedMemory> ic, const std::string& prefix ): const std::shared_ptr<SharedMemory> _ic, const std::string& prefix ):
UniSetObject_LT(objId), UniSetObject_LT(objId),
allInitOK(false), allInitOK(false),
initPause(0), initPause(0),
...@@ -29,7 +29,8 @@ MBExchange::MBExchange( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId ...@@ -29,7 +29,8 @@ MBExchange::MBExchange( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId
prefix(prefix), prefix(prefix),
poll_count(0), poll_count(0),
prop_prefix(""), prop_prefix(""),
mb(nullptr) mb(nullptr),
ic(_ic)
{ {
if( objId == DefaultObjectId ) if( objId == DefaultObjectId )
throw UniSetTypes::SystemError("(MBExchange): objId=-1?!! Use --" + prefix + "-name" ); throw UniSetTypes::SystemError("(MBExchange): objId=-1?!! Use --" + prefix + "-name" );
...@@ -50,7 +51,7 @@ MBExchange::MBExchange( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId ...@@ -50,7 +51,7 @@ MBExchange::MBExchange( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId
mblog->setLogName(myname); mblog->setLogName(myname);
conf->initLogStream(mblog, prefix + "-log"); conf->initLogStream(mblog, prefix + "-log");
loga = make_shared<LogAgregator>(); loga = make_shared<LogAgregator>(myname+"-loga");
loga->add(mblog); loga->add(mblog);
loga->add(ulog()); loga->add(ulog());
loga->add(dlog()); loga->add(dlog());
...@@ -66,6 +67,9 @@ MBExchange::MBExchange( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId ...@@ -66,6 +67,9 @@ MBExchange::MBExchange( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId
logserv_port = conf->getArgPInt("--" + prefix + "-logserver-port", it.getProp("logserverPort"), getId()); logserv_port = conf->getArgPInt("--" + prefix + "-logserver-port", it.getProp("logserverPort"), getId());
} }
if( ic )
ic->logAgregator()->add(loga);
// определяем фильтр // определяем фильтр
s_field = conf->getArgParam("--" + prefix + "-filter-field"); s_field = conf->getArgParam("--" + prefix + "-filter-field");
s_fvalue = conf->getArgParam("--" + prefix + "-filter-value"); s_fvalue = conf->getArgParam("--" + prefix + "-filter-value");
......
...@@ -366,6 +366,7 @@ class MBExchange: ...@@ -366,6 +366,7 @@ class MBExchange:
std::shared_ptr<LogServer> logserv; std::shared_ptr<LogServer> logserv;
std::string logserv_host = {""}; std::string logserv_host = {""};
int logserv_port = {0}; int logserv_port = {0};
const std::shared_ptr<SharedMemory> ic;
private: private:
MBExchange(); MBExchange();
......
...@@ -100,8 +100,10 @@ std::shared_ptr<ModbusClient> MBTCPMaster::initMB( bool reopen ) ...@@ -100,8 +100,10 @@ std::shared_ptr<ModbusClient> MBTCPMaster::initMB( bool reopen )
mbinfo << myname << "(init): ipaddr=" << iaddr << " port=" << port << endl; mbinfo << myname << "(init): ipaddr=" << iaddr << " port=" << port << endl;
if( mblog->is_level9() ) auto l = loga->create(myname+"-exchangelog");
mbtcp->setLog(mblog); mbtcp->setLog(l);
if( ic )
ic->logAgregator()->add(loga);
} }
catch( ModbusRTU::mbException& ex ) catch( ModbusRTU::mbException& ex )
{ {
......
...@@ -102,11 +102,12 @@ MBTCPMultiMaster::MBTCPMultiMaster( UniSetTypes::ObjectId objId, UniSetTypes::Ob ...@@ -102,11 +102,12 @@ MBTCPMultiMaster::MBTCPMultiMaster( UniSetTypes::ObjectId objId, UniSetTypes::Ob
n << sinf.ip << ":" << sinf.port; n << sinf.ip << ":" << sinf.port;
sinf.myname = n.str(); sinf.myname = n.str();
if( mblog->is_level9() ) auto l = loga->create(sinf.myname);
sinf.mbtcp->setLog(mblog); sinf.mbtcp->setLog(l);
if( ic )
ic->logAgregator()->add(loga);
mblist.push_back(sinf); mblist.push_back(sinf);
mbinfo << myname << "(init): add slave channel " << sinf.myname << endl; mbinfo << myname << "(init): add slave channel " << sinf.myname << endl;
} }
......
...@@ -131,8 +131,10 @@ std::shared_ptr<ModbusClient> RTUExchange::initMB( bool reopen ) ...@@ -131,8 +131,10 @@ std::shared_ptr<ModbusClient> RTUExchange::initMB( bool reopen )
if( defSpeed != ComPort::ComSpeed0 ) if( defSpeed != ComPort::ComSpeed0 )
mbrtu->setSpeed(defSpeed); mbrtu->setSpeed(defSpeed);
if( dlog()->is_level9() ) auto l = loga->create(myname+"-exchangelog");
mbrtu->setLog(dlog()); mbrtu->setLog(l);
if( ic )
ic->logAgregator()->add(loga);
if( recv_timeout > 0 ) if( recv_timeout > 0 )
mbrtu->setTimeout(recv_timeout); mbrtu->setTimeout(recv_timeout);
......
...@@ -39,7 +39,7 @@ MBSlave::MBSlave( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId, cons ...@@ -39,7 +39,7 @@ MBSlave::MBSlave( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId, cons
mblog->setLogName(myname); mblog->setLogName(myname);
conf->initLogStream(mblog, prefix + "-log"); conf->initLogStream(mblog, prefix + "-log");
loga = make_shared<LogAgregator>(); loga = make_shared<LogAgregator>(myname+"-loga");
loga->add(mblog); loga->add(mblog);
loga->add(ulog()); loga->add(ulog());
loga->add(dlog()); loga->add(dlog());
...@@ -65,6 +65,9 @@ MBSlave::MBSlave( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId, cons ...@@ -65,6 +65,9 @@ MBSlave::MBSlave( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId, cons
logserv_port = conf->getArgPInt("--" + prefix + "-logserver-port", it.getProp("logserverPort"), getId()); logserv_port = conf->getArgPInt("--" + prefix + "-logserver-port", it.getProp("logserverPort"), getId());
} }
if( ic )
ic->logAgregator()->add(loga);
// определяем фильтр // определяем фильтр
s_field = conf->getArgParam("--" + prefix + "-filter-field"); s_field = conf->getArgParam("--" + prefix + "-filter-field");
s_fvalue = conf->getArgParam("--" + prefix + "-filter-value"); s_fvalue = conf->getArgParam("--" + prefix + "-filter-value");
......
...@@ -156,8 +156,8 @@ void MBTCPMultiSlave::execute_tcp() ...@@ -156,8 +156,8 @@ void MBTCPMultiSlave::execute_tcp()
return; return;
} }
if( mblog->is_level9() ) auto l = loga->create(myname+"-exchangelog");
sslot->setLog(mblog); sslot->setLog(l);
for( auto && i : cmap ) for( auto && i : cmap )
i.second.ptTimeout.reset(); i.second.ptTimeout.reset();
......
...@@ -18,6 +18,9 @@ RRDServer::RRDServer( UniSetTypes::ObjectId objId, xmlNode* cnode, UniSetTypes:: ...@@ -18,6 +18,9 @@ RRDServer::RRDServer( UniSetTypes::ObjectId objId, xmlNode* cnode, UniSetTypes::
{ {
auto conf = uniset_conf(); auto conf = uniset_conf();
if( ic )
ic->logAgregator()->add(logAgregator());
shm = make_shared<SMInterface>(shmId, ui, objId, ic); shm = make_shared<SMInterface>(shmId, ui, objId, ic);
UniXML::iterator it(cnode); UniXML::iterator it(cnode);
......
...@@ -374,7 +374,7 @@ class SharedMemory: ...@@ -374,7 +374,7 @@ class SharedMemory:
return histSaveTime; /*!< период между точками "дампа", мсек */ return histSaveTime; /*!< период между точками "дампа", мсек */
} }
inline std::shared_ptr<LogAgregator> getLogAggregator() inline std::shared_ptr<LogAgregator> logAgregator()
{ {
return loga; return loga;
} }
......
...@@ -28,7 +28,7 @@ UNetExchange::UNetExchange( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId s ...@@ -28,7 +28,7 @@ UNetExchange::UNetExchange( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId s
unetlog->setLogName(myname); unetlog->setLogName(myname);
conf->initLogStream(unetlog, prefix + "-log"); conf->initLogStream(unetlog, prefix + "-log");
loga = make_shared<LogAgregator>(); loga = make_shared<LogAgregator>(myname+"-loga");
loga->add(unetlog); loga->add(unetlog);
loga->add(ulog()); loga->add(ulog());
loga->add(dlog()); loga->add(dlog());
...@@ -411,6 +411,9 @@ UNetExchange::UNetExchange( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId s ...@@ -411,6 +411,9 @@ UNetExchange::UNetExchange( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId s
unetinfo << myname << "(init): test_id=" << test_id << endl; unetinfo << myname << "(init): test_id=" << test_id << endl;
activateTimeout = conf->getArgPInt("--" + prefix + "-activate-timeout", 20000); activateTimeout = conf->getArgPInt("--" + prefix + "-activate-timeout", 20000);
if( ic )
ic->logAgregator()->add(loga);
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
UNetExchange::~UNetExchange() UNetExchange::~UNetExchange()
......
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