12 #ifndef __EIOT2SRO2F_H
13 #define __EIOT2SRO2F_H
19 #include "eio_t25srm.h"
23 #include "eiot2srao2.h"
29 EIO_T2500AO2FAST_STATE_JUST_CREATED,
30 EIO_T2500AO2FAST_STATE_MODULE_HAS_CHANGED,
31 EIO_T2500AO2FAST_STATE_INITIALISING,
32 EIO_T2500AO2FAST_STATE_RUNTIME,
33 EIO_T2500AO2FAST_STATE_DELETE,
34 EIO_T2500AO2FAST_STATE_SECONDARY,
35 EIO_T2500AO2FAST_STATE_BECOMING_PRIMARY_1,
36 EIO_T2500AO2FAST_STATE_BECOMING_PRIMARY_2,
43 EioT2500AO2FastModule(
unsigned char moduleNumber, EioT2500CycleEnum z_expectedCycleNumber);
44 virtual ~EioT2500AO2FastModule();
47 virtual void updateFast(
unsigned short slot);
48 virtual void update62_5mS();
49 virtual void updateFastBuffers(
unsigned int z_thisSlot);
50 virtual void update125mS();
51 virtual void cycleCompleteFast(
unsigned int z_thisSlot);
54 bool decipherCalibration(
int z_channel);
56 EioUint16 eeCheckCal( AOC_CAL_DATA_T *z_calData );
57 void driveChannelLeds();
58 void disableAllDfcMessages();
59 EioUint16 getCounts(
int z_channel);
60 int channelToPort(
int z_channel){
return 1-z_channel;};
61 void generatePointStatus();
62 void updateEepromData125mS();
63 void updateCalibrationState();
64 void enableIocTotalConfig();
66 Ao2FastRunStates m_state;
67 Ao2EepromAccessState m_eepromState;
68 Ao2CalibrationState m_calibrationState[AO2_NUMBER_OF_CHANNELS];
70 bool m_rangeCalibrated[AO2_NUMBER_OF_CHANNELS][AO2_NUMBER_OF_CALIBRATION_RANGES];
71 EioBoolean m_rangeUserCalibrated[AO2_NUMBER_OF_CHANNELS][AO2_NUMBER_OF_CALIBRATION_RANGES];
73 static float m_calScaleFactor;
74 static float m_calibrationRefLow[AO2_NUMBER_OF_CALIBRATION_RANGES];
75 static float m_calibrationRefHigh[AO2_NUMBER_OF_CALIBRATION_RANGES];
76 static Ao2CalibrationRangeEnum m_calType[EIO_AO_NUMBER_OF_TYPES];
77 static EioAOType m_calOutputType[AO2_NUMBER_OF_CALIBRATION_RANGES];
79 Ao2CalibrationPoints m_calPointIndex[AO2_NUMBER_OF_CHANNELS];
80 float m_actualCalValue[AO2_NUMBER_OF_CHANNELS][AO2_NUMBER_OF_CALIBRATION_POINTS];
81 float m_measuredValue[AO2_NUMBER_OF_CHANNELS][AO2_NUMBER_OF_CALIBRATION_POINTS];
107 bool m_haveReadValidCalibration[AO2_NUMBER_OF_CHANNELS];
109 AOC_EE_CAL_DATA_T m_calibrationData[AO2_NUMBER_OF_CHANNELS];
110 AOC_EE_CAL_DATA_T m_oldCalData[AO2_NUMBER_OF_CHANNELS];
113 EioAOStatus m_pointStatus[AO2_NUMBER_OF_CHANNELS];
114 EioAOStatus m_localStatus[AO2_NUMBER_OF_CHANNELS];
115 float m_demand[AO2_NUMBER_OF_CHANNELS];
117 EioAOConfig m_workingPointConfig[AO2_NUMBER_OF_CHANNELS];
119 bool m_clippedLow[AO2_NUMBER_OF_CHANNELS];
120 bool m_clippedHigh[AO2_NUMBER_OF_CHANNELS];
121 bool m_capabilitiesExceeded[AO2_NUMBER_OF_CHANNELS];
122 bool m_iocError[AO2_NUMBER_OF_CHANNELS];
123 bool m_hadHardwareError[AO2_NUMBER_OF_CHANNELS];
124 bool m_forceFastUpdateDisable[AO2_NUMBER_OF_CHANNELS];
125 EioUint8 m_lastHeartBeat[AO2_NUMBER_OF_CHANNELS];
127 EioSint8 m_rangingTrapCounter[AO2_NUMBER_OF_CHANNELS];
129 EioUint8 m_retryCounter;
131 bool m_messagesScheduled;
132 EioUint8 m_resetCounter;
133 bool m_iocFilterValid;
134 bool m_heartbeatValid;
135 EioUint8 m_rangingCounter;
136 EioUint8 m_firstSlot125ms;
137 EioUint8 m_fastIocTotalConfigSlot;
Definition: eio_t25srm.h:58
Definition: dfc_ssm.h:340
Definition: dfc_ssm.h:399
Definition: dfc_ssm.h:198
Definition: dfc_ssm.h:363
Definition: dfc_ssm.h:233
Definition: dfc_ssm.h:206
Definition: dfc_ssm.h:379
Definition: eiot2cal.h:61
Definition: dfc_ssm.h:352