adds PV for turning Electornics on and off
This commit is contained in:
@@ -161,6 +161,8 @@ asynStreamGeneratorDriver::asynStreamGeneratorDriver(
|
||||
// Parameter Setup
|
||||
asynStatus status = asynSuccess;
|
||||
|
||||
status = createInt32Param(status, P_EnableElectronicsString,
|
||||
&P_EnableElectronics);
|
||||
status = createInt32Param(status, P_StatusString, &P_Status, STATUS_IDLE);
|
||||
status = createInt32Param(status, P_ResetString, &P_Reset);
|
||||
status = createInt32Param(status, P_StopString, &P_Stop);
|
||||
@@ -439,6 +441,20 @@ asynStatus asynStreamGeneratorDriver::writeInt32(asynUser *pasynUser,
|
||||
} else {
|
||||
return asynError;
|
||||
}
|
||||
} else if (function == P_EnableElectronics) {
|
||||
if (value) {
|
||||
setIntegerParam(function, 1);
|
||||
CommandHeader ch(start);
|
||||
std::size_t written;
|
||||
pasynOctetSyncIO->write(pasynUDPUser, (char *)&ch, sizeof(ch), 1,
|
||||
&written);
|
||||
} else {
|
||||
setIntegerParam(function, 0);
|
||||
CommandHeader ch(stop);
|
||||
std::size_t written;
|
||||
pasynOctetSyncIO->write(pasynUDPUser, (char *)&ch, sizeof(ch), 1,
|
||||
&written);
|
||||
}
|
||||
} else {
|
||||
setIntegerParam(function, value);
|
||||
status = (asynStatus)callParamCallbacks();
|
||||
@@ -522,7 +538,7 @@ void asynStreamGeneratorDriver::normaliseUDP() {
|
||||
|
||||
epicsInt32 droppedMessages = 0;
|
||||
|
||||
const UDPHeader *header;
|
||||
const DataHeader *header;
|
||||
const DetectorEvent *d_event;
|
||||
const MonitorEvent *m_event;
|
||||
NormalisedEvent ne;
|
||||
@@ -533,7 +549,7 @@ void asynStreamGeneratorDriver::normaliseUDP() {
|
||||
|
||||
epicsRingBytesGet(this->udpQueue, (char *)buffer, bufferSize);
|
||||
|
||||
header = (UDPHeader *)buffer;
|
||||
header = (DataHeader *)buffer;
|
||||
const std::size_t total_events = (header->BufferLength - 21) / 3;
|
||||
|
||||
if (header->BufferNumber - lastBufferNumber[header->McpdID] > 1 &&
|
||||
|
||||
Reference in New Issue
Block a user