adds PV for number of missed udp packets
This commit is contained in:
@@ -211,6 +211,17 @@ record(ai,"$(INSTR)$(NAME):ELAPSED-TIME")
|
||||
################################################################################
|
||||
# Stream Generator Status PVs
|
||||
|
||||
record(longin,"$(INSTR)$(NAME):UDP_DROPPED")
|
||||
{
|
||||
field(DESC, "Max Events in Queue")
|
||||
field(EGU, "Events")
|
||||
field(DTYP, "asynInt32")
|
||||
field(INP, "@asyn($(PORT),0,$(TIMEOUT=1)) DROP")
|
||||
# field(SCAN, "I/O Intr")
|
||||
field(SCAN, "1 second")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(longin,"$(INSTR)$(NAME):UDP_WATERMARK")
|
||||
{
|
||||
field(DESC, "Max Events in Queue")
|
||||
|
||||
@@ -167,6 +167,7 @@ asynStreamGeneratorDriver::asynStreamGeneratorDriver(
|
||||
status = createInt32Param(status, pv_name_buffer, P_ClearCounts + i);
|
||||
}
|
||||
|
||||
status = createInt32Param(status, P_UdpDroppedString, &P_UdpDropped);
|
||||
status = createInt32Param(status, P_UdpQueueHighWaterMarkString,
|
||||
&P_UdpQueueHighWaterMark);
|
||||
status = createInt32Param(status, P_SortedQueueHighWaterMarkString,
|
||||
@@ -438,6 +439,8 @@ void asynStreamGeneratorDriver::receiveUDP() {
|
||||
lastBufferNumber[i] = 0;
|
||||
}
|
||||
|
||||
epicsInt32 droppedMessages = 0;
|
||||
|
||||
NormalisedEvent ne;
|
||||
|
||||
while (true) {
|
||||
@@ -472,6 +475,7 @@ void asynStreamGeneratorDriver::receiveUDP() {
|
||||
", last: %" PRIu64 "\n",
|
||||
driverName, functionName, header->McpdID,
|
||||
header->BufferNumber, lastBufferNumber[header->McpdID]);
|
||||
setIntegerParam(P_UdpDropped, ++droppedMessages);
|
||||
}
|
||||
lastBufferNumber[header->McpdID] = header->BufferNumber;
|
||||
|
||||
|
||||
@@ -96,6 +96,7 @@ struct __attribute__((__packed__)) NormalisedEvent {
|
||||
#define P_RateString "RATE%d"
|
||||
#define P_ClearCountsString "C_%d"
|
||||
|
||||
#define P_UdpDroppedString "DROP"
|
||||
#define P_UdpQueueHighWaterMarkString "UDP"
|
||||
#define P_SortedQueueHighWaterMarkString "SORT"
|
||||
|
||||
@@ -139,6 +140,7 @@ class asynStreamGeneratorDriver : public asynPortDriver {
|
||||
int *P_ClearCounts;
|
||||
|
||||
// System Status Parameter Identifying IDs
|
||||
int P_UdpDropped;
|
||||
int P_UdpQueueHighWaterMark;
|
||||
int P_SortedQueueHighWaterMark;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user