Repository for import to local machine

Dependencies:   DMBasicGUI DMSupport

Committer:
jmitc91516
Date:
Wed Jan 13 13:17:05 2016 +0000
Revision:
0:47c880c1463d
Child:
1:a5258871b33d
First revision of 5 inch display version of GC500_2. Dated 13 Jan 2016

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 0:47c880c1463d 26
jmitc91516 0:47c880c1463d 27 GCStateAndFaultCodes::GCStateAndFaultCodes()
jmitc91516 0:47c880c1463d 28 {
jmitc91516 0:47c880c1463d 29 // The state and fault codes below are taken from the Nemesis 2 GC Control Protocol,
jmitc91516 0:47c880c1463d 30 // version 1.0, dated 01/10/15. Note that the fault codes include those marked 'not used'.
jmitc91516 0:47c880c1463d 31
jmitc91516 0:47c880c1463d 32
jmitc91516 0:47c880c1463d 33 // First - the state codes
jmitc91516 0:47c880c1463d 34
jmitc91516 0:47c880c1463d 35 stateCodeArray[0] = new GCStateOrFaultCode(0, "Idle");
jmitc91516 0:47c880c1463d 36 stateCodeArray[1] = new GCStateOrFaultCode(1, "Not Ready");
jmitc91516 0:47c880c1463d 37 stateCodeArray[2] = new GCStateOrFaultCode(2, "Equilibrating");
jmitc91516 0:47c880c1463d 38 stateCodeArray[3] = new GCStateOrFaultCode(4, "Running initial time");
jmitc91516 0:47c880c1463d 39
jmitc91516 0:47c880c1463d 40 stateCodeArray[4] = new GCStateOrFaultCode(5, "Ramping segment 1");
jmitc91516 0:47c880c1463d 41 stateCodeArray[5] = new GCStateOrFaultCode(6, "At upper temp segment 1");
jmitc91516 0:47c880c1463d 42 stateCodeArray[6] = new GCStateOrFaultCode(7, "Ramping segment 2");
jmitc91516 0:47c880c1463d 43 stateCodeArray[7] = new GCStateOrFaultCode(8, "At upper temp segment 2");
jmitc91516 0:47c880c1463d 44 stateCodeArray[8] = new GCStateOrFaultCode(9, "Ramping segment 3");
jmitc91516 0:47c880c1463d 45 stateCodeArray[9] = new GCStateOrFaultCode(10, "At upper temp segment 3");
jmitc91516 0:47c880c1463d 46 stateCodeArray[10] = new GCStateOrFaultCode(11, "Ramping segment 4");
jmitc91516 0:47c880c1463d 47 stateCodeArray[11] = new GCStateOrFaultCode(12, "At upper temp segment 4");
jmitc91516 0:47c880c1463d 48 stateCodeArray[12] = new GCStateOrFaultCode(13, "Ramping segment 5");
jmitc91516 0:47c880c1463d 49 stateCodeArray[13] = new GCStateOrFaultCode(14, "At upper temp segment 5");
jmitc91516 0:47c880c1463d 50
jmitc91516 0:47c880c1463d 51 stateCodeArray[14] = new GCStateOrFaultCode(15, "Holding");
jmitc91516 0:47c880c1463d 52 stateCodeArray[15] = new GCStateOrFaultCode(16, "Aborting");
jmitc91516 0:47c880c1463d 53 stateCodeArray[16] = new GCStateOrFaultCode(17, "Cooling");
jmitc91516 0:47c880c1463d 54
jmitc91516 0:47c880c1463d 55 stateCodeArray[17] = new GCStateOrFaultCode(31, "Ready to pre-run");
jmitc91516 0:47c880c1463d 56 stateCodeArray[18] = new GCStateOrFaultCode(32, "Pre-running");
jmitc91516 0:47c880c1463d 57 stateCodeArray[19] = new GCStateOrFaultCode(33, "Ready to run");
jmitc91516 0:47c880c1463d 58
jmitc91516 0:47c880c1463d 59 stateCodeArray[20] = new GCStateOrFaultCode(99, "Faulted");
jmitc91516 0:47c880c1463d 60
jmitc91516 0:47c880c1463d 61
jmitc91516 0:47c880c1463d 62 // Now the fault codes - these only apply if the state is 99, "Faulted"
jmitc91516 0:47c880c1463d 63
jmitc91516 0:47c880c1463d 64 faultCodeArray[0] = new GCStateOrFaultCode(0, "No error");
jmitc91516 0:47c880c1463d 65 faultCodeArray[1] = new GCStateOrFaultCode(1, "EEPROM failure");
jmitc91516 0:47c880c1463d 66 faultCodeArray[2] = new GCStateOrFaultCode(2, "Door open");
jmitc91516 0:47c880c1463d 67 faultCodeArray[3] = new GCStateOrFaultCode(3, "IRsensor open");
jmitc91516 0:47c880c1463d 68 faultCodeArray[4] = new GCStateOrFaultCode(4, "IRsensor short");
jmitc91516 0:47c880c1463d 69 faultCodeArray[5] = new GCStateOrFaultCode(5, "Injector PRT open");
jmitc91516 0:47c880c1463d 70 faultCodeArray[6] = new GCStateOrFaultCode(6, "Injector PRT short");
jmitc91516 0:47c880c1463d 71 faultCodeArray[7] = new GCStateOrFaultCode(7, "Detector PRT open");
jmitc91516 0:47c880c1463d 72 faultCodeArray[8] = new GCStateOrFaultCode(8, "Detector PRT short");
jmitc91516 0:47c880c1463d 73
jmitc91516 0:47c880c1463d 74 faultCodeArray[9] = new GCStateOrFaultCode(9, "(Not used): Injector coupling PRT open");
jmitc91516 0:47c880c1463d 75 faultCodeArray[10] = new GCStateOrFaultCode(10, "(Not used): Injector coupling PRT short");
jmitc91516 0:47c880c1463d 76 faultCodeArray[11] = new GCStateOrFaultCode(11, "(Not used): Detector coupling PRT open");
jmitc91516 0:47c880c1463d 77 faultCodeArray[12] = new GCStateOrFaultCode(12, "(Not used): Detector coupling PRT short");
jmitc91516 0:47c880c1463d 78
jmitc91516 0:47c880c1463d 79 faultCodeArray[13] = new GCStateOrFaultCode(13, "(Fault code 13, not used)");
jmitc91516 0:47c880c1463d 80 faultCodeArray[14] = new GCStateOrFaultCode(14, "(Fault code 14, not used)");
jmitc91516 0:47c880c1463d 81
jmitc91516 0:47c880c1463d 82 faultCodeArray[15] = new GCStateOrFaultCode(15, "Voltage ref error");
jmitc91516 0:47c880c1463d 83 faultCodeArray[16] = new GCStateOrFaultCode(16, "Voltage sensor error");
jmitc91516 0:47c880c1463d 84
jmitc91516 0:47c880c1463d 85 faultCodeArray[17] = new GCStateOrFaultCode(17, "Column over temp error");
jmitc91516 0:47c880c1463d 86 faultCodeArray[18] = new GCStateOrFaultCode(18, "Injector over temp error");
jmitc91516 0:47c880c1463d 87 faultCodeArray[19] = new GCStateOrFaultCode(19, "Detector over temp error");
jmitc91516 0:47c880c1463d 88
jmitc91516 0:47c880c1463d 89 faultCodeArray[20] = new GCStateOrFaultCode(20, "(Not used): Injector coupling over temp error");
jmitc91516 0:47c880c1463d 90 faultCodeArray[21] = new GCStateOrFaultCode(21, "(Not used): Detector coupling over temp error");
jmitc91516 0:47c880c1463d 91
jmitc91516 0:47c880c1463d 92 faultCodeArray[22] = new GCStateOrFaultCode(22, "(Fault code 22, not used)");
jmitc91516 0:47c880c1463d 93
jmitc91516 0:47c880c1463d 94 faultCodeArray[23] = new GCStateOrFaultCode(23, "(Not used): Column not init");
jmitc91516 0:47c880c1463d 95 faultCodeArray[24] = new GCStateOrFaultCode(24, "(Not used): Column insert failed");
jmitc91516 0:47c880c1463d 96
jmitc91516 0:47c880c1463d 97 faultCodeArray[25] = new GCStateOrFaultCode(25, "I2C NAK error");
jmitc91516 0:47c880c1463d 98
jmitc91516 0:47c880c1463d 99 faultCodeArray[26] = new GCStateOrFaultCode(26, "TWI timeout error");
jmitc91516 0:47c880c1463d 100 faultCodeArray[27] = new GCStateOrFaultCode(27, "TWI bus error");
jmitc91516 0:47c880c1463d 101 faultCodeArray[28] = new GCStateOrFaultCode(28, "TWI SLAW NACK");
jmitc91516 0:47c880c1463d 102 faultCodeArray[29] = new GCStateOrFaultCode(29, "TWI SLADATA NACK");
jmitc91516 0:47c880c1463d 103 faultCodeArray[30] = new GCStateOrFaultCode(30, "TWI SLAR NACK");
jmitc91516 0:47c880c1463d 104 faultCodeArray[31] = new GCStateOrFaultCode(31, "TWI arbitration lost");
jmitc91516 0:47c880c1463d 105 faultCodeArray[32] = new GCStateOrFaultCode(32, "TWI unknown error");
jmitc91516 0:47c880c1463d 106
jmitc91516 0:47c880c1463d 107 faultCodeArray[33] = new GCStateOrFaultCode(33, "TWI2 timeout error");
jmitc91516 0:47c880c1463d 108 faultCodeArray[34] = new GCStateOrFaultCode(34, "TWI2 bus error");
jmitc91516 0:47c880c1463d 109 faultCodeArray[35] = new GCStateOrFaultCode(35, "TWI2 unknown error 1");
jmitc91516 0:47c880c1463d 110 faultCodeArray[36] = new GCStateOrFaultCode(36, "TWI2 unknown error 2");
jmitc91516 0:47c880c1463d 111 }
jmitc91516 0:47c880c1463d 112
jmitc91516 0:47c880c1463d 113 GCStateAndFaultCodes::~GCStateAndFaultCodes()
jmitc91516 0:47c880c1463d 114 {
jmitc91516 0:47c880c1463d 115 int i;
jmitc91516 0:47c880c1463d 116
jmitc91516 0:47c880c1463d 117 for (i = 0; i < STATE_CODE_COUNT; ++i) {
jmitc91516 0:47c880c1463d 118 delete stateCodeArray[i];
jmitc91516 0:47c880c1463d 119 }
jmitc91516 0:47c880c1463d 120
jmitc91516 0:47c880c1463d 121 for (i = 0; i < FAULT_CODE_COUNT; ++i) {
jmitc91516 0:47c880c1463d 122 delete faultCodeArray[i];
jmitc91516 0:47c880c1463d 123 }
jmitc91516 0:47c880c1463d 124 }
jmitc91516 0:47c880c1463d 125
jmitc91516 0:47c880c1463d 126 bool GCStateAndFaultCodes::GetStateCodeString(int stateCode, char *buff)
jmitc91516 0:47c880c1463d 127 {
jmitc91516 0:47c880c1463d 128 for (int i = 0; i < STATE_CODE_COUNT; ++i) {
jmitc91516 0:47c880c1463d 129 if(stateCodeArray[i]->GetCodeNumber() == stateCode) {
jmitc91516 0:47c880c1463d 130 stateCodeArray[i]->GetCodeString(buff);
jmitc91516 0:47c880c1463d 131 return true;
jmitc91516 0:47c880c1463d 132 }
jmitc91516 0:47c880c1463d 133 }
jmitc91516 0:47c880c1463d 134
jmitc91516 0:47c880c1463d 135 // 'else' - state code not found
jmitc91516 0:47c880c1463d 136 buff[0] = '\0';
jmitc91516 0:47c880c1463d 137 return false;
jmitc91516 0:47c880c1463d 138 }
jmitc91516 0:47c880c1463d 139
jmitc91516 0:47c880c1463d 140 bool GCStateAndFaultCodes::GetFaultCodeString(int faultCode, char *buff)
jmitc91516 0:47c880c1463d 141 {
jmitc91516 0:47c880c1463d 142 for (int i = 0; i < FAULT_CODE_COUNT; ++i) {
jmitc91516 0:47c880c1463d 143 if(faultCodeArray[i]->GetCodeNumber() == faultCode) {
jmitc91516 0:47c880c1463d 144 faultCodeArray[i]->GetCodeString(buff);
jmitc91516 0:47c880c1463d 145 return true;
jmitc91516 0:47c880c1463d 146 }
jmitc91516 0:47c880c1463d 147 }
jmitc91516 0:47c880c1463d 148
jmitc91516 0:47c880c1463d 149 // 'else' - fault code not found
jmitc91516 0:47c880c1463d 150 buff[0] = '\0';
jmitc91516 0:47c880c1463d 151 return false;
jmitc91516 0:47c880c1463d 152 }
jmitc91516 0:47c880c1463d 153
jmitc91516 0:47c880c1463d 154
jmitc91516 0:47c880c1463d 155
jmitc91516 0:47c880c1463d 156