Repository for import to local machine
Dependencies: DMBasicGUI DMSupport
TouchPanelPageSelector.cpp@4:6840cf2b153a, 2017-07-21 (annotated)
- 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?
User | Revision | Line number | New 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 |