adds PV for turning Electornics on and off
Some checks failed
Test And Build / Lint (push) Successful in 2s
Test And Build / Build (push) Failing after 2s

This commit is contained in:
2025-11-18 14:00:26 +01:00
parent c563b07fed
commit 66792837a6
5 changed files with 72 additions and 4 deletions

View File

@@ -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 &&