Version FC
Dependencies: DmTftLibrary eeprom SX1280Lib filesystem mbed
Fork of MSNV2-Terminal_V1-5 by
DataBase.hpp@20:b0281e8a375a, 2018-09-02 (annotated)
- Committer:
- patrick_duc
- Date:
- Sun Sep 02 22:24:14 2018 +0000
- Revision:
- 20:b0281e8a375a
- Child:
- 33:6ae45cba7958
Gestion de la liste des composants candidats pour ?chantillonnage et des valeurs lues sur les capteurs.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
patrick_duc | 20:b0281e8a375a | 1 | /* |
patrick_duc | 20:b0281e8a375a | 2 | * MISNet |
patrick_duc | 20:b0281e8a375a | 3 | * |
patrick_duc | 20:b0281e8a375a | 4 | * DataBase: Contient les données du terminal |
patrick_duc | 20:b0281e8a375a | 5 | * |
patrick_duc | 20:b0281e8a375a | 6 | * Created on: August 17, 2018 Author: Francis CHATAIN |
patrick_duc | 20:b0281e8a375a | 7 | * |
patrick_duc | 20:b0281e8a375a | 8 | */ |
patrick_duc | 20:b0281e8a375a | 9 | |
patrick_duc | 20:b0281e8a375a | 10 | #ifndef __DATABASE_HPP__ |
patrick_duc | 20:b0281e8a375a | 11 | #define __DATABASE_HPP__ |
patrick_duc | 20:b0281e8a375a | 12 | |
patrick_duc | 20:b0281e8a375a | 13 | #include "Context.h" |
patrick_duc | 20:b0281e8a375a | 14 | |
patrick_duc | 20:b0281e8a375a | 15 | #ifndef TEST_ENVIRONMENT |
patrick_duc | 20:b0281e8a375a | 16 | #include "mbed.h" |
patrick_duc | 20:b0281e8a375a | 17 | #include "sx1280-hal.h" |
patrick_duc | 20:b0281e8a375a | 18 | #include <string> |
patrick_duc | 20:b0281e8a375a | 19 | #include <list> |
patrick_duc | 20:b0281e8a375a | 20 | #endif |
patrick_duc | 20:b0281e8a375a | 21 | |
patrick_duc | 20:b0281e8a375a | 22 | #include "main.h" |
patrick_duc | 20:b0281e8a375a | 23 | #include "Service.hpp" |
patrick_duc | 20:b0281e8a375a | 24 | #include "Component.hpp" |
patrick_duc | 20:b0281e8a375a | 25 | #include "CandidateComponent.hpp" |
patrick_duc | 20:b0281e8a375a | 26 | #include "Payload.hpp" |
patrick_duc | 20:b0281e8a375a | 27 | |
patrick_duc | 20:b0281e8a375a | 28 | |
patrick_duc | 20:b0281e8a375a | 29 | // ======================================= Define |
patrick_duc | 20:b0281e8a375a | 30 | |
patrick_duc | 20:b0281e8a375a | 31 | #define MODE_STO 0x0000 // P2P Smart Tool |
patrick_duc | 20:b0281e8a375a | 32 | #define MODE_GEN 0x4000 // P2P Generic |
patrick_duc | 20:b0281e8a375a | 33 | #define MODE_IOT 0x8000 // STAR IoT mode |
patrick_duc | 20:b0281e8a375a | 34 | #define MODE_BCA 0xC000 // STAR Broacast mode |
patrick_duc | 20:b0281e8a375a | 35 | |
patrick_duc | 20:b0281e8a375a | 36 | |
patrick_duc | 20:b0281e8a375a | 37 | namespace misnet { |
patrick_duc | 20:b0281e8a375a | 38 | class DataBase; |
patrick_duc | 20:b0281e8a375a | 39 | } |
patrick_duc | 20:b0281e8a375a | 40 | |
patrick_duc | 20:b0281e8a375a | 41 | // ======================================= Class content |
patrick_duc | 20:b0281e8a375a | 42 | class misnet::DataBase |
patrick_duc | 20:b0281e8a375a | 43 | { |
patrick_duc | 20:b0281e8a375a | 44 | |
patrick_duc | 20:b0281e8a375a | 45 | // Public variables /methods |
patrick_duc | 20:b0281e8a375a | 46 | |
patrick_duc | 20:b0281e8a375a | 47 | public: |
patrick_duc | 20:b0281e8a375a | 48 | DataBase (); |
patrick_duc | 20:b0281e8a375a | 49 | ~DataBase (); |
patrick_duc | 20:b0281e8a375a | 50 | |
patrick_duc | 20:b0281e8a375a | 51 | void init () ; |
patrick_duc | 20:b0281e8a375a | 52 | |
patrick_duc | 20:b0281e8a375a | 53 | short getNbService (Service::DEVICE_TYPE cdt); // return the number of declared channels for the payload |
patrick_duc | 20:b0281e8a375a | 54 | Service::DEVICE_TYPE getServiceType (short NumService) ; // Get Service type |
patrick_duc | 20:b0281e8a375a | 55 | |
patrick_duc | 20:b0281e8a375a | 56 | |
patrick_duc | 20:b0281e8a375a | 57 | void SetSensorState (short channel_rank, Service::STATE sensorState) ; // Set Sensor State (Disable/Enable) |
patrick_duc | 20:b0281e8a375a | 58 | Service::STATE GetSensorState (short channel_rank) ; // Get Sensor State (Disable/Enable) know if the device shall requested |
patrick_duc | 20:b0281e8a375a | 59 | |
patrick_duc | 20:b0281e8a375a | 60 | void SetSensorValue (uint8_t value) ; // Set Sensor Value + compute value before storage |
patrick_duc | 20:b0281e8a375a | 61 | uint8_t GetSensorMessage (short channel_rank) ; // Get Sensor Message (False si no change no threahold, response formated) |
patrick_duc | 20:b0281e8a375a | 62 | |
patrick_duc | 20:b0281e8a375a | 63 | |
patrick_duc | 20:b0281e8a375a | 64 | short getNbActuator () ; |
patrick_duc | 20:b0281e8a375a | 65 | void SetActuatorState () ; |
patrick_duc | 20:b0281e8a375a | 66 | Service::STATE GetActuatorState (short actuator_rank) ; |
patrick_duc | 20:b0281e8a375a | 67 | |
patrick_duc | 20:b0281e8a375a | 68 | |
patrick_duc | 20:b0281e8a375a | 69 | // =============================================================== Radio Parameter (getter/setter) |
patrick_duc | 20:b0281e8a375a | 70 | |
patrick_duc | 20:b0281e8a375a | 71 | |
patrick_duc | 20:b0281e8a375a | 72 | #ifndef TEST_ENVIRONMENT |
patrick_duc | 20:b0281e8a375a | 73 | void getRadioParameter ( uint32_t &rfFrequency, |
patrick_duc | 20:b0281e8a375a | 74 | RadioLoRaBandwidths_t &loraBw, |
patrick_duc | 20:b0281e8a375a | 75 | RadioLoRaSpreadingFactors_t &loraSf , |
patrick_duc | 20:b0281e8a375a | 76 | int8_t &txOutputPower, |
patrick_duc | 20:b0281e8a375a | 77 | uint8_t &bufferSizeMax, |
patrick_duc | 20:b0281e8a375a | 78 | int16_t &terminal_heartbeat_period, |
patrick_duc | 20:b0281e8a375a | 79 | int16_t &payload_heartbeat_period); |
patrick_duc | 20:b0281e8a375a | 80 | |
patrick_duc | 20:b0281e8a375a | 81 | void setRadioParameter ( uint32_t rfFrequency, |
patrick_duc | 20:b0281e8a375a | 82 | RadioLoRaBandwidths_t loraBw, |
patrick_duc | 20:b0281e8a375a | 83 | RadioLoRaSpreadingFactors_t loraSf , |
patrick_duc | 20:b0281e8a375a | 84 | int8_t txOutputPower, |
patrick_duc | 20:b0281e8a375a | 85 | uint8_t ufferSizeMax, |
patrick_duc | 20:b0281e8a375a | 86 | int16_t terminal_heartbeat_period, |
patrick_duc | 20:b0281e8a375a | 87 | int16_t payload_heartbeat_period); |
patrick_duc | 20:b0281e8a375a | 88 | #endif |
patrick_duc | 20:b0281e8a375a | 89 | |
patrick_duc | 20:b0281e8a375a | 90 | void setPayload(Payload* payload) { |
patrick_duc | 20:b0281e8a375a | 91 | this->_payload = payload; |
patrick_duc | 20:b0281e8a375a | 92 | } |
patrick_duc | 20:b0281e8a375a | 93 | |
patrick_duc | 20:b0281e8a375a | 94 | Payload* getPayload() { |
patrick_duc | 20:b0281e8a375a | 95 | return this->_payload; |
patrick_duc | 20:b0281e8a375a | 96 | } |
patrick_duc | 20:b0281e8a375a | 97 | |
patrick_duc | 20:b0281e8a375a | 98 | std::list<CandidateComponent*> * getCandidateSensorsList(); |
patrick_duc | 20:b0281e8a375a | 99 | |
patrick_duc | 20:b0281e8a375a | 100 | |
patrick_duc | 20:b0281e8a375a | 101 | // Private variables /methods |
patrick_duc | 20:b0281e8a375a | 102 | private: |
patrick_duc | 20:b0281e8a375a | 103 | #ifndef TEST_ENVIRONMENT |
patrick_duc | 20:b0281e8a375a | 104 | uint32_t _rf_frequency ; // HzNominal frequency |
patrick_duc | 20:b0281e8a375a | 105 | RadioLoRaBandwidths_t _lora_bw ; /* 200; 400; 800; 1600 */ |
patrick_duc | 20:b0281e8a375a | 106 | RadioLoRaSpreadingFactors_t _lora_sf ; /* SF5; SF6=; SF7; SF8 ; SF9; SF10; SF11 ; SF12 */ |
patrick_duc | 20:b0281e8a375a | 107 | int8_t _tx_output_power ; /* Output power in dBm [-18..+13] dBm */ |
patrick_duc | 20:b0281e8a375a | 108 | uint8_t _buffer_size_max ; /* Payload size max */ |
patrick_duc | 20:b0281e8a375a | 109 | #endif |
patrick_duc | 20:b0281e8a375a | 110 | uint16_t _terminal_heartbeat_period; // Terminal heartbeat period |
patrick_duc | 20:b0281e8a375a | 111 | uint16_t _payload_heartbeat_period; // Sensors' scan period |
patrick_duc | 20:b0281e8a375a | 112 | misnet::Payload* _payload ; // Payload definition |
patrick_duc | 20:b0281e8a375a | 113 | |
patrick_duc | 20:b0281e8a375a | 114 | |
patrick_duc | 20:b0281e8a375a | 115 | // Protected variable /method |
patrick_duc | 20:b0281e8a375a | 116 | protected: |
patrick_duc | 20:b0281e8a375a | 117 | |
patrick_duc | 20:b0281e8a375a | 118 | } ; |
patrick_duc | 20:b0281e8a375a | 119 | |
patrick_duc | 20:b0281e8a375a | 120 | #endif // __DATABASE_HPP__ |