|
PPS-Client
1.4.0
Client for synchronizing the system clock to a GPS PPS source
|
Struct for program-wide global variables showing those important to the controller. More...
#include <pps-client.h>
Data Fields | |
| int | ppsGPIO |
| The PPS GPIO interrupt number read from pps-client.conf and passed to the driver. More... | |
| int | outputGPIO |
| The calibrate GPIO output number read from pps-client.conf and passed to the driver. More... | |
| int | intrptGPIO |
| The calibrate GPIO interrupt number read from pps-client.conf and passed to the driver. More... | |
| bool | isVerbose |
| Enables continuous printing of PPS-Client status params when "true". More... | |
| bool | configWasRead |
| True if pps-client.conf was read at least once. More... | |
| unsigned int | seq_num |
| Advancing count of the number of PPS interrupt timings that have been received. More... | |
| bool | isControlling |
| Set "true" by getAcquireState() when the control loop can begin to control the system clock frequency. More... | |
| unsigned int | activeCount |
| Advancing count of controller cycles once G.isControlling is "true". More... | |
| bool | interruptReceived |
| Set "true" when makeTimeCorrection() processes an interrupt time from the PPS-Client device driver. More... | |
| bool | interruptLost |
| Set "true" when a PPS interrupt time fails to be received. More... | |
| int | interruptLossCount |
| Records the number of consecutive lost PPS interrupt times. More... | |
| struct timeval | t |
| Time of system response to the PPS interrupt. Received from the PPS-Client device driver. More... | |
| int | interruptTime |
| Fractional second part of G.t received from PPS-Client device driver. More... | |
| int | tm [6] |
| Returns the interrupt calibration reception and response times from the PPS-Client device driver. More... | |
| int | t_now |
| Whole seconds of current time reported by gettimeofday(). More... | |
| int | t_count |
| Whole seconds counted at the time of G.t_now. More... | |
| double | t_mono_now |
| Current monotonic count of passing seconds. More... | |
| double | t_mono_last |
| Last recorded monotonic count used to determine a lost PPS update. More... | |
| double | zeroAccum |
| Accumulator to test nearness to zero in isNearZero() More... | |
| int | intrptDelay |
| Value of the interrupt delay calibration measurement received from the PPS-Client device driver. More... | |
| int | intrptError |
| Set equal to "intrptDelay - sysDelay" in getInterruptDelay(). More... | |
| unsigned int | intrptCount |
| Advancing count of intrptErrorDistrib[] entries made by detectDelayPeak(). More... | |
| double | delayMedian |
| Median of G.intrptDelay values calculated in getInterruptDelay(). More... | |
| int | sysDelay |
| int | rawError |
| Set equal to G.interruptTime - G.sysDelay in makeTimeCorrection(). More... | |
| int | delayShift |
| Interval of a delay shift when one is detected by detectDelayPeak(). More... | |
| int | sysDelayShift |
| Assigned from G.delayShift and subtracted from G.rawError in correctDelayPeak() when a delay shift occurs. More... | |
| int | delayPeakLen |
| Counts the length of a delay peak that is being corrected in correctDelayPeak(). More... | |
| bool | disableDelayShift |
| Suspends delay shift correction in correctDelayPeak() when G.delayPeakLen exceeds MAX_SPIKES. More... | |
| int | disableDelayCount |
| double | rawErrorDistrib [ERROR_DISTRIB_LEN] |
| The distribution used to detect a delay shift in detectDelayPeak(). More... | |
| int | delayMinIdx |
| If a delay shift occurs, the minimum value preceding the delay peak in rawErrorDistrib[]. More... | |
| unsigned int | ppsCount |
| Advancing count of G.rawErrorDistrib[] entries made by detectDelayPeak(). More... | |
| int | nIntrptDelaySpikes |
| int | noiseLevel |
| PPS time delay value beyond which a delay is defined to be a delay spike. More... | |
| int | nDelaySpikes |
| Current count of continuous delay spikes made by detectDelaySpike(). More... | |
| bool | isDelaySpike |
| Set "true" by detectDelaySpike() when G.rawError exceeds G.noiseLevel. More... | |
| double | slewAccum |
| Accumulates G.rawError in getTimeSlew() and is used to determine G.avgSlew. More... | |
| int | slewAccum_cnt |
| Count of the number of times G.rawError has been summed into G.slewAccum. More... | |
| double | avgSlew |
| Average slew value determined by getTimeSlew() from the average of G.slewAccum each time G.slewAccum_cnt reaches SLEW_LEN. More... | |
| bool | slewIsLow |
| Set to "true" in getAcquireState() when G.avgSlew is less than SLEW_MAX. This is a precondition for getAcquireState() to set G.isControlling to "true". More... | |
| int | zeroError |
| The controller error resulting from removing jitter noise from G.rawError in removeNoise(). More... | |
| int | hardLimit |
| An adaptive limit value determined by setHardLimit() and applied to G.rawError by clampJitter() as the final noise reduction step to generate G.zeroError. More... | |
| int | invProportionalGain |
| Controller proportional gain configured inversely to use as an int divisor. More... | |
| int | timeCorrection |
| Time correction value constructed in makeTimeCorrection() by dividing G.zeroError by G.invProportionalGain. More... | |
| struct timex | t3 |
| Passes G.timeCorrection to the system function adjtimex() in makeTimeCorrection(). More... | |
| double | avgCorrection |
| A one-minute rolling average of G.timeCorrection values generated by getAverageCorrection(). More... | |
| int | correctionFifo [OFFSETFIFO_LEN] |
| Contains the G.timeCorrection values from over the previous 60 seconds. More... | |
| int | correctionFifoCount |
| Signals that G.correctionFifo contains a full count of G.timeCorrection values. More... | |
| int | correctionAccum |
| Accumulates G.timeCorrection values from G.correctionFifo in getAverageCorrection() in order to generate G.avgCorrection. More... | |
| double | integral [NUM_INTEGRALS] |
| Array of integrals constructed by makeAverageIntegral(). More... | |
| double | avgIntegral |
| One-minute average of the integrals in G.integral[]. More... | |
| int | integralCount |
| Counts the integrals formed over the last 10 controller cycles and signals when all integrals in G.integral have been constructed. More... | |
| int | correctionFifo_idx |
| Advances G.correctionFifo on each controller cycle in integralIsReady() which returns "true" every 60 controller cycles. More... | |
| double | integralGain |
| Current controller integral gain. More... | |
| double | integralTimeCorrection |
| Integral or average integral of G.timeCorrection returned by getIntegral();. More... | |
| double | freqOffset |
| System clock frequency correction calculated as G.integralTimeCorrection * G.integralGain. More... | |
| int | consensusTimeError |
| Consensus value of whole-second time corrections for DST or leap seconds from Internet SNTP servers. More... | |
| char | linuxVersion [20] |
| Array for recording the Linux version. More... | |
Struct for program-wide global variables showing those important to the controller.
Definition at line 146 of file pps-client.h.
| unsigned int G::activeCount |
Advancing count of controller cycles once G.isControlling is "true".
Definition at line 158 of file pps-client.h.
| double G::avgCorrection |
A one-minute rolling average of G.timeCorrection values generated by getAverageCorrection().
Definition at line 213 of file pps-client.h.
| double G::avgIntegral |
One-minute average of the integrals in G.integral[].
Definition at line 219 of file pps-client.h.
| double G::avgSlew |
Average slew value determined by getTimeSlew() from the average of G.slewAccum each time G.slewAccum_cnt reaches SLEW_LEN.
Definition at line 204 of file pps-client.h.
| bool G::configWasRead |
True if pps-client.conf was read at least once.
Definition at line 153 of file pps-client.h.
| int G::consensusTimeError |
Consensus value of whole-second time corrections for DST or leap seconds from Internet SNTP servers.
Definition at line 228 of file pps-client.h.
| int G::correctionAccum |
Accumulates G.timeCorrection values from G.correctionFifo in getAverageCorrection() in order to generate G.avgCorrection.
Definition at line 216 of file pps-client.h.
| int G::correctionFifo[OFFSETFIFO_LEN] |
Contains the G.timeCorrection values from over the previous 60 seconds.
Definition at line 214 of file pps-client.h.
| int G::correctionFifo_idx |
Advances G.correctionFifo on each controller cycle in integralIsReady() which returns "true" every 60 controller cycles.
Definition at line 222 of file pps-client.h.
| int G::correctionFifoCount |
Signals that G.correctionFifo contains a full count of G.timeCorrection values.
Definition at line 215 of file pps-client.h.
| double G::delayMedian |
Median of G.intrptDelay values calculated in getInterruptDelay().
Definition at line 178 of file pps-client.h.
| int G::delayMinIdx |
If a delay shift occurs, the minimum value preceding the delay peak in rawErrorDistrib[].
Definition at line 193 of file pps-client.h.
| int G::delayPeakLen |
Counts the length of a delay peak that is being corrected in correctDelayPeak().
Definition at line 186 of file pps-client.h.
| int G::delayShift |
Interval of a delay shift when one is detected by detectDelayPeak().
Definition at line 184 of file pps-client.h.
| int G::disableDelayCount |
Delay shift correction is suspended if a continuous sequence of delay spikes is longer than MAX_SPIKES because that indicates that a shift in the control point is required.
Definition at line 189 of file pps-client.h.
| bool G::disableDelayShift |
Suspends delay shift correction in correctDelayPeak() when G.delayPeakLen exceeds MAX_SPIKES.
Definition at line 187 of file pps-client.h.
| double G::freqOffset |
System clock frequency correction calculated as G.integralTimeCorrection * G.integralGain.
Definition at line 226 of file pps-client.h.
| int G::hardLimit |
An adaptive limit value determined by setHardLimit() and applied to G.rawError by clampJitter() as the final noise reduction step to generate G.zeroError.
Definition at line 208 of file pps-client.h.
| double G::integral[NUM_INTEGRALS] |
Array of integrals constructed by makeAverageIntegral().
Definition at line 218 of file pps-client.h.
| int G::integralCount |
Counts the integrals formed over the last 10 controller cycles and signals when all integrals in G.integral have been constructed.
Definition at line 220 of file pps-client.h.
| double G::integralGain |
Current controller integral gain.
Definition at line 224 of file pps-client.h.
| double G::integralTimeCorrection |
Integral or average integral of G.timeCorrection returned by getIntegral();.
Definition at line 225 of file pps-client.h.
| int G::interruptLossCount |
Records the number of consecutive lost PPS interrupt times.
Definition at line 162 of file pps-client.h.
| bool G::interruptLost |
Set "true" when a PPS interrupt time fails to be received.
Definition at line 161 of file pps-client.h.
| bool G::interruptReceived |
Set "true" when makeTimeCorrection() processes an interrupt time from the PPS-Client device driver.
Definition at line 160 of file pps-client.h.
| int G::interruptTime |
Fractional second part of G.t received from PPS-Client device driver.
Definition at line 165 of file pps-client.h.
| unsigned int G::intrptCount |
Advancing count of intrptErrorDistrib[] entries made by detectDelayPeak().
Definition at line 177 of file pps-client.h.
| int G::intrptDelay |
Value of the interrupt delay calibration measurement received from the PPS-Client device driver.
Definition at line 175 of file pps-client.h.
| int G::intrptError |
Set equal to "intrptDelay - sysDelay" in getInterruptDelay().
Definition at line 176 of file pps-client.h.
| int G::intrptGPIO |
The calibrate GPIO interrupt number read from pps-client.conf and passed to the driver.
Definition at line 149 of file pps-client.h.
| int G::invProportionalGain |
Controller proportional gain configured inversely to use as an int divisor.
Definition at line 209 of file pps-client.h.
| bool G::isControlling |
Set "true" by getAcquireState() when the control loop can begin to control the system clock frequency.
Definition at line 157 of file pps-client.h.
| bool G::isDelaySpike |
Set "true" by detectDelaySpike() when G.rawError exceeds G.noiseLevel.
Definition at line 200 of file pps-client.h.
| bool G::isVerbose |
Enables continuous printing of PPS-Client status params when "true".
Definition at line 151 of file pps-client.h.
| char G::linuxVersion[20] |
Array for recording the Linux version.
Definition at line 230 of file pps-client.h.
| int G::nDelaySpikes |
Current count of continuous delay spikes made by detectDelaySpike().
Definition at line 199 of file pps-client.h.
| int G::nIntrptDelaySpikes |
Definition at line 196 of file pps-client.h.
| int G::noiseLevel |
PPS time delay value beyond which a delay is defined to be a delay spike.
Definition at line 198 of file pps-client.h.
| int G::outputGPIO |
The calibrate GPIO output number read from pps-client.conf and passed to the driver.
Definition at line 148 of file pps-client.h.
| unsigned int G::ppsCount |
Advancing count of G.rawErrorDistrib[] entries made by detectDelayPeak().
Definition at line 194 of file pps-client.h.
| int G::ppsGPIO |
The PPS GPIO interrupt number read from pps-client.conf and passed to the driver.
Definition at line 147 of file pps-client.h.
| int G::rawError |
Set equal to G.interruptTime - G.sysDelay in makeTimeCorrection().
Definition at line 182 of file pps-client.h.
| double G::rawErrorDistrib[ERROR_DISTRIB_LEN] |
The distribution used to detect a delay shift in detectDelayPeak().
Definition at line 192 of file pps-client.h.
| unsigned int G::seq_num |
Advancing count of the number of PPS interrupt timings that have been received.
Definition at line 155 of file pps-client.h.
| double G::slewAccum |
Accumulates G.rawError in getTimeSlew() and is used to determine G.avgSlew.
Definition at line 202 of file pps-client.h.
| int G::slewAccum_cnt |
Count of the number of times G.rawError has been summed into G.slewAccum.
Definition at line 203 of file pps-client.h.
| bool G::slewIsLow |
Set to "true" in getAcquireState() when G.avgSlew is less than SLEW_MAX. This is a precondition for getAcquireState() to set G.isControlling to "true".
Definition at line 205 of file pps-client.h.
| int G::sysDelay |
System time delay between reception and response to an external interrupt. Calculated as the one-minute median of G.intrptDelay values in getInterruptDelay().
Definition at line 179 of file pps-client.h.
| int G::sysDelayShift |
Assigned from G.delayShift and subtracted from G.rawError in correctDelayPeak() when a delay shift occurs.
Definition at line 185 of file pps-client.h.
| struct timeval G::t |
Time of system response to the PPS interrupt. Received from the PPS-Client device driver.
Definition at line 164 of file pps-client.h.
| struct timex G::t3 |
Passes G.timeCorrection to the system function adjtimex() in makeTimeCorrection().
Definition at line 211 of file pps-client.h.
| int G::t_count |
Whole seconds counted at the time of G.t_now.
Definition at line 170 of file pps-client.h.
| double G::t_mono_last |
Last recorded monotonic count used to determine a lost PPS update.
Definition at line 172 of file pps-client.h.
| double G::t_mono_now |
Current monotonic count of passing seconds.
Definition at line 171 of file pps-client.h.
| int G::t_now |
Whole seconds of current time reported by gettimeofday().
Definition at line 169 of file pps-client.h.
| int G::timeCorrection |
Time correction value constructed in makeTimeCorrection() by dividing G.zeroError by G.invProportionalGain.
Definition at line 210 of file pps-client.h.
| int G::tm[6] |
Returns the interrupt calibration reception and response times from the PPS-Client device driver.
Definition at line 167 of file pps-client.h.
| double G::zeroAccum |
Accumulator to test nearness to zero in isNearZero()
Definition at line 173 of file pps-client.h.
| int G::zeroError |
The controller error resulting from removing jitter noise from G.rawError in removeNoise().
Definition at line 207 of file pps-client.h.
1.8.14