Mercurial > hg > fxanalyse
view Allan.h @ 45:b47b97cfd050
Fix output frequency read back in DDS Fox driver
The FTW registry value was read back wrong due to an integer overflow in the
conversion from bytes string to double. This should fix the "jumps" seen in the
application of the frequency dedrifting.
author | Daniele Nicolodi <daniele.nicolodi@obspm.fr> |
---|---|
date | Wed, 10 Oct 2012 12:14:01 +0200 |
parents | d9aae7d7f2c6 |
children | bd28161e5ac2 |
line wrap: on
line source
#include "YLCStuff.h" #define ALLAN_MAXPOINTSNUMBER 13 // can compute Allan dev for tau from 1s to 2^13 s =8192 s ~ 2h15' < 10000 s // Allan_Data : the data of crypto class Allan typedef struct { PanelHandle AllanPanel ; // le handle sur le graphe void (*OnClosePanel)(int); // pointer on a function to execute when the panel is closed (argument is the panel Handle) double AllanVar[ALLAN_MAXPOINTSNUMBER] ; // the values of variances for each tau = 2^n.tau_0 (with n from 0 to ALLAN_MAXPOINTSNUMBER) double FirstMean[ALLAN_MAXPOINTSNUMBER] ; // the means of the first block of 2^n data for which averaging was completed double LastMean[ALLAN_MAXPOINTSNUMBER] ; // the means of the last block of 2^n data for which averaging was completed int BlocksNumber[ALLAN_MAXPOINTSNUMBER] ; // the number of blocks of 2^n data (averaged) used for computing AVAR(2^ntau) double CurrentAverage[ALLAN_MAXPOINTSNUMBER] ; // the sum of the last p data points retrieved (with p<2^2n). used for averaging as soon as p=2^n int NbCurrentAverage[ALLAN_MAXPOINTSNUMBER] ; // number of data point being summed in CurrentAverage (from 0 up to 2^n) double Drift, Mean ; // the drift rate of the data (in Hz/s), and the mean value (in Hz) : only usefull for dedrifting... } Allan_Data ; // The functions of crypto class Allan int Allan_InitPanel(Allan_Data * Instance, char * title, double Normalizer, void (*OnCloseFunc)(int)) ; int Allan_ClosePanel(Allan_Data * Instance) ; int Allan_AddFrequency(Allan_Data * Instance, double Freq) ; int Allan_Reset(Allan_Data * Instance) ; int Allan_AddFrequency(Allan_Data * Instance, double Freq); int Allan_Display(Allan_Data * Instance, int ColorPt, int ColorErrorBar); int Allan_DisplayErrorBars(Allan_Data * Instance, int color);