Repository for import to local machine
Dependencies: DMBasicGUI DMSupport
GCStateAndFaultCodes.cpp@2:6e94a7fd1e37, 2017-07-20 (annotated)
- Committer:
- jmitc91516
- Date:
- Thu Jul 20 15:31:28 2017 +0000
- Revision:
- 2:6e94a7fd1e37
- Parent:
- 1:a5258871b33d
Now displays GC state in centre of Home page.
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 | 2:6e94a7fd1e37 | 5 | |
jmitc91516 | 2:6e94a7fd1e37 | 6 | /* |
jmitc91516 | 2:6e94a7fd1e37 | 7 | Passed three 8-bit colour components - red, green and blue. |
jmitc91516 | 2:6e94a7fd1e37 | 8 | Returns the corresponding 16-bit colour value (5 bits for red, 6 bits for green, 5 bits for blue). |
jmitc91516 | 2:6e94a7fd1e37 | 9 | |
jmitc91516 | 2:6e94a7fd1e37 | 10 | Defined in main.cpp |
jmitc91516 | 2:6e94a7fd1e37 | 11 | */ |
jmitc91516 | 2:6e94a7fd1e37 | 12 | extern GuiConst_INTCOLOR SixteenBitColorValue(GuiConst_INT8U red, GuiConst_INT8U green, GuiConst_INT8U blue); |
jmitc91516 | 2:6e94a7fd1e37 | 13 | |
jmitc91516 | 2:6e94a7fd1e37 | 14 | |
jmitc91516 | 0:47c880c1463d | 15 | /* |
jmitc91516 | 0:47c880c1463d | 16 | Classes that match state or fault code integer values to the corresponding strings |
jmitc91516 | 0:47c880c1463d | 17 | */ |
jmitc91516 | 0:47c880c1463d | 18 | |
jmitc91516 | 0:47c880c1463d | 19 | GCStateOrFaultCode::GCStateOrFaultCode(int theCodeNumber, char* theCodeString) |
jmitc91516 | 0:47c880c1463d | 20 | { |
jmitc91516 | 0:47c880c1463d | 21 | codeNumber = theCodeNumber; |
jmitc91516 | 0:47c880c1463d | 22 | |
jmitc91516 | 0:47c880c1463d | 23 | strcpy(codeString, theCodeString); |
jmitc91516 | 0:47c880c1463d | 24 | } |
jmitc91516 | 0:47c880c1463d | 25 | |
jmitc91516 | 0:47c880c1463d | 26 | int GCStateOrFaultCode::GetCodeNumber(void) |
jmitc91516 | 0:47c880c1463d | 27 | { |
jmitc91516 | 0:47c880c1463d | 28 | return codeNumber; |
jmitc91516 | 0:47c880c1463d | 29 | } |
jmitc91516 | 0:47c880c1463d | 30 | |
jmitc91516 | 0:47c880c1463d | 31 | void GCStateOrFaultCode::GetCodeString(char *buff) |
jmitc91516 | 0:47c880c1463d | 32 | { |
jmitc91516 | 0:47c880c1463d | 33 | strcpy(buff, codeString); |
jmitc91516 | 0:47c880c1463d | 34 | } |
jmitc91516 | 0:47c880c1463d | 35 | |
jmitc91516 | 1:a5258871b33d | 36 | // Static member function - provided so that we do not need to have |
jmitc91516 | 1:a5258871b33d | 37 | // '#ifdef USE_VERSION_102' code everywhere |
jmitc91516 | 1:a5258871b33d | 38 | GCStateSimplified GCStateOrFaultCode::GetSimplifiedGCState(int rawGCState) |
jmitc91516 | 1:a5258871b33d | 39 | { |
jmitc91516 | 1:a5258871b33d | 40 | #ifdef USE_VERSION_102 // #defined (or not) in GCStateAndFaultCodes.h |
jmitc91516 | 1:a5258871b33d | 41 | if ((rawGCState >= GC_STATE_102_METHOD_RUNNING_MINIMUM) |
jmitc91516 | 1:a5258871b33d | 42 | && (rawGCState <= GC_STATE_102_METHOD_RUNNING_MAXIMUM)) { |
jmitc91516 | 1:a5258871b33d | 43 | return GC_RUNNING; |
jmitc91516 | 1:a5258871b33d | 44 | } |
jmitc91516 | 0:47c880c1463d | 45 | |
jmitc91516 | 1:a5258871b33d | 46 | // 'else'... |
jmitc91516 | 1:a5258871b33d | 47 | switch(rawGCState) { |
jmitc91516 | 1:a5258871b33d | 48 | case GC_STATE_102_METHOD_IDLE: |
jmitc91516 | 1:a5258871b33d | 49 | return GC_IDLE; |
jmitc91516 | 1:a5258871b33d | 50 | |
jmitc91516 | 1:a5258871b33d | 51 | case GC_STATE_102_METHOD_EQUILIBRATING: |
jmitc91516 | 1:a5258871b33d | 52 | return GC_EQUILIBRATING; |
jmitc91516 | 1:a5258871b33d | 53 | |
jmitc91516 | 1:a5258871b33d | 54 | case GC_STATE_102_METHOD_STABILISING: |
jmitc91516 | 1:a5258871b33d | 55 | return GC_STABILISING; |
jmitc91516 | 1:a5258871b33d | 56 | |
jmitc91516 | 1:a5258871b33d | 57 | case GC_STATE_102_METHOD_WAIT_READY_IO: |
jmitc91516 | 1:a5258871b33d | 58 | return GC_WAIT_READY_IO; |
jmitc91516 | 1:a5258871b33d | 59 | |
jmitc91516 | 1:a5258871b33d | 60 | case GC_STATE_102_METHOD_READY_TO_RUN: |
jmitc91516 | 1:a5258871b33d | 61 | return GC_READY_TO_RUN; |
jmitc91516 | 1:a5258871b33d | 62 | |
jmitc91516 | 1:a5258871b33d | 63 | case GC_STATE_102_METHOD_COOLING: |
jmitc91516 | 1:a5258871b33d | 64 | return GC_COOLING; |
jmitc91516 | 1:a5258871b33d | 65 | |
jmitc91516 | 1:a5258871b33d | 66 | default: // Assume faulted |
jmitc91516 | 1:a5258871b33d | 67 | break; |
jmitc91516 | 1:a5258871b33d | 68 | } |
jmitc91516 | 1:a5258871b33d | 69 | #else |
jmitc91516 | 1:a5258871b33d | 70 | if ((rawGCState >= GC_STATE_RUNNING_MINIMUM) |
jmitc91516 | 1:a5258871b33d | 71 | && (rawGCState <= GC_STATE_RUNNING_MAXIMUM)) { |
jmitc91516 | 1:a5258871b33d | 72 | return GC_RUNNING; |
jmitc91516 | 1:a5258871b33d | 73 | } |
jmitc91516 | 1:a5258871b33d | 74 | |
jmitc91516 | 1:a5258871b33d | 75 | |
jmitc91516 | 1:a5258871b33d | 76 | // 'else'... |
jmitc91516 | 1:a5258871b33d | 77 | switch(rawGCState) { |
jmitc91516 | 1:a5258871b33d | 78 | case GC_STATE_IDLE: |
jmitc91516 | 1:a5258871b33d | 79 | return GC_IDLE; |
jmitc91516 | 1:a5258871b33d | 80 | |
jmitc91516 | 1:a5258871b33d | 81 | case GC_STATE_EQUILIBRATING: |
jmitc91516 | 1:a5258871b33d | 82 | return GC_EQUILIBRATING; |
jmitc91516 | 1:a5258871b33d | 83 | |
jmitc91516 | 1:a5258871b33d | 84 | case GC_STATE_READY_TO_RUN: |
jmitc91516 | 1:a5258871b33d | 85 | return GC_READY_TO_RUN; |
jmitc91516 | 1:a5258871b33d | 86 | |
jmitc91516 | 1:a5258871b33d | 87 | case GC_STATE_READY_TO_PRE_RUN: |
jmitc91516 | 1:a5258871b33d | 88 | case GC_STATE_PRE_RUNNING: |
jmitc91516 | 1:a5258871b33d | 89 | return GC_STABILISING; |
jmitc91516 | 1:a5258871b33d | 90 | |
jmitc91516 | 1:a5258871b33d | 91 | default: // Assume faulted |
jmitc91516 | 1:a5258871b33d | 92 | break; |
jmitc91516 | 1:a5258871b33d | 93 | } |
jmitc91516 | 1:a5258871b33d | 94 | #endif |
jmitc91516 | 1:a5258871b33d | 95 | return GC_FAULTED; |
jmitc91516 | 1:a5258871b33d | 96 | } |
jmitc91516 | 1:a5258871b33d | 97 | |
jmitc91516 | 2:6e94a7fd1e37 | 98 | /* |
jmitc91516 | 2:6e94a7fd1e37 | 99 | Static member function to draw a message over the Run button location on the Home page, |
jmitc91516 | 2:6e94a7fd1e37 | 100 | showing the GC state. |
jmitc91516 | 2:6e94a7fd1e37 | 101 | |
jmitc91516 | 2:6e94a7fd1e37 | 102 | Args: the GC state, as a value in the "GCStateSimplified" enumeration |
jmitc91516 | 2:6e94a7fd1e37 | 103 | |
jmitc91516 | 2:6e94a7fd1e37 | 104 | No return code |
jmitc91516 | 2:6e94a7fd1e37 | 105 | */ |
jmitc91516 | 2:6e94a7fd1e37 | 106 | void GCStateOrFaultCode::DrawSimplifiedStateMessageOnHomePageRunButton(GCStateSimplified simplifiedState) |
jmitc91516 | 2:6e94a7fd1e37 | 107 | { |
jmitc91516 | 2:6e94a7fd1e37 | 108 | switch (simplifiedState) { |
jmitc91516 | 2:6e94a7fd1e37 | 109 | case GC_STABILISING: |
jmitc91516 | 2:6e94a7fd1e37 | 110 | DrawTextOnRunButton("Stabilising", SixteenBitColorValue(0, 0xFF, 0), SixteenBitColorValue(0, 0, 0), GuiFont_Helv36Bold); |
jmitc91516 | 2:6e94a7fd1e37 | 111 | break; |
jmitc91516 | 2:6e94a7fd1e37 | 112 | case GC_EQUILIBRATING: |
jmitc91516 | 2:6e94a7fd1e37 | 113 | DrawTextOnRunButton("Equilibrating", SixteenBitColorValue(255, 255, 50), SixteenBitColorValue(0, 0, 0), GuiFont_Helv36Bold); |
jmitc91516 | 2:6e94a7fd1e37 | 114 | break; |
jmitc91516 | 2:6e94a7fd1e37 | 115 | case GC_COOLING: |
jmitc91516 | 2:6e94a7fd1e37 | 116 | DrawTextOnRunButton("Cooling", SixteenBitColorValue(0, 243, 255), SixteenBitColorValue(0, 0, 0), GuiFont_Helv36Bold); |
jmitc91516 | 2:6e94a7fd1e37 | 117 | break; |
jmitc91516 | 2:6e94a7fd1e37 | 118 | case GC_READY_TO_RUN: |
jmitc91516 | 2:6e94a7fd1e37 | 119 | // DrawTextOnRunButton("Ready", SixteenBitColorValue(0, 0xFF, 0), SixteenBitColorValue(0, 0, 0), GuiFont_Helv36Bold); |
jmitc91516 | 2:6e94a7fd1e37 | 120 | // Test - don't display "Ready" message on top of green, enabled, Run button |
jmitc91516 | 2:6e94a7fd1e37 | 121 | break; |
jmitc91516 | 2:6e94a7fd1e37 | 122 | case GC_IDLE: |
jmitc91516 | 2:6e94a7fd1e37 | 123 | DrawTextOnRunButton("Idle", SixteenBitColorValue(192, 0, 0), SixteenBitColorValue(0, 0, 0), GuiFont_Helv36Bold); |
jmitc91516 | 2:6e94a7fd1e37 | 124 | break; |
jmitc91516 | 2:6e94a7fd1e37 | 125 | case GC_WAIT_READY_IO: |
jmitc91516 | 2:6e94a7fd1e37 | 126 | DrawTextOnRunButton("Waiting IO", SixteenBitColorValue(192, 192, 0), SixteenBitColorValue(0, 0, 0), GuiFont_Helv36Bold); |
jmitc91516 | 2:6e94a7fd1e37 | 127 | break; |
jmitc91516 | 2:6e94a7fd1e37 | 128 | case GC_FAULTED: |
jmitc91516 | 2:6e94a7fd1e37 | 129 | DrawTextOnRunButton("Faulted", SixteenBitColorValue(255, 0, 0), SixteenBitColorValue(0, 0, 0), GuiFont_Helv36Bold); |
jmitc91516 | 2:6e94a7fd1e37 | 130 | break; |
jmitc91516 | 2:6e94a7fd1e37 | 131 | default: |
jmitc91516 | 2:6e94a7fd1e37 | 132 | // Some other state - do nothing |
jmitc91516 | 2:6e94a7fd1e37 | 133 | break; |
jmitc91516 | 2:6e94a7fd1e37 | 134 | } |
jmitc91516 | 2:6e94a7fd1e37 | 135 | } |
jmitc91516 | 2:6e94a7fd1e37 | 136 | |
jmitc91516 | 2:6e94a7fd1e37 | 137 | /* |
jmitc91516 | 2:6e94a7fd1e37 | 138 | Draws the specified text on top of the Run button in the centre of the Home page, |
jmitc91516 | 2:6e94a7fd1e37 | 139 | in the specified colour. |
jmitc91516 | 2:6e94a7fd1e37 | 140 | |
jmitc91516 | 2:6e94a7fd1e37 | 141 | It is up to the caller to display the Home page before calling this function. |
jmitc91516 | 2:6e94a7fd1e37 | 142 | |
jmitc91516 | 2:6e94a7fd1e37 | 143 | Args: pointer to the (null-terminated) text |
jmitc91516 | 2:6e94a7fd1e37 | 144 | the foregound (i.e. text) colour |
jmitc91516 | 2:6e94a7fd1e37 | 145 | the background colour |
jmitc91516 | 2:6e94a7fd1e37 | 146 | the font ID (from the GuiFont_xxx list at the bottom of GuiFont.h) |
jmitc91516 | 2:6e94a7fd1e37 | 147 | (caller may want to e.g. use a larger font for shorter strings) |
jmitc91516 | 2:6e94a7fd1e37 | 148 | |
jmitc91516 | 2:6e94a7fd1e37 | 149 | No return code. |
jmitc91516 | 2:6e94a7fd1e37 | 150 | */ |
jmitc91516 | 2:6e94a7fd1e37 | 151 | void GCStateOrFaultCode::DrawTextOnRunButton(char* text, GuiConst_INTCOLOR foreColor, GuiConst_INTCOLOR backColor, GuiConst_INT16U fontNo) |
jmitc91516 | 2:6e94a7fd1e37 | 152 | { |
jmitc91516 | 2:6e94a7fd1e37 | 153 | const GuiConst_INT16S X = 400; // Approx centre of Run button |
jmitc91516 | 2:6e94a7fd1e37 | 154 | const GuiConst_INT16S Y = 220; |
jmitc91516 | 2:6e94a7fd1e37 | 155 | |
jmitc91516 | 2:6e94a7fd1e37 | 156 | GuiLib_DrawStr( |
jmitc91516 | 2:6e94a7fd1e37 | 157 | X, //GuiConst_INT16S X, |
jmitc91516 | 2:6e94a7fd1e37 | 158 | Y, //GuiConst_INT16S Y, |
jmitc91516 | 2:6e94a7fd1e37 | 159 | fontNo, //GuiConst_INT16U FontNo, |
jmitc91516 | 2:6e94a7fd1e37 | 160 | text, //GuiConst_TEXT PrefixLocate *String, |
jmitc91516 | 2:6e94a7fd1e37 | 161 | GuiLib_ALIGN_CENTER, //GuiConst_INT8U Alignment, |
jmitc91516 | 2:6e94a7fd1e37 | 162 | GuiLib_PS_ON, //GuiConst_INT8U PsWriting, |
jmitc91516 | 2:6e94a7fd1e37 | 163 | GuiLib_TRANSPARENT_ON, //GuiConst_INT8U Transparent, |
jmitc91516 | 2:6e94a7fd1e37 | 164 | GuiLib_UNDERLINE_OFF, //GuiConst_INT8U Underlining, |
jmitc91516 | 2:6e94a7fd1e37 | 165 | 0, //GuiConst_INT16S BackBoxSizeX, |
jmitc91516 | 2:6e94a7fd1e37 | 166 | 0, //GuiConst_INT16S BackBoxSizeY1, |
jmitc91516 | 2:6e94a7fd1e37 | 167 | 0, //GuiConst_INT16S BackBoxSizeY2, |
jmitc91516 | 2:6e94a7fd1e37 | 168 | GuiLib_BBP_NONE, //GuiConst_INT8U BackBorderPixels, |
jmitc91516 | 2:6e94a7fd1e37 | 169 | foreColor, //GuiConst_INTCOLOR ForeColor, |
jmitc91516 | 2:6e94a7fd1e37 | 170 | backColor //GuiConst_INTCOLOR BackColor |
jmitc91516 | 2:6e94a7fd1e37 | 171 | ); |
jmitc91516 | 2:6e94a7fd1e37 | 172 | } |
jmitc91516 | 1:a5258871b33d | 173 | |
jmitc91516 | 1:a5258871b33d | 174 | |
jmitc91516 | 1:a5258871b33d | 175 | /* |
jmitc91516 | 1:a5258871b33d | 176 | Set up the arrays of state and fault codes. |
jmitc91516 | 1:a5258871b33d | 177 | |
jmitc91516 | 1:a5258871b33d | 178 | The state and fault codes below are taken from the Nemesis 2 GC Control Protocol, |
jmitc91516 | 1:a5258871b33d | 179 | version 1.0, dated 01/10/15. Note that the fault codes include those marked 'not used'. |
jmitc91516 | 1:a5258871b33d | 180 | */ |
jmitc91516 | 0:47c880c1463d | 181 | GCStateAndFaultCodes::GCStateAndFaultCodes() |
jmitc91516 | 0:47c880c1463d | 182 | { |
jmitc91516 | 0:47c880c1463d | 183 | // First - the state codes |
jmitc91516 | 0:47c880c1463d | 184 | |
jmitc91516 | 1:a5258871b33d | 185 | #ifdef USE_VERSION_102 |
jmitc91516 | 1:a5258871b33d | 186 | stateCodeArray[0] = new GCStateOrFaultCode(GC_STATE_102_METHOD_IDLE, "Idle"); |
jmitc91516 | 1:a5258871b33d | 187 | stateCodeArray[1] = new GCStateOrFaultCode(GC_STATE_102_METHOD_EQUILIBRATING, "Equilibrating"); |
jmitc91516 | 1:a5258871b33d | 188 | stateCodeArray[2] = new GCStateOrFaultCode(GC_STATE_102_METHOD_STABILISING, "Stabilising"); |
jmitc91516 | 1:a5258871b33d | 189 | stateCodeArray[3] = new GCStateOrFaultCode(GC_STATE_102_METHOD_WAIT_READY_IO, "Wait Ready IO"); |
jmitc91516 | 1:a5258871b33d | 190 | stateCodeArray[4] = new GCStateOrFaultCode(GC_STATE_102_METHOD_READY_TO_RUN, "Ready to Run"); |
jmitc91516 | 1:a5258871b33d | 191 | stateCodeArray[5] = new GCStateOrFaultCode(GC_STATE_102_METHOD_INIT_TIME, "Initial time"); |
jmitc91516 | 1:a5258871b33d | 192 | |
jmitc91516 | 1:a5258871b33d | 193 | stateCodeArray[6] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_1, "Ramping segment 1"); |
jmitc91516 | 1:a5258871b33d | 194 | stateCodeArray[7] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_2, "Ramping segment 2"); |
jmitc91516 | 1:a5258871b33d | 195 | stateCodeArray[8] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_3, "Ramping segment 3"); |
jmitc91516 | 1:a5258871b33d | 196 | stateCodeArray[9] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_4, "Ramping segment 4"); |
jmitc91516 | 1:a5258871b33d | 197 | stateCodeArray[10] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_5, "Ramping segment 5"); |
jmitc91516 | 1:a5258871b33d | 198 | stateCodeArray[11] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_6, "Ramping segment 6"); |
jmitc91516 | 1:a5258871b33d | 199 | stateCodeArray[12] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_7, "Ramping segment 7"); |
jmitc91516 | 1:a5258871b33d | 200 | stateCodeArray[13] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_8, "Ramping segment 8"); |
jmitc91516 | 1:a5258871b33d | 201 | stateCodeArray[14] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_9, "Ramping segment 9"); |
jmitc91516 | 1:a5258871b33d | 202 | stateCodeArray[15] = new GCStateOrFaultCode(GC_STATE_102_METHOD_RAMPING_10, "Ramping segment 10"); |
jmitc91516 | 1:a5258871b33d | 203 | stateCodeArray[16] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_1, "Holding segment 1"); |
jmitc91516 | 1:a5258871b33d | 204 | stateCodeArray[17] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_2, "Holding segment 2"); |
jmitc91516 | 1:a5258871b33d | 205 | stateCodeArray[18] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_3, "Holding segment 3"); |
jmitc91516 | 1:a5258871b33d | 206 | stateCodeArray[19] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_4, "Holding segment 4"); |
jmitc91516 | 1:a5258871b33d | 207 | stateCodeArray[20] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_5, "Holding segment 5"); |
jmitc91516 | 1:a5258871b33d | 208 | stateCodeArray[21] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_6, "Holding segment 6"); |
jmitc91516 | 1:a5258871b33d | 209 | stateCodeArray[22] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_7, "Holding segment 7"); |
jmitc91516 | 1:a5258871b33d | 210 | stateCodeArray[23] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_8, "Holding segment 8"); |
jmitc91516 | 1:a5258871b33d | 211 | stateCodeArray[24] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_9, "Holding segment 9"); |
jmitc91516 | 1:a5258871b33d | 212 | stateCodeArray[25] = new GCStateOrFaultCode(GC_STATE_102_METHOD_HOLDING_10, "Holding segment 10"); |
jmitc91516 | 1:a5258871b33d | 213 | |
jmitc91516 | 1:a5258871b33d | 214 | stateCodeArray[26] = new GCStateOrFaultCode(GC_STATE_102_METHOD_COOLING, "Cooling"); |
jmitc91516 | 1:a5258871b33d | 215 | stateCodeArray[27] = new GCStateOrFaultCode(GC_STATE_102_METHOD_FAULTED, "Faulted"); |
jmitc91516 | 1:a5258871b33d | 216 | #else |
jmitc91516 | 1:a5258871b33d | 217 | stateCodeArray[0] = new GCStateOrFaultCode(GC_STATE_IDLE, "Idle"); |
jmitc91516 | 1:a5258871b33d | 218 | stateCodeArray[1] = new GCStateOrFaultCode(GC_STATE_NOT_READY, "Not Ready"); |
jmitc91516 | 1:a5258871b33d | 219 | stateCodeArray[2] = new GCStateOrFaultCode(GC_STATE_EQUILIBRATING, "Equilibrating"); |
jmitc91516 | 1:a5258871b33d | 220 | |
jmitc91516 | 1:a5258871b33d | 221 | stateCodeArray[3] = new GCStateOrFaultCode(GC_STATE_RUNNING_INITIAL_TIME, "Running initial time"); |
jmitc91516 | 1:a5258871b33d | 222 | stateCodeArray[4] = new GCStateOrFaultCode(GC_STATE_RAMPING_SEGMENT_1, "Ramping segment 1"); |
jmitc91516 | 1:a5258871b33d | 223 | stateCodeArray[5] = new GCStateOrFaultCode(GC_STATE_AT_UPPER_TEMP_SEGMENT_1, "At upper temp segment 1"); |
jmitc91516 | 1:a5258871b33d | 224 | stateCodeArray[6] = new GCStateOrFaultCode(GC_STATE_RAMPING_SEGMENT_2, "Ramping segment 2"); |
jmitc91516 | 1:a5258871b33d | 225 | stateCodeArray[7] = new GCStateOrFaultCode(GC_STATE_AT_UPPER_TEMP_SEGMENT_2, "At upper temp segment 2"); |
jmitc91516 | 1:a5258871b33d | 226 | stateCodeArray[8] = new GCStateOrFaultCode(GC_STATE_RAMPING_SEGMENT_3, "Ramping segment 3"); |
jmitc91516 | 1:a5258871b33d | 227 | stateCodeArray[9] = new GCStateOrFaultCode(GC_STATE_AT_UPPER_TEMP_SEGMENT_3, "At upper temp segment 3"); |
jmitc91516 | 1:a5258871b33d | 228 | stateCodeArray[10] = new GCStateOrFaultCode(GC_STATE_RAMPING_SEGMENT_4, "Ramping segment 4"); |
jmitc91516 | 1:a5258871b33d | 229 | stateCodeArray[11] = new GCStateOrFaultCode(GC_STATE_AT_UPPER_TEMP_SEGMENT_4, "At upper temp segment 4"); |
jmitc91516 | 1:a5258871b33d | 230 | stateCodeArray[12] = new GCStateOrFaultCode(GC_STATE_RAMPING_SEGMENT_5, "Ramping segment 5"); |
jmitc91516 | 1:a5258871b33d | 231 | stateCodeArray[13] = new GCStateOrFaultCode(GC_STATE_AT_UPPER_TEMP_SEGMENT_5, "At upper temp segment 5"); |
jmitc91516 | 0:47c880c1463d | 232 | |
jmitc91516 | 1:a5258871b33d | 233 | stateCodeArray[14] = new GCStateOrFaultCode(GC_STATE_HOLDING, "Holding"); |
jmitc91516 | 1:a5258871b33d | 234 | stateCodeArray[15] = new GCStateOrFaultCode(GC_STATE_ABORTING, "Aborting"); |
jmitc91516 | 1:a5258871b33d | 235 | stateCodeArray[16] = new GCStateOrFaultCode(GC_STATE_COOLING, "Cooling"); |
jmitc91516 | 1:a5258871b33d | 236 | |
jmitc91516 | 1:a5258871b33d | 237 | stateCodeArray[17] = new GCStateOrFaultCode(GC_STATE_READY_TO_PRE_RUN, "Ready to pre-run"); |
jmitc91516 | 1:a5258871b33d | 238 | stateCodeArray[18] = new GCStateOrFaultCode(GC_STATE_PRE_RUNNING, "Pre-running"); |
jmitc91516 | 1:a5258871b33d | 239 | stateCodeArray[19] = new GCStateOrFaultCode(GC_STATE_READY_TO_RUN, "Ready to run"); |
jmitc91516 | 0:47c880c1463d | 240 | |
jmitc91516 | 1:a5258871b33d | 241 | stateCodeArray[20] = new GCStateOrFaultCode(GC_STATE_FAULTED, "Faulted"); |
jmitc91516 | 1:a5258871b33d | 242 | #endif |
jmitc91516 | 1:a5258871b33d | 243 | |
jmitc91516 | 1:a5258871b33d | 244 | // The simplified state codes |
jmitc91516 | 1:a5258871b33d | 245 | simplifiedStateCodeArray[0] = new GCStateOrFaultCode(GC_IDLE, "Idle"); |
jmitc91516 | 1:a5258871b33d | 246 | simplifiedStateCodeArray[1] = new GCStateOrFaultCode(GC_EQUILIBRATING, "Equilibrating"); |
jmitc91516 | 1:a5258871b33d | 247 | simplifiedStateCodeArray[2] = new GCStateOrFaultCode(GC_STABILISING, "Stabilising"); |
jmitc91516 | 1:a5258871b33d | 248 | simplifiedStateCodeArray[3] = new GCStateOrFaultCode(GC_WAIT_READY_IO, "Waiting for IO ready"); |
jmitc91516 | 1:a5258871b33d | 249 | simplifiedStateCodeArray[4] = new GCStateOrFaultCode(GC_READY_TO_RUN, "Ready to run"); |
jmitc91516 | 1:a5258871b33d | 250 | simplifiedStateCodeArray[5] = new GCStateOrFaultCode(GC_RUNNING, "Running"); |
jmitc91516 | 1:a5258871b33d | 251 | simplifiedStateCodeArray[6] = new GCStateOrFaultCode(GC_COOLING, "Cooling"); |
jmitc91516 | 1:a5258871b33d | 252 | simplifiedStateCodeArray[7] = new GCStateOrFaultCode(GC_FAULTED, "Faulted"); |
jmitc91516 | 0:47c880c1463d | 253 | |
jmitc91516 | 0:47c880c1463d | 254 | // Now the fault codes - these only apply if the state is 99, "Faulted" |
jmitc91516 | 0:47c880c1463d | 255 | |
jmitc91516 | 1:a5258871b33d | 256 | #ifdef USE_VERSION_102 |
jmitc91516 | 1:a5258871b33d | 257 | faultCodeArray[0] = new GCStateOrFaultCode(GC_FAULT_102_NO_ERROR, "No error"); |
jmitc91516 | 1:a5258871b33d | 258 | faultCodeArray[1] = new GCStateOrFaultCode(GC_FAULT_102_EEPROM_FAILURE, "EEPROM failure"); |
jmitc91516 | 1:a5258871b33d | 259 | faultCodeArray[2] = new GCStateOrFaultCode(GC_FAULT_102_DOOR_OPEN_ERROR, "Door open error"); |
jmitc91516 | 1:a5258871b33d | 260 | |
jmitc91516 | 1:a5258871b33d | 261 | faultCodeArray[3] = new GCStateOrFaultCode(GC_FAULT_102_COL_PRT_OPEN_ERROR, "Column PRT open error"); |
jmitc91516 | 1:a5258871b33d | 262 | faultCodeArray[4] = new GCStateOrFaultCode(GC_FAULT_102_COL_PRT_SHORT_ERROR, "Column PRT short error"); |
jmitc91516 | 1:a5258871b33d | 263 | faultCodeArray[5] = new GCStateOrFaultCode(GC_FAULT_102_INJ_PRT_OPEN_ERROR, "Injector PRT open error"); |
jmitc91516 | 1:a5258871b33d | 264 | faultCodeArray[6] = new GCStateOrFaultCode(GC_FAULT_102_INJ_PRT_SHORT_ERROR, "Injector PRT short error"); |
jmitc91516 | 1:a5258871b33d | 265 | faultCodeArray[7] = new GCStateOrFaultCode(GC_FAULT_102_DET_PRT_OPEN_ERROR, "Detector PRT open error"); |
jmitc91516 | 1:a5258871b33d | 266 | faultCodeArray[8] = new GCStateOrFaultCode(GC_FAULT_102_DET_PRT_SHORT_ERROR, "Detector PRT short error"); |
jmitc91516 | 1:a5258871b33d | 267 | faultCodeArray[9] = new GCStateOrFaultCode(GC_FAULT_102_AUX_PRT_OPEN_ERROR, "Auxiliary PRT open error"); |
jmitc91516 | 1:a5258871b33d | 268 | faultCodeArray[10] = new GCStateOrFaultCode(GC_FAULT_102_AUX_PRT_SHORT_ERROR, "Auxiliary PRT short error"); |
jmitc91516 | 1:a5258871b33d | 269 | faultCodeArray[11] = new GCStateOrFaultCode(GC_FAULT_102_TEMP4_PRT_OPEN_ERROR, "Temp4 PRT open error"); |
jmitc91516 | 1:a5258871b33d | 270 | faultCodeArray[12] = new GCStateOrFaultCode(GC_FAULT_102_TEMP4_PRT_SHORT_ERROR, "Temp4 PRT short error"); |
jmitc91516 | 1:a5258871b33d | 271 | |
jmitc91516 | 1:a5258871b33d | 272 | faultCodeArray[13] = new GCStateOrFaultCode(GC_FAULT_102_VOLTAGE_REF_ERROR, "Voltage Ref error"); |
jmitc91516 | 1:a5258871b33d | 273 | faultCodeArray[14] = new GCStateOrFaultCode(GC_FAULT_102_VSENSOR_ERROR, "Voltage sensor error"); |
jmitc91516 | 1:a5258871b33d | 274 | |
jmitc91516 | 1:a5258871b33d | 275 | faultCodeArray[15] = new GCStateOrFaultCode(GC_FAULT_102_COL_OVER_TEMP_ERROR, "Column over temperature error"); |
jmitc91516 | 1:a5258871b33d | 276 | faultCodeArray[16] = new GCStateOrFaultCode(GC_FAULT_102_INJ_OVER_TEMP_ERROR, "Injector over temperature error"); |
jmitc91516 | 1:a5258871b33d | 277 | faultCodeArray[17] = new GCStateOrFaultCode(GC_FAULT_102_DET_OVER_TEMP_ERROR, "Detector over temperature error"); |
jmitc91516 | 1:a5258871b33d | 278 | faultCodeArray[18] = new GCStateOrFaultCode(GC_FAULT_102_AUX_OVER_TEMP_ERROR, "Auxiliary over temperature error"); |
jmitc91516 | 1:a5258871b33d | 279 | faultCodeArray[19] = new GCStateOrFaultCode(GC_FAULT_102_TEMP4_OVER_TEMP_ERROR, "Temp4 over temperature error"); |
jmitc91516 | 1:a5258871b33d | 280 | |
jmitc91516 | 1:a5258871b33d | 281 | faultCodeArray[20] = new GCStateOrFaultCode(GC_FAULT_102_TC_K_SHORT_ERROR, "TC K short error"); |
jmitc91516 | 1:a5258871b33d | 282 | |
jmitc91516 | 1:a5258871b33d | 283 | faultCodeArray[21] = new GCStateOrFaultCode(GC_FAULT_102_EPPC_NOTFITTED_ERROR, "EPPC not fitted error"); |
jmitc91516 | 1:a5258871b33d | 284 | #else |
jmitc91516 | 1:a5258871b33d | 285 | faultCodeArray[0] = new GCStateOrFaultCode(GC_FAULT_NO_ERROR, "No error"); |
jmitc91516 | 1:a5258871b33d | 286 | faultCodeArray[1] = new GCStateOrFaultCode(GC_FAULT_EEPROM_FAILURE, "EEPROM failure"); |
jmitc91516 | 1:a5258871b33d | 287 | faultCodeArray[2] = new GCStateOrFaultCode(GC_FAULT_DOOR_OPEN_ERROR, "Door open"); |
jmitc91516 | 1:a5258871b33d | 288 | faultCodeArray[3] = new GCStateOrFaultCode(GC_FAULT_IRSENSOR_OPEN_ERROR, "IRsensor open"); |
jmitc91516 | 1:a5258871b33d | 289 | faultCodeArray[4] = new GCStateOrFaultCode(GC_FAULT_IRSENSOR_SHORT_ERROR, "IRsensor short"); |
jmitc91516 | 1:a5258871b33d | 290 | faultCodeArray[5] = new GCStateOrFaultCode(GC_FAULT_INJECTOR_PRT_OPEN_ERROR, "Injector PRT open"); |
jmitc91516 | 1:a5258871b33d | 291 | faultCodeArray[6] = new GCStateOrFaultCode(GC_FAULT_INJECTOR_PRT_SHORT_ERROR, "Injector PRT short"); |
jmitc91516 | 1:a5258871b33d | 292 | faultCodeArray[7] = new GCStateOrFaultCode(GC_FAULT_DETECTOR_PRT_OPEN_ERROR, "Detector PRT open"); |
jmitc91516 | 1:a5258871b33d | 293 | faultCodeArray[8] = new GCStateOrFaultCode(GC_FAULT_DETECTOR_PRT_SHORT_ERROR, "Detector PRT short"); |
jmitc91516 | 0:47c880c1463d | 294 | |
jmitc91516 | 1:a5258871b33d | 295 | faultCodeArray[9] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_INJECTOR_COUPLING_PRT_OPEN_ERROR, "(Not used): Injector coupling PRT open"); |
jmitc91516 | 1:a5258871b33d | 296 | faultCodeArray[10] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_INJECTOR_COUPLING_PRT_SHORT_ERROR, "(Not used): Injector coupling PRT short"); |
jmitc91516 | 1:a5258871b33d | 297 | faultCodeArray[11] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_DETECTOR_COUPLING_PRT_OPEN_ERROR, "(Not used): Detector coupling PRT open"); |
jmitc91516 | 1:a5258871b33d | 298 | faultCodeArray[12] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_DETECTOR_COUPLING_PRT_SHORT_ERROR, "(Not used): Detector coupling PRT short"); |
jmitc91516 | 1:a5258871b33d | 299 | |
jmitc91516 | 1:a5258871b33d | 300 | faultCodeArray[13] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_13, "(Fault code 13, not used)"); |
jmitc91516 | 1:a5258871b33d | 301 | faultCodeArray[14] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_14, "(Fault code 14, not used)"); |
jmitc91516 | 0:47c880c1463d | 302 | |
jmitc91516 | 1:a5258871b33d | 303 | faultCodeArray[15] = new GCStateOrFaultCode(GC_FAULT_VOLTAGE_REF_ERROR, "Voltage ref error"); |
jmitc91516 | 1:a5258871b33d | 304 | faultCodeArray[16] = new GCStateOrFaultCode(GC_FAULT_VOLTAGE_SENSOR_ERROR, "Voltage sensor error"); |
jmitc91516 | 0:47c880c1463d | 305 | |
jmitc91516 | 1:a5258871b33d | 306 | faultCodeArray[17] = new GCStateOrFaultCode(GC_FAULT_COLUMN_OVER_TEMP_ERROR, "Column over temp error"); |
jmitc91516 | 1:a5258871b33d | 307 | faultCodeArray[18] = new GCStateOrFaultCode(GC_FAULT_INJECTOR_OVER_TEMP_ERROR, "Injector over temp error"); |
jmitc91516 | 1:a5258871b33d | 308 | faultCodeArray[19] = new GCStateOrFaultCode(GC_FAULT_DETECTOR_OVER_TEMP_ERROR, "Detector over temp error"); |
jmitc91516 | 1:a5258871b33d | 309 | |
jmitc91516 | 1:a5258871b33d | 310 | faultCodeArray[20] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_INJECTOR_COUPLING_OVER_TEMP_ERROR, "(Not used): Injector coupling over temp error"); |
jmitc91516 | 1:a5258871b33d | 311 | faultCodeArray[21] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_DETECTOR_COUPLING_OVER_TEMP_ERROR, "(Not used): Detector coupling over temp error"); |
jmitc91516 | 0:47c880c1463d | 312 | |
jmitc91516 | 1:a5258871b33d | 313 | faultCodeArray[22] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_22, "(Fault code 22, not used)"); |
jmitc91516 | 1:a5258871b33d | 314 | |
jmitc91516 | 1:a5258871b33d | 315 | faultCodeArray[23] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_COLUMN_NOT_INIT, "(Not used): Column not init"); |
jmitc91516 | 1:a5258871b33d | 316 | faultCodeArray[24] = new GCStateOrFaultCode(GC_FAULT_NOT_USED_COLUMN_INSERT_FAILED, "(Not used): Column insert failed"); |
jmitc91516 | 1:a5258871b33d | 317 | |
jmitc91516 | 1:a5258871b33d | 318 | faultCodeArray[25] = new GCStateOrFaultCode(GC_FAULT_I2C_NAK_ERROR, "I2C NAK error"); |
jmitc91516 | 0:47c880c1463d | 319 | |
jmitc91516 | 1:a5258871b33d | 320 | faultCodeArray[26] = new GCStateOrFaultCode(GC_FAULT_TWI_TIMEOUT_ERROR, "TWI timeout error"); |
jmitc91516 | 1:a5258871b33d | 321 | faultCodeArray[27] = new GCStateOrFaultCode(GC_FAULT_TWI_BUS_ERROR, "TWI bus error"); |
jmitc91516 | 1:a5258871b33d | 322 | faultCodeArray[28] = new GCStateOrFaultCode(GC_FAULT_TWI_SLAW_NACK, "TWI SLAW NACK"); |
jmitc91516 | 1:a5258871b33d | 323 | faultCodeArray[29] = new GCStateOrFaultCode(GC_FAULT_TWI_SLADATA_NACK, "TWI SLADATA NACK"); |
jmitc91516 | 1:a5258871b33d | 324 | faultCodeArray[30] = new GCStateOrFaultCode(GC_FAULT_TWI_SLAR_NACK, "TWI SLAR NACK"); |
jmitc91516 | 1:a5258871b33d | 325 | faultCodeArray[31] = new GCStateOrFaultCode(GC_FAULT_TWI_ARBITRATION_LOST, "TWI arbitration lost"); |
jmitc91516 | 1:a5258871b33d | 326 | faultCodeArray[32] = new GCStateOrFaultCode(GC_FAULT_TWI_UNKNOWN_ERROR, "TWI unknown error"); |
jmitc91516 | 0:47c880c1463d | 327 | |
jmitc91516 | 1:a5258871b33d | 328 | faultCodeArray[33] = new GCStateOrFaultCode(GC_FAULT_TWI2_TIMEOUT_ERROR, "TWI2 timeout error"); |
jmitc91516 | 1:a5258871b33d | 329 | faultCodeArray[34] = new GCStateOrFaultCode(GC_FAULT_TWI2_BUS_ERROR, "TWI2 bus error"); |
jmitc91516 | 1:a5258871b33d | 330 | faultCodeArray[35] = new GCStateOrFaultCode(GC_FAULT_TWI2_UNKNOWN_ERROR1, "TWI2 unknown error 1"); |
jmitc91516 | 1:a5258871b33d | 331 | faultCodeArray[36] = new GCStateOrFaultCode(GC_FAULT_TWI2_UNKNOWN_ERROR2, "TWI2 unknown error 2"); |
jmitc91516 | 1:a5258871b33d | 332 | #endif |
jmitc91516 | 0:47c880c1463d | 333 | } |
jmitc91516 | 0:47c880c1463d | 334 | |
jmitc91516 | 0:47c880c1463d | 335 | GCStateAndFaultCodes::~GCStateAndFaultCodes() |
jmitc91516 | 0:47c880c1463d | 336 | { |
jmitc91516 | 0:47c880c1463d | 337 | int i; |
jmitc91516 | 0:47c880c1463d | 338 | |
jmitc91516 | 0:47c880c1463d | 339 | for (i = 0; i < STATE_CODE_COUNT; ++i) { |
jmitc91516 | 0:47c880c1463d | 340 | delete stateCodeArray[i]; |
jmitc91516 | 0:47c880c1463d | 341 | } |
jmitc91516 | 0:47c880c1463d | 342 | |
jmitc91516 | 0:47c880c1463d | 343 | for (i = 0; i < FAULT_CODE_COUNT; ++i) { |
jmitc91516 | 0:47c880c1463d | 344 | delete faultCodeArray[i]; |
jmitc91516 | 0:47c880c1463d | 345 | } |
jmitc91516 | 0:47c880c1463d | 346 | } |
jmitc91516 | 0:47c880c1463d | 347 | |
jmitc91516 | 1:a5258871b33d | 348 | /* |
jmitc91516 | 1:a5258871b33d | 349 | Given an integer state code, returns the associated descriptive string. |
jmitc91516 | 1:a5258871b33d | 350 | |
jmitc91516 | 1:a5258871b33d | 351 | Args: state code |
jmitc91516 | 1:a5258871b33d | 352 | pointer to the buffer to contain the associated string (if found) |
jmitc91516 | 1:a5258871b33d | 353 | |
jmitc91516 | 1:a5258871b33d | 354 | Returns true if the state code is valid, false if not |
jmitc91516 | 1:a5258871b33d | 355 | */ |
jmitc91516 | 0:47c880c1463d | 356 | bool GCStateAndFaultCodes::GetStateCodeString(int stateCode, char *buff) |
jmitc91516 | 0:47c880c1463d | 357 | { |
jmitc91516 | 0:47c880c1463d | 358 | for (int i = 0; i < STATE_CODE_COUNT; ++i) { |
jmitc91516 | 0:47c880c1463d | 359 | if(stateCodeArray[i]->GetCodeNumber() == stateCode) { |
jmitc91516 | 0:47c880c1463d | 360 | stateCodeArray[i]->GetCodeString(buff); |
jmitc91516 | 0:47c880c1463d | 361 | return true; |
jmitc91516 | 0:47c880c1463d | 362 | } |
jmitc91516 | 0:47c880c1463d | 363 | } |
jmitc91516 | 0:47c880c1463d | 364 | |
jmitc91516 | 0:47c880c1463d | 365 | // 'else' - state code not found |
jmitc91516 | 0:47c880c1463d | 366 | buff[0] = '\0'; |
jmitc91516 | 0:47c880c1463d | 367 | return false; |
jmitc91516 | 0:47c880c1463d | 368 | } |
jmitc91516 | 0:47c880c1463d | 369 | |
jmitc91516 | 1:a5258871b33d | 370 | /* |
jmitc91516 | 2:6e94a7fd1e37 | 371 | Given a simplified state value, returns the associated descriptive string. |
jmitc91516 | 1:a5258871b33d | 372 | |
jmitc91516 | 2:6e94a7fd1e37 | 373 | Args: simplified state code |
jmitc91516 | 1:a5258871b33d | 374 | pointer to the buffer to contain the associated string (if found) |
jmitc91516 | 1:a5258871b33d | 375 | |
jmitc91516 | 1:a5258871b33d | 376 | Returns true if the state code is valid, false if not |
jmitc91516 | 1:a5258871b33d | 377 | */ |
jmitc91516 | 2:6e94a7fd1e37 | 378 | bool GCStateAndFaultCodes::GetSimplifiedStateCodeString(GCStateSimplified simplifiedStateCode, char *buff) |
jmitc91516 | 1:a5258871b33d | 379 | { |
jmitc91516 | 1:a5258871b33d | 380 | for (int i = 0; i < GC_STATE_SIMPLIFIED_COUNT; ++i) { |
jmitc91516 | 1:a5258871b33d | 381 | if(simplifiedStateCodeArray[i]->GetCodeNumber() == simplifiedStateCode) { |
jmitc91516 | 1:a5258871b33d | 382 | simplifiedStateCodeArray[i]->GetCodeString(buff); |
jmitc91516 | 1:a5258871b33d | 383 | return true; |
jmitc91516 | 1:a5258871b33d | 384 | } |
jmitc91516 | 1:a5258871b33d | 385 | } |
jmitc91516 | 1:a5258871b33d | 386 | |
jmitc91516 | 1:a5258871b33d | 387 | // 'else' - simplified state code not found |
jmitc91516 | 1:a5258871b33d | 388 | buff[0] = '\0'; |
jmitc91516 | 1:a5258871b33d | 389 | return false; |
jmitc91516 | 1:a5258871b33d | 390 | } |
jmitc91516 | 1:a5258871b33d | 391 | |
jmitc91516 | 1:a5258871b33d | 392 | |
jmitc91516 | 1:a5258871b33d | 393 | |
jmitc91516 | 1:a5258871b33d | 394 | /* |
jmitc91516 | 1:a5258871b33d | 395 | Given an integer fault code, returns the associated descriptive string. |
jmitc91516 | 1:a5258871b33d | 396 | |
jmitc91516 | 1:a5258871b33d | 397 | Args: state code |
jmitc91516 | 1:a5258871b33d | 398 | pointer to the buffer to contain the associated string (if found) |
jmitc91516 | 1:a5258871b33d | 399 | |
jmitc91516 | 1:a5258871b33d | 400 | Returns true if the fault code is valid, false if not |
jmitc91516 | 1:a5258871b33d | 401 | */ |
jmitc91516 | 0:47c880c1463d | 402 | bool GCStateAndFaultCodes::GetFaultCodeString(int faultCode, char *buff) |
jmitc91516 | 0:47c880c1463d | 403 | { |
jmitc91516 | 0:47c880c1463d | 404 | for (int i = 0; i < FAULT_CODE_COUNT; ++i) { |
jmitc91516 | 0:47c880c1463d | 405 | if(faultCodeArray[i]->GetCodeNumber() == faultCode) { |
jmitc91516 | 0:47c880c1463d | 406 | faultCodeArray[i]->GetCodeString(buff); |
jmitc91516 | 0:47c880c1463d | 407 | return true; |
jmitc91516 | 0:47c880c1463d | 408 | } |
jmitc91516 | 0:47c880c1463d | 409 | } |
jmitc91516 | 0:47c880c1463d | 410 | |
jmitc91516 | 0:47c880c1463d | 411 | // 'else' - fault code not found |
jmitc91516 | 0:47c880c1463d | 412 | buff[0] = '\0'; |
jmitc91516 | 0:47c880c1463d | 413 | return false; |
jmitc91516 | 0:47c880c1463d | 414 | } |
jmitc91516 | 0:47c880c1463d | 415 | |
jmitc91516 | 0:47c880c1463d | 416 | |
jmitc91516 | 0:47c880c1463d | 417 | |
jmitc91516 | 0:47c880c1463d | 418 |