Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed
Fork of ICE by
src/ConfigurationHandler/Controls/SetpointControl.h@51:66b820f203a5, 2016-09-13 (annotated)
- Committer:
- jmarkel44
- Date:
- Tue Sep 13 21:29:24 2016 +0000
- Revision:
- 51:66b820f203a5
- Parent:
- 46:4cb96ab2d1c8
- Child:
- 86:189c125d8878
committing;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jmarkel44 | 5:5e77a1db4d45 | 1 | /****************************************************************************** |
jmarkel44 | 5:5e77a1db4d45 | 2 | * |
jmarkel44 | 5:5e77a1db4d45 | 3 | * File: SetpointControl.h |
jmarkel44 | 5:5e77a1db4d45 | 4 | * Desciption: ICE Timer Control Class |
jmarkel44 | 5:5e77a1db4d45 | 5 | * |
jmarkel44 | 5:5e77a1db4d45 | 6 | *****************************************************************************/ |
jmarkel44 | 5:5e77a1db4d45 | 7 | #ifndef SETPOINTCONTROL_H |
jmarkel44 | 5:5e77a1db4d45 | 8 | #define SETPOINTCONTROL_H |
jmarkel44 | 5:5e77a1db4d45 | 9 | |
jmarkel44 | 28:c410a61238bb | 10 | #include "MbedJSONValue.h" |
jmarkel44 | 5:5e77a1db4d45 | 11 | #include <string> |
jmarkel44 | 46:4cb96ab2d1c8 | 12 | |
jmarkel44 | 13:c80c283f9db2 | 13 | using namespace std; |
jmarkel44 | 5:5e77a1db4d45 | 14 | |
jmarkel44 | 5:5e77a1db4d45 | 15 | class SetpointControl |
jmarkel44 | 5:5e77a1db4d45 | 16 | { |
jmarkel44 | 5:5e77a1db4d45 | 17 | private: |
jmarkel44 | 5:5e77a1db4d45 | 18 | string controlFile; // name of the control file |
jmarkel44 | 20:653923c2f37a | 19 | string id; // control identifier |
jmarkel44 | 20:653923c2f37a | 20 | string name; // friendly name |
jmarkel44 | 28:c410a61238bb | 21 | int priority; // control priority |
jmarkel44 | 20:653923c2f37a | 22 | string input; // control input |
jmarkel44 | 28:c410a61238bb | 23 | string output; // control output |
jmarkel44 | 30:738359dfdab1 | 24 | double productFactor; |
jmarkel44 | 30:738359dfdab1 | 25 | double highAlert; |
jmarkel44 | 30:738359dfdab1 | 26 | double lowAlert; |
jmarkel44 | 30:738359dfdab1 | 27 | double highFailsafe; |
jmarkel44 | 30:738359dfdab1 | 28 | double lowFailsafe; |
jmarkel44 | 30:738359dfdab1 | 29 | double tol; |
jmarkel44 | 51:66b820f203a5 | 30 | enum State { |
jmarkel44 | 51:66b820f203a5 | 31 | STATE_STARTUP, |
jmarkel44 | 51:66b820f203a5 | 32 | STATE_CONTROL_OFF, |
jmarkel44 | 51:66b820f203a5 | 33 | STATE_CONTROL_ON, |
jmarkel44 | 51:66b820f203a5 | 34 | STATE_DISABLE, |
jmarkel44 | 51:66b820f203a5 | 35 | STATE_PAUSE, |
jmarkel44 | 51:66b820f203a5 | 36 | STATE_MAX |
jmarkel44 | 51:66b820f203a5 | 37 | }; |
jmarkel44 | 51:66b820f203a5 | 38 | State currentState; |
jmarkel44 | 28:c410a61238bb | 39 | |
jmarkel44 | 5:5e77a1db4d45 | 40 | public: |
jmarkel44 | 51:66b820f203a5 | 41 | // ctor |
jmarkel44 | 19:9bc8fabeddfa | 42 | SetpointControl() {}; |
jmarkel44 | 51:66b820f203a5 | 43 | // dtor |
jmarkel44 | 12:ea87887ca7ad | 44 | ~SetpointControl() { |
jmarkel44 | 12:ea87887ca7ad | 45 | printf("\r%s destructor invoked\n", __func__); |
jmarkel44 | 51:66b820f203a5 | 46 | // TODO: unregister the control with the output task |
jmarkel44 | 28:c410a61238bb | 47 | } |
jmarkel44 | 28:c410a61238bb | 48 | |
jmarkel44 | 51:66b820f203a5 | 49 | // load the control data |
jmarkel44 | 28:c410a61238bb | 50 | bool load(string filename); |
jmarkel44 | 51:66b820f203a5 | 51 | |
jmarkel44 | 51:66b820f203a5 | 52 | // register the control with the output task |
jmarkel44 | 51:66b820f203a5 | 53 | void registerControl(void); |
jmarkel44 | 51:66b820f203a5 | 54 | |
jmarkel44 | 51:66b820f203a5 | 55 | // unregister the control with the output task |
jmarkel44 | 51:66b820f203a5 | 56 | void unregisterControl(void); |
jmarkel44 | 51:66b820f203a5 | 57 | |
jmarkel44 | 51:66b820f203a5 | 58 | // start the control |
jmarkel44 | 51:66b820f203a5 | 59 | void start(void); |
jmarkel44 | 51:66b820f203a5 | 60 | |
jmarkel44 | 51:66b820f203a5 | 61 | // update the control |
jmarkel44 | 51:66b820f203a5 | 62 | void update(void); |
jmarkel44 | 51:66b820f203a5 | 63 | |
jmarkel44 | 51:66b820f203a5 | 64 | bool underLimit(); |
jmarkel44 | 51:66b820f203a5 | 65 | bool overLimit(); |
jmarkel44 | 51:66b820f203a5 | 66 | |
jmarkel44 | 51:66b820f203a5 | 67 | // state transition functions |
jmarkel44 | 51:66b820f203a5 | 68 | void startFeed(); |
jmarkel44 | 51:66b820f203a5 | 69 | void stopFeed(); |
jmarkel44 | 28:c410a61238bb | 70 | |
jmarkel44 | 12:ea87887ca7ad | 71 | string getControlFile(void) { |
jmarkel44 | 12:ea87887ca7ad | 72 | return controlFile; |
jmarkel44 | 12:ea87887ca7ad | 73 | } |
jmarkel44 | 28:c410a61238bb | 74 | string getId(void) { |
jmarkel44 | 28:c410a61238bb | 75 | return id; |
jmarkel44 | 28:c410a61238bb | 76 | } |
jmarkel44 | 28:c410a61238bb | 77 | string getName(void) { |
jmarkel44 | 28:c410a61238bb | 78 | return name; |
jmarkel44 | 28:c410a61238bb | 79 | } |
jmarkel44 | 28:c410a61238bb | 80 | unsigned int getPriority(void) { |
jmarkel44 | 28:c410a61238bb | 81 | return priority; |
jmarkel44 | 28:c410a61238bb | 82 | } |
jmarkel44 | 28:c410a61238bb | 83 | string getInput(void) { |
jmarkel44 | 28:c410a61238bb | 84 | return input; |
jmarkel44 | 28:c410a61238bb | 85 | } |
jmarkel44 | 28:c410a61238bb | 86 | string getOutput(void) { |
jmarkel44 | 28:c410a61238bb | 87 | return output; |
jmarkel44 | 28:c410a61238bb | 88 | } |
jmarkel44 | 28:c410a61238bb | 89 | float getProductFactor(void) { |
jmarkel44 | 28:c410a61238bb | 90 | return productFactor; |
jmarkel44 | 28:c410a61238bb | 91 | } |
jmarkel44 | 28:c410a61238bb | 92 | float getHighAlert(void) { |
jmarkel44 | 28:c410a61238bb | 93 | return highAlert; |
jmarkel44 | 28:c410a61238bb | 94 | } |
jmarkel44 | 28:c410a61238bb | 95 | float getLowAlert(void) { |
jmarkel44 | 28:c410a61238bb | 96 | return lowAlert; |
jmarkel44 | 28:c410a61238bb | 97 | } |
jmarkel44 | 28:c410a61238bb | 98 | float getHighFailsafe(void) { |
jmarkel44 | 28:c410a61238bb | 99 | return highFailsafe; |
jmarkel44 | 28:c410a61238bb | 100 | } |
jmarkel44 | 28:c410a61238bb | 101 | float getLowFailsafe(void) { |
jmarkel44 | 28:c410a61238bb | 102 | return lowFailsafe; |
jmarkel44 | 28:c410a61238bb | 103 | } |
jmarkel44 | 28:c410a61238bb | 104 | float getTol(void) { |
jmarkel44 | 28:c410a61238bb | 105 | return tol; |
jmarkel44 | 20:653923c2f37a | 106 | } |
jmarkel44 | 51:66b820f203a5 | 107 | State getCurrentState(void) { |
jmarkel44 | 51:66b820f203a5 | 108 | return currentState; |
jmarkel44 | 51:66b820f203a5 | 109 | } |
jmarkel44 | 5:5e77a1db4d45 | 110 | }; |
jmarkel44 | 5:5e77a1db4d45 | 111 | |
jmarkel44 | 51:66b820f203a5 | 112 | #endif |