versadac  1
versadac - Scalable Recorder Firmware
eio_sysf.h
1 /*******************************************************************************
2 FILE : eio_sysf.h
3 VERSION : $Id: eio_sysf.h 9451 2007-06-18 13:19:43Z davec $
4 AUTHOR : David Cozens
5 SYSTEM : Diab C for PowerPC under vxWorks
6 DESCRIPTION : Definition of EioSystemFunctions type.
7 *******************************************************************************/
8 #ifndef __EIO_SYSF_H
9 #define __EIO_SYSF_H
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
15 {
16  EioBoolean (*readyToRun)(EioSystem *ioSystem);
17  EioBoolean (*getSystemFailed)(EioSystem *ioSystem);
18  void (*setCycleRateDivisor)(EioSystem *ioSystem, EioUint8 cycleNumber, EioUint32 divisor);
19  EioUint8 (*getMaximumNumberOfModules)( EioSystem *ioSystem );
20  EioUint8 (*getMaximumNumberOfPointsPerModule)( EioSystem *ioSystem, EioPointType pointType);
21  EioUint8 (*getModuleNumberForPointIndex)( EioSystem *ioSystem, EioPointType pointType, EioUint16 pointIndex);
22  EioUint8 (*getPointNumberForPointIndex)( EioSystem *ioSystem, EioPointType pointType, EioUint16 pointIndex);
23  EioUint8 (*getNumberOfIOCycleRates)( EioSystem *ioSystem );
24  EioUint32 (*getCycleRateuS)( EioSystem *ioSystem, EioUint8 cycleNumber);
25  void (*setUpdateCycleCompleteHookAdd)( EioSystem *ioSystem, EioUint8 cycleNumber, void(*hook)(EioUint8 cycleNumber, EioUint32 count));
26  void (*setApplicationCycleCompleteCheckHookAdd)( EioSystem *ioSystem, EioUint8 cycleNumber, EioBoolean(*hook)(EioUint8 cycleNumber));
27  void (*setOperatingMode)( EioSystem *ioSystem, EioOperatingMode mode);
28  EioOperatingMode (*getOperatingMode)( EioSystem *ioSystem);
29  EioBoolean (*isOperatingModeSupported)( EioSystem *ioSystem, EioOperatingMode mode);
30  void (*setSecondaryMaximumNumberOfModules)( EioSystem *ioSystem, EioUint8 numberOfModules);
31  EioModuleType (*moduleGetType)( EioSystem *ioSystem, EioUint8 moduleNumber);
32  char * (*moduleGetVersion)( EioSystem *ioSystem, EioUint8 moduleNumber);
33  EioUint8 (*moduleGetMajorVersion)( EioSystem *ioSystem, EioUint8 moduleNumber);
34  EioUint8 (*moduleGetMinorVersion)( EioSystem *ioSystem, EioUint8 moduleNumber);
35  void (*moduleSecondarySetFittedModule)( EioSystem *ioSystem, EioUint8 moduleNumber, EioModuleType fitted);
36  EioBoolean (*moduleIsRedundantCapable)( EioSystem *ioSystem, EioModuleType moduleType);
37  EioBoolean (*moduleSetExpectedType)( EioSystem *ioSystem, EioUint8 moduleNumber, EioModuleType moduleType, EioUint8 cycleNumber);
38  EioModuleType (*moduleGetExpectedType)( EioSystem *ioSystem, EioUint8 moduleNumber);
39  EioUint8 (*moduleGetNumberOfPoints)( EioSystem *ioSystem, EioModuleType moduleType, EioPointType pointType);
40  EioBoolean (*moduleIsModuleTypeSupported)( EioSystem *ioSystem, EioUint8 moduleNumber, EioModuleType moduleType);
41  EioBoolean (*moduleIsModuleCompatible)( EioSystem *ioSystem, EioModuleType expected, EioModuleType fitted, EioUint8 cycleNumber);
42  EioBoolean (*moduleIsCycleRateSupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 cycleNumber);
43  EioAIMeasuredValueData* (*aIGetMeasuredValueDataPtr)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber);
44  void (*aIGetMeasuredValueData)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioAIMeasuredValueData *dataPtr);
45  void (*aISetConfiguration)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioAIType inputType, EioAIBreakResponse breakResponse, EioUint32 filterTimeuS, float rangeLow, float rangeHigh, float resistance, EioBoolean useAdaptiveFilter, EioBoolean cjRequired);
46  void (*aISecondarySetMeasuredValueData)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioAIMeasuredValueData *dataPtr);
47  EioBoolean (*aICalIsPointRangeCalibrated)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioAICalType calType, EioUint8 rangeNumber);
48  EioBoolean (*aICalIsCalibrationTypeSupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAICalType calType);
49  void (*aICalSetDefaultCalibration)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioAICalType calType);
50  void (*aICalPointCalibrationStart)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioAICalType calType);
51  EioAICalStatus (*aICalGetCalState)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber);
52  void (*aICalPointCalibrationComplete)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioAICalType calType);
53  void (*aICalPointCalibrationAbort)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber);
54  void (*aICalSetCalibrationRange)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioAICalType calType, EioUint8 rangeNumber);
55  EioBoolean (*aICalIsVREFCalRequired)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAICalType calType);
56  EioUint8 (*aICalGetNumberOfCalibrationRanges)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAICalType calType);
57  EioAICalRangeType (*aICalGetRangeType)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAICalType calType, EioUint8 rangeNumber);
58  float (*aICalGetRangeLowLimit)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAICalType calType, EioUint8 rangeNumber);
59  float (*aICalGetRangeHighLimit)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAICalType calType, EioUint8 rangeNumber);
60  EioUint8 (*aICalGetNumberOfCalibrationPoints)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAICalType calType, EioUint8 rangeNumber);
61  float (*aICalGetNominalCalibrationPoint)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAICalType calType, EioUint8 rangeNumber, EioUint8 calibrationPointIndex);
62  void (*aICalSetActualCalibrationPoint)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioAICalType calType, EioUint8 rangeNumber, float value, EioUint8 calibrationPointIndex);
63  EioBoolean (*aICalIsCustomCalibrationPointSupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAICalType calType, EioUint8 rangeNumber);
64  void (*aICalRestartMeasurement)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber);
65  void (*aICalSetVREFValue)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, float Vref);
66  float (*aIGetHighestMeasureableValue)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAIType inputType);
67  float (*aIGetLowestMeasureableValue)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAIType inputType);
68  EioBoolean (*aIIsTypeSupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAIType inputType);
69  EioBoolean (*aIIsCJSupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber);
70  EioBoolean (*aIIsBreakResponseSupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAIType inputType, float rangeLow, float rangeHigh, EioAIBreakResponse breakResponse);
71  EioUint32 (*aIGetMaxFilterTimeuS)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber);
72  EioBoolean (*aIIsAdaptiveFilterSupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber);
73  float (*aIGetInputImpedence)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAIType inputType, float rangeLow, float rangeHigh);
74  EioBoolean (*aIUserShuntResistorSupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber);
75  EioAOData* (*aOGetDataPtr)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber);
76  EioAOStatus (*aOGetData)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber);
77  void (*aOSetDemand)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, float demand);
78  void (*aOSetConfiguration)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioAOType outputType, float rangeLow, float rangeHigh);
79  void (*aOSecondarySetStatus)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioAOStatus status);
80  EioBoolean (*aOCalIsCalibrationTypeSupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAOCalType calType, EioUint8 cycleNumber);
81  void (*aOCalDefaultCalibration)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioAOCalType calType);
82  void (*aOCalPointCalibrationStart)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioAOCalType calType);
83  void (*aOCalPointCalibrationComplete)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioAOCalType calType);
84  void (*aOCalPointCalibrationAbort)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber);
85  void (*aOCalSetCalibrationRange)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioAOCalType calType, EioUint8 rangeNumber);
86  EioUint8 (*aOCalGetNumberOfCalibrationRanges)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAOCalType calType);
87  EioAOCalRangeType (*aOCalGetRangeType)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAOCalType calType, EioUint8 rangeNumber);
88  float (*aOCalGetRangeLowLimit)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAOCalType calType, EioUint8 rangeNumber);
89  float (*aOCalGetRangeHighLimit)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAOCalType calType, EioUint8 rangeNumber);
90  EioUint8 (*aOCalGetNumberOfCalibrationPoints)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAOCalType calType, EioUint8 rangeNumber);
91  float (*aOCalGetNominalCalibrationPoint)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAOCalType calType, EioUint8 rangeNumber, EioUint8 calibrationPointIndex);
92  void (*aOCalSetActualCalibrationPoint)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioAOCalType calType, EioUint8 rangeNumber, EioUint8 calibrationPointIndex, float value);
93  EioBoolean (*aOCalIsCustomCalibrationPointSupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAOCalType calType, EioUint8 rangeNumber);
94  void (*aOCalSetCurrentOutputMeasurement)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, float value);
95  void (*aOCalSetOutput)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, float value);
96  EioBoolean (*aOIsTypeSupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAOType outputType);
97  float (*aOGetMinimumOutput)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAOType outputType);
98  float (*aOGetMaximumOutput)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioAOType outputType);
99  EioDIData* (*dIGetDataPtr)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber);
100  void (*dIGetData)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioDIData *dataPtr);
101  void (*dISetDebounceTimeuS)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioUint32 debounceTimeuS);
102  void (*dISecondarySetData)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioDIData *dataPtr);
103  EioBoolean (*dIIsPulseCountingSupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber);
104  EioBoolean (*dIIsDebounceSupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber);
105  EioUint32 (*dIGetActualDebounceTimeuS)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioUint32 requestedDebounceTimeuS, EioUint8 cycleNumber);
106  void (*dOSetMode)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioDOMode mode);
107  EioBoolean (*dOIsModeSupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioDOMode outputMode);
108  EioDOStatus (*dOGetStatus)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber);
109  void (*dOSecondarySetStatus)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioDOStatus status);
110  void (*dOOOSetState)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioDOState state);
111  void (*dOOSOutputPulse)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioUint32 pulseTimeuS);
112  void (*dOOSReset)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber);
113  void (*dOOSSetInvert)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioBoolean invert);
114  void (*dOPTSendPulses)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioUint32 numberOfPulses);
115  void (*dOPTSetPerioduS)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioUint32 perioduS);
116  void (*dOPTReset)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber);
117  void (*dOPTSetInvert)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioBoolean invert);
118  EioUint32 (*dOPTGetActualPerioduS)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioUint8 cycleNumber, EioUint32 perioduS);
119  void (*dOTPOSetDemand)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, float demand);
120  void (*dOTPOSetMinimumPulseTimeuS)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioUint32 pulseTimeuS);
121  EioUint32 (*dOTPOGetActualMinimumPulseTimeuS)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioUint8 cycleNumber, EioUint32 requestedMinimumPulseTimeuS);
122  void (*dOTPOSetCycleTimeuS)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioUint32 cycleTimeuS);
123  EioUint32 (*dOTPOGetActualCycleTimeuS)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioUint8 cycleNumber, EioUint32 requestedCycleTimeuS);
124  EioBoolean (*dOTPOIsCycleTimeConfigurable)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber);
125  void (*dOVPSetDemand)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, float demand);
126  EioUint32 (*dOVPGetActualMinimumPulseTimeuS)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioUint8 cycleNumber, EioUint32 requestedMinimumPulseTimeuS);
127  void (*dOVPSetBacklashuS)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioUint32 backlashuS);
128  void (*dOVPSetInertiauS)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioUint32 inertiauS);
129  void (*dOVPSetStaticTimeuS)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioUint32 staticTimeuS);
130  EioBoolean (*dOVPIsPropertySupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioDOVPProperty property);
131  EioUint8 (*dOVPGetAssociatedPointOnModule)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber);
132  EioFIData* (*fIGetDataPtr)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber);
133  void (*fIGetData)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioFIData *dataPtr);
134  void (*fISetConfiguration)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioFIType type, float threshold, float supplyMillivolts, EioUint32 debounce, EioUint32 filterTimeus, float burdenOhms, EioBoolean enableSensorBreak, EioBoolean enableShortCircuitDetect);
135  void (*fISecondarySetData)( EioSystem *ioSystem, EioUint8 moduleNumber, EioUint8 pointNumber, EioFIData *dataPtr);
136  EioBoolean (*fIIsTypeSupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioFIType inputType);
137  EioBoolean (*fIIsDebounceSupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioFIType inputType);
138  EioBoolean (*fIIsThresholdSupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioFIType inputType);
139  EioBoolean (*fIIsShortCircuitDetectSupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioFIType inputType);
140  EioBoolean (*fIIsSensorBreakDetectSupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioFIType inputType);
141  EioBoolean (*fIIsPowerSupplySupported)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber);
142  float (*fIGetMaximumSupportedFrequency)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioFIType inputType);
143  float (*fIGetMinimumSupportedFrequency)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioFIType inputType);
144  float (*fIGetActualThreshold)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioFIType inputType, float burdenOhms, float requested);
145  float (*fIGetActualSupplyMillivolts)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, float requested);
146  EioUint32 (*fIGetMaxFilterTimeuS)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber);
147  EioBoolean (*fIIsBurdenConfigurable)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber);
148  float (*fIGetBurdenResistance)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber);
149  EioUint32 (*fIGetSlowestUpdateuS)( EioSystem *ioSystem, EioModuleType moduleType);
150  EioUint32 (*fIGetActualDebounceTimeuS)( EioSystem *ioSystem, EioModuleType moduleType, EioUint8 pointNumber, EioFIType type, EioUint32 debounce);
152 
153 #ifdef __cplusplus
154 } /* extern "C" */
155 #endif
156 
157 #endif /* __EIO_SYSF_H */
Definition: eio_ai.h:44
Definition: eio_syst.h:52
Definition: eio_sysf.h:14
Definition: eio_di.h:38
Definition: eio_fi.h:39
Definition: eio_ao.h:38