handle changed format of event report
r1289 | dcl | 2006-11-15 08:08:28 +1100 (Wed, 15 Nov 2006) | 2 lines
This commit is contained in:
@@ -259,30 +259,41 @@ static void HandleReport(CounterDriver *cntrData, BUFFER* bp)
|
||||
* \param bp pointer to buffer containing the line of input
|
||||
*
|
||||
* This function sets the state of the counter based on events reported by
|
||||
* the monitor.
|
||||
* the monitor. The event format is "EVENT <timestamp> <event type>"
|
||||
*/
|
||||
static void MonHandleInput(CounterDriver *cntrData, BUFFER* bp) {
|
||||
BeamMon* self = NULL;
|
||||
const char et[] = "EVENT TERMINAL";
|
||||
const char eri[] = "EVENT RANGE IN";
|
||||
const char ero[] = "EVENT RANGE OUT";
|
||||
const char et[] = " TERMINAL";
|
||||
const char eri[] = "RANGE IN";
|
||||
const char ero[] = "RANGE OUT";
|
||||
const char rpt[] = "READ";
|
||||
|
||||
self = (BeamMon *) cntrData->pData;
|
||||
/* TODO handle the line */
|
||||
flog('=', bp->body);
|
||||
if (strncasecmp(bp->body, et, sizeof(et) - 1) == 0) {
|
||||
if (self->state == HWBusy)
|
||||
self->state = HWIdle;
|
||||
if (strncasecmp(bp->body, "EVENT", 5) == 0) {
|
||||
char* cp = bp->body + 5;
|
||||
while (*cp && isspace(*cp)) // skip space
|
||||
++cp;
|
||||
while (*cp && !isspace(*cp)) // skip timestamp
|
||||
++cp;
|
||||
while (*cp && isspace(*cp)) // skip space
|
||||
++cp;
|
||||
if (strncasecmp(cp, et, sizeof(et) - 1) == 0) {
|
||||
if (self->state == HWBusy)
|
||||
self->state = HWIdle;
|
||||
}
|
||||
else if (strncasecmp(cp, eri, sizeof(eri) - 1) == 0) {
|
||||
if (self->state == HWPause)
|
||||
self->state = HWBusy;
|
||||
}
|
||||
else if (strncasecmp(cp, ero, sizeof(ero) - 1) == 0) {
|
||||
if (self->state == HWBusy)
|
||||
self->state = HWPause;
|
||||
}
|
||||
}
|
||||
if (strncasecmp(bp->body, eri, sizeof(eri) - 1) == 0)
|
||||
if (self->state == HWPause)
|
||||
self->state = HWBusy;
|
||||
if (strncasecmp(bp->body, ero, sizeof(ero) - 1) == 0)
|
||||
if (self->state == HWBusy)
|
||||
self->state = HWPause;
|
||||
if (strncasecmp(bp->body, rpt, sizeof(rpt) - 1) == 0) {
|
||||
HandleReport(cntrData, &self->buffer);
|
||||
else if (strncasecmp(bp->body, rpt, sizeof(rpt) - 1) == 0) {
|
||||
HandleReport(cntrData, &self->buffer);
|
||||
}
|
||||
bp->length = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user