Repository for import to local machine
Dependencies: DMBasicGUI DMSupport
GCHeatControl.cpp@0:47c880c1463d, 2016-01-13 (annotated)
- 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?
User | Revision | Line number | New contents of line |
---|---|---|---|
jmitc91516 | 0:47c880c1463d | 1 | #include "GCHeatControl.h" |
jmitc91516 | 0:47c880c1463d | 2 | |
jmitc91516 | 0:47c880c1463d | 3 | extern void EasyGUIDebugPrint(char *stuffToPrint, short X, short Y); |
jmitc91516 | 0:47c880c1463d | 4 | |
jmitc91516 | 0:47c880c1463d | 5 | |
jmitc91516 | 0:47c880c1463d | 6 | GCHeatControl::GCHeatControl(USBDeviceConnected* newUsbDevice, USBHostGC* newUsbHostGC) |
jmitc91516 | 0:47c880c1463d | 7 | { |
jmitc91516 | 0:47c880c1463d | 8 | usbDevice = newUsbDevice; |
jmitc91516 | 0:47c880c1463d | 9 | usbHostGC = newUsbHostGC; |
jmitc91516 | 0:47c880c1463d | 10 | |
jmitc91516 | 0:47c880c1463d | 11 | #ifdef DEBUG_TEST |
jmitc91516 | 0:47c880c1463d | 12 | heatIsOn = false; |
jmitc91516 | 0:47c880c1463d | 13 | #endif |
jmitc91516 | 0:47c880c1463d | 14 | } |
jmitc91516 | 0:47c880c1463d | 15 | |
jmitc91516 | 0:47c880c1463d | 16 | bool GCHeatControl::IsHeatOn(void) |
jmitc91516 | 0:47c880c1463d | 17 | { |
jmitc91516 | 0:47c880c1463d | 18 | #ifdef DEBUG_TEST |
jmitc91516 | 0:47c880c1463d | 19 | return heatIsOn; |
jmitc91516 | 0:47c880c1463d | 20 | #else |
jmitc91516 | 0:47c880c1463d | 21 | while(usbHostGC->ExecutingSetDeviceReport()) {} |
jmitc91516 | 0:47c880c1463d | 22 | |
jmitc91516 | 0:47c880c1463d | 23 | char response[50]; |
jmitc91516 | 0:47c880c1463d | 24 | usbHostGC->SetDeviceReport(usbDevice, "QHTS", response); |
jmitc91516 | 0:47c880c1463d | 25 | // We expect a response like this: "QHTS0000" for off, "QHTS0001" for on |
jmitc91516 | 0:47c880c1463d | 26 | |
jmitc91516 | 0:47c880c1463d | 27 | char dbg[100]; |
jmitc91516 | 0:47c880c1463d | 28 | sprintf(dbg, "QHTS returned %s", response); |
jmitc91516 | 0:47c880c1463d | 29 | EasyGUIDebugPrint(dbg, 100, 100); |
jmitc91516 | 0:47c880c1463d | 30 | |
jmitc91516 | 0:47c880c1463d | 31 | return (response[7] != '0'); |
jmitc91516 | 0:47c880c1463d | 32 | #endif |
jmitc91516 | 0:47c880c1463d | 33 | } |
jmitc91516 | 0:47c880c1463d | 34 | |
jmitc91516 | 0:47c880c1463d | 35 | bool GCHeatControl::TurnHeatOn(void) |
jmitc91516 | 0:47c880c1463d | 36 | { |
jmitc91516 | 0:47c880c1463d | 37 | #ifdef DEBUG_TEST |
jmitc91516 | 0:47c880c1463d | 38 | if(heatIsOn) { |
jmitc91516 | 0:47c880c1463d | 39 | // Heat is already on |
jmitc91516 | 0:47c880c1463d | 40 | return false; |
jmitc91516 | 0:47c880c1463d | 41 | } |
jmitc91516 | 0:47c880c1463d | 42 | |
jmitc91516 | 0:47c880c1463d | 43 | heatIsOn = true; |
jmitc91516 | 0:47c880c1463d | 44 | |
jmitc91516 | 0:47c880c1463d | 45 | return true; |
jmitc91516 | 0:47c880c1463d | 46 | #else |
jmitc91516 | 0:47c880c1463d | 47 | while(usbHostGC->ExecutingSetDeviceReport()) {} |
jmitc91516 | 0:47c880c1463d | 48 | |
jmitc91516 | 0:47c880c1463d | 49 | if(IsHeatOn()) { |
jmitc91516 | 0:47c880c1463d | 50 | // Heat is already on |
jmitc91516 | 0:47c880c1463d | 51 | return false; |
jmitc91516 | 0:47c880c1463d | 52 | } |
jmitc91516 | 0:47c880c1463d | 53 | |
jmitc91516 | 0:47c880c1463d | 54 | char response[50]; |
jmitc91516 | 0:47c880c1463d | 55 | usbHostGC->SetDeviceReport(usbDevice, "CHON", response); |
jmitc91516 | 0:47c880c1463d | 56 | // We expect a response like this: "DACK" for success, "DNAK" for failure |
jmitc91516 | 0:47c880c1463d | 57 | |
jmitc91516 | 0:47c880c1463d | 58 | char dbg[100]; |
jmitc91516 | 0:47c880c1463d | 59 | sprintf(dbg, "CHON returned %s", response); |
jmitc91516 | 0:47c880c1463d | 60 | EasyGUIDebugPrint(dbg, 100, 150); |
jmitc91516 | 0:47c880c1463d | 61 | |
jmitc91516 | 0:47c880c1463d | 62 | return (response[1] == 'A'); |
jmitc91516 | 0:47c880c1463d | 63 | #endif |
jmitc91516 | 0:47c880c1463d | 64 | } |
jmitc91516 | 0:47c880c1463d | 65 | |
jmitc91516 | 0:47c880c1463d | 66 | bool GCHeatControl::TurnHeatOff(void) |
jmitc91516 | 0:47c880c1463d | 67 | { |
jmitc91516 | 0:47c880c1463d | 68 | #ifdef DEBUG_TEST |
jmitc91516 | 0:47c880c1463d | 69 | if(!heatIsOn) { |
jmitc91516 | 0:47c880c1463d | 70 | // Heat is already off |
jmitc91516 | 0:47c880c1463d | 71 | return false; |
jmitc91516 | 0:47c880c1463d | 72 | } |
jmitc91516 | 0:47c880c1463d | 73 | |
jmitc91516 | 0:47c880c1463d | 74 | heatIsOn = false; |
jmitc91516 | 0:47c880c1463d | 75 | |
jmitc91516 | 0:47c880c1463d | 76 | return true; |
jmitc91516 | 0:47c880c1463d | 77 | #else |
jmitc91516 | 0:47c880c1463d | 78 | while(usbHostGC->ExecutingSetDeviceReport()) {} |
jmitc91516 | 0:47c880c1463d | 79 | |
jmitc91516 | 0:47c880c1463d | 80 | if(!IsHeatOn()) { |
jmitc91516 | 0:47c880c1463d | 81 | // Heat is already off |
jmitc91516 | 0:47c880c1463d | 82 | return false; |
jmitc91516 | 0:47c880c1463d | 83 | } |
jmitc91516 | 0:47c880c1463d | 84 | |
jmitc91516 | 0:47c880c1463d | 85 | char response[50]; |
jmitc91516 | 0:47c880c1463d | 86 | usbHostGC->SetDeviceReport(usbDevice, "CHOF", response); |
jmitc91516 | 0:47c880c1463d | 87 | // We expect a response like this: "DACK" for success, "DNAK" for failure |
jmitc91516 | 0:47c880c1463d | 88 | |
jmitc91516 | 0:47c880c1463d | 89 | char dbg[100]; |
jmitc91516 | 0:47c880c1463d | 90 | sprintf(dbg, "CHOF returned %s", response); |
jmitc91516 | 0:47c880c1463d | 91 | EasyGUIDebugPrint(dbg, 100, 200); |
jmitc91516 | 0:47c880c1463d | 92 | |
jmitc91516 | 0:47c880c1463d | 93 | return (response[1] == 'A'); |
jmitc91516 | 0:47c880c1463d | 94 | #endif |
jmitc91516 | 0:47c880c1463d | 95 | } |
jmitc91516 | 0:47c880c1463d | 96 | |
jmitc91516 | 0:47c880c1463d | 97 | |
jmitc91516 | 0:47c880c1463d | 98 |