change counts to 64 bit integer, improve broken packet check, correct order of updating status

This commit is contained in:
2025-11-14 14:07:54 +01:00
parent c530de3566
commit 9d93238db4
4 changed files with 82 additions and 35 deletions

View File

@@ -22,7 +22,7 @@ struct __attribute__((__packed__)) UDPHeader {
uint16_t Parameter2[3];
uint16_t Parameter3[3];
inline uint64_t nanosecs() {
inline uint64_t nanosecs() const {
uint64_t nsec{((uint64_t)TimeStamp[2]) << 32 |
((uint64_t)TimeStamp[1]) << 16 | (uint64_t)TimeStamp[0]};
return nsec * 100;
@@ -35,8 +35,8 @@ struct __attribute__((__packed__)) DetectorEvent {
uint16_t YPosition : 10;
uint16_t Amplitude : 8;
uint16_t Id : 1;
inline uint32_t nanosecs() { return TimeStamp * 100; }
inline uint64_t pixelId(uint32_t mpcdId) {
inline uint32_t nanosecs() const { return TimeStamp * 100; }
inline uint64_t pixelId(uint32_t mpcdId) const {
const uint32_t x_pixels = 128;
const uint32_t y_pixels = 128;
return (mpcdId - 1) * x_pixels * y_pixels +
@@ -50,7 +50,7 @@ struct __attribute__((__packed__)) MonitorEvent {
uint64_t DataID : 4;
uint64_t TriggerID : 3;
uint64_t Id : 1;
inline uint32_t nanosecs() { return TimeStamp * 100; }
inline uint32_t nanosecs() const { return TimeStamp * 100; }
};
/*******************************************************************************
@@ -172,6 +172,9 @@ class asynStreamGeneratorDriver : public asynPortDriver {
asynStatus createInt32Param(asynStatus status, char *name, int *variable,
epicsInt32 initialValue = 0);
asynStatus createInt64Param(asynStatus status, char *name, int *variable,
epicsInt64 initialValue = 0);
asynStatus createFloat64Param(asynStatus status, char *name, int *variable,
double initialValue = 0);