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 "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