Controller firmware for a mobile robot, having a K64F MCU on board. Please read README.md for details.
sensors.h@0:260ca1f1cba7, 2018-05-30 (annotated)
- Committer:
- dralisz82
- Date:
- Wed May 30 15:10:20 2018 +0000
- Revision:
- 0:260ca1f1cba7
Controller firmware for a mobile robot, having a K64F MCU on board.; ; See README.md for details;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dralisz82 | 0:260ca1f1cba7 | 1 | #ifndef sensors_H |
dralisz82 | 0:260ca1f1cba7 | 2 | #define sensors_H |
dralisz82 | 0:260ca1f1cba7 | 3 | |
dralisz82 | 0:260ca1f1cba7 | 4 | #include "mbed.h" |
dralisz82 | 0:260ca1f1cba7 | 5 | #include <FunctionPointer.h> |
dralisz82 | 0:260ca1f1cba7 | 6 | #define MAX_NUM_SENS 10 |
dralisz82 | 0:260ca1f1cba7 | 7 | #define SENS_VBATTS1 0 |
dralisz82 | 0:260ca1f1cba7 | 8 | #define SENS_VBATTS2 1 |
dralisz82 | 0:260ca1f1cba7 | 9 | #define SENS_VBATTS3 2 |
dralisz82 | 0:260ca1f1cba7 | 10 | #define SENS_VBATT 3 |
dralisz82 | 0:260ca1f1cba7 | 11 | #define SENS_VMOTOR 4 |
dralisz82 | 0:260ca1f1cba7 | 12 | #define SENS_VLOGIC 5 |
dralisz82 | 0:260ca1f1cba7 | 13 | |
dralisz82 | 0:260ca1f1cba7 | 14 | |
dralisz82 | 0:260ca1f1cba7 | 15 | class Sensors; |
dralisz82 | 0:260ca1f1cba7 | 16 | |
dralisz82 | 0:260ca1f1cba7 | 17 | class Sensor { |
dralisz82 | 0:260ca1f1cba7 | 18 | public: |
dralisz82 | 0:260ca1f1cba7 | 19 | Sensor(); |
dralisz82 | 0:260ca1f1cba7 | 20 | Sensor(char *sId, char *name, char *metric); |
dralisz82 | 0:260ca1f1cba7 | 21 | ~Sensor(); |
dralisz82 | 0:260ca1f1cba7 | 22 | void setId(char *sId); |
dralisz82 | 0:260ca1f1cba7 | 23 | void setName(char *name); |
dralisz82 | 0:260ca1f1cba7 | 24 | void setMetric(char *metric); |
dralisz82 | 0:260ca1f1cba7 | 25 | void setFunction(float (*function)(void) = 0); |
dralisz82 | 0:260ca1f1cba7 | 26 | char *getId(); |
dralisz82 | 0:260ca1f1cba7 | 27 | char *getName(); |
dralisz82 | 0:260ca1f1cba7 | 28 | char * getMetric(); |
dralisz82 | 0:260ca1f1cba7 | 29 | float readValue(); |
dralisz82 | 0:260ca1f1cba7 | 30 | |
dralisz82 | 0:260ca1f1cba7 | 31 | private: |
dralisz82 | 0:260ca1f1cba7 | 32 | char sId[10]; |
dralisz82 | 0:260ca1f1cba7 | 33 | char name[30]; |
dralisz82 | 0:260ca1f1cba7 | 34 | char metric[4]; // max 3 characters + terminating 0 |
dralisz82 | 0:260ca1f1cba7 | 35 | float (*function)(void); |
dralisz82 | 0:260ca1f1cba7 | 36 | }; |
dralisz82 | 0:260ca1f1cba7 | 37 | |
dralisz82 | 0:260ca1f1cba7 | 38 | class Sensors { |
dralisz82 | 0:260ca1f1cba7 | 39 | public: |
dralisz82 | 0:260ca1f1cba7 | 40 | Sensors(); |
dralisz82 | 0:260ca1f1cba7 | 41 | ~Sensors(); |
dralisz82 | 0:260ca1f1cba7 | 42 | Sensor* getSensor(char *sId); |
dralisz82 | 0:260ca1f1cba7 | 43 | AnalogIn* getAnalogIn(int aiId); |
dralisz82 | 0:260ca1f1cba7 | 44 | |
dralisz82 | 0:260ca1f1cba7 | 45 | private: |
dralisz82 | 0:260ca1f1cba7 | 46 | void createS1(); |
dralisz82 | 0:260ca1f1cba7 | 47 | void createS2(); |
dralisz82 | 0:260ca1f1cba7 | 48 | void createS3(); |
dralisz82 | 0:260ca1f1cba7 | 49 | void createVB(); |
dralisz82 | 0:260ca1f1cba7 | 50 | void createVM(); |
dralisz82 | 0:260ca1f1cba7 | 51 | void createVL(); |
dralisz82 | 0:260ca1f1cba7 | 52 | |
dralisz82 | 0:260ca1f1cba7 | 53 | Sensor sensArr[MAX_NUM_SENS]; |
dralisz82 | 0:260ca1f1cba7 | 54 | int sensNum; |
dralisz82 | 0:260ca1f1cba7 | 55 | |
dralisz82 | 0:260ca1f1cba7 | 56 | AnalogIn* analogInputs[6]; |
dralisz82 | 0:260ca1f1cba7 | 57 | }; |
dralisz82 | 0:260ca1f1cba7 | 58 | |
dralisz82 | 0:260ca1f1cba7 | 59 | #endif |