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 #include "GCStateAndFaultCodes.h"
jmitc91516 0:47c880c1463d 2
jmitc91516 0:47c880c1463d 3 #include <string.h>
jmitc91516 0:47c880c1463d 4
jmitc91516 0:47c880c1463d 5 /*
jmitc91516 0:47c880c1463d 6 Classes that match state or fault code integer values to the corresponding strings
jmitc91516 0:47c880c1463d 7 */
jmitc91516 0:47c880c1463d 8
jmitc91516 0:47c880c1463d 9 GCStateOrFaultCode::GCStateOrFaultCode(int theCodeNumber, char* theCodeString)
jmitc91516 0:47c880c1463d 10 {
jmitc91516 0:47c880c1463d 11 codeNumber = theCodeNumber;
jmitc91516 0:47c880c1463d 12
jmitc91516 0:47c880c1463d 13 strcpy(codeString, theCodeString);
jmitc91516 0:47c880c1463d 14 }
jmitc91516 0:47c880c1463d 15
jmitc91516 0:47c880c1463d 16 int GCStateOrFaultCode::GetCodeNumber(void)
jmitc91516 0:47c880c1463d 17 {
jmitc91516 0:47c880c1463d 18 return codeNumber;
jmitc91516 0:47c880c1463d 19 }
jmitc91516 0:47c880c1463d 20
jmitc91516 0:47c880c1463d 21 void GCStateOrFaultCode::GetCodeString(char *buff)
jmitc91516 0:47c880c1463d 22 {
jmitc91516 0:47c880c1463d 23 strcpy(buff, codeString);
jmitc91516 0:47c880c1463d 24 }
jmitc91516 0:47c880c1463d 25
jmitc91516 1:a5258871b33d 26 // Static member function - provided so that we do not need to have
jmitc91516 1:a5258871b33d 27 // '#ifdef USE_VERSION_102' code everywhere
jmitc91516 1:a5258871b33d 28 GCStateSimplified GCStateOrFaultCode::GetSimplifiedGCState(int rawGCState)
jmitc91516 1:a5258871b33d 29 {
jmitc91516 1:a5258871b33d 30 #ifdef USE_VERSION_102 // #defined (or not) in GCStateAndFaultCodes.h
jmitc91516 1:a5258871b33d 31 if ((rawGCState >= GC_STATE_102_METHOD_RUNNING_MINIMUM)
jmitc91516 1:a5258871b33d 32 && (rawGCState <= GC_STATE_102_METHOD_RUNNING_MAXIMUM)) {
jmitc91516 1:a5258871b33d 33 return GC_RUNNING;
jmitc91516 1:a5258871b33d 34 }
jmitc91516 0:47c880c1463d 35
jmitc91516 1:a5258871b33d 36 // 'else'...
jmitc91516 1:a5258871b33d 37 switch(rawGCState) {
jmitc91516 1:a5258871b33d 38 case GC_STATE_102_METHOD_IDLE:
jmitc91516 1:a5258871b33d 39 return GC_IDLE;
jmitc91516 1:a5258871b33d 40
jmitc91516 1:a5258871b33d 41 case GC_STATE_102_METHOD_EQUILIBRATING:
jmitc91516 1:a5258871b33d 42 return GC_EQUILIBRATING;
jmitc91516 1:a5258871b33d 43
jmitc91516 1:a5258871b33d 44 case GC_STATE_102_METHOD_STABILISING:
jmitc91516 1:a5258871b33d 45 return GC_STABILISING;
jmitc91516 1:a5258871b33d 46
jmitc91516 1:a5258871b33d 47 case GC_STATE_102_METHOD_WAIT_READY_IO:
jmitc91516 1:a5258871b33d 48 return GC_WAIT_READY_IO;
jmitc91516 1:a5258871b33d 49
jmitc91516 1:a5258871b33d 50 case GC_STATE_102_METHOD_READY_TO_RUN:
jmitc91516 1:a5258871b33d 51 return GC_READY_TO_RUN;
jmitc91516 1:a5258871b33d 52
jmitc91516 1:a5258871b33d 53 case GC_STATE_102_METHOD_COOLING:
jmitc91516 1:a5258871b33d 54 return GC_COOLING;
jmitc91516 1:a5258871b33d 55
jmitc91516 1:a5258871b33d 56 default: // Assume faulted
jmitc91516 1:a5258871b33d 57 break;
jmitc91516 1:a5258871b33d 58 }
jmitc91516 1:a5258871b33d 59 #else
jmitc91516 1:a5258871b33d 60 if ((rawGCState >= GC_STATE_RUNNING_MINIMUM)
jmitc91516 1:a5258871b33d 61 && (rawGCState <= GC_STATE_RUNNING_MAXIMUM)) {
jmitc91516 1:a5258871b33d 62 return GC_RUNNING;
jmitc91516 1:a5258871b33d 63 }
jmitc91516 1:a5258871b33d 64
jmitc91516 1:a5258871b33d 65
jmitc91516 1:a5258871b33d 66 // 'else'...
jmitc91516 1:a5258871b33d 67 switch(rawGCState) {
jmitc91516 1:a5258871b33d 68 case GC_STATE_IDLE:
jmitc91516 1:a5258871b33d 69 return GC_IDLE;
jmitc91516 1:a5258871b33d 70
jmitc91516 1:a5258871b33d 71 case GC_STATE_EQUILIBRATING:
jmitc91516 1:a5258871b33d 72 return GC_EQUILIBRATING;
jmitc91516 1:a5258871b33d 73
jmitc91516 1:a5258871b33d 74 case GC_STATE_READY_TO_RUN:
jmitc91516 1:a5258871b33d 75 return GC_READY_TO_RUN;
jmitc91516 1:a5258871b33d 76
jmitc91516 1:a5258871b33d 77 case GC_STATE_READY_TO_PRE_RUN:
jmitc91516 1:a5258871b33d 78 case GC_STATE_PRE_RUNNING:
jmitc91516 1:a5258871b33d 79 return GC_STABILISING;
jmitc91516 1:a5258871b33d 80
jmitc91516 1:a5258871b33d 81 default: // Assume faulted
jmitc91516 1:a5258871b33d 82 break;
jmitc91516 1:a5258871b33d 83 }
jmitc91516 1:a5258871b33d 84 #endif
jmitc91516 1:a5258871b33d 85 return GC_FAULTED;
jmitc91516 1:a5258871b33d 86 }
jmitc91516 1:a5258871b33d 87
jmitc91516 1:a5258871b33d 88
jmitc91516 1:a5258871b33d 89
jmitc91516 1:a5258871b33d 90 /*
jmitc91516 1:a5258871b33d 91 Set up the arrays of state and fault codes.
jmitc91516 1:a5258871b33d 92
jmitc91516 1:a5258871b33d 93 The state and fault codes below are taken from the Nemesis 2 GC Control Protocol,
jmitc91516 1:a5258871b33d 94 version 1.0, dated 01/10/15. Note that the fault codes include those marked 'not used'.
jmitc91516 1:a5258871b33d 95 */
jmitc91516 0:47c880c1463d 96 GCStateAndFaultCodes::GCStateAndFaultCodes()
jmitc91516 0:47c880c1463d 97 {
jmitc91516 0:47c880c1463d 98 // First - the state codes
jmitc91516 0:47c880c1463d 99
jmitc91516 1:a5258871b33d 100 #ifdef USE_VERSION_102
jmitc91516 1:a5258871b33d 101 stateCodeArray[0] = new GCStateOrFaultCode(GC_STATE_102_METHOD_IDLE, "Idle");
jmitc91516 1:a5258871b33d 102 stateCodeArray[1] = new GCStateOrFaultCode(GC_STATE_102_METHOD_EQUILIBRATING, "Equilibrating");
jmitc91516 1:a5258871b33d 103 stateCodeArray[2] = new GCStateOrFaultCode(GC_STATE_102_METHOD_STABILISING, "Stabilising");
jmitc91516 1:a5258871b33d 104 stateCodeArray[3] = new GCStateOrFaultCode(GC_STATE_102_METHOD_WAIT_READY_IO, "Wait Ready IO");
jmitc91516 1:a5258871b33d 105 stateCodeArray[4] = new GCStateOrFaultCode(GC_STATE_102_METHOD_READY_TO_RUN, "Ready to Run");
jmitc91516 1:a5258871b33d 106 stateCodeArray[5] = new GCStateOrFaultCode(GC_STATE_102_METHOD_INIT_TIME, "Initial time");
jmitc91516 1:a5258871b33d 107
jmitc91516 1:a5258871b33d 108 stateCodeArray[6] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_1, "Ramping segment 1");
jmitc91516 1:a5258871b33d 109 stateCodeArray[7] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_2, "Ramping segment 2");
jmitc91516 1:a5258871b33d 110 stateCodeArray[8] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_3, "Ramping segment 3");
jmitc91516 1:a5258871b33d 111 stateCodeArray[9] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_4, "Ramping segment 4");
jmitc91516 1:a5258871b33d 112 stateCodeArray[10] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_5, "Ramping segment 5");
jmitc91516 1:a5258871b33d 113 stateCodeArray[11] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_6, "Ramping segment 6");
jmitc91516 1:a5258871b33d 114 stateCodeArray[12] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_7, "Ramping segment 7");
jmitc91516 1:a5258871b33d 115 stateCodeArray[13] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_8, "Ramping segment 8");
jmitc91516 1:a5258871b33d 116 stateCodeArray[14] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_9, "Ramping segment 9");
jmitc91516 1:a5258871b33d 117 stateCodeArray[15] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_10, "Ramping segment 10");
jmitc91516 1:a5258871b33d 118 stateCodeArray[16] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_1, "Holding segment 1");
jmitc91516 1:a5258871b33d 119 stateCodeArray[17] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_2, "Holding segment 2");
jmitc91516 1:a5258871b33d 120 stateCodeArray[18] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_3, "Holding segment 3");
jmitc91516 1:a5258871b33d 121 stateCodeArray[19] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_4, "Holding segment 4");
jmitc91516 1:a5258871b33d 122 stateCodeArray[20] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_5, "Holding segment 5");
jmitc91516 1:a5258871b33d 123 stateCodeArray[21] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_6, "Holding segment 6");
jmitc91516 1:a5258871b33d 124 stateCodeArray[22] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_7, "Holding segment 7");
jmitc91516 1:a5258871b33d 125 stateCodeArray[23] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_8, "Holding segment 8");
jmitc91516 1:a5258871b33d 126 stateCodeArray[24] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_9, "Holding segment 9");
jmitc91516 1:a5258871b33d 127 stateCodeArray[25] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_10, "Holding segment 10");
jmitc91516 1:a5258871b33d 128
jmitc91516 1:a5258871b33d 129 stateCodeArray[26] = new GCStateOrFaultCode(GC_STATE_102_METHOD_COOLING, "Cooling");
jmitc91516 1:a5258871b33d 130 stateCodeArray[27] = new GCStateOrFaultCode(GC_STATE_102_METHOD_FAULTED, "Faulted");
jmitc91516 1:a5258871b33d 131 #else
jmitc91516 1:a5258871b33d 132 stateCodeArray[0] = new GCStateOrFaultCode(GC_STATE_IDLE, "Idle");
jmitc91516 1:a5258871b33d 133 stateCodeArray[1] = new GCStateOrFaultCode(GC_STATE_NOT_READY, "Not Ready");
jmitc91516 1:a5258871b33d 134 stateCodeArray[2] = new GCStateOrFaultCode(GC_STATE_EQUILIBRATING, "Equilibrating");
jmitc91516 1:a5258871b33d 135
jmitc91516 1:a5258871b33d 136 stateCodeArray[3] = new GCStateOrFaultCode(GC_STATE_RUNNING_INITIAL_TIME, "Running initial time");
jmitc91516 1:a5258871b33d 137 stateCodeArray[4] = new GCStateOrFaultCode(GC_STATE_RAMPING_SEGMENT_1, "Ramping segment 1");
jmitc91516 1:a5258871b33d 138 stateCodeArray[5] = new GCStateOrFaultCode(GC_STATE_AT_UPPER_TEMP_SEGMENT_1, "At upper temp segment 1");
jmitc91516 1:a5258871b33d 139 stateCodeArray[6] = new GCStateOrFaultCode(GC_STATE_RAMPING_SEGMENT_2, "Ramping segment 2");
jmitc91516 1:a5258871b33d 140 stateCodeArray[7] = new GCStateOrFaultCode(GC_STATE_AT_UPPER_TEMP_SEGMENT_2, "At upper temp segment 2");
jmitc91516 1:a5258871b33d 141 stateCodeArray[8] = new GCStateOrFaultCode(GC_STATE_RAMPING_SEGMENT_3, "Ramping segment 3");
jmitc91516 1:a5258871b33d 142 stateCodeArray[9] = new GCStateOrFaultCode(GC_STATE_AT_UPPER_TEMP_SEGMENT_3, "At upper temp segment 3");
jmitc91516 1:a5258871b33d 143 stateCodeArray[10] = new GCStateOrFaultCode(GC_STATE_RAMPING_SEGMENT_4, "Ramping segment 4");
jmitc91516 1:a5258871b33d 144 stateCodeArray[11] = new GCStateOrFaultCode(GC_STATE_AT_UPPER_TEMP_SEGMENT_4, "At upper temp segment 4");
jmitc91516 1:a5258871b33d 145 stateCodeArray[12] = new GCStateOrFaultCode(GC_STATE_RAMPING_SEGMENT_5, "Ramping segment 5");
jmitc91516 1:a5258871b33d 146 stateCodeArray[13] = new GCStateOrFaultCode(GC_STATE_AT_UPPER_TEMP_SEGMENT_5, "At upper temp segment 5");
jmitc91516 0:47c880c1463d 147
jmitc91516 1:a5258871b33d 148 stateCodeArray[14] = new GCStateOrFaultCode(GC_STATE_HOLDING, "Holding");
jmitc91516 1:a5258871b33d 149 stateCodeArray[15] = new GCStateOrFaultCode(GC_STATE_ABORTING, "Aborting");
jmitc91516 1:a5258871b33d 150 stateCodeArray[16] = new GCStateOrFaultCode(GC_STATE_COOLING, "Cooling");
jmitc91516 1:a5258871b33d 151
jmitc91516 1:a5258871b33d 152 stateCodeArray[17] = new GCStateOrFaultCode(GC_STATE_READY_TO_PRE_RUN, "Ready to pre-run");
jmitc91516 1:a5258871b33d 153 stateCodeArray[18] = new GCStateOrFaultCode(GC_STATE_PRE_RUNNING, "Pre-running");
jmitc91516 1:a5258871b33d 154 stateCodeArray[19] = new GCStateOrFaultCode(GC_STATE_READY_TO_RUN, "Ready to run");
jmitc91516 0:47c880c1463d 155
jmitc91516 1:a5258871b33d 156 stateCodeArray[20] = new GCStateOrFaultCode(GC_STATE_FAULTED, "Faulted");
jmitc91516 1:a5258871b33d 157 #endif
jmitc91516 1:a5258871b33d 158
jmitc91516 1:a5258871b33d 159 // The simplified state codes
jmitc91516 1:a5258871b33d 160 simplifiedStateCodeArray[0] = new GCStateOrFaultCode(GC_IDLE, "Idle");
jmitc91516 1:a5258871b33d 161 simplifiedStateCodeArray[1] = new GCStateOrFaultCode(GC_EQUILIBRATING, "Equilibrating");
jmitc91516 1:a5258871b33d 162 simplifiedStateCodeArray[2] = new GCStateOrFaultCode(GC_STABILISING, "Stabilising");
jmitc91516 1:a5258871b33d 163 simplifiedStateCodeArray[3] = new GCStateOrFaultCode(GC_WAIT_READY_IO, "Waiting for IO ready");
jmitc91516 1:a5258871b33d 164 simplifiedStateCodeArray[4] = new GCStateOrFaultCode(GC_READY_TO_RUN, "Ready to run");
jmitc91516 1:a5258871b33d 165 simplifiedStateCodeArray[5] = new GCStateOrFaultCode(GC_RUNNING, "Running");
jmitc91516 1:a5258871b33d 166 simplifiedStateCodeArray[6] = new GCStateOrFaultCode(GC_COOLING, "Cooling");
jmitc91516 1:a5258871b33d 167 simplifiedStateCodeArray[7] = new GCStateOrFaultCode(GC_FAULTED, "Faulted");
jmitc91516 0:47c880c1463d 168
jmitc91516 0:47c880c1463d 169 // Now the fault codes - these only apply if the state is 99, "Faulted"
jmitc91516 0:47c880c1463d 170
jmitc91516 1:a5258871b33d 171 #ifdef USE_VERSION_102
jmitc91516 1:a5258871b33d 172 faultCodeArray[0] = new GCStateOrFaultCode(GC_FAULT_102_NO_ERROR, "No error");
jmitc91516 1:a5258871b33d 173 faultCodeArray[1] = new GCStateOrFaultCode(GC_FAULT_102_EEPROM_FAILURE, "EEPROM failure");
jmitc91516 1:a5258871b33d 174 faultCodeArray[2] = new GCStateOrFaultCode(GC_FAULT_102_DOOR_OPEN_ERROR, "Door open error");
jmitc91516 1:a5258871b33d 175
jmitc91516 1:a5258871b33d 176 faultCodeArray[3] = new GCStateOrFaultCode(GC_FAULT_102_COL_PRT_OPEN_ERROR, "Column PRT open error");
jmitc91516 1:a5258871b33d 177 faultCodeArray[4] = new GCStateOrFaultCode(GC_FAULT_102_COL_PRT_SHORT_ERROR, "Column PRT short error");
jmitc91516 1:a5258871b33d 178 faultCodeArray[5] = new GCStateOrFaultCode(GC_FAULT_102_INJ_PRT_OPEN_ERROR, "Injector PRT open error");
jmitc91516 1:a5258871b33d 179 faultCodeArray[6] = new GCStateOrFaultCode(GC_FAULT_102_INJ_PRT_SHORT_ERROR, "Injector PRT short error");
jmitc91516 1:a5258871b33d 180 faultCodeArray[7] = new GCStateOrFaultCode(GC_FAULT_102_DET_PRT_OPEN_ERROR, "Detector PRT open error");
jmitc91516 1:a5258871b33d 181 faultCodeArray[8] = new GCStateOrFaultCode(GC_FAULT_102_DET_PRT_SHORT_ERROR, "Detector PRT short error");
jmitc91516 1:a5258871b33d 182 faultCodeArray[9] = new GCStateOrFaultCode(GC_FAULT_102_AUX_PRT_OPEN_ERROR, "Auxiliary PRT open error");
jmitc91516 1:a5258871b33d 183 faultCodeArray[10] = new GCStateOrFaultCode(GC_FAULT_102_AUX_PRT_SHORT_ERROR, "Auxiliary PRT short error");
jmitc91516 1:a5258871b33d 184 faultCodeArray[11] = new GCStateOrFaultCode(GC_FAULT_102_TEMP4_PRT_OPEN_ERROR, "Temp4 PRT open error");
jmitc91516 1:a5258871b33d 185 faultCodeArray[12] = new GCStateOrFaultCode(GC_FAULT_102_TEMP4_PRT_SHORT_ERROR, "Temp4 PRT short error");
jmitc91516 1:a5258871b33d 186
jmitc91516 1:a5258871b33d 187 faultCodeArray[13] = new GCStateOrFaultCode(GC_FAULT_102_VOLTAGE_REF_ERROR, "Voltage Ref error");
jmitc91516 1:a5258871b33d 188 faultCodeArray[14] = new GCStateOrFaultCode(GC_FAULT_102_VSENSOR_ERROR, "Voltage sensor error");
jmitc91516 1:a5258871b33d 189
jmitc91516 1:a5258871b33d 190 faultCodeArray[15] = new GCStateOrFaultCode(GC_FAULT_102_COL_OVER_TEMP_ERROR, "Column over temperature error");
jmitc91516 1:a5258871b33d 191 faultCodeArray[16] = new GCStateOrFaultCode(GC_FAULT_102_INJ_OVER_TEMP_ERROR, "Injector over temperature error");
jmitc91516 1:a5258871b33d 192 faultCodeArray[17] = new GCStateOrFaultCode(GC_FAULT_102_DET_OVER_TEMP_ERROR, "Detector over temperature error");
jmitc91516 1:a5258871b33d 193 faultCodeArray[18] = new GCStateOrFaultCode(GC_FAULT_102_AUX_OVER_TEMP_ERROR, "Auxiliary over temperature error");
jmitc91516 1:a5258871b33d 194 faultCodeArray[19] = new GCStateOrFaultCode(GC_FAULT_102_TEMP4_OVER_TEMP_ERROR, "Temp4 over temperature error");
jmitc91516 1:a5258871b33d 195
jmitc91516 1:a5258871b33d 196 faultCodeArray[20] = new GCStateOrFaultCode(GC_FAULT_102_TC_K_SHORT_ERROR, "TC K short error");
jmitc91516 1:a5258871b33d 197
jmitc91516 1:a5258871b33d 198 faultCodeArray[21] = new GCStateOrFaultCode(GC_FAULT_102_EPPC_NOTFITTED_ERROR, "EPPC not fitted error");
jmitc91516 1:a5258871b33d 199 #else
jmitc91516 1:a5258871b33d 200 faultCodeArray[0] = new GCStateOrFaultCode(GC_FAULT_NO_ERROR, "No error");
jmitc91516 1:a5258871b33d 201 faultCodeArray[1] = new GCStateOrFaultCode(GC_FAULT_EEPROM_FAILURE, "EEPROM failure");
jmitc91516 1:a5258871b33d 202 faultCodeArray[2] = new GCStateOrFaultCode(GC_FAULT_DOOR_OPEN_ERROR, "Door open");
jmitc91516 1:a5258871b33d 203 faultCodeArray[3] = new GCStateOrFaultCode(GC_FAULT_IRSENSOR_OPEN_ERROR, "IRsensor open");
jmitc91516 1:a5258871b33d 204 faultCodeArray[4] = new GCStateOrFaultCode(GC_FAULT_IRSENSOR_SHORT_ERROR, "IRsensor short");
jmitc91516 1:a5258871b33d 205 faultCodeArray[5] = new GCStateOrFaultCode(GC_FAULT_INJECTOR_PRT_OPEN_ERROR, "Injector PRT open");
jmitc91516 1:a5258871b33d 206 faultCodeArray[6] = new GCStateOrFaultCode(GC_FAULT_INJECTOR_PRT_SHORT_ERROR, "Injector PRT short");
jmitc91516 1:a5258871b33d 207 faultCodeArray[7] = new GCStateOrFaultCode(GC_FAULT_DETECTOR_PRT_OPEN_ERROR, "Detector PRT open");
jmitc91516 1:a5258871b33d 208 faultCodeArray[8] = new GCStateOrFaultCode(GC_FAULT_DETECTOR_PRT_SHORT_ERROR, "Detector PRT short");
jmitc91516 0:47c880c1463d 209
jmitc91516 1:a5258871b33d 210 faultCodeArray[9] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_INJECTOR_COUPLING_PRT_OPEN_ERROR, "(Not used): Injector coupling PRT open");
jmitc91516 1:a5258871b33d 211 faultCodeArray[10] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_INJECTOR_COUPLING_PRT_SHORT_ERROR, "(Not used): Injector coupling PRT short");
jmitc91516 1:a5258871b33d 212 faultCodeArray[11] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_DETECTOR_COUPLING_PRT_OPEN_ERROR, "(Not used): Detector coupling PRT open");
jmitc91516 1:a5258871b33d 213 faultCodeArray[12] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_DETECTOR_COUPLING_PRT_SHORT_ERROR, "(Not used): Detector coupling PRT short");
jmitc91516 1:a5258871b33d 214
jmitc91516 1:a5258871b33d 215 faultCodeArray[13] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_13, "(Fault code 13, not used)");
jmitc91516 1:a5258871b33d 216 faultCodeArray[14] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_14, "(Fault code 14, not used)");
jmitc91516 0:47c880c1463d 217
jmitc91516 1:a5258871b33d 218 faultCodeArray[15] = new GCStateOrFaultCode(GC_FAULT_VOLTAGE_REF_ERROR, "Voltage ref error");
jmitc91516 1:a5258871b33d 219 faultCodeArray[16] = new GCStateOrFaultCode(GC_FAULT_VOLTAGE_SENSOR_ERROR, "Voltage sensor error");
jmitc91516 0:47c880c1463d 220
jmitc91516 1:a5258871b33d 221 faultCodeArray[17] = new GCStateOrFaultCode(GC_FAULT_COLUMN_OVER_TEMP_ERROR, "Column over temp error");
jmitc91516 1:a5258871b33d 222 faultCodeArray[18] = new GCStateOrFaultCode(GC_FAULT_INJECTOR_OVER_TEMP_ERROR, "Injector over temp error");
jmitc91516 1:a5258871b33d 223 faultCodeArray[19] = new GCStateOrFaultCode(GC_FAULT_DETECTOR_OVER_TEMP_ERROR, "Detector over temp error");
jmitc91516 1:a5258871b33d 224
jmitc91516 1:a5258871b33d 225 faultCodeArray[20] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_INJECTOR_COUPLING_OVER_TEMP_ERROR, "(Not used): Injector coupling over temp error");
jmitc91516 1:a5258871b33d 226 faultCodeArray[21] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_DETECTOR_COUPLING_OVER_TEMP_ERROR, "(Not used): Detector coupling over temp error");
jmitc91516 0:47c880c1463d 227
jmitc91516 1:a5258871b33d 228 faultCodeArray[22] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_22, "(Fault code 22, not used)");
jmitc91516 1:a5258871b33d 229
jmitc91516 1:a5258871b33d 230 faultCodeArray[23] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_COLUMN_NOT_INIT, "(Not used): Column not init");
jmitc91516 1:a5258871b33d 231 faultCodeArray[24] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_COLUMN_INSERT_FAILED, "(Not used): Column insert failed");
jmitc91516 1:a5258871b33d 232
jmitc91516 1:a5258871b33d 233 faultCodeArray[25] = new GCStateOrFaultCode(GC_FAULT_I2C_NAK_ERROR, "I2C NAK error");
jmitc91516 0:47c880c1463d 234
jmitc91516 1:a5258871b33d 235 faultCodeArray[26] = new GCStateOrFaultCode(GC_FAULT_TWI_TIMEOUT_ERROR, "TWI timeout error");
jmitc91516 1:a5258871b33d 236 faultCodeArray[27] = new GCStateOrFaultCode(GC_FAULT_TWI_BUS_ERROR, "TWI bus error");
jmitc91516 1:a5258871b33d 237 faultCodeArray[28] = new GCStateOrFaultCode(GC_FAULT_TWI_SLAW_NACK, "TWI SLAW NACK");
jmitc91516 1:a5258871b33d 238 faultCodeArray[29] = new GCStateOrFaultCode(GC_FAULT_TWI_SLADATA_NACK, "TWI SLADATA NACK");
jmitc91516 1:a5258871b33d 239 faultCodeArray[30] = new GCStateOrFaultCode(GC_FAULT_TWI_SLAR_NACK, "TWI SLAR NACK");
jmitc91516 1:a5258871b33d 240 faultCodeArray[31] = new GCStateOrFaultCode(GC_FAULT_TWI_ARBITRATION_LOST, "TWI arbitration lost");
jmitc91516 1:a5258871b33d 241 faultCodeArray[32] = new GCStateOrFaultCode(GC_FAULT_TWI_UNKNOWN_ERROR, "TWI unknown error");
jmitc91516 0:47c880c1463d 242
jmitc91516 1:a5258871b33d 243 faultCodeArray[33] = new GCStateOrFaultCode(GC_FAULT_TWI2_TIMEOUT_ERROR, "TWI2 timeout error");
jmitc91516 1:a5258871b33d 244 faultCodeArray[34] = new GCStateOrFaultCode(GC_FAULT_TWI2_BUS_ERROR, "TWI2 bus error");
jmitc91516 1:a5258871b33d 245 faultCodeArray[35] = new GCStateOrFaultCode(GC_FAULT_TWI2_UNKNOWN_ERROR1, "TWI2 unknown error 1");
jmitc91516 1:a5258871b33d 246 faultCodeArray[36] = new GCStateOrFaultCode(GC_FAULT_TWI2_UNKNOWN_ERROR2, "TWI2 unknown error 2");
jmitc91516 1:a5258871b33d 247 #endif
jmitc91516 0:47c880c1463d 248 }
jmitc91516 0:47c880c1463d 249
jmitc91516 0:47c880c1463d 250 GCStateAndFaultCodes::~GCStateAndFaultCodes()
jmitc91516 0:47c880c1463d 251 {
jmitc91516 0:47c880c1463d 252 int i;
jmitc91516 0:47c880c1463d 253
jmitc91516 0:47c880c1463d 254 for (i = 0; i < STATE_CODE_COUNT; ++i) {
jmitc91516 0:47c880c1463d 255 delete stateCodeArray[i];
jmitc91516 0:47c880c1463d 256 }
jmitc91516 0:47c880c1463d 257
jmitc91516 0:47c880c1463d 258 for (i = 0; i < FAULT_CODE_COUNT; ++i) {
jmitc91516 0:47c880c1463d 259 delete faultCodeArray[i];
jmitc91516 0:47c880c1463d 260 }
jmitc91516 0:47c880c1463d 261 }
jmitc91516 0:47c880c1463d 262
jmitc91516 1:a5258871b33d 263 /*
jmitc91516 1:a5258871b33d 264 Given an integer state code, returns the associated descriptive string.
jmitc91516 1:a5258871b33d 265
jmitc91516 1:a5258871b33d 266 Args: state code
jmitc91516 1:a5258871b33d 267 pointer to the buffer to contain the associated string (if found)
jmitc91516 1:a5258871b33d 268
jmitc91516 1:a5258871b33d 269 Returns true if the state code is valid, false if not
jmitc91516 1:a5258871b33d 270 */
jmitc91516 0:47c880c1463d 271 bool GCStateAndFaultCodes::GetStateCodeString(int stateCode, char *buff)
jmitc91516 0:47c880c1463d 272 {
jmitc91516 0:47c880c1463d 273 for (int i = 0; i < STATE_CODE_COUNT; ++i) {
jmitc91516 0:47c880c1463d 274 if(stateCodeArray[i]->GetCodeNumber() == stateCode) {
jmitc91516 0:47c880c1463d 275 stateCodeArray[i]->GetCodeString(buff);
jmitc91516 0:47c880c1463d 276 return true;
jmitc91516 0:47c880c1463d 277 }
jmitc91516 0:47c880c1463d 278 }
jmitc91516 0:47c880c1463d 279
jmitc91516 0:47c880c1463d 280 // 'else' - state code not found
jmitc91516 0:47c880c1463d 281 buff[0] = '\0';
jmitc91516 0:47c880c1463d 282 return false;
jmitc91516 0:47c880c1463d 283 }
jmitc91516 0:47c880c1463d 284
jmitc91516 1:a5258871b33d 285 /*
jmitc91516 1:a5258871b33d 286 Given an integer code representing a simplified state, returns the associated descriptive string.
jmitc91516 1:a5258871b33d 287
jmitc91516 1:a5258871b33d 288 Args: simplified state code (an int, not an enum, to keep things simple for the compiler)
jmitc91516 1:a5258871b33d 289 pointer to the buffer to contain the associated string (if found)
jmitc91516 1:a5258871b33d 290
jmitc91516 1:a5258871b33d 291 Returns true if the state code is valid, false if not
jmitc91516 1:a5258871b33d 292 */
jmitc91516 1:a5258871b33d 293 bool GCStateAndFaultCodes::GetSimplifiedStateCodeString(int simplifiedStateCode, char *buff)
jmitc91516 1:a5258871b33d 294 {
jmitc91516 1:a5258871b33d 295 for (int i = 0; i < GC_STATE_SIMPLIFIED_COUNT; ++i) {
jmitc91516 1:a5258871b33d 296 if(simplifiedStateCodeArray[i]->GetCodeNumber() == simplifiedStateCode) {
jmitc91516 1:a5258871b33d 297 simplifiedStateCodeArray[i]->GetCodeString(buff);
jmitc91516 1:a5258871b33d 298 return true;
jmitc91516 1:a5258871b33d 299 }
jmitc91516 1:a5258871b33d 300 }
jmitc91516 1:a5258871b33d 301
jmitc91516 1:a5258871b33d 302 // 'else' - simplified state code not found
jmitc91516 1:a5258871b33d 303 buff[0] = '\0';
jmitc91516 1:a5258871b33d 304 return false;
jmitc91516 1:a5258871b33d 305 }
jmitc91516 1:a5258871b33d 306
jmitc91516 1:a5258871b33d 307
jmitc91516 1:a5258871b33d 308
jmitc91516 1:a5258871b33d 309 /*
jmitc91516 1:a5258871b33d 310 Given an integer fault code, returns the associated descriptive string.
jmitc91516 1:a5258871b33d 311
jmitc91516 1:a5258871b33d 312 Args: state code
jmitc91516 1:a5258871b33d 313 pointer to the buffer to contain the associated string (if found)
jmitc91516 1:a5258871b33d 314
jmitc91516 1:a5258871b33d 315 Returns true if the fault code is valid, false if not
jmitc91516 1:a5258871b33d 316 */
jmitc91516 0:47c880c1463d 317 bool GCStateAndFaultCodes::GetFaultCodeString(int faultCode, char *buff)
jmitc91516 0:47c880c1463d 318 {
jmitc91516 0:47c880c1463d 319 for (int i = 0; i < FAULT_CODE_COUNT; ++i) {
jmitc91516 0:47c880c1463d 320 if(faultCodeArray[i]->GetCodeNumber() == faultCode) {
jmitc91516 0:47c880c1463d 321 faultCodeArray[i]->GetCodeString(buff);
jmitc91516 0:47c880c1463d 322 return true;
jmitc91516 0:47c880c1463d 323 }
jmitc91516 0:47c880c1463d 324 }
jmitc91516 0:47c880c1463d 325
jmitc91516 0:47c880c1463d 326 // 'else' - fault code not found
jmitc91516 0:47c880c1463d 327 buff[0] = '\0';
jmitc91516 0:47c880c1463d 328 return false;
jmitc91516 0:47c880c1463d 329 }
jmitc91516 0:47c880c1463d 330
jmitc91516 0:47c880c1463d 331
jmitc91516 0:47c880c1463d 332
jmitc91516 0:47c880c1463d 333