Version FC

Dependencies:   DmTftLibrary eeprom SX1280Lib filesystem mbed

Fork of MSNV2-Terminal_V1-5 by Francis CHATAIN

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?

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