Version FC
Dependencies: DmTftLibrary eeprom SX1280Lib filesystem mbed
Fork of MSNV2-Terminal_V1-5 by
Controller.hpp@41:5a436163dddf, 2018-10-22 (annotated)
- Committer:
- FCH_31
- Date:
- Mon Oct 22 09:37:50 2018 +0000
- Revision:
- 41:5a436163dddf
- Parent:
- 24:92c30dabfda4
avec radio;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
patrick_duc | 21:8524d815c587 | 1 | /* |
patrick_duc | 24:92c30dabfda4 | 2 | * Controller.hpp |
patrick_duc | 21:8524d815c587 | 3 | * |
patrick_duc | 24:92c30dabfda4 | 4 | * Created on: August 18, 2018 |
patrick_duc | 24:92c30dabfda4 | 5 | * Author: Francis Chatain |
patrick_duc | 21:8524d815c587 | 6 | */ |
patrick_duc | 21:8524d815c587 | 7 | |
patrick_duc | 21:8524d815c587 | 8 | #ifndef __CONTROLLER_HPP__ |
patrick_duc | 21:8524d815c587 | 9 | #define __CONTROLLER_HPP__ |
patrick_duc | 21:8524d815c587 | 10 | |
patrick_duc | 21:8524d815c587 | 11 | #include "Context.h" |
patrick_duc | 21:8524d815c587 | 12 | |
patrick_duc | 21:8524d815c587 | 13 | #ifndef TEST_ENVIRONMENT |
patrick_duc | 21:8524d815c587 | 14 | #include "mbed.h" |
patrick_duc | 21:8524d815c587 | 15 | #include "main.h" |
patrick_duc | 21:8524d815c587 | 16 | #include "MessageFactory.hpp" |
patrick_duc | 21:8524d815c587 | 17 | #include "Tftlcd.h" |
patrick_duc | 21:8524d815c587 | 18 | #include "sx1280-hal.h" |
patrick_duc | 21:8524d815c587 | 19 | #endif |
patrick_duc | 21:8524d815c587 | 20 | |
patrick_duc | 21:8524d815c587 | 21 | #include "DataBase.hpp" |
patrick_duc | 21:8524d815c587 | 22 | |
patrick_duc | 21:8524d815c587 | 23 | |
FCH_31 | 41:5a436163dddf | 24 | |
patrick_duc | 21:8524d815c587 | 25 | namespace misnet { |
patrick_duc | 21:8524d815c587 | 26 | class Controller; |
patrick_duc | 21:8524d815c587 | 27 | } |
patrick_duc | 21:8524d815c587 | 28 | |
FCH_31 | 41:5a436163dddf | 29 | // A deplacer ... |
FCH_31 | 41:5a436163dddf | 30 | typedef struct { |
FCH_31 | 41:5a436163dddf | 31 | uint8_t addrType ; // Smart Tool/ Gen / Iot/ Asset |
FCH_31 | 41:5a436163dddf | 32 | uint16_t terminalAddr ; // |
FCH_31 | 41:5a436163dddf | 33 | uint8_t subnetAddr ; // |
FCH_31 | 41:5a436163dddf | 34 | uint8_t raw[2] ; // Raw value content Type and Terminal/Network id |
FCH_31 | 41:5a436163dddf | 35 | // TODO Finish coding raw value |
FCH_31 | 41:5a436163dddf | 36 | } ModeParameter ; |
FCH_31 | 41:5a436163dddf | 37 | |
FCH_31 | 41:5a436163dddf | 38 | |
FCH_31 | 41:5a436163dddf | 39 | |
FCH_31 | 41:5a436163dddf | 40 | #define SMART_TOOL_MODE 0x00 |
FCH_31 | 41:5a436163dddf | 41 | #define GENERIC_MODE 0x40 |
FCH_31 | 41:5a436163dddf | 42 | #define IOT_MODE 0x80 |
FCH_31 | 41:5a436163dddf | 43 | #define BROADCAST_MODE 0xC0 |
FCH_31 | 41:5a436163dddf | 44 | |
FCH_31 | 41:5a436163dddf | 45 | |
FCH_31 | 41:5a436163dddf | 46 | |
patrick_duc | 21:8524d815c587 | 47 | |
patrick_duc | 21:8524d815c587 | 48 | class misnet::Controller { |
patrick_duc | 24:92c30dabfda4 | 49 | |
patrick_duc | 24:92c30dabfda4 | 50 | public: |
patrick_duc | 24:92c30dabfda4 | 51 | // Terminal type |
patrick_duc | 24:92c30dabfda4 | 52 | enum TERMINAL_TYPE { |
patrick_duc | 24:92c30dabfda4 | 53 | SMART_TOOL = 0, |
patrick_duc | 24:92c30dabfda4 | 54 | GENERIC = 1, |
patrick_duc | 24:92c30dabfda4 | 55 | IOT = 2, |
patrick_duc | 24:92c30dabfda4 | 56 | BROADCAST = 3 |
patrick_duc | 24:92c30dabfda4 | 57 | }; |
patrick_duc | 24:92c30dabfda4 | 58 | |
patrick_duc | 24:92c30dabfda4 | 59 | Controller (); |
patrick_duc | 24:92c30dabfda4 | 60 | virtual ~Controller (); |
patrick_duc | 21:8524d815c587 | 61 | |
patrick_duc | 21:8524d815c587 | 62 | #ifndef TEST_ENVIRONMENT |
patrick_duc | 24:92c30dabfda4 | 63 | // @brief Get timer of scheduling mode |
patrick_duc | 24:92c30dabfda4 | 64 | void getScheduling (uint16_t &TimerPayload, uint16_t &TimerGoodhealth, uint16_t &TimerSynchro, uint16_t &TimerListening ); |
patrick_duc | 21:8524d815c587 | 65 | |
patrick_duc | 24:92c30dabfda4 | 66 | void start (); // @brief Start the Controller |
patrick_duc | 24:92c30dabfda4 | 67 | void manageSensors (); // @brief |
patrick_duc | 24:92c30dabfda4 | 68 | void manageGoodhealth (); // @brief |
patrick_duc | 24:92c30dabfda4 | 69 | void manageSynchro (); // @brief |
patrick_duc | 24:92c30dabfda4 | 70 | void manageConfiguration (); // @brief |
patrick_duc | 24:92c30dabfda4 | 71 | void manageListening (); // @brief |
patrick_duc | 21:8524d815c587 | 72 | #endif |
patrick_duc | 21:8524d815c587 | 73 | |
patrick_duc | 21:8524d815c587 | 74 | |
patrick_duc | 24:92c30dabfda4 | 75 | private: |
patrick_duc | 21:8524d815c587 | 76 | #ifndef TEST_ENVIRONMENT |
patrick_duc | 24:92c30dabfda4 | 77 | RawSerial * debugSerial ; // Serial Instance |
patrick_duc | 24:92c30dabfda4 | 78 | |
patrick_duc | 24:92c30dabfda4 | 79 | // BME280* bme280; Examples |
patrick_duc | 24:92c30dabfda4 | 80 | |
patrick_duc | 24:92c30dabfda4 | 81 | void initInterfaces (); // @brief Initializes all Interfaces such as I2C, UART and a Debug Serial via USB |
patrick_duc | 24:92c30dabfda4 | 82 | void readMemory (); // @brief Read memory to know the list of sensor availables Initializes the Database |
patrick_duc | 24:92c30dabfda4 | 83 | |
patrick_duc | 24:92c30dabfda4 | 84 | void initSensors (); // @brief Initializes (builds) all Sensors in their specific modes |
patrick_duc | 24:92c30dabfda4 | 85 | void readSensors (); // @brief Request the sensors according to they SensorMode specific parameter |
patrick_duc | 21:8524d815c587 | 86 | |
patrick_duc | 24:92c30dabfda4 | 87 | void initActuators (); // @brief Initializes (builds) all Actuator in their specific modes |
patrick_duc | 24:92c30dabfda4 | 88 | void writeActuators (); // @brief Request the Actuators according to they ActuatorrMode specific parameters |
patrick_duc | 24:92c30dabfda4 | 89 | |
patrick_duc | 24:92c30dabfda4 | 90 | void sendMessage (); // @brief Send Message |
patrick_duc | 21:8524d815c587 | 91 | #endif |
patrick_duc | 21:8524d815c587 | 92 | |
patrick_duc | 21:8524d815c587 | 93 | }; |
patrick_duc | 21:8524d815c587 | 94 | |
patrick_duc | 21:8524d815c587 | 95 | #endif // CONTROLLER_HPP__ |