adds remaining missing PVs

This commit is contained in:
2025-11-03 09:26:50 +01:00
parent 7bacc716cc
commit a336ca74c9
4 changed files with 152 additions and 167 deletions

View File

@@ -99,6 +99,10 @@ asynStreamGeneratorDriver::asynStreamGeneratorDriver(const char *portName,
createParam(P_ResetString, asynParamInt32, &P_Reset));
status = (asynStatus)(status | setIntegerParam(P_Reset, 0));
status = (asynStatus)(status |
createParam(P_StopString, asynParamInt32, &P_Stop));
status = (asynStatus)(status | setIntegerParam(P_Stop, 0));
status = (asynStatus)(status | createParam(P_CountPresetString,
asynParamInt32, &P_CountPreset));
status = (asynStatus)(status | setIntegerParam(P_CountPreset, 0));
@@ -111,15 +115,32 @@ asynStreamGeneratorDriver::asynStreamGeneratorDriver(const char *portName,
asynParamInt32, &P_ElapsedTime));
status = (asynStatus)(status | setIntegerParam(P_ElapsedTime, 0));
status = (asynStatus)(status | createParam(P_ClearElapsedTimeString,
asynParamInt32, &P_ClearElapsedTime));
status = (asynStatus)(status | setIntegerParam(P_ClearElapsedTime, 0));
status =
(asynStatus)(status | createParam(P_MonitorChannelString,
asynParamInt32, &P_MonitorChannel));
status = (asynStatus)(status | setIntegerParam(P_MonitorChannel, 0));
status =
(asynStatus)(status | createParam(P_ThresholdString,
asynParamInt32, &P_Threshold));
status = (asynStatus)(status | setIntegerParam(P_Threshold, 1));
status =
(asynStatus)(status | createParam(P_ThresholdChannelString,
asynParamInt32, &P_ThresholdChannel));
status = (asynStatus)(status | setIntegerParam(P_ThresholdChannel, 1));
// Create Parameters templated on Channel Number
char pv_name_buffer[100];
P_Counts = new int[this->num_channels];
P_Rates = new int[this->num_channels];
P_ClearCounts = new int[this->num_channels];
for (size_t i = 0; i < this->num_channels; ++i) {
memset(pv_name_buffer, 0, 100);
epicsSnprintf(pv_name_buffer, 100, P_CountsString, i);
@@ -134,6 +155,13 @@ asynStreamGeneratorDriver::asynStreamGeneratorDriver(const char *portName,
(asynStatus)(status | createParam(pv_name_buffer, asynParamInt32,
P_Rates + i));
status = (asynStatus)(status | setIntegerParam(P_Rates[i], 0));
memset(pv_name_buffer, 0, 100);
epicsSnprintf(pv_name_buffer, 100, P_ClearCountsString, i);
status =
(asynStatus)(status | createParam(pv_name_buffer, asynParamInt32,
P_ClearCounts + i));
status = (asynStatus)(status | setIntegerParam(P_ClearCounts[i], 0));
}
if (status) {
@@ -145,8 +173,8 @@ asynStreamGeneratorDriver::asynStreamGeneratorDriver(const char *portName,
// Create Events
this->pausedEventId = epicsEventCreate(epicsEventEmpty);
// this->monitorProducer = create_kafka_producer();
// this->detectorProducer = create_kafka_producer();
this->monitorProducer = create_kafka_producer();
this->detectorProducer = create_kafka_producer();
// Setup for Thread Producing Monitor Kafka Events
status =

View File

@@ -82,13 +82,18 @@ struct __attribute__((__packed__)) NormalisedDetectorEvent {
#define P_StatusString "STATUS"
#define P_ResetString "RESET"
#define P_StopString "STOP"
#define P_CountPresetString "P_CNT"
#define P_TimePresetString "P_TIME"
#define P_ElapsedTimeString "TIME"
#define P_ClearElapsedTimeString "C_TIME"
#define P_MonitorChannelString "MONITOR"
#define P_ThresholdString "THRESH"
#define P_ThresholdChannelString "THRESH_CH"
#define P_CountsString "COUNTS%d"
#define P_RateString "RATE%d"
#define P_ClearCountsString "C_%d"
/*******************************************************************************
* Stream Generator Coordinating Class
@@ -109,12 +114,17 @@ class asynStreamGeneratorDriver : public asynPortDriver {
// Parameter Identifying IDs
int P_Status;
int P_Reset;
int P_Stop;
int P_CountPreset;
int P_TimePreset;
int P_ElapsedTime;
int P_ClearElapsedTime;
int P_MonitorChannel;
int P_Threshold;
int P_ThresholdChannel;
int *P_Counts;
int *P_Rates;
int *P_ClearCounts;
private:
asynUser *pasynUDPUser;