Repository for import to local machine

Dependencies:   DMBasicGUI DMSupport

Committer:
jmitc91516
Date:
Fri Jul 21 16:02:16 2017 +0000
Revision:
4:6840cf2b153a
Parent:
1:a5258871b33d
Child:
5:aceac1035d71
Backup before weekend

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jmitc91516 0:47c880c1463d 1 #include "TouchPanelPageSelector.h"
jmitc91516 0:47c880c1463d 2
jmitc91516 1:a5258871b33d 3 #include "EasyGUITouchAreaIndices.h"
jmitc91516 1:a5258871b33d 4 #include "ServiceInterval.h"
jmitc91516 1:a5258871b33d 5 #include "ColumnDHAutoCalibrationPageHandler.h"
jmitc91516 1:a5258871b33d 6 #include "DetectorIgnitionHandler.h"
jmitc91516 1:a5258871b33d 7
jmitc91516 1:a5258871b33d 8
jmitc91516 1:a5258871b33d 9 //#define FORCE_DIRECTLY_HEATED_COLUMN // For testing/debugging - pretend we have a directly heated column
jmitc91516 1:a5258871b33d 10 // (regardless of what we actually have)
jmitc91516 1:a5258871b33d 11
jmitc91516 1:a5258871b33d 12 #define USE_DH_COLUMN_AUTO_CALIBRATION_PAGE // Otherwise (i.e. if commented out) use manual calibration page
jmitc91516 1:a5258871b33d 13
jmitc91516 1:a5258871b33d 14 /*
jmitc91516 1:a5258871b33d 15 TouchPanelPageSelector class
jmitc91516 1:a5258871b33d 16 */
jmitc91516 1:a5258871b33d 17
jmitc91516 1:a5258871b33d 18 /*
jmitc91516 1:a5258871b33d 19 static members
jmitc91516 1:a5258871b33d 20 */
jmitc91516 1:a5258871b33d 21 bool TouchPanelPageSelector::pageChangeEnabled = true;
jmitc91516 1:a5258871b33d 22
jmitc91516 1:a5258871b33d 23
jmitc91516 0:47c880c1463d 24 // The default constructor exists purely to satisfy the compiler - it is not intended to be used
jmitc91516 0:47c880c1463d 25 TouchPanelPageSelector::TouchPanelPageSelector()
jmitc91516 0:47c880c1463d 26 {
jmitc91516 0:47c880c1463d 27 panelIndex = -1;
jmitc91516 0:47c880c1463d 28
jmitc91516 0:47c880c1463d 29 pageNumber = -1;
jmitc91516 0:47c880c1463d 30 }
jmitc91516 0:47c880c1463d 31
jmitc91516 0:47c880c1463d 32 TouchPanelPageSelector::TouchPanelPageSelector(int index, int page)
jmitc91516 0:47c880c1463d 33 {
jmitc91516 0:47c880c1463d 34 panelIndex = index;
jmitc91516 0:47c880c1463d 35
jmitc91516 0:47c880c1463d 36 pageNumber = page;
jmitc91516 0:47c880c1463d 37 }
jmitc91516 0:47c880c1463d 38
jmitc91516 1:a5258871b33d 39
jmitc91516 1:a5258871b33d 40 /*
jmitc91516 1:a5258871b33d 41 TouchPanelDetectorPageSelector class
jmitc91516 1:a5258871b33d 42 */
jmitc91516 1:a5258871b33d 43
jmitc91516 1:a5258871b33d 44 // The default constructor exists purely to satisfy the compiler - it is not intended to be used
jmitc91516 1:a5258871b33d 45 TouchPanelDetectorPageSelector::TouchPanelDetectorPageSelector() : TouchPanelPageSelector()
jmitc91516 1:a5258871b33d 46 {
jmitc91516 1:a5258871b33d 47 }
jmitc91516 1:a5258871b33d 48
jmitc91516 1:a5258871b33d 49 // We do not use the base class' page number in this class - we calculate it 'on the fly' - see below
jmitc91516 1:a5258871b33d 50 TouchPanelDetectorPageSelector::TouchPanelDetectorPageSelector(int index) : TouchPanelPageSelector(index, -1)
jmitc91516 1:a5258871b33d 51 {
jmitc91516 1:a5258871b33d 52 }
jmitc91516 1:a5258871b33d 53
jmitc91516 1:a5258871b33d 54 /*
jmitc91516 1:a5258871b33d 55 For the detector, the page number varies according to the detector type.
jmitc91516 1:a5258871b33d 56 This function calculates the correct page number, and returns it.
jmitc91516 1:a5258871b33d 57
jmitc91516 1:a5258871b33d 58 Params: USBDeviceConnected and USBHostGC corresponding to the GC
jmitc91516 1:a5258871b33d 59 */
jmitc91516 1:a5258871b33d 60 int TouchPanelDetectorPageSelector::GetPageNumber(USBDeviceConnected* usbDevice, USBHostGC* usbHostGC)
jmitc91516 1:a5258871b33d 61 {
jmitc91516 1:a5258871b33d 62 switch(GetDetectorType(usbDevice, usbHostGC)) {
jmitc91516 1:a5258871b33d 63 case FID_DETECTOR:
jmitc91516 1:a5258871b33d 64 return GuiStruct_DetectorFIDPage_4;
jmitc91516 1:a5258871b33d 65 case TCD_DETECTOR:
jmitc91516 1:a5258871b33d 66 return GuiStruct_DetectorTCDPage_11;
jmitc91516 1:a5258871b33d 67 case ECD_DETECTOR:
jmitc91516 1:a5258871b33d 68 return GuiStruct_DetectorECDPage_12;
jmitc91516 1:a5258871b33d 69 case TXL_DETECTOR:
jmitc91516 1:a5258871b33d 70 return GuiStruct_DetectorTXLPage_27;
jmitc91516 1:a5258871b33d 71 // case 4 is "None" - leave for default
jmitc91516 1:a5258871b33d 72 case NPD_DETECTOR:
jmitc91516 1:a5258871b33d 73 return GuiStruct_DetectorNPDPage_28;
jmitc91516 1:a5258871b33d 74 case PID_DETECTOR:
jmitc91516 1:a5258871b33d 75 return GuiStruct_DetectorPIDPage_29;
jmitc91516 1:a5258871b33d 76 case FPD_DETECTOR:
jmitc91516 1:a5258871b33d 77 return GuiStruct_DetectorFPDPage_14;
jmitc91516 1:a5258871b33d 78 case SPDID_DETECTOR:
jmitc91516 1:a5258871b33d 79 return GuiStruct_DetectorSPDIDPage_30;
jmitc91516 1:a5258871b33d 80 default: // i.e. all other types (including "None")
jmitc91516 1:a5258871b33d 81 break; // Return default (see below)
jmitc91516 1:a5258871b33d 82 }
jmitc91516 1:a5258871b33d 83
jmitc91516 1:a5258871b33d 84 // Default return code
jmitc91516 1:a5258871b33d 85 return GuiStruct_DetectorNonePage_31;
jmitc91516 1:a5258871b33d 86 }
jmitc91516 1:a5258871b33d 87
jmitc91516 1:a5258871b33d 88 /*
jmitc91516 1:a5258871b33d 89 Gets the detector type from the GC, and returns it as a DetectorType enumeration.
jmitc91516 1:a5258871b33d 90
jmitc91516 1:a5258871b33d 91 Params: USBDeviceConnected and USBHostGC corresponding to the GC
jmitc91516 1:a5258871b33d 92 */
jmitc91516 1:a5258871b33d 93 DetectorType TouchPanelDetectorPageSelector::GetDetectorType(USBDeviceConnected* usbDevice, USBHostGC* usbHostGC)
jmitc91516 1:a5258871b33d 94 {
jmitc91516 1:a5258871b33d 95 char response[50];
jmitc91516 1:a5258871b33d 96 while(usbHostGC->ExecutingSetDeviceReport()) {}
jmitc91516 1:a5258871b33d 97
jmitc91516 1:a5258871b33d 98 usbHostGC->SetDeviceReport(usbDevice, "GDTY", response);
jmitc91516 1:a5258871b33d 99
jmitc91516 1:a5258871b33d 100 // We expect a response like this: "DDTY0000" for FID, "DDTY0001" for TCD,
jmitc91516 1:a5258871b33d 101 // "DDTY0002" for ECD, "DDTY0003" for TXL, "DDTY0004" for "None", "DDTY0005" for NPD,
jmitc91516 1:a5258871b33d 102 // "DDTY0006" for PID, "DDTY0007" for FPD, "DDTY0008" for SPDID.
jmitc91516 1:a5258871b33d 103 // We assume any other "DDTY00nn" value means "None".
jmitc91516 1:a5258871b33d 104
jmitc91516 1:a5258871b33d 105 // We convert the final two digits to an integer
jmitc91516 1:a5258871b33d 106 int type;
jmitc91516 1:a5258871b33d 107 sscanf(&response[6], "%d", &type);
jmitc91516 1:a5258871b33d 108
jmitc91516 1:a5258871b33d 109 // Now we convert the integer value to a DetectorType
jmitc91516 1:a5258871b33d 110 DetectorType detectorType;
jmitc91516 1:a5258871b33d 111 if((type < MIN_DETECTOR_TYPE) || (type > MAX_DETECTOR_TYPE)) {
jmitc91516 1:a5258871b33d 112 detectorType = NO_DETECTOR;
jmitc91516 1:a5258871b33d 113 } else {
jmitc91516 1:a5258871b33d 114 detectorType = (DetectorType) type;
jmitc91516 1:a5258871b33d 115 }
jmitc91516 1:a5258871b33d 116
jmitc91516 1:a5258871b33d 117 return detectorType;
jmitc91516 1:a5258871b33d 118 }
jmitc91516 1:a5258871b33d 119
jmitc91516 1:a5258871b33d 120
jmitc91516 1:a5258871b33d 121 /*
jmitc91516 1:a5258871b33d 122 TouchPanelColumnPageSelector class
jmitc91516 1:a5258871b33d 123 */
jmitc91516 1:a5258871b33d 124
jmitc91516 1:a5258871b33d 125 // The default constructor exists purely to satisfy the compiler - it is not intended to be used
jmitc91516 1:a5258871b33d 126 TouchPanelColumnPageSelector::TouchPanelColumnPageSelector() : TouchPanelPageSelector()
jmitc91516 1:a5258871b33d 127 {
jmitc91516 1:a5258871b33d 128 }
jmitc91516 1:a5258871b33d 129
jmitc91516 1:a5258871b33d 130 // We do not use the base class' page number in this class - we calculate it 'on the fly' - see below
jmitc91516 1:a5258871b33d 131 TouchPanelColumnPageSelector::TouchPanelColumnPageSelector(int index) : TouchPanelPageSelector(index, -1)
jmitc91516 1:a5258871b33d 132 {
jmitc91516 1:a5258871b33d 133 }
jmitc91516 1:a5258871b33d 134
jmitc91516 1:a5258871b33d 135 /*
jmitc91516 1:a5258871b33d 136 For the column, the page number varies according to the column type.
jmitc91516 1:a5258871b33d 137 This function calculates the correct page number, and returns it.
jmitc91516 1:a5258871b33d 138
jmitc91516 1:a5258871b33d 139 Note that we are assuming that the caller only wants to display column page 1, not page 2, etc -
jmitc91516 1:a5258871b33d 140 this works since page 1 (conventional or DH) is the only column page accessible
jmitc91516 1:a5258871b33d 141 from the home page - all the others are accessed using the left and right arrows
jmitc91516 1:a5258871b33d 142 on each of the column pages.
jmitc91516 1:a5258871b33d 143
jmitc91516 1:a5258871b33d 144 Params: USBDeviceConnected and USBHostGC corresponding to the GC
jmitc91516 1:a5258871b33d 145 */
jmitc91516 1:a5258871b33d 146 int TouchPanelColumnPageSelector::GetPageNumber(USBDeviceConnected* usbDevice, USBHostGC* usbHostGC)
jmitc91516 1:a5258871b33d 147 {
jmitc91516 1:a5258871b33d 148 if(GetColumnType(usbDevice, usbHostGC) == DIRECTLY_HEATED_COLUMN) {
jmitc91516 1:a5258871b33d 149 return GuiStruct_ColumnDHPage1_40;
jmitc91516 1:a5258871b33d 150 }
jmitc91516 1:a5258871b33d 151
jmitc91516 1:a5258871b33d 152 // 'else'...
jmitc91516 4:6840cf2b153a 153 //return GuiStruct_ColumnPage1_2;
jmitc91516 4:6840cf2b153a 154 // Restructuring Column pages - start with page 2, not page 1
jmitc91516 4:6840cf2b153a 155 return GuiStruct_ColumnPage2_9;
jmitc91516 1:a5258871b33d 156 }
jmitc91516 1:a5258871b33d 157
jmitc91516 1:a5258871b33d 158 /*
jmitc91516 1:a5258871b33d 159 Gets the column type from the GC, and returns it as a ColumnType enumeration.
jmitc91516 1:a5258871b33d 160
jmitc91516 1:a5258871b33d 161 Params: USBDeviceConnected and USBHostGC corresponding to the GC
jmitc91516 1:a5258871b33d 162 */
jmitc91516 1:a5258871b33d 163 ColumnType TouchPanelColumnPageSelector::GetColumnType(USBDeviceConnected* usbDevice, USBHostGC* usbHostGC)
jmitc91516 1:a5258871b33d 164 {
jmitc91516 1:a5258871b33d 165 #ifdef FORCE_DIRECTLY_HEATED_COLUMN
jmitc91516 1:a5258871b33d 166 return DIRECTLY_HEATED_COLUMN;
jmitc91516 1:a5258871b33d 167 #else
jmitc91516 1:a5258871b33d 168 char response[50];
jmitc91516 1:a5258871b33d 169 while(usbHostGC->ExecutingSetDeviceReport()) {}
jmitc91516 1:a5258871b33d 170
jmitc91516 1:a5258871b33d 171 usbHostGC->SetDeviceReport(usbDevice, "GCTY", response);
jmitc91516 1:a5258871b33d 172
jmitc91516 1:a5258871b33d 173 // We expect a response like this: "DCTY0000" for None, "DCTY0001" for Conventional,
jmitc91516 1:a5258871b33d 174 // "DCTY0002" for Directly Heated
jmitc91516 1:a5258871b33d 175
jmitc91516 1:a5258871b33d 176 // Convert the final two digits to an integer
jmitc91516 1:a5258871b33d 177 int type;
jmitc91516 1:a5258871b33d 178 sscanf(&response[6], "%d", &type);
jmitc91516 1:a5258871b33d 179
jmitc91516 1:a5258871b33d 180 // Now we convert the integer value to a ColumnType
jmitc91516 1:a5258871b33d 181 ColumnType columnType;
jmitc91516 1:a5258871b33d 182 if((type < MIN_COLUMN_TYPE) || (type > MAX_COLUMN_TYPE)) {
jmitc91516 1:a5258871b33d 183 columnType = NO_COLUMN;
jmitc91516 1:a5258871b33d 184 } else {
jmitc91516 1:a5258871b33d 185 columnType = (ColumnType) type;
jmitc91516 1:a5258871b33d 186 }
jmitc91516 1:a5258871b33d 187
jmitc91516 1:a5258871b33d 188 return columnType;
jmitc91516 1:a5258871b33d 189 #endif
jmitc91516 1:a5258871b33d 190 }
jmitc91516 1:a5258871b33d 191
jmitc91516 1:a5258871b33d 192
jmitc91516 1:a5258871b33d 193 /*
jmitc91516 1:a5258871b33d 194 TouchPanelAbortRunPageSelector class
jmitc91516 1:a5258871b33d 195 */
jmitc91516 1:a5258871b33d 196
jmitc91516 1:a5258871b33d 197 // The default constructor exists purely to satisfy the compiler - it is not intended to be used
jmitc91516 1:a5258871b33d 198 TouchPanelAbortRunPageSelector::TouchPanelAbortRunPageSelector() : TouchPanelPageSelector()
jmitc91516 1:a5258871b33d 199 {
jmitc91516 1:a5258871b33d 200 }
jmitc91516 1:a5258871b33d 201
jmitc91516 1:a5258871b33d 202 // We do not use the base class' page number in this class - we calculate it 'on the fly' - see below
jmitc91516 1:a5258871b33d 203 TouchPanelAbortRunPageSelector::TouchPanelAbortRunPageSelector(int index) : TouchPanelPageSelector(index, -1)
jmitc91516 1:a5258871b33d 204 {
jmitc91516 1:a5258871b33d 205 }
jmitc91516 1:a5258871b33d 206
jmitc91516 1:a5258871b33d 207 /*
jmitc91516 1:a5258871b33d 208 When the user aborts the run, we will normally display the Home page. But if any components
jmitc91516 1:a5258871b33d 209 now require servicing (since even an aborted run counts as one 'cycle', and some components
jmitc91516 1:a5258871b33d 210 require servicing after a particular number of cycles), we want to display
jmitc91516 1:a5258871b33d 211 the 'Servicing Required' page instead. This function decides which page to display,
jmitc91516 1:a5258871b33d 212 and returns its number.
jmitc91516 1:a5258871b33d 213
jmitc91516 1:a5258871b33d 214 Params: USBDeviceConnected and USBHostGC corresponding to the GC
jmitc91516 1:a5258871b33d 215 (these are not used in this class)
jmitc91516 1:a5258871b33d 216 */
jmitc91516 1:a5258871b33d 217 int TouchPanelAbortRunPageSelector::GetPageNumber(USBDeviceConnected* usbDevice, USBHostGC* usbHostGC)
jmitc91516 1:a5258871b33d 218 {
jmitc91516 1:a5258871b33d 219 if(ServiceInterval::AtLeastOneServiceIntervalHasExpired()) {
jmitc91516 1:a5258871b33d 220 return GuiStruct_ServicingRequired_Def;
jmitc91516 1:a5258871b33d 221 }
jmitc91516 1:a5258871b33d 222
jmitc91516 1:a5258871b33d 223 // 'else'...
jmitc91516 1:a5258871b33d 224 return GuiStruct_HomePage_1;
jmitc91516 1:a5258871b33d 225 }
jmitc91516 1:a5258871b33d 226
jmitc91516 1:a5258871b33d 227
jmitc91516 1:a5258871b33d 228
jmitc91516 1:a5258871b33d 229
jmitc91516 1:a5258871b33d 230
jmitc91516 1:a5258871b33d 231
jmitc91516 1:a5258871b33d 232 /*
jmitc91516 1:a5258871b33d 233 TouchPanelReturnPageSelector class
jmitc91516 1:a5258871b33d 234 */
jmitc91516 1:a5258871b33d 235
jmitc91516 1:a5258871b33d 236 // The default constructor exists purely to satisfy the compiler - it is not intended to be used
jmitc91516 1:a5258871b33d 237 TouchPanelReturnPageSelector::TouchPanelReturnPageSelector() : TouchPanelPageSelector()
jmitc91516 1:a5258871b33d 238 {
jmitc91516 1:a5258871b33d 239 thisIsTheReturnInstance = false;
jmitc91516 1:a5258871b33d 240 }
jmitc91516 1:a5258871b33d 241
jmitc91516 1:a5258871b33d 242 /*
jmitc91516 1:a5258871b33d 243 In this constructor, 'index' is the number of the easyGUI touch area to which this instance corresponds, 'pageToDisplayNow' is the easyGUI page("structure") number to which this instance corresponds,
jmitc91516 1:a5258871b33d 244 and 'thisWillBeTheReturnInstance' is a boolean that, if false, says that this instance's 'GetPageNumber' function records 'pageToReturnTo' as the page to be returned to,
jmitc91516 1:a5258871b33d 245 then tells the caller 'go to pageToDisplayNow' - or, if true, says that this instance's 'GetPageNumber' function returns the number of the page to be returned to.
jmitc91516 1:a5258871b33d 246 */
jmitc91516 1:a5258871b33d 247 TouchPanelReturnPageSelector::TouchPanelReturnPageSelector(int index, int pageToReturnTo, int pageToDisplayNow, bool thisWillBeTheReturnInstance) : TouchPanelPageSelector(index, pageToDisplayNow)
jmitc91516 1:a5258871b33d 248 {
jmitc91516 1:a5258871b33d 249 thisReturnPage = pageToReturnTo;
jmitc91516 1:a5258871b33d 250
jmitc91516 1:a5258871b33d 251 thisIsTheReturnInstance = thisWillBeTheReturnInstance;
jmitc91516 1:a5258871b33d 252 }
jmitc91516 1:a5258871b33d 253
jmitc91516 1:a5258871b33d 254 int TouchPanelReturnPageSelector::GetPageNumber(USBDeviceConnected* usbDevice, USBHostGC* usbHostGC)
jmitc91516 1:a5258871b33d 255 {
jmitc91516 1:a5258871b33d 256 if(thisIsTheReturnInstance) {
jmitc91516 1:a5258871b33d 257 if(theReturnPage == -1) {
jmitc91516 1:a5258871b33d 258 // Return page not yet set - as a default, return the page number we were given when we were constructed
jmitc91516 1:a5258871b33d 259 return thisReturnPage;
jmitc91516 1:a5258871b33d 260 }
jmitc91516 1:a5258871b33d 261 // 'else' we have a return page number
jmitc91516 1:a5258871b33d 262 return theReturnPage;
jmitc91516 1:a5258871b33d 263 }
jmitc91516 1:a5258871b33d 264
jmitc91516 1:a5258871b33d 265 // 'else' this is a 'calling' instance - record our return page
jmitc91516 1:a5258871b33d 266 // as the one to return to, then return (to the caller) the page to display now
jmitc91516 1:a5258871b33d 267
jmitc91516 1:a5258871b33d 268 theReturnPage = thisReturnPage;
jmitc91516 1:a5258871b33d 269
jmitc91516 1:a5258871b33d 270 return GetBasePageNumber();
jmitc91516 1:a5258871b33d 271 }
jmitc91516 1:a5258871b33d 272
jmitc91516 1:a5258871b33d 273 // Static variable - all instances of TouchPanelReturnPageSelector share the same return page.
jmitc91516 1:a5258871b33d 274 // (Note that this is only one variable, not a stack - if we want 'overlapping' return pages
jmitc91516 1:a5258871b33d 275 // at some point, this will have to be changed.)
jmitc91516 1:a5258871b33d 276 int TouchPanelReturnPageSelector::theReturnPage = -1;
jmitc91516 1:a5258871b33d 277
jmitc91516 1:a5258871b33d 278
jmitc91516 1:a5258871b33d 279 /*
jmitc91516 1:a5258871b33d 280 TouchPanelPageSelectors class
jmitc91516 1:a5258871b33d 281 */
jmitc91516 1:a5258871b33d 282
jmitc91516 1:a5258871b33d 283 // TouchPanelPageSelectors constructor - set up the array of page selectors
jmitc91516 0:47c880c1463d 284 TouchPanelPageSelectors::TouchPanelPageSelectors()
jmitc91516 0:47c880c1463d 285 {
jmitc91516 0:47c880c1463d 286 // Note that the touch area indexes, etc, below
jmitc91516 0:47c880c1463d 287 // are hardcoded to match those set up in easyGUI.
jmitc91516 1:a5258871b33d 288 // There seems to be no way to get these values from easyGUI at runtime.
jmitc91516 1:a5258871b33d 289 // See EasyGUITouchAreaIndices.h for the actual numerical values.
jmitc91516 1:a5258871b33d 290
jmitc91516 1:a5258871b33d 291 // Note also that we have two touch areas each for the Column, Injector,
jmitc91516 1:a5258871b33d 292 // Detector and Gas (which overlap in each case - see the easyGUI project).
jmitc91516 1:a5258871b33d 293 // This is so that we can (nearly) fill the relevant rectangle on the Home Page
jmitc91516 1:a5258871b33d 294 // with touch areas, without overlapping the Run button at the centre.
jmitc91516 1:a5258871b33d 295
jmitc91516 1:a5258871b33d 296 // The TouchCallback function (main.cpp) is the main user of this. As well as getting, from this class,
jmitc91516 1:a5258871b33d 297 // the page to be displayed in response to the user touching a particular touch area, it also performs
jmitc91516 1:a5258871b33d 298 // any other actions (e.g. telling the GC to abort the run, etc) that may be required before we can display the new page.
jmitc91516 1:a5258871b33d 299
jmitc91516 1:a5258871b33d 300 // Another note - there are multiple Abort Run pages, which are all identical apart from the touch index of the No button (this is of course invisible to the user).
jmitc91516 1:a5258871b33d 301 // Each one is invoked from the Abort Run button on a different 'Running xxx' page, where 'xxx' is one of the components (Column, Injector, etc).
jmitc91516 1:a5258871b33d 302 // This is so that we know which page to return to if the user presses 'No' - the index of the 'No' button tells us which Abort Run page the user is on,
jmitc91516 1:a5258871b33d 303 // therefore which page he pressed the 'Abort Run' button on - and that is the page we need to return to. Otherwise (i.e. if we had a single Abort Run page),
jmitc91516 1:a5258871b33d 304 // the code here would be much more complicated.
jmitc91516 1:a5258871b33d 305
jmitc91516 1:a5258871b33d 306 // And another... The Column and Detector pages are different for the different column/detector types. This is why, for these pages, we use
jmitc91516 1:a5258871b33d 307 // the TouchPanelColumnPageSelector and TouchPanelDetectorPageSelector classes, derived from TouchPanelPageSelector,
jmitc91516 1:a5258871b33d 308 // which find out the column/detector type at runtime, and return the corresponding page numbers.
jmitc91516 1:a5258871b33d 309
jmitc91516 1:a5258871b33d 310 tppsArray[0] = new TouchPanelPageSelector(HOME_BUTTON, GuiStruct_HomePage_1);
jmitc91516 1:a5258871b33d 311 tppsArray[1] = new TouchPanelPageSelector(SETTINGS_BUTTON, GuiStruct_SettingsPage_5);
jmitc91516 1:a5258871b33d 312 // tppsArray[2] = new TouchPanelPageSelector(3, GuiStruct_ColumnPage1_2);
jmitc91516 1:a5258871b33d 313 tppsArray[2] = new TouchPanelColumnPageSelector(COLUMN_TOUCH_AREA_1);
jmitc91516 1:a5258871b33d 314 tppsArray[3] = new TouchPanelPageSelector(INJECTOR_TOUCH_AREA_1, GuiStruct_InjectorPage1_3);
jmitc91516 1:a5258871b33d 315 // tppsArray[4] = new TouchPanelPageSelector(5, GuiStruct_DefaultDetectorPage1_4);
jmitc91516 1:a5258871b33d 316 tppsArray[4] = new TouchPanelDetectorPageSelector(DETECTOR_TOUCH_AREA_1);
jmitc91516 1:a5258871b33d 317 tppsArray[5] = new TouchPanelPageSelector(GAS_TOUCH_AREA_1, GuiStruct_GasInformationPage_6);
jmitc91516 1:a5258871b33d 318 // tppsArray[6] = new TouchPanelPageSelector(7, GuiStruct_ColumnPage1_2);
jmitc91516 1:a5258871b33d 319 tppsArray[6] = new TouchPanelColumnPageSelector(COLUMN_TOUCH_AREA_2); // Second (overlapping) 'Column' touch area on Home page
jmitc91516 1:a5258871b33d 320 tppsArray[7] = new TouchPanelPageSelector(INJECTOR_TOUCH_AREA_2, GuiStruct_InjectorPage1_3); // Second (overlapping) 'Injector' touch area on Home page
jmitc91516 1:a5258871b33d 321 // tppsArray[8] = new TouchPanelPageSelector(9, GuiStruct_DefaultDetectorPage1_4);
jmitc91516 1:a5258871b33d 322 tppsArray[8] = new TouchPanelDetectorPageSelector(DETECTOR_TOUCH_AREA_2); // Second (overlapping) 'Detector' touch area on Home page
jmitc91516 1:a5258871b33d 323 tppsArray[9] = new TouchPanelPageSelector(GAS_TOUCH_AREA_2, GuiStruct_GasInformationPage_6); // Second (overlapping) 'Gas' touch area on Home page
jmitc91516 1:a5258871b33d 324
jmitc91516 1:a5258871b33d 325 tppsArray[10] = new TouchPanelReturnPageSelector(RUNNING_PAGE1_ABORT_RUN, GuiStruct_RunningPage1_7, GuiStruct_AbortRunPage_19, false);
jmitc91516 1:a5258871b33d 326 tppsArray[11] = new TouchPanelReturnPageSelector(RUNNING_COLUMN_ABORT_RUN, GuiStruct_RunningColumnPage_25, GuiStruct_AbortRunPage_19, false);
jmitc91516 1:a5258871b33d 327 tppsArray[12] = new TouchPanelReturnPageSelector(RUNNING_INJECTOR_ABORT_RUN, GuiStruct_RunningInjectorPage_26, GuiStruct_AbortRunPage_19, false);
jmitc91516 1:a5258871b33d 328 tppsArray[13] = new TouchPanelReturnPageSelector(RUNNING_DETECTOR_ABORT_RUN, GuiStruct_RunningDetectorPage_27, GuiStruct_AbortRunPage_19, false);
jmitc91516 1:a5258871b33d 329 tppsArray[14] = new TouchPanelReturnPageSelector(RUNNING_GAS_ABORT_RUN, GuiStruct_RunningGasPage_28, GuiStruct_AbortRunPage_19, false);
jmitc91516 1:a5258871b33d 330 tppsArray[15] = new TouchPanelReturnPageSelector(RUNNING_INJECTOR_PROFILE_ABORT_RUN, GuiStruct_RunningInjectorProfilePage_Def, GuiStruct_AbortRunPage_19, false);
jmitc91516 1:a5258871b33d 331 tppsArray[16] = new TouchPanelAbortRunPageSelector(ABORT_RUN_YES);
jmitc91516 1:a5258871b33d 332 tppsArray[17] = new TouchPanelReturnPageSelector(ABORT_RUN_NO, GuiStruct_AbortRunPage_19, GuiStruct_RunningPage1_7, true);
jmitc91516 1:a5258871b33d 333
jmitc91516 1:a5258871b33d 334 tppsArray[18] = new TouchPanelPageSelector(GAS_INFO_LEFT_ARROW, GuiStruct_GasProfilePage_15);
jmitc91516 1:a5258871b33d 335 tppsArray[19] = new TouchPanelPageSelector(GAS_INFO_RIGHT_ARROW, GuiStruct_GasProfilePage_15);
jmitc91516 1:a5258871b33d 336 tppsArray[20] = new TouchPanelPageSelector(GAS_PROFILE_LEFT_ARROW, GuiStruct_GasInformationPage_6);
jmitc91516 1:a5258871b33d 337 tppsArray[21] = new TouchPanelPageSelector(GAS_PROFILE_RIGHT_ARROW, GuiStruct_GasInformationPage_6);
jmitc91516 1:a5258871b33d 338
jmitc91516 1:a5258871b33d 339 tppsArray[22] = new TouchPanelPageSelector(GAS_SAVER_RETURN_TO_READY, GuiStruct_HomePage_1); // 'Return to ready state' touch area on Gas Saver page (covers entire page)
jmitc91516 1:a5258871b33d 340
jmitc91516 1:a5258871b33d 341 // Pages for conventional (not directly heated) column
jmitc91516 4:6840cf2b153a 342 tppsArray[23] = new TouchPanelPageSelector(COLUMN_PAGE2_LEFT_ARROW, GuiStruct_ColumnTempProfilePage_60);
jmitc91516 4:6840cf2b153a 343 tppsArray[24] = new TouchPanelPageSelector(COLUMN_PAGE2_RIGHT_ARROW, GuiStruct_ColumnTempProfilePage_60);
jmitc91516 4:6840cf2b153a 344 tppsArray[25] = new TouchPanelPageSelector(COLUMN_PROFILE_LEFT_ARROW, GuiStruct_ColumnPage2_9);
jmitc91516 4:6840cf2b153a 345 tppsArray[26] = new TouchPanelPageSelector(COLUMN_PROFILE_RIGHT_ARROW, GuiStruct_ColumnPage2_9);
jmitc91516 0:47c880c1463d 346
jmitc91516 1:a5258871b33d 347 // Pages for directly heated column
jmitc91516 4:6840cf2b153a 348 tppsArray[27] = new TouchPanelPageSelector(COLUMN_DH_PAGE1_LEFT_ARROW, GuiStruct_ColumnDHTempProfilePage_61);
jmitc91516 4:6840cf2b153a 349 tppsArray[28] = new TouchPanelPageSelector(COLUMN_DH_PAGE1_RIGHT_ARROW, GuiStruct_ColumnDHPage2_50);
jmitc91516 4:6840cf2b153a 350 tppsArray[29] = new TouchPanelPageSelector(COLUMN_DH_PAGE2_LEFT_ARROW, GuiStruct_ColumnDHPage1_40);
jmitc91516 4:6840cf2b153a 351 tppsArray[30] = new TouchPanelPageSelector(COLUMN_DH_PAGE2_RIGHT_ARROW, GuiStruct_ColumnDHTempProfilePage_61);
jmitc91516 4:6840cf2b153a 352 tppsArray[31] = new TouchPanelPageSelector(COLUMN_DH_PROFILE_LEFT_ARROW, GuiStruct_ColumnDHPage2_50);
jmitc91516 4:6840cf2b153a 353 tppsArray[32] = new TouchPanelPageSelector(COLUMN_DH_PROFILE_RIGHT_ARROW, GuiStruct_ColumnDHPage1_40);
jmitc91516 1:a5258871b33d 354
jmitc91516 4:6840cf2b153a 355 tppsArray[33] = new TouchPanelPageSelector(CLEAR_ERRORS_BUTTON, GuiStruct_HomePage_1); // 'Clear Errors' button on 'GC in fault state' page
jmitc91516 1:a5258871b33d 356
jmitc91516 4:6840cf2b153a 357 tppsArray[34] = new TouchPanelPageSelector(INJECTOR_PAGE1_LEFT_ARROW, GuiStruct_InjectorConsumablesPage_20);
jmitc91516 4:6840cf2b153a 358 tppsArray[35] = new TouchPanelPageSelector(INJECTOR_PAGE1_RIGHT_ARROW, GuiStruct_InjectorTempProfilePage_25);
jmitc91516 4:6840cf2b153a 359 tppsArray[36] = new TouchPanelPageSelector(INJECTOR_PROFILE_LEFT_ARROW, GuiStruct_InjectorPage1_3);
jmitc91516 4:6840cf2b153a 360 tppsArray[37] = new TouchPanelPageSelector(INJECTOR_PROFILE_RIGHT_ARROW, GuiStruct_InjectorGasStatusPage_30);
jmitc91516 4:6840cf2b153a 361 tppsArray[38] = new TouchPanelPageSelector(INJECTOR_GAS_STATUS_LEFT_ARROW, GuiStruct_InjectorTempProfilePage_25);
jmitc91516 4:6840cf2b153a 362 tppsArray[39] = new TouchPanelPageSelector(INJECTOR_GAS_STATUS_RIGHT_ARROW, GuiStruct_InjectorConsumablesPage_20);
jmitc91516 4:6840cf2b153a 363 tppsArray[40] = new TouchPanelPageSelector(INJECTOR_CONSUMABLES_LEFT_ARROW, GuiStruct_InjectorGasStatusPage_30);
jmitc91516 4:6840cf2b153a 364 tppsArray[41] = new TouchPanelPageSelector(INJECTOR_CONSUMABLES_RIGHT_ARROW, GuiStruct_InjectorPage1_3);
jmitc91516 1:a5258871b33d 365
jmitc91516 4:6840cf2b153a 366 tppsArray[42] = new TouchPanelPageSelector(RUNNING_PAGE1_RIGHT_ARROW, GuiStruct_RunningColumnPage_25);
jmitc91516 4:6840cf2b153a 367 tppsArray[43] = new TouchPanelPageSelector(RUNNING_PAGE1_LEFT_ARROW, GuiStruct_RunningGasPage_28);
jmitc91516 4:6840cf2b153a 368 tppsArray[44] = new TouchPanelPageSelector(RUNNING_COLUMN_RIGHT_ARROW, GuiStruct_RunningInjectorPage_26);
jmitc91516 4:6840cf2b153a 369 tppsArray[45] = new TouchPanelPageSelector(RUNNING_COLUMN_LEFT_ARROW, GuiStruct_RunningPage1_7);
jmitc91516 4:6840cf2b153a 370 tppsArray[46] = new TouchPanelPageSelector(RUNNING_INJECTOR_RIGHT_ARROW, GuiStruct_RunningInjectorProfilePage_Def);
jmitc91516 4:6840cf2b153a 371 tppsArray[47] = new TouchPanelPageSelector(RUNNING_INJECTOR_LEFT_ARROW, GuiStruct_RunningColumnPage_25);
jmitc91516 4:6840cf2b153a 372 tppsArray[48] = new TouchPanelPageSelector(RUNNING_INJECTOR_PROFILE_RIGHT_ARROW, GuiStruct_RunningDetectorPage_27);
jmitc91516 4:6840cf2b153a 373 tppsArray[49] = new TouchPanelPageSelector(RUNNING_INJECTOR_PROFILE_LEFT_ARROW, GuiStruct_RunningInjectorPage_26);
jmitc91516 4:6840cf2b153a 374 tppsArray[50] = new TouchPanelPageSelector(RUNNING_DETECTOR_RIGHT_ARROW, GuiStruct_RunningGasPage_28);
jmitc91516 4:6840cf2b153a 375 tppsArray[51] = new TouchPanelPageSelector(RUNNING_DETECTOR_LEFT_ARROW, GuiStruct_RunningInjectorProfilePage_Def);
jmitc91516 4:6840cf2b153a 376 tppsArray[52] = new TouchPanelPageSelector(RUNNING_GAS_RIGHT_ARROW, GuiStruct_RunningPage1_7);
jmitc91516 4:6840cf2b153a 377 tppsArray[53] = new TouchPanelPageSelector(RUNNING_GAS_LEFT_ARROW, GuiStruct_RunningDetectorPage_27);
jmitc91516 1:a5258871b33d 378
jmitc91516 4:6840cf2b153a 379 tppsArray[54] = new TouchPanelPageSelector(SETTINGS_TO_NETWORK_PARAMS_BUTTON, GuiStruct_EthernetParametersPage_50);
jmitc91516 4:6840cf2b153a 380 tppsArray[55] = new TouchPanelPageSelector(NETWORK_PARAMS_RETURN_BUTTON, GuiStruct_SettingsPage_5);
jmitc91516 1:a5258871b33d 381
jmitc91516 4:6840cf2b153a 382 tppsArray[56] = new TouchPanelPageSelector(SETTINGS_TO_SERVICING_PAGE_BUTTON, GuiStruct_EngineersLockPage_Def);
jmitc91516 4:6840cf2b153a 383 tppsArray[57] = new TouchPanelPageSelector(SERVICING_PAGE_RETURN_BUTTON, GuiStruct_SettingsPage_5);
jmitc91516 1:a5258871b33d 384
jmitc91516 4:6840cf2b153a 385 tppsArray[58] = new TouchPanelPageSelector(SERVICING_REQUIRED_PAGE_HOME_BUTTON, GuiStruct_HomePage_1);
jmitc91516 1:a5258871b33d 386
jmitc91516 4:6840cf2b153a 387 tppsArray[59] = new TouchPanelPageSelector(COLUMN_SERVICING_AREA, GuiStruct_ColumnDHAutoCalibrationPage_Def);
jmitc91516 4:6840cf2b153a 388 tppsArray[60] = new TouchPanelPageSelector(DETECTOR_SERVICING_AREA, GuiStruct_DetectorNudgeAndDampPage_0);
jmitc91516 4:6840cf2b153a 389 tppsArray[61] = new TouchPanelPageSelector(INJECTOR_SERVICING_AREA, GuiStruct_InjectorNudgeAndDampPage_0);
jmitc91516 4:6840cf2b153a 390 tppsArray[62] = new TouchPanelPageSelector(GAS_SERVICING_AREA, GuiStruct_GasCalibrationPage_Def);
jmitc91516 4:6840cf2b153a 391 tppsArray[63] = new TouchPanelPageSelector(SERVICING_HOME, GuiStruct_ServicingHomePage_Def);
jmitc91516 1:a5258871b33d 392
jmitc91516 4:6840cf2b153a 393 tppsArray[64] = new TouchPanelPageSelector(COLUMN_DH_AUTO_CALIB_LEFT_ARROW, GuiStruct_FanPowerPage_0);
jmitc91516 4:6840cf2b153a 394 tppsArray[65] = new TouchPanelPageSelector(COLUMN_DH_AUTO_CALIB_RIGHT_ARROW, GuiStruct_ColumnDHManualCalibrationPage_Def);
jmitc91516 4:6840cf2b153a 395 tppsArray[66] = new TouchPanelPageSelector(COLUMN_DH_MANUAL_CALIB_LEFT_ARROW, GuiStruct_ColumnDHAutoCalibrationPage_Def);
jmitc91516 4:6840cf2b153a 396 tppsArray[67] = new TouchPanelPageSelector(COLUMN_DH_MANUAL_CALIB_RIGHT_ARROW, GuiStruct_ColumnDHSensorCalibration_Def);
jmitc91516 4:6840cf2b153a 397 tppsArray[68] = new TouchPanelPageSelector(COLUMN_DH_SENSOR_CALIB_LEFT_ARROW, GuiStruct_ColumnDHManualCalibrationPage_Def);
jmitc91516 4:6840cf2b153a 398 tppsArray[69] = new TouchPanelPageSelector(COLUMN_DH_SENSOR_CALIB_RIGHT_ARROW, GuiStruct_PSU_DAC_Page_Def);
jmitc91516 4:6840cf2b153a 399 tppsArray[70] = new TouchPanelPageSelector(COLUMN_DH_PSU_DAC_LEFT_ARROW, GuiStruct_ColumnDHSensorCalibration_Def);
jmitc91516 4:6840cf2b153a 400 tppsArray[71] = new TouchPanelPageSelector(COLUMN_DH_PSU_DAC_RIGHT_ARROW, GuiStruct_ColumnDHOvenFanPage_Def);
jmitc91516 4:6840cf2b153a 401 tppsArray[72] = new TouchPanelPageSelector(COLUMN_OVEN_FAN_LEFT_ARROW, GuiStruct_PSU_DAC_Page_Def);
jmitc91516 4:6840cf2b153a 402 tppsArray[73] = new TouchPanelPageSelector(COLUMN_OVEN_FAN_RIGHT_ARROW, GuiStruct_ColumnOvenNudgeAndDampPage_0);
jmitc91516 4:6840cf2b153a 403 tppsArray[74] = new TouchPanelPageSelector(COLUMN_OVEN_NUDGE_AND_DAMP_LEFT_ARROW, GuiStruct_ColumnDHOvenFanPage_Def);
jmitc91516 4:6840cf2b153a 404 tppsArray[75] = new TouchPanelPageSelector(COLUMN_OVEN_NUDGE_AND_DAMP_RIGHT_ARROW, GuiStruct_ColumnDHNudgeAndDampPage_0);
jmitc91516 4:6840cf2b153a 405 tppsArray[76] = new TouchPanelPageSelector(COLUMN_DH_NUDGE_AND_DAMP_LEFT_ARROW, GuiStruct_ColumnOvenNudgeAndDampPage_0);
jmitc91516 4:6840cf2b153a 406 tppsArray[77] = new TouchPanelPageSelector(COLUMN_DH_NUDGE_AND_DAMP_RIGHT_ARROW, GuiStruct_FanPowerPage_0);
jmitc91516 4:6840cf2b153a 407 tppsArray[78] = new TouchPanelPageSelector(FAN_POWER_LEFT_ARROW, GuiStruct_ColumnDHNudgeAndDampPage_0);
jmitc91516 4:6840cf2b153a 408 tppsArray[79] = new TouchPanelPageSelector(FAN_POWER_RIGHT_ARROW, GuiStruct_ColumnDHAutoCalibrationPage_Def);
jmitc91516 1:a5258871b33d 409
jmitc91516 4:6840cf2b153a 410 tppsArray[80] = new TouchPanelPageSelector(DETECTOR_NUDGE_AND_DAMP_LEFT_ARROW, GuiStruct_AuxiliaryNudgeAndDampPage_0);
jmitc91516 4:6840cf2b153a 411 tppsArray[81] = new TouchPanelPageSelector(DETECTOR_NUDGE_AND_DAMP_RIGHT_ARROW, GuiStruct_AuxiliaryNudgeAndDampPage_0);
jmitc91516 4:6840cf2b153a 412 tppsArray[82] = new TouchPanelPageSelector(AUXILIARY_NUDGE_AND_DAMP_LEFT_ARROW, GuiStruct_DetectorNudgeAndDampPage_0);
jmitc91516 4:6840cf2b153a 413 tppsArray[83] = new TouchPanelPageSelector(AUXILIARY_NUDGE_AND_DAMP_RIGHT_ARROW, GuiStruct_DetectorNudgeAndDampPage_0);
jmitc91516 1:a5258871b33d 414
jmitc91516 4:6840cf2b153a 415 tppsArray[84] = new TouchPanelPageSelector(GAS_CALIB_LEFT_ARROW, GuiStruct_GasChannelDACAndADCPage_Def);
jmitc91516 4:6840cf2b153a 416 tppsArray[85] = new TouchPanelPageSelector(GAS_CALIB_RIGHT_ARROW, GuiStruct_GasBackPressureDACPage_Def);
jmitc91516 4:6840cf2b153a 417 tppsArray[86] = new TouchPanelPageSelector(GAS_BACKPRESSURE_DAC_LEFT_ARROW, GuiStruct_GasCalibrationPage_Def);
jmitc91516 4:6840cf2b153a 418 tppsArray[87] = new TouchPanelPageSelector(GAS_BACKPRESSURE_DAC_RIGHT_ARROW, GuiStruct_GasChannelDACAndADCPage_Def);
jmitc91516 4:6840cf2b153a 419 tppsArray[88] = new TouchPanelPageSelector(GAS_CHANNEL_DAC_AND_ADC_LEFT_ARROW, GuiStruct_GasBackPressureDACPage_Def);
jmitc91516 4:6840cf2b153a 420 tppsArray[89] = new TouchPanelPageSelector(GAS_CHANNEL_DAC_AND_ADC_RIGHT_ARROW, GuiStruct_GasCalibrationPage_Def);
jmitc91516 1:a5258871b33d 421
jmitc91516 4:6840cf2b153a 422 tppsArray[90] = new TouchPanelPageSelector(SERVICING_PAGE_GC_CMDS_BUTTON, GuiStruct_DebugCommandsPage_Def);
jmitc91516 0:47c880c1463d 423 }
jmitc91516 1:a5258871b33d 424
jmitc91516 1:a5258871b33d 425 TouchPanelPageSelectors::~TouchPanelPageSelectors()
jmitc91516 1:a5258871b33d 426 {
jmitc91516 1:a5258871b33d 427 for (int i = 0; i < SELECTOR_COUNT; ++i) {
jmitc91516 1:a5258871b33d 428 if(tppsArray[i] != NULL) { // We may occasionally set some to NULL while testing new changes
jmitc91516 1:a5258871b33d 429 delete tppsArray[i];
jmitc91516 1:a5258871b33d 430 }
jmitc91516 1:a5258871b33d 431 }
jmitc91516 1:a5258871b33d 432 }
jmitc91516 1:a5258871b33d 433
jmitc91516 1:a5258871b33d 434 /*
jmitc91516 1:a5258871b33d 435 Given a touch area index, returns a pointer to the corresponding page selector,
jmitc91516 1:a5258871b33d 436 or NULL if that index has no page selector. If the pointer is not NULL, caller
jmitc91516 1:a5258871b33d 437 can then call 'GetPageNumber' on that page selector, to find out which page to display
jmitc91516 1:a5258871b33d 438 in response to the user touching that touch area. (If the pointer is NULL, that touch area
jmitc91516 1:a5258871b33d 439 does not select a new page.)
jmitc91516 1:a5258871b33d 440 */
jmitc91516 0:47c880c1463d 441 TouchPanelPageSelector* TouchPanelPageSelectors::GetTouchPanelPageSelector(int touchAreaIndex)
jmitc91516 0:47c880c1463d 442 {
jmitc91516 0:47c880c1463d 443 for (int i = 0; i < SELECTOR_COUNT; ++i) {
jmitc91516 1:a5258871b33d 444 if(tppsArray[i] != NULL) { // We may occasionally set some to NULL while testing new changes
jmitc91516 1:a5258871b33d 445 if( tppsArray[i]->GetIndex() == touchAreaIndex) {
jmitc91516 1:a5258871b33d 446 return tppsArray[i];
jmitc91516 1:a5258871b33d 447 }
jmitc91516 0:47c880c1463d 448 }
jmitc91516 0:47c880c1463d 449 }
jmitc91516 0:47c880c1463d 450
jmitc91516 0:47c880c1463d 451 // 'else' - not found
jmitc91516 0:47c880c1463d 452 return NULL;
jmitc91516 0:47c880c1463d 453 }
jmitc91516 1:a5258871b33d 454
jmitc91516 0:47c880c1463d 455
jmitc91516 1:a5258871b33d 456 /*
jmitc91516 1:a5258871b33d 457 Tells the caller which TouchPanelPageSelector they have - i.e. returns its index
jmitc91516 1:a5258871b33d 458 in our array, or -1 if we cannot find it. (This should be useful for debugging.)
jmitc91516 1:a5258871b33d 459
jmitc91516 1:a5258871b33d 460 Arguments: pointer to the TouchPanelPageSelector instance in question
jmitc91516 1:a5258871b33d 461
jmitc91516 1:a5258871b33d 462 Return code: its index in our array, or -1 if not found
jmitc91516 1:a5258871b33d 463 */
jmitc91516 1:a5258871b33d 464 int TouchPanelPageSelectors::GetTouchPanelPageSelectorIndex(TouchPanelPageSelector *tppsptr)
jmitc91516 1:a5258871b33d 465 {
jmitc91516 1:a5258871b33d 466 for (int i = 0; i < SELECTOR_COUNT; ++i) {
jmitc91516 1:a5258871b33d 467 if(tppsArray[i] == tppsptr) {
jmitc91516 1:a5258871b33d 468 return i;
jmitc91516 1:a5258871b33d 469 }
jmitc91516 1:a5258871b33d 470 }
jmitc91516 1:a5258871b33d 471
jmitc91516 1:a5258871b33d 472 // 'else' - not found
jmitc91516 1:a5258871b33d 473 return -1;
jmitc91516 1:a5258871b33d 474 }
jmitc91516 0:47c880c1463d 475