Erick / Mbed 2 deprecated ICE_BLE_TEST

Dependencies:   NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed

Fork of ICE by Erick

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?

UserRevisionLine numberNew 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