Repository for import to local machine

Dependencies:   DMBasicGUI DMSupport

Committer:
jmitc91516
Date:
Thu Jul 20 08:42:29 2017 +0000
Revision:
1:a5258871b33d
Parent:
0:47c880c1463d
Child:
2:6e94a7fd1e37
Version before re-layout (July 2017). Also for mbed CLI import to local machine.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jmitc91516 0:47c880c1463d 1 #ifndef GCSTATUSANDFAULTCODES_H
jmitc91516 0:47c880c1463d 2 #define GCSTATUSANDFAULTCODES_H
jmitc91516 0:47c880c1463d 3
jmitc91516 1:a5258871b33d 4 /*
jmitc91516 1:a5258871b33d 5 Classes to deal with the GC state and fault codes, making them simpler to handle for the rest of this application.
jmitc91516 1:a5258871b33d 6
jmitc91516 1:a5258871b33d 7 The initial state and fault codes below are taken from the Nemesis 2 GC Control Protocol,
jmitc91516 1:a5258871b33d 8 version 1.0, dated 01/10/15. Note that the fault codes include those marked 'not used'.
jmitc91516 1:a5258871b33d 9
jmitc91516 1:a5258871b33d 10 The codes marked 'Version 102' are taken from the 500 Series GC Comunications Protocol,
jmitc91516 1:a5258871b33d 11 Version 1.0, dated 11/02/16. Until further notice, they should be used with all versions
jmitc91516 1:a5258871b33d 12 from 1.02 onwards (i.e. those that return "DWHO0102" or later in response to "QWHO").
jmitc91516 1:a5258871b33d 13
jmitc91516 1:a5258871b33d 14 */
jmitc91516 0:47c880c1463d 15
jmitc91516 1:a5258871b33d 16 // To use the 'Version 102' codes, uncomment this line:
jmitc91516 1:a5258871b33d 17 #define USE_VERSION_102
jmitc91516 1:a5258871b33d 18 // Comment out this line to reinstate the original codes.
jmitc91516 1:a5258871b33d 19
jmitc91516 1:a5258871b33d 20 enum GC_STATE {
jmitc91516 1:a5258871b33d 21 GC_STATE_IDLE = 0,
jmitc91516 1:a5258871b33d 22 GC_STATE_NOT_READY = 1,
jmitc91516 1:a5258871b33d 23 GC_STATE_EQUILIBRATING = 2,
jmitc91516 1:a5258871b33d 24
jmitc91516 1:a5258871b33d 25 // Start of 'GC is running' status codes
jmitc91516 1:a5258871b33d 26 GC_STATE_RUNNING_INITIAL_TIME = 4,
jmitc91516 1:a5258871b33d 27 GC_STATE_RAMPING_SEGMENT_1 = 5,
jmitc91516 1:a5258871b33d 28 GC_STATE_AT_UPPER_TEMP_SEGMENT_1 = 6,
jmitc91516 1:a5258871b33d 29 GC_STATE_RAMPING_SEGMENT_2 = 7,
jmitc91516 1:a5258871b33d 30 GC_STATE_AT_UPPER_TEMP_SEGMENT_2 = 8,
jmitc91516 1:a5258871b33d 31 GC_STATE_RAMPING_SEGMENT_3 = 9,
jmitc91516 1:a5258871b33d 32 GC_STATE_AT_UPPER_TEMP_SEGMENT_3 = 10,
jmitc91516 1:a5258871b33d 33 GC_STATE_RAMPING_SEGMENT_4 = 11,
jmitc91516 1:a5258871b33d 34 GC_STATE_AT_UPPER_TEMP_SEGMENT_4 = 12,
jmitc91516 1:a5258871b33d 35 GC_STATE_RAMPING_SEGMENT_5 = 13,
jmitc91516 1:a5258871b33d 36 GC_STATE_AT_UPPER_TEMP_SEGMENT_5 = 14,
jmitc91516 1:a5258871b33d 37
jmitc91516 1:a5258871b33d 38 GC_STATE_HOLDING = 15,
jmitc91516 1:a5258871b33d 39 GC_STATE_ABORTING = 16,
jmitc91516 1:a5258871b33d 40 GC_STATE_COOLING = 17,
jmitc91516 1:a5258871b33d 41 // End of 'GC is running' status codes
jmitc91516 1:a5258871b33d 42
jmitc91516 1:a5258871b33d 43 // Record the above
jmitc91516 1:a5258871b33d 44 GC_STATE_RUNNING_MINIMUM = GC_STATE_RUNNING_INITIAL_TIME,
jmitc91516 1:a5258871b33d 45 GC_STATE_RUNNING_MAXIMUM = GC_STATE_COOLING,
jmitc91516 1:a5258871b33d 46
jmitc91516 1:a5258871b33d 47 GC_STATE_READY_TO_PRE_RUN = 31,
jmitc91516 1:a5258871b33d 48 GC_STATE_PRE_RUNNING = 32,
jmitc91516 1:a5258871b33d 49 GC_STATE_READY_TO_RUN = 33,
jmitc91516 1:a5258871b33d 50
jmitc91516 1:a5258871b33d 51 GC_STATE_FAULTED = 99,
jmitc91516 1:a5258871b33d 52 };
jmitc91516 1:a5258871b33d 53
jmitc91516 1:a5258871b33d 54 enum GC_STATE_102 {
jmitc91516 1:a5258871b33d 55 GC_STATE_102_METHOD_IDLE = 0,
jmitc91516 1:a5258871b33d 56 GC_STATE_102_METHOD_EQUILIBRATING = 10,
jmitc91516 1:a5258871b33d 57 GC_STATE_102_METHOD_STABILISING = 20,
jmitc91516 1:a5258871b33d 58 GC_STATE_102_METHOD_WAIT_READY_IO = 30,
jmitc91516 1:a5258871b33d 59 GC_STATE_102_METHOD_READY_TO_RUN = 40,
jmitc91516 1:a5258871b33d 60 GC_STATE_102_METHOD_INIT_TIME = 50,
jmitc91516 1:a5258871b33d 61
jmitc91516 1:a5258871b33d 62 GC_STATE_102_METHOD_RAMPING_1 = 60,
jmitc91516 1:a5258871b33d 63 GC_STATE_102_METHOD_RAMPING_2 = 61,
jmitc91516 1:a5258871b33d 64 GC_STATE_102_METHOD_RAMPING_3 = 62,
jmitc91516 1:a5258871b33d 65 GC_STATE_102_METHOD_RAMPING_4 = 63,
jmitc91516 1:a5258871b33d 66 GC_STATE_102_METHOD_RAMPING_5 = 64,
jmitc91516 1:a5258871b33d 67 GC_STATE_102_METHOD_RAMPING_6 = 65,
jmitc91516 1:a5258871b33d 68 GC_STATE_102_METHOD_RAMPING_7 = 66,
jmitc91516 1:a5258871b33d 69 GC_STATE_102_METHOD_RAMPING_8 = 67,
jmitc91516 1:a5258871b33d 70 GC_STATE_102_METHOD_RAMPING_9 = 68,
jmitc91516 1:a5258871b33d 71 GC_STATE_102_METHOD_RAMPING_10 = 69,
jmitc91516 1:a5258871b33d 72
jmitc91516 1:a5258871b33d 73 GC_STATE_102_METHOD_HOLDING_1 = 70,
jmitc91516 1:a5258871b33d 74 GC_STATE_102_METHOD_HOLDING_2 = 71,
jmitc91516 1:a5258871b33d 75 GC_STATE_102_METHOD_HOLDING_3 = 72,
jmitc91516 1:a5258871b33d 76 GC_STATE_102_METHOD_HOLDING_4 = 73,
jmitc91516 1:a5258871b33d 77 GC_STATE_102_METHOD_HOLDING_5 = 74,
jmitc91516 1:a5258871b33d 78 GC_STATE_102_METHOD_HOLDING_6 = 75,
jmitc91516 1:a5258871b33d 79 GC_STATE_102_METHOD_HOLDING_7 = 76,
jmitc91516 1:a5258871b33d 80 GC_STATE_102_METHOD_HOLDING_8 = 77,
jmitc91516 1:a5258871b33d 81 GC_STATE_102_METHOD_HOLDING_9 = 78,
jmitc91516 1:a5258871b33d 82 GC_STATE_102_METHOD_HOLDING_10 = 79,
jmitc91516 1:a5258871b33d 83
jmitc91516 1:a5258871b33d 84 GC_STATE_102_METHOD_COOLING = 80,
jmitc91516 1:a5258871b33d 85 GC_STATE_102_METHOD_FAULTED = 99,
jmitc91516 1:a5258871b33d 86
jmitc91516 1:a5258871b33d 87 GC_STATE_102_METHOD_RUNNING_MINIMUM = GC_STATE_102_METHOD_INIT_TIME,
jmitc91516 1:a5258871b33d 88 GC_STATE_102_METHOD_RUNNING_MAXIMUM = GC_STATE_102_METHOD_HOLDING_10
jmitc91516 1:a5258871b33d 89 };
jmitc91516 1:a5258871b33d 90
jmitc91516 1:a5258871b33d 91 /*
jmitc91516 1:a5258871b33d 92 A simplified version of the above, appropriate for both pre-102 and post-102 versions.
jmitc91516 1:a5258871b33d 93
jmitc91516 1:a5258871b33d 94 The static function GCStateOrFaultCode::GetSimplifiedGCState converts the above codes
jmitc91516 1:a5258871b33d 95 to the simplified values below. Calling code can then ignore the USE_VERSION_102
jmitc91516 1:a5258871b33d 96 #define'd symbol.
jmitc91516 1:a5258871b33d 97 */
jmitc91516 1:a5258871b33d 98 typedef enum enumGCStateSimplified {
jmitc91516 1:a5258871b33d 99 GC_IDLE = 0,
jmitc91516 1:a5258871b33d 100 GC_EQUILIBRATING = 1,
jmitc91516 1:a5258871b33d 101 GC_STABILISING = 2,
jmitc91516 1:a5258871b33d 102 GC_WAIT_READY_IO = 3,
jmitc91516 1:a5258871b33d 103 GC_READY_TO_RUN = 4,
jmitc91516 1:a5258871b33d 104 GC_RUNNING = 5,
jmitc91516 1:a5258871b33d 105 GC_COOLING = 6,
jmitc91516 1:a5258871b33d 106 GC_FAULTED = 7,
jmitc91516 1:a5258871b33d 107 GC_STATE_SIMPLIFIED_COUNT = 8
jmitc91516 1:a5258871b33d 108 } GCStateSimplified;
jmitc91516 1:a5258871b33d 109
jmitc91516 1:a5258871b33d 110
jmitc91516 1:a5258871b33d 111 enum GC_FAULT {
jmitc91516 1:a5258871b33d 112 GC_FAULT_NO_ERROR = 0,
jmitc91516 1:a5258871b33d 113 GC_FAULT_EEPROM_FAILURE = 1,
jmitc91516 1:a5258871b33d 114 GC_FAULT_DOOR_OPEN_ERROR = 2,
jmitc91516 1:a5258871b33d 115 GC_FAULT_IRSENSOR_OPEN_ERROR = 3,
jmitc91516 1:a5258871b33d 116 GC_FAULT_IRSENSOR_SHORT_ERROR = 4,
jmitc91516 1:a5258871b33d 117 GC_FAULT_INJECTOR_PRT_OPEN_ERROR = 5,
jmitc91516 1:a5258871b33d 118 GC_FAULT_INJECTOR_PRT_SHORT_ERROR = 6,
jmitc91516 1:a5258871b33d 119 GC_FAULT_DETECTOR_PRT_OPEN_ERROR = 7,
jmitc91516 1:a5258871b33d 120 GC_FAULT_DETECTOR_PRT_SHORT_ERROR = 8,
jmitc91516 1:a5258871b33d 121
jmitc91516 1:a5258871b33d 122 GC_FAULT_NOT_USED_INJECTOR_COUPLING_PRT_OPEN_ERROR = 9,
jmitc91516 1:a5258871b33d 123 GC_FAULT_NOT_USED_INJECTOR_COUPLING_PRT_SHORT_ERROR = 10,
jmitc91516 1:a5258871b33d 124 GC_FAULT_NOT_USED_DETECTOR_COUPLING_PRT_OPEN_ERROR = 11,
jmitc91516 1:a5258871b33d 125 GC_FAULT_NOT_USED_DETECTOR_COUPLING_PRT_SHORT_ERROR = 12,
jmitc91516 1:a5258871b33d 126
jmitc91516 1:a5258871b33d 127 GC_FAULT_NOT_USED_13 = 13,
jmitc91516 1:a5258871b33d 128 GC_FAULT_NOT_USED_14 = 14,
jmitc91516 1:a5258871b33d 129
jmitc91516 1:a5258871b33d 130 GC_FAULT_VOLTAGE_REF_ERROR = 15,
jmitc91516 1:a5258871b33d 131 GC_FAULT_VOLTAGE_SENSOR_ERROR = 16,
jmitc91516 1:a5258871b33d 132
jmitc91516 1:a5258871b33d 133 GC_FAULT_COLUMN_OVER_TEMP_ERROR = 17,
jmitc91516 1:a5258871b33d 134 GC_FAULT_INJECTOR_OVER_TEMP_ERROR = 18,
jmitc91516 1:a5258871b33d 135 GC_FAULT_DETECTOR_OVER_TEMP_ERROR = 19,
jmitc91516 1:a5258871b33d 136
jmitc91516 1:a5258871b33d 137 GC_FAULT_NOT_USED_INJECTOR_COUPLING_OVER_TEMP_ERROR = 20,
jmitc91516 1:a5258871b33d 138 GC_FAULT_NOT_USED_DETECTOR_COUPLING_OVER_TEMP_ERROR = 21,
jmitc91516 1:a5258871b33d 139
jmitc91516 1:a5258871b33d 140 GC_FAULT_NOT_USED_22 = 22,
jmitc91516 1:a5258871b33d 141
jmitc91516 1:a5258871b33d 142 GC_FAULT_NOT_USED_COLUMN_NOT_INIT = 23,
jmitc91516 1:a5258871b33d 143 GC_FAULT_NOT_USED_COLUMN_INSERT_FAILED = 24,
jmitc91516 1:a5258871b33d 144
jmitc91516 1:a5258871b33d 145 GC_FAULT_I2C_NAK_ERROR = 25,
jmitc91516 1:a5258871b33d 146
jmitc91516 1:a5258871b33d 147 GC_FAULT_TWI_TIMEOUT_ERROR = 26,
jmitc91516 1:a5258871b33d 148 GC_FAULT_TWI_BUS_ERROR = 27,
jmitc91516 1:a5258871b33d 149 GC_FAULT_TWI_SLAW_NACK = 28,
jmitc91516 1:a5258871b33d 150 GC_FAULT_TWI_SLADATA_NACK = 29,
jmitc91516 1:a5258871b33d 151 GC_FAULT_TWI_SLAR_NACK = 30,
jmitc91516 1:a5258871b33d 152 GC_FAULT_TWI_ARBITRATION_LOST = 31,
jmitc91516 1:a5258871b33d 153 GC_FAULT_TWI_UNKNOWN_ERROR = 32,
jmitc91516 1:a5258871b33d 154
jmitc91516 1:a5258871b33d 155 GC_FAULT_TWI2_TIMEOUT_ERROR = 33,
jmitc91516 1:a5258871b33d 156 GC_FAULT_TWI2_BUS_ERROR = 34,
jmitc91516 1:a5258871b33d 157 GC_FAULT_TWI2_UNKNOWN_ERROR1 = 35,
jmitc91516 1:a5258871b33d 158 GC_FAULT_TWI2_UNKNOWN_ERROR2 = 36,
jmitc91516 1:a5258871b33d 159 };
jmitc91516 1:a5258871b33d 160
jmitc91516 1:a5258871b33d 161 enum GC_FAULT_102 {
jmitc91516 1:a5258871b33d 162 GC_FAULT_102_NO_ERROR = 0,
jmitc91516 1:a5258871b33d 163 GC_FAULT_102_EEPROM_FAILURE = 1,
jmitc91516 1:a5258871b33d 164 GC_FAULT_102_DOOR_OPEN_ERROR = 2,
jmitc91516 1:a5258871b33d 165
jmitc91516 1:a5258871b33d 166 GC_FAULT_102_COL_PRT_OPEN_ERROR = 3,
jmitc91516 1:a5258871b33d 167 GC_FAULT_102_COL_PRT_SHORT_ERROR = 4,
jmitc91516 1:a5258871b33d 168 GC_FAULT_102_INJ_PRT_OPEN_ERROR = 5,
jmitc91516 1:a5258871b33d 169 GC_FAULT_102_INJ_PRT_SHORT_ERROR = 6,
jmitc91516 1:a5258871b33d 170 GC_FAULT_102_DET_PRT_OPEN_ERROR = 7,
jmitc91516 1:a5258871b33d 171 GC_FAULT_102_DET_PRT_SHORT_ERROR = 8,
jmitc91516 1:a5258871b33d 172 GC_FAULT_102_AUX_PRT_OPEN_ERROR = 9,
jmitc91516 1:a5258871b33d 173 GC_FAULT_102_AUX_PRT_SHORT_ERROR = 10,
jmitc91516 1:a5258871b33d 174 GC_FAULT_102_TEMP4_PRT_OPEN_ERROR = 11,
jmitc91516 1:a5258871b33d 175 GC_FAULT_102_TEMP4_PRT_SHORT_ERROR = 12,
jmitc91516 1:a5258871b33d 176
jmitc91516 1:a5258871b33d 177 GC_FAULT_102_VOLTAGE_REF_ERROR = 13,
jmitc91516 1:a5258871b33d 178 GC_FAULT_102_VSENSOR_ERROR = 14,
jmitc91516 1:a5258871b33d 179
jmitc91516 1:a5258871b33d 180 GC_FAULT_102_COL_OVER_TEMP_ERROR = 15,
jmitc91516 1:a5258871b33d 181 GC_FAULT_102_INJ_OVER_TEMP_ERROR = 16,
jmitc91516 1:a5258871b33d 182 GC_FAULT_102_DET_OVER_TEMP_ERROR = 17,
jmitc91516 1:a5258871b33d 183 GC_FAULT_102_AUX_OVER_TEMP_ERROR = 18,
jmitc91516 1:a5258871b33d 184 GC_FAULT_102_TEMP4_OVER_TEMP_ERROR = 19,
jmitc91516 1:a5258871b33d 185
jmitc91516 1:a5258871b33d 186 GC_FAULT_102_TC_K_SHORT_ERROR = 20,
jmitc91516 1:a5258871b33d 187
jmitc91516 1:a5258871b33d 188 GC_FAULT_102_EPPC_NOTFITTED_ERROR = 25,
jmitc91516 1:a5258871b33d 189 };
jmitc91516 1:a5258871b33d 190
jmitc91516 1:a5258871b33d 191
jmitc91516 1:a5258871b33d 192 // This class simply contains an integer state or fault code, and an associated descriptive string
jmitc91516 0:47c880c1463d 193 class GCStateOrFaultCode
jmitc91516 0:47c880c1463d 194 {
jmitc91516 0:47c880c1463d 195 public:
jmitc91516 0:47c880c1463d 196 GCStateOrFaultCode(int theCodeNumber, char* theCodeString);
jmitc91516 0:47c880c1463d 197
jmitc91516 0:47c880c1463d 198 int GetCodeNumber(void);
jmitc91516 0:47c880c1463d 199
jmitc91516 0:47c880c1463d 200 void GetCodeString(char *buff);
jmitc91516 0:47c880c1463d 201
jmitc91516 1:a5258871b33d 202 static GCStateSimplified GetSimplifiedGCState(int rawGCState);
jmitc91516 1:a5258871b33d 203
jmitc91516 0:47c880c1463d 204 private:
jmitc91516 0:47c880c1463d 205 int codeNumber;
jmitc91516 0:47c880c1463d 206 char codeString[100];
jmitc91516 0:47c880c1463d 207 };
jmitc91516 0:47c880c1463d 208
jmitc91516 0:47c880c1463d 209
jmitc91516 1:a5258871b33d 210 // This class contains arrays of GC state and fault codes, each with its associated descriptive string.
jmitc91516 1:a5258871b33d 211 // It allows the caller to obtain the descriptive string for any valid state or fault code.
jmitc91516 0:47c880c1463d 212 class GCStateAndFaultCodes
jmitc91516 0:47c880c1463d 213 {
jmitc91516 0:47c880c1463d 214 public:
jmitc91516 0:47c880c1463d 215 GCStateAndFaultCodes();
jmitc91516 0:47c880c1463d 216 ~GCStateAndFaultCodes();
jmitc91516 0:47c880c1463d 217
jmitc91516 0:47c880c1463d 218 bool GetStateCodeString(int stateCode, char *buff);
jmitc91516 0:47c880c1463d 219
jmitc91516 1:a5258871b33d 220 bool GetSimplifiedStateCodeString(int simplifiedStateCode, char *buff);
jmitc91516 1:a5258871b33d 221
jmitc91516 0:47c880c1463d 222 bool GetFaultCodeString(int faultCode, char *buff);
jmitc91516 0:47c880c1463d 223
jmitc91516 0:47c880c1463d 224 private:
jmitc91516 1:a5258871b33d 225 #ifdef USE_VERSION_102
jmitc91516 1:a5258871b33d 226 enum StateCodeCount { STATE_CODE_COUNT = 28 };
jmitc91516 1:a5258871b33d 227 #else
jmitc91516 0:47c880c1463d 228 enum StateCodeCount { STATE_CODE_COUNT = 21 };
jmitc91516 1:a5258871b33d 229 #endif
jmitc91516 0:47c880c1463d 230 GCStateOrFaultCode *stateCodeArray[STATE_CODE_COUNT];
jmitc91516 1:a5258871b33d 231
jmitc91516 1:a5258871b33d 232 GCStateOrFaultCode *simplifiedStateCodeArray[GC_STATE_SIMPLIFIED_COUNT];
jmitc91516 0:47c880c1463d 233
jmitc91516 1:a5258871b33d 234 #ifdef USE_VERSION_102
jmitc91516 1:a5258871b33d 235 enum FaultCodeCount { FAULT_CODE_COUNT = 22 };
jmitc91516 1:a5258871b33d 236 #else
jmitc91516 0:47c880c1463d 237 enum FaultCodeCount { FAULT_CODE_COUNT = 37 };
jmitc91516 1:a5258871b33d 238 #endif
jmitc91516 0:47c880c1463d 239 GCStateOrFaultCode *faultCodeArray[FAULT_CODE_COUNT];
jmitc91516 0:47c880c1463d 240 };
jmitc91516 0:47c880c1463d 241
jmitc91516 0:47c880c1463d 242 #endif // GCSTATUSANDFAULTCODES_H