Commit 8673fe98 authored by Pavel Vainerman's avatar Pavel Vainerman

add pulsar (sensor) logic

parent 3e551fc5
......@@ -16,7 +16,8 @@ SharedMemory::SharedMemory( ObjectId id, string datafile ):
wdt(0),
activated(false),
workready(false),
dblogging(false)
dblogging(false),
msecPulsar(0)
{
cout << "$Id: SharedMemory.cc,v 1.4 2009/01/24 11:20:19 vpashka Exp $" << endl;
......@@ -86,6 +87,27 @@ SharedMemory::SharedMemory( ObjectId id, string datafile ):
activateTimeout = conf->getArgInt("--activate-timeout");
if( activateTimeout <= 0 )
activateTimeout = 10000;
siPulsar.id = DefaultObjectId;
siPulsar.node = DefaultObjectId;
string p = conf->getArgParam("--pulsar-id",it.getProp("pulsar_id"));
if( !p.empty() )
{
siPulsar.id = conf->getSensorID(p);
if( siPulsar.id == DefaultObjectId )
{
ostringstream err;
err << myname << ": ID not found ('pulsar') for " << p;
dlog[Debug::CRIT] << myname << "(init): " << err.str() << endl;
throw SystemError(err.str());
}
siPulsar.node = conf->getLocalNode();
msecPulsar = conf->getArgInt("--pulsar-msec",it.getProp("pulsar_msec"));
if( msecPulsar <=0 )
msecPulsar = 5000;
}
}
// --------------------------------------------------------------------------------
......@@ -163,6 +185,12 @@ void SharedMemory::timerInfo( TimerMessage *tm )
}
else if( tm->id == tmHistory )
saveHistory();
else if( tm->id == tmPulsar )
{
bool st = localGetState(ditPulsar,siPulsar);
st ^= true;
localSaveState(ditPulsar,siPulsar,st,getId());
}
}
// ------------------------------------------------------------------------------------------
......@@ -191,6 +219,8 @@ void SharedMemory::sysCommand( SystemMessage *sm )
askTimer(tmHeartBeatCheck,heartbeatCheckTime);
askTimer(tmEvent,evntPause,1);
askTimer(tmHistory,histSaveTime);
if( msecPulsar > 0 )
askTimer(tmPulsar,msecPulsar);
}
break;
......@@ -249,6 +279,8 @@ bool SharedMemory::activateObject()
it->ait = myaioEnd();
it->dit = mydioEnd();
}
ditPulsar = mydioEnd();
// cerr << "history count=" << hist.size() << endl;
for( History::iterator it=hist.begin(); it!=hist.end(); ++it )
......
......@@ -149,7 +149,8 @@ class SharedMemory:
{
tmHeartBeatCheck,
tmEvent,
tmHistory
tmHistory,
tmPulsar
};
int heartbeatCheckTime;
......@@ -185,6 +186,11 @@ class SharedMemory:
void buildHistoryList( xmlNode* cnode );
void checkHistoryFilter( UniXML_iterator& it );
DIOStateList::iterator ditPulsar;
IOController_i::SensorInfo siPulsar;
int msecPulsar;
private:
HistorySlot m_historySignal;
};
......
......@@ -4,7 +4,7 @@ export LD_LIBRARY_PATH="../../lib/.libs;../lib/.libs"
ulimit -Sc 10000000000
./uniset-start.sh -f ./uniset-smemory --smemory-id SharedMemory \
./uniset-start.sh -f ./uniset-smemory --smemory-id SharedMemory --pulsar-id TestMode_S \
--confile test.xml --datfile test.xml \
--unideb-add-levels info,crit,warn,level9,system \
--dlog-add-levels info,crit,warn
......
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