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 ): ...@@ -16,7 +16,8 @@ SharedMemory::SharedMemory( ObjectId id, string datafile ):
wdt(0), wdt(0),
activated(false), activated(false),
workready(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; 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 ): ...@@ -86,6 +87,27 @@ SharedMemory::SharedMemory( ObjectId id, string datafile ):
activateTimeout = conf->getArgInt("--activate-timeout"); activateTimeout = conf->getArgInt("--activate-timeout");
if( activateTimeout <= 0 ) if( activateTimeout <= 0 )
activateTimeout = 10000; 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 ) ...@@ -163,6 +185,12 @@ void SharedMemory::timerInfo( TimerMessage *tm )
} }
else if( tm->id == tmHistory ) else if( tm->id == tmHistory )
saveHistory(); 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 ) ...@@ -191,6 +219,8 @@ void SharedMemory::sysCommand( SystemMessage *sm )
askTimer(tmHeartBeatCheck,heartbeatCheckTime); askTimer(tmHeartBeatCheck,heartbeatCheckTime);
askTimer(tmEvent,evntPause,1); askTimer(tmEvent,evntPause,1);
askTimer(tmHistory,histSaveTime); askTimer(tmHistory,histSaveTime);
if( msecPulsar > 0 )
askTimer(tmPulsar,msecPulsar);
} }
break; break;
...@@ -249,6 +279,8 @@ bool SharedMemory::activateObject() ...@@ -249,6 +279,8 @@ bool SharedMemory::activateObject()
it->ait = myaioEnd(); it->ait = myaioEnd();
it->dit = mydioEnd(); it->dit = mydioEnd();
} }
ditPulsar = mydioEnd();
// cerr << "history count=" << hist.size() << endl; // cerr << "history count=" << hist.size() << endl;
for( History::iterator it=hist.begin(); it!=hist.end(); ++it ) for( History::iterator it=hist.begin(); it!=hist.end(); ++it )
......
...@@ -149,7 +149,8 @@ class SharedMemory: ...@@ -149,7 +149,8 @@ class SharedMemory:
{ {
tmHeartBeatCheck, tmHeartBeatCheck,
tmEvent, tmEvent,
tmHistory tmHistory,
tmPulsar
}; };
int heartbeatCheckTime; int heartbeatCheckTime;
...@@ -185,6 +186,11 @@ class SharedMemory: ...@@ -185,6 +186,11 @@ class SharedMemory:
void buildHistoryList( xmlNode* cnode ); void buildHistoryList( xmlNode* cnode );
void checkHistoryFilter( UniXML_iterator& it ); void checkHistoryFilter( UniXML_iterator& it );
DIOStateList::iterator ditPulsar;
IOController_i::SensorInfo siPulsar;
int msecPulsar;
private: private:
HistorySlot m_historySignal; HistorySlot m_historySignal;
}; };
......
...@@ -4,7 +4,7 @@ export LD_LIBRARY_PATH="../../lib/.libs;../lib/.libs" ...@@ -4,7 +4,7 @@ export LD_LIBRARY_PATH="../../lib/.libs;../lib/.libs"
ulimit -Sc 10000000000 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 \ --confile test.xml --datfile test.xml \
--unideb-add-levels info,crit,warn,level9,system \ --unideb-add-levels info,crit,warn,level9,system \
--dlog-add-levels info,crit,warn --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