Master Diagnostic Frame
The structure of the Tosetti's circular buffer that is dumped in case of failure
All the definitions are in $ADOPT_SOURCE/lib/AdsecDiagnLibStructs.h
AdsecDiagnRaw
typedef struct {
uint32 mask;
switch_bcu switc[BcuSwitch::N_CRATES];
crate_bcu crate[BcuMirror::N_CRATES];
}
AdsecDiagnRaw;
BcuSwitch::N_CRATES = 1
BcuMirror::N_CRATES = 6
typedef struct
{
switch_bcu_header header;
float32 slopes[LB_N_SLOPES]; //TODO questo e' un vero dito nel culo: cambia quando alfio rebinna.
uint32 swb_SafeSkipFrameCnt; // il numero di frames saltati perché è fallito il check di sicurezza sui modi, comandi o correnti
uint32 swb_PendingSkipFrameCnt; // skipped frames because of "command pending"
uint32 swb_WFSGlobalTimeout; // If switch BCU doesn't receive any WFS frame for a while,
// swb_WFSGlobalTimeout is increased ( ++ for each timeout)
uint32 swb_NumFLTimeout; // number of
FastLink timeouts.
uint32 swb_NumFLCrcErr; // number of
FastLinl Crc errors.
uint32 not_used[3];
float32 accelerometer_coeffs[3]; // last is not used
uint32
TimeStamp; // 59.29 kHz (16.87us)
switch_bcu_header footer;
} switch_bcu;
(1620 dw)
typedef struct
{
uint32
WFSFrameCounter; // counter of frames
uint32
ParamBlockSelector; // optical loop settings
uint32
MirrorFrameCounter; //
uint32 Dummy; //
} switch_bcu_header;
typedef struct
{
crate_bcu_header header;
single_dsp_record dsp[BcuMirror::N_DSP_CRATE];
crate_bcu_header footer;
} crate_bcu;
(1912 dw)
BcuMirror::N_DSP_CRATE = 28
typedef struct
{
uint32
WFSFrameCounter; // counter of frames
uint32
ParamBlockSelector; // optical loop settings
uint32
MirrorFrameCounter; //
uint32
CommandHistoryPtr; //
} crate_bcu_header;
typedef struct
{
float32
DistAverage[4]; // Linearized position average
float32
CurrAverage[4]; // Current average
uint32
DistAccumulator[8]; // Accumulated linearized position
uint32
CurrAccumulator[8]; // Accumulated current
uint32
DistAccumulator2[12]; // Accumulated squared linearized position [2 not used]
uint32
CurrAccumulator2[12]; // Accumulated squared current [2 not used]
float32 Modes[4]; // Modes calculated
float32
NewDeltaCommand[4]; // Delta command to apply
float32 FFCommand[4]; // Delta Feed-Forward Command
float32
IntControlCurrent[4]; // Integrated Control Current
float32
FFPureCurrent[4]; // Integrated Feed-Forward' Current
} single_dsp_record;
--
ArmandoRiccardi - 29 Mar 2010