Version FC

Dependencies:   DmTftLibrary eeprom SX1280Lib filesystem mbed

Fork of MSNV2-Terminal_V1-5 by Francis CHATAIN

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?

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