Repository for import to local machine
Dependencies: DMBasicGUI DMSupport
MethodRampData.h@6:dba3fbdfd5da, 2017-07-27 (annotated)
- 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?
User | Revision | Line number | New 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 |