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

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

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