Skip to content
Snippets Groups Projects
Commit 44073158 authored by Rolf Bork's avatar Rolf Bork
Browse files

Updated controller code headers.

git-svn-id: https://redoubt.ligo-wa.caltech.edu/svn/advLigoRTS/trunk@4812 6dcd42c9-f523-4c6d-aada-af552506706e
parent f589b979
No related branches found
No related tags found
No related merge requests found
typedef struct adcInfo_t {
int adcWait;
int adcTime;
int chanHop;
int adcHoldTime; ///< Stores time between code cycles
int adcHoldTimeMax; ///< Stores time between code cycles
int adcHoldTimeEverMax; ///< Maximum cycle time recorded
int adcHoldTimeEverMaxWhen;
int adcHoldTimeMin;
int adcHoldTimeAvg;
int adcHoldTimeAvgPerSec;
int adcRdTime[MAX_ADC_MODULES];
int adcRdTimeMax[MAX_ADC_MODULES];
int adcRdTimeErr[MAX_ADC_MODULES];
int adcChanErr[MAX_ADC_MODULES];
int adcOF[MAX_ADC_MODULES];
int adcData[MAX_ADC_MODULES][MAX_ADC_CHN_PER_MOD];
int overflowAdc[MAX_ADC_MODULES][MAX_ADC_CHN_PER_MOD];
} adcInfo_t;
typedef struct dacInfo_t {
int overflowDac[MAX_DAC_MODULES][MAX_DAC_CHN_PER_MOD]; // DAC overflow diagnostics
int dacOutBufSize [MAX_DAC_MODULES];
int dacOutEpics[MAX_DAC_MODULES][MAX_DAC_CHN_PER_MOD];
} dacInfo_t;
typedef struct duotone_diag_t {
float adc[IOP_IO_RATE]; // Duotone timing diagnostic variables
float dac[IOP_IO_RATE];
float timeDac;
float timeAdc;
float totalAdc;
float meanAdc;
float totalDac;
float meanDac;
int dacDuoEnable;
}duotone_diag_t;
typedef struct timing_diag_t {
int cpuTimeEverMax; ///< Maximum code cycle time recorded
int cpuTimeEverMaxWhen;
int startGpsTime;
int usrTime; ///< Time spent in user app code
int usrHoldTime; ///< Max time spent in user app code
int cycleTime; ///< Current cycle time
int timeHold; ///< Max code cycle time within 1 sec period
int timeHoldHold; ///< Max code cycle time within 1 sec period; hold for another sec
int timeHoldWhen; ///< Cycle number within last second when maximum reached; running
int timeHoldWhenHold; ///< Cycle number within last second when maximum reached
int timeHoldMax;
}timing_diag_t;
......@@ -37,6 +37,22 @@
#define CPU_TIME_ADC_WAIT 9
// fe_state defs
#define DAC_INIT_ERROR -6
#define BURT_RESTORE_ERROR -5
#define CHAN_HOP_ERROR -4
#define RUN_ON_TIMER -3
#define DAQ_INIT_ERROR -2
#define FILT_INIT_ERROR -1
#define LOADING 0
#define FIND_MODULES 1
#define WAIT_BURT 2
#define LOCKING_CORE 3
#define INIT_ADC_MODS 4
#define INIT_DAC_MODS 5
#define INIT_SYNC 6
#define NORMAL_RUN 7
// Define standard values based on code rep rate **************************************
#ifdef SERVO256K
#define CYCLE_PER_MINUTE (2*7864320)
......@@ -243,11 +259,6 @@ VME_COEF *pCoeff[NUM_SYSTEMS]; // Ptr to SFM co
double dWord[MAX_ADC_MODULES][MAX_ADC_CHN_PER_MOD]; // ADC read values
/// List of ADC channels used by this app. Used to determine if downsampling required.
unsigned int dWordUsed[MAX_ADC_MODULES][MAX_ADC_CHN_PER_MOD]; // ADC chans used by app code
/// Arrary of ADC overflow counters.
int overflowAdc[MAX_ADC_MODULES][MAX_ADC_CHN_PER_MOD]; // ADC overflow diagnostics
int adcRdTime[MAX_ADC_MODULES];
int adcRdTimeMax[MAX_ADC_MODULES];
int adcRdTimeErr[MAX_ADC_MODULES];
// DAC Variables
/// Enables writing of DAC values; Used with DACKILL parts..
......@@ -352,19 +363,6 @@ double dDacHistory[(MAX_DAC_MODULES * 16)][MAX_HISTRY];
#define OVERSAMPLE_TIMES 1
#endif
typedef struct duotone_diag_t {
float adc[IOP_IO_RATE]; // Duotone timing diagnostic variables
float dac[IOP_IO_RATE];
float timeDac;
float timeAdc;
float totalAdc;
float meanAdc;
float totalDac;
float meanDac;
int dacDuoEnable;
}duotone_diag_t;
// /proc epics channel interface
struct proc_epics {
char *name;
......@@ -388,3 +386,4 @@ struct proc_futures {
unsigned int idx; // index (positive for matrix only)
} proc_futures[MAX_PROC_FUTURES];
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment