Repository for import to local machine

Dependencies:   DMBasicGUI DMSupport

Committer:
jmitc91516
Date:
Thu Jul 27 16:17:56 2017 +0000
Revision:
6:dba3fbdfd5da
Child:
8:26e49e6955bd
Close of play 27 July 2017

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jmitc91516 6:dba3fbdfd5da 1 #ifndef METHODRAMPDATA_H
jmitc91516 6:dba3fbdfd5da 2 #define METHODRAMPDATA_H
jmitc91516 6:dba3fbdfd5da 3
jmitc91516 6:dba3fbdfd5da 4 #include "GuiLib.h"
jmitc91516 6:dba3fbdfd5da 5 #include "GuiDisplay.h"
jmitc91516 6:dba3fbdfd5da 6
jmitc91516 6:dba3fbdfd5da 7 #include "USBHostGC.h"
jmitc91516 6:dba3fbdfd5da 8
jmitc91516 6:dba3fbdfd5da 9 /*
jmitc91516 6:dba3fbdfd5da 10 These classes deal with the method ramps - column, injector or gas.
jmitc91516 6:dba3fbdfd5da 11 They obtain all the ramp data at the same time, and can then return information about the ramps to the caller.
jmitc91516 6:dba3fbdfd5da 12
jmitc91516 6:dba3fbdfd5da 13 Provided to simplify the ramp handling, and particularly to avoid adding yet more code to "GetGCStatusLoop".
jmitc91516 6:dba3fbdfd5da 14
jmitc91516 6:dba3fbdfd5da 15 The base class does most of the work, since the ramp handling is basically the same for the column, injector and gas - but is abstract.
jmitc91516 6:dba3fbdfd5da 16 Derived classes must define the functions to get the ramp data from the GC, since the commands to do so are different for each type.
jmitc91516 6:dba3fbdfd5da 17 */
jmitc91516 6:dba3fbdfd5da 18 class MethodRampData
jmitc91516 6:dba3fbdfd5da 19 {
jmitc91516 6:dba3fbdfd5da 20 public:
jmitc91516 6:dba3fbdfd5da 21
jmitc91516 6:dba3fbdfd5da 22 // Public constructor.
jmitc91516 6:dba3fbdfd5da 23 //
jmitc91516 6:dba3fbdfd5da 24 // There seems no particular reason to make this class a singleton.
jmitc91516 6:dba3fbdfd5da 25 // There is only one method loaded into the GC at any time,
jmitc91516 6:dba3fbdfd5da 26 // but so what if we have more than one copy of the ramp data?
jmitc91516 6:dba3fbdfd5da 27 MethodRampData(USBDeviceConnected* newUsbDevice, USBHostGC* newUsbHostGC);
jmitc91516 6:dba3fbdfd5da 28
jmitc91516 6:dba3fbdfd5da 29 void GetRampDataFromGC(void);
jmitc91516 6:dba3fbdfd5da 30
jmitc91516 6:dba3fbdfd5da 31 bool GetRampRate(unsigned int rampIndex, float *rampRate);
jmitc91516 6:dba3fbdfd5da 32 bool GetRampUpperLimit(unsigned int rampIndex, float *rampUpperLimit);
jmitc91516 6:dba3fbdfd5da 33 bool GetRampUpperTime(unsigned int rampIndex, float *rampUpperTime);
jmitc91516 6:dba3fbdfd5da 34
jmitc91516 6:dba3fbdfd5da 35 unsigned int GetRampCount(void) { return rampCount; }
jmitc91516 6:dba3fbdfd5da 36 bool GotRampData(void) { return gotRampData; }
jmitc91516 6:dba3fbdfd5da 37
jmitc91516 6:dba3fbdfd5da 38 void RampsHaveBeenChangedInGC(void) { gotRampData = false; }
jmitc91516 6:dba3fbdfd5da 39
jmitc91516 6:dba3fbdfd5da 40 void UpdateEasyGUIMethodPageVariables(unsigned int firstRampIndex);
jmitc91516 6:dba3fbdfd5da 41
jmitc91516 6:dba3fbdfd5da 42 bool NeedToUpdateEasyGUIMethodPageRampVariables(void) { return needToUpdateEasyGUIMethodPageRampVariables; }
jmitc91516 6:dba3fbdfd5da 43
jmitc91516 6:dba3fbdfd5da 44 unsigned int GetScrollRange(void);
jmitc91516 6:dba3fbdfd5da 45
jmitc91516 6:dba3fbdfd5da 46 protected:
jmitc91516 6:dba3fbdfd5da 47 // Different GC commands for each ramp type
jmitc91516 6:dba3fbdfd5da 48 virtual float GetRampRateFromGC(unsigned int rampIndex) = 0;
jmitc91516 6:dba3fbdfd5da 49 virtual float GetRampUpperLimitFromGC(unsigned int rampIndex) = 0;
jmitc91516 6:dba3fbdfd5da 50 virtual float GetRampUpperTimeFromGC(unsigned int rampIndex) = 0;
jmitc91516 6:dba3fbdfd5da 51
jmitc91516 6:dba3fbdfd5da 52 // Different easyGUI variables for each ramp type
jmitc91516 6:dba3fbdfd5da 53 enum { EASYGUI_RAMP_LINES = 5 };
jmitc91516 6:dba3fbdfd5da 54 GuiConst_TEXT* easyGUIRampNumber[EASYGUI_RAMP_LINES];
jmitc91516 6:dba3fbdfd5da 55 GuiConst_TEXT* easyGUIRampRateVariable[EASYGUI_RAMP_LINES];
jmitc91516 6:dba3fbdfd5da 56 GuiConst_TEXT* easyGUIRampUpperLimitVariable[EASYGUI_RAMP_LINES];
jmitc91516 6:dba3fbdfd5da 57 GuiConst_TEXT* easyGUIRampUpperTimeVariable[EASYGUI_RAMP_LINES];
jmitc91516 6:dba3fbdfd5da 58
jmitc91516 6:dba3fbdfd5da 59 char easyGUIRampRateSprintfFormat[10];
jmitc91516 6:dba3fbdfd5da 60 char easyGUIRampUpperLimitSprintfFormat[10];
jmitc91516 6:dba3fbdfd5da 61 char easyGUIRampUpperTimeSprintfFormat[10];
jmitc91516 6:dba3fbdfd5da 62
jmitc91516 6:dba3fbdfd5da 63 int GetIntRampValueFromGC(char *firstThreeCharsOfCommand, unsigned int rampIndex);
jmitc91516 6:dba3fbdfd5da 64
jmitc91516 6:dba3fbdfd5da 65 private:
jmitc91516 6:dba3fbdfd5da 66
jmitc91516 6:dba3fbdfd5da 67 typedef struct structRampData
jmitc91516 6:dba3fbdfd5da 68 {
jmitc91516 6:dba3fbdfd5da 69 float rampRate;
jmitc91516 6:dba3fbdfd5da 70 float rampUpperLimit;
jmitc91516 6:dba3fbdfd5da 71 float rampUpperTime;
jmitc91516 6:dba3fbdfd5da 72
jmitc91516 6:dba3fbdfd5da 73 } RampData;
jmitc91516 6:dba3fbdfd5da 74
jmitc91516 6:dba3fbdfd5da 75 enum { MAX_RAMP_COUNT = 10 };
jmitc91516 6:dba3fbdfd5da 76 RampData rampData[MAX_RAMP_COUNT];
jmitc91516 6:dba3fbdfd5da 77
jmitc91516 6:dba3fbdfd5da 78 USBDeviceConnected* usbDevice;
jmitc91516 6:dba3fbdfd5da 79 USBHostGC* usbHostGC;
jmitc91516 6:dba3fbdfd5da 80
jmitc91516 6:dba3fbdfd5da 81 unsigned int rampCount;
jmitc91516 6:dba3fbdfd5da 82 bool gotRampData;
jmitc91516 6:dba3fbdfd5da 83
jmitc91516 6:dba3fbdfd5da 84 bool needToUpdateEasyGUIMethodPageRampVariables;
jmitc91516 6:dba3fbdfd5da 85 };
jmitc91516 6:dba3fbdfd5da 86
jmitc91516 6:dba3fbdfd5da 87
jmitc91516 6:dba3fbdfd5da 88 /*
jmitc91516 6:dba3fbdfd5da 89 Derived class for the column method - with its own commands to get the data from the GC,
jmitc91516 6:dba3fbdfd5da 90 and its own easyGUI variables to display the data
jmitc91516 6:dba3fbdfd5da 91 */
jmitc91516 6:dba3fbdfd5da 92 class ColumnMethodRampData : public MethodRampData
jmitc91516 6:dba3fbdfd5da 93 {
jmitc91516 6:dba3fbdfd5da 94 public:
jmitc91516 6:dba3fbdfd5da 95 ColumnMethodRampData(USBDeviceConnected* newUsbDevice, USBHostGC* newUsbHostGC);
jmitc91516 6:dba3fbdfd5da 96
jmitc91516 6:dba3fbdfd5da 97 private:
jmitc91516 6:dba3fbdfd5da 98 virtual float GetRampRateFromGC(unsigned int rampIndex);
jmitc91516 6:dba3fbdfd5da 99 virtual float GetRampUpperLimitFromGC(unsigned int rampIndex);
jmitc91516 6:dba3fbdfd5da 100 virtual float GetRampUpperTimeFromGC(unsigned int rampIndex);
jmitc91516 6:dba3fbdfd5da 101 };
jmitc91516 6:dba3fbdfd5da 102
jmitc91516 6:dba3fbdfd5da 103
jmitc91516 6:dba3fbdfd5da 104 /*
jmitc91516 6:dba3fbdfd5da 105 Derived class for the injector method - with its own commands to get the data from the GC,
jmitc91516 6:dba3fbdfd5da 106 and its own easyGUI variables to display the data
jmitc91516 6:dba3fbdfd5da 107 */
jmitc91516 6:dba3fbdfd5da 108 class InjectorMethodRampData : public MethodRampData
jmitc91516 6:dba3fbdfd5da 109 {
jmitc91516 6:dba3fbdfd5da 110 public:
jmitc91516 6:dba3fbdfd5da 111 InjectorMethodRampData(USBDeviceConnected* newUsbDevice, USBHostGC* newUsbHostGC);
jmitc91516 6:dba3fbdfd5da 112
jmitc91516 6:dba3fbdfd5da 113 private:
jmitc91516 6:dba3fbdfd5da 114 virtual float GetRampRateFromGC(unsigned int rampIndex);
jmitc91516 6:dba3fbdfd5da 115 virtual float GetRampUpperLimitFromGC(unsigned int rampIndex);
jmitc91516 6:dba3fbdfd5da 116 virtual float GetRampUpperTimeFromGC(unsigned int rampIndex);
jmitc91516 6:dba3fbdfd5da 117 };
jmitc91516 6:dba3fbdfd5da 118
jmitc91516 6:dba3fbdfd5da 119
jmitc91516 6:dba3fbdfd5da 120 /*
jmitc91516 6:dba3fbdfd5da 121 Derived class for the gas method - with its own commands to get the data from the GC,
jmitc91516 6:dba3fbdfd5da 122 and its own easyGUI variables to display the data
jmitc91516 6:dba3fbdfd5da 123 */
jmitc91516 6:dba3fbdfd5da 124 class GasMethodRampData : public MethodRampData
jmitc91516 6:dba3fbdfd5da 125 {
jmitc91516 6:dba3fbdfd5da 126 public:
jmitc91516 6:dba3fbdfd5da 127 GasMethodRampData(USBDeviceConnected* newUsbDevice, USBHostGC* newUsbHostGC);
jmitc91516 6:dba3fbdfd5da 128
jmitc91516 6:dba3fbdfd5da 129 private:
jmitc91516 6:dba3fbdfd5da 130 virtual float GetRampRateFromGC(unsigned int rampIndex);
jmitc91516 6:dba3fbdfd5da 131 virtual float GetRampUpperLimitFromGC(unsigned int rampIndex);
jmitc91516 6:dba3fbdfd5da 132 virtual float GetRampUpperTimeFromGC(unsigned int rampIndex);
jmitc91516 6:dba3fbdfd5da 133 };
jmitc91516 6:dba3fbdfd5da 134
jmitc91516 6:dba3fbdfd5da 135 #endif // METHODRAMPDATA_H
jmitc91516 6:dba3fbdfd5da 136