10 #ifndef __EIOT2SRAI8_H
11 #define __EIOT2SRAI8_H
13 #include "ai8_constants.h"
18 #define AI8_BURDEN_RESISTOR_OHMS (3.325f)
20 #define AIC_AI8_MV_RANGE_NOMINAL_INPUT_IMPEDANCE (200000.0f)
21 #define AIC_AI8_MA_RANGE_NOMINAL_INPUT_IMPEDANCE (AI8_BURDEN_RESISTOR_OHMS)
23 #define AIC_MAX_FILTER_TIME (999999999)
28 EioAICalRangeType rangeType;
33 EioUint8 numCalPoints;
41 #include "eio_t25srm.h"
50 enum Ai8CalibrationTypeEnum
52 AI8_CALIBRATION_TYPE_VOLTS,
53 AI8_CALIBRATION_TYPE_RESISTANCE,
56 enum Ai8FilterTypeEnum
60 AI8_NUMBER_OF_FILTER_TYPES
65 EIO_T2500AI8_STATE_MODULE_NEEDS_RESET,
66 EIO_T2500AI8_STATE_MODULE_WAIT_FOR_MODULE_TO_RESET,
67 EIO_T2500AI8_STATE_INITIALISING,
68 EIO_T2500AI8_STATE_RUNTIME,
69 EIO_T2500AI8_STATE_DELETE,
70 EIO_T2500AI8_STATE_SECONDARY,
71 EIO_T2500AI8_STATE_BECOMING_PRIMARY_1,
72 EIO_T2500AI8_STATE_BECOMING_PRIMARY_2,
76 enum Ai8CalibrationState
79 AI8_CAL_STATE_WAIT_FOR_RANGE,
80 AI8_CAL_STATE_START_MEASUREMENT,
81 AI8_CAL_STATE_WAIT_FOR_VALUE,
82 AI8_CAL_STATE_POINT_DONE,
85 AI8_CAL_STATE_RESTORE,
87 AI8_CAL_STATE_WRITE_PROCESS_WORD
90 enum Ai8CalibrationPoints
94 AI8_NUMBER_OF_CALIBRATION_POINTS
100 EioT2500AI8Module(
unsigned char moduleNumber, EioModuleType z_type, EioT2500CycleEnum z_expectedCycleNumber);
101 virtual ~EioT2500AI8Module();
104 virtual void update62_5mS();
105 virtual void update125mS();
106 virtual void updateBuffers125ms();
107 EioBoolean getCalibrated(EioUint8 channel, EioAICalType calType, EioUint8 rangeNumber);
110 EioUint8 getChannelConfig(EioUint8 channel);
111 static void secondaryFilter(
float sample,
float *polep,
float divisor, EioSint8 *resetp );
112 void disableAll62_5mS();
113 void disableAll125mS();
114 void updateCalibrationState();
115 bool calibrationRequestReceived(EioAiCalibrationRequest z_request);
116 bool calibrationRequestReceivedAll(EioAiCalibrationRequest z_request);
118 Ai8RunStates m_state;
119 Ai8CalibrationState m_calibrationState;
120 EioBoolean m_rangeFactoryCalibrated[AI8_NUMBER_OF_CHANNELS];
121 EioBoolean m_rangeUserCalibrated[AI8_NUMBER_OF_CHANNELS];
122 Ai8CalibrationPoints m_calPointIndex;
128 bool m_messagesScheduled;
130 float m_divisor[AI8_NUMBER_OF_CHANNELS];
131 EioSint8 m_filterReset[AI8_NUMBER_OF_CHANNELS][AI8_NUMBER_OF_FILTER_TYPES];
137 EioUint8 m_currentConfig[AI8_NUMBER_OF_CHANNELS];
139 EioUint8 m_hideAuxilliaryErrors;
141 EioUint8 m_moduleErrorCount;
143 EioUint8 m_numberChannels;
145 EioUint8 m_waitCount;
147 EioUint8 m_rangingCount[AI8_NUMBER_OF_CHANNELS];
Definition: eio_t25srm.h:58
Definition: eiot2cal.h:36
Definition: eiot2srai8.h:26
Definition: ai8_ssm.h:124