136 if ( this->timeStamp == epicsTime () ) {
137 if (
CA_V410 ( protocolRevision ) ) {
138 this->lastBeaconNumber = beaconNumber;
141 this->beaconAnomalyNotify ( guard );
158 if (
CA_V410 ( protocolRevision ) ) {
159 unsigned beaconSeqAdvance;
160 if ( beaconNumber >= this->lastBeaconNumber ) {
161 beaconSeqAdvance = beaconNumber - this->lastBeaconNumber;
164 beaconSeqAdvance = (
ca_uint32_max - this->lastBeaconNumber ) + beaconNumber;
166 this->lastBeaconNumber = beaconNumber;
170 if ( beaconSeqAdvance == 0 || beaconSeqAdvance >
ca_uint32_max - 256 ) {
171 logBeaconDiscard ( beaconSeqAdvance,
currentTime );
178 if ( beaconSeqAdvance > 1 && beaconSeqAdvance < 4 ) {
179 logBeaconDiscard ( beaconSeqAdvance,
currentTime );
185 bool netChange =
false;
186 double currentPeriod =
currentTime - this->timeStamp;
188 if ( this->averagePeriod < 0.0 ) {
189 double totalRunningTime;
191 this->beaconAnomalyNotify ( guard );
198 this->averagePeriod = currentPeriod;
209 totalRunningTime = this->timeStamp - programBeginTime;
210 if ( currentPeriod <= totalRunningTime ) {
225 if ( currentPeriod >= this->averagePeriod * 1.25 ) {
231 this->beaconAnomalyNotify ( guard );
233 if ( currentPeriod >= this->averagePeriod * 3.25 ) {
254 else if ( currentPeriod <= this->averagePeriod * 0.80 ) {
255 this->beaconAnomalyNotify ( guard );
259 else if ( this->pIIU ) {
267 this->averagePeriod = currentPeriod * 0.125 +
268 this->averagePeriod * 0.875;
void assertIdenticalMutex(const T &) const
void beaconArrivalNotify(epicsGuard< epicsMutex > &)