Controller firmware for a mobile robot, having a K64F MCU on board. Please read README.md for details.

Dependents:   robotkocsi_OS

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?

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