Repository for import to local machine
Dependencies: DMBasicGUI DMSupport
GCStateAndFaultCodes.cpp@1:a5258871b33d, 2017-07-20 (annotated)
- 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?
User | Revision | Line number | New 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 |