Version FC
Dependencies: DmTftLibrary eeprom SX1280Lib filesystem mbed
Fork of MSNV2-Terminal_V1-5 by
DataBase.cpp@41:5a436163dddf, 2018-10-22 (annotated)
- Committer:
- FCH_31
- Date:
- Mon Oct 22 09:37:50 2018 +0000
- Revision:
- 41:5a436163dddf
- Parent:
- 20:b0281e8a375a
avec radio;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
FCH_31 | 8:cd489b7c49a0 | 1 | /* |
FCH_31 | 8:cd489b7c49a0 | 2 | * MISNet |
FCH_31 | 8:cd489b7c49a0 | 3 | * |
FCH_31 | 8:cd489b7c49a0 | 4 | * Frame: Gestionnaire de fabrication des messages et décodage des messages recus |
FCH_31 | 8:cd489b7c49a0 | 5 | * |
FCH_31 | 8:cd489b7c49a0 | 6 | * Created on: August 17, 2018 Author: Francis CHATAIN |
FCH_31 | 8:cd489b7c49a0 | 7 | * |
FCH_31 | 8:cd489b7c49a0 | 8 | */ |
FCH_31 | 8:cd489b7c49a0 | 9 | |
FCH_31 | 8:cd489b7c49a0 | 10 | // ===================================== Includes |
FCH_31 | 8:cd489b7c49a0 | 11 | |
patrick_duc | 13:5414193da1de | 12 | //#include "main.h" |
patrick_duc | 20:b0281e8a375a | 13 | #include "DataBase.hpp" |
patrick_duc | 20:b0281e8a375a | 14 | |
patrick_duc | 20:b0281e8a375a | 15 | |
patrick_duc | 20:b0281e8a375a | 16 | using namespace misnet; |
patrick_duc | 20:b0281e8a375a | 17 | |
FCH_31 | 8:cd489b7c49a0 | 18 | |
FCH_31 | 8:cd489b7c49a0 | 19 | // ===================================== Method of class |
FCH_31 | 8:cd489b7c49a0 | 20 | |
FCH_31 | 8:cd489b7c49a0 | 21 | |
FCH_31 | 8:cd489b7c49a0 | 22 | // ===================================== Constructor |
FCH_31 | 8:cd489b7c49a0 | 23 | DataBase::DataBase () {} |
FCH_31 | 10:1b37e3b41947 | 24 | DataBase::~DataBase () {} |
FCH_31 | 8:cd489b7c49a0 | 25 | |
FCH_31 | 8:cd489b7c49a0 | 26 | void DataBase::init () {} |
FCH_31 | 8:cd489b7c49a0 | 27 | |
FCH_31 | 8:cd489b7c49a0 | 28 | |
patrick_duc | 20:b0281e8a375a | 29 | #ifndef TEST_ENVIRONMENT |
FCH_31 | 8:cd489b7c49a0 | 30 | void DataBase::getRadioParameter (uint32_t &rfFrequency, |
FCH_31 | 8:cd489b7c49a0 | 31 | RadioLoRaBandwidths_t &loraBw, |
FCH_31 | 8:cd489b7c49a0 | 32 | RadioLoRaSpreadingFactors_t &loraSf , |
FCH_31 | 8:cd489b7c49a0 | 33 | int8_t &txOutputPower, |
FCH_31 | 8:cd489b7c49a0 | 34 | uint8_t &bufferSizeMax, |
patrick_duc | 20:b0281e8a375a | 35 | int16_t &terminal_heartbeat_period, |
patrick_duc | 20:b0281e8a375a | 36 | int16_t &payload_heartbeat_period) |
FCH_31 | 8:cd489b7c49a0 | 37 | { |
patrick_duc | 20:b0281e8a375a | 38 | rfFrequency = _rf_frequency ; |
patrick_duc | 20:b0281e8a375a | 39 | loraBw = _lora_bw ; |
patrick_duc | 20:b0281e8a375a | 40 | loraSf = _lora_sf ; |
patrick_duc | 20:b0281e8a375a | 41 | txOutputPower = _tx_output_power ; |
patrick_duc | 20:b0281e8a375a | 42 | bufferSizeMax = _buffer_size_max ; |
patrick_duc | 20:b0281e8a375a | 43 | terminal_heartbeat_period = _terminal_heartbeat_period; |
patrick_duc | 20:b0281e8a375a | 44 | payload_heartbeat_period = _payload_heartbeat_period; |
patrick_duc | 13:5414193da1de | 45 | } |
FCH_31 | 8:cd489b7c49a0 | 46 | |
patrick_duc | 13:5414193da1de | 47 | |
FCH_31 | 8:cd489b7c49a0 | 48 | void DataBase::setRadioParameter ( uint32_t rfFrequency, |
FCH_31 | 8:cd489b7c49a0 | 49 | RadioLoRaBandwidths_t loraBw, |
FCH_31 | 8:cd489b7c49a0 | 50 | RadioLoRaSpreadingFactors_t loraSf , |
FCH_31 | 8:cd489b7c49a0 | 51 | int8_t txOutputPower, |
FCH_31 | 8:cd489b7c49a0 | 52 | uint8_t bufferSizeMax, |
patrick_duc | 20:b0281e8a375a | 53 | int16_t terminal_heartbeat_period, |
patrick_duc | 20:b0281e8a375a | 54 | int16_t payload_heartbeat_period) |
FCH_31 | 8:cd489b7c49a0 | 55 | { |
patrick_duc | 20:b0281e8a375a | 56 | _rf_frequency = rfFrequency ; |
patrick_duc | 20:b0281e8a375a | 57 | _lora_bw = loraBw ; |
patrick_duc | 20:b0281e8a375a | 58 | _lora_sf = loraSf ; |
patrick_duc | 20:b0281e8a375a | 59 | _tx_output_power = txOutputPower ; |
patrick_duc | 20:b0281e8a375a | 60 | _buffer_size_max = bufferSizeMax ; |
patrick_duc | 20:b0281e8a375a | 61 | _terminal_heartbeat_period = terminal_heartbeat_period ; |
patrick_duc | 20:b0281e8a375a | 62 | _payload_heartbeat_period = payload_heartbeat_period ; |
patrick_duc | 20:b0281e8a375a | 63 | |
FCH_31 | 41:5a436163dddf | 64 | printf( "*** DTB *** setRadioParameter %u %d %d %d %d %d %d\r\n", _rf_frequency, _lora_bw, |
patrick_duc | 20:b0281e8a375a | 65 | _lora_sf, _tx_output_power, _buffer_size_max,_terminal_heartbeat_period, _payload_heartbeat_period); |
FCH_31 | 8:cd489b7c49a0 | 66 | } |
patrick_duc | 20:b0281e8a375a | 67 | #endif |
patrick_duc | 20:b0281e8a375a | 68 | |
FCH_31 | 8:cd489b7c49a0 | 69 | |
patrick_duc | 19:4b147d8f9164 | 70 | short DataBase::getNbService(Service::DEVICE_TYPE deviceType) { |
patrick_duc | 13:5414193da1de | 71 | short result = 0; |
FCH_31 | 8:cd489b7c49a0 | 72 | |
patrick_duc | 19:4b147d8f9164 | 73 | std::vector<Service*> channels = this->_payload->getServices(); |
patrick_duc | 13:5414193da1de | 74 | |
patrick_duc | 19:4b147d8f9164 | 75 | for(std::vector<Service*>::iterator it = channels.begin(); it != channels.end(); it++) { |
patrick_duc | 19:4b147d8f9164 | 76 | Service* channel = *it; |
patrick_duc | 13:5414193da1de | 77 | if (channel->getDeviceType() == deviceType) { |
patrick_duc | 13:5414193da1de | 78 | result++; |
patrick_duc | 13:5414193da1de | 79 | } |
patrick_duc | 13:5414193da1de | 80 | } |
patrick_duc | 13:5414193da1de | 81 | |
patrick_duc | 13:5414193da1de | 82 | return result; |
patrick_duc | 13:5414193da1de | 83 | } |
patrick_duc | 13:5414193da1de | 84 | |
patrick_duc | 20:b0281e8a375a | 85 | |
patrick_duc | 20:b0281e8a375a | 86 | Service::DEVICE_TYPE DataBase::getServiceType (short channel) { |
patrick_duc | 20:b0281e8a375a | 87 | return this->_payload->getServiceByRank(channel)->getDeviceType(); |
patrick_duc | 13:5414193da1de | 88 | } |
patrick_duc | 20:b0281e8a375a | 89 | |
patrick_duc | 20:b0281e8a375a | 90 | |
patrick_duc | 20:b0281e8a375a | 91 | std::list<CandidateComponent*> * DataBase::getCandidateSensorsList() { |
patrick_duc | 20:b0281e8a375a | 92 | std::list<CandidateComponent*> * result = new std::list<CandidateComponent*>(); |
patrick_duc | 20:b0281e8a375a | 93 | |
patrick_duc | 20:b0281e8a375a | 94 | CandidateComponent* candidateComponent = (CandidateComponent*) NULL; |
patrick_duc | 20:b0281e8a375a | 95 | |
patrick_duc | 20:b0281e8a375a | 96 | std::vector<Component*>::iterator componentIt = this->_payload->getComponents().begin(); |
patrick_duc | 20:b0281e8a375a | 97 | for (; componentIt != this->_payload->getComponents().end(); componentIt++) { |
patrick_duc | 20:b0281e8a375a | 98 | |
patrick_duc | 20:b0281e8a375a | 99 | bool activeSensor = false; |
patrick_duc | 20:b0281e8a375a | 100 | for(std::vector<Service*>::iterator serviceIt = (*componentIt)->getServices().begin(); |
patrick_duc | 20:b0281e8a375a | 101 | serviceIt != (*componentIt)->getServices().end(); |
patrick_duc | 20:b0281e8a375a | 102 | serviceIt++) { |
patrick_duc | 20:b0281e8a375a | 103 | |
patrick_duc | 20:b0281e8a375a | 104 | // Check that the service is enabled |
patrick_duc | 20:b0281e8a375a | 105 | if ((*serviceIt)->getState() == Service::ENABLED) { |
patrick_duc | 20:b0281e8a375a | 106 | |
patrick_duc | 20:b0281e8a375a | 107 | // Check that the subsampling rate matches this activation number |
patrick_duc | 20:b0281e8a375a | 108 | if ((*serviceIt)->processHeartbeat()) { |
patrick_duc | 20:b0281e8a375a | 109 | if (candidateComponent == (CandidateComponent*) NULL) { |
patrick_duc | 20:b0281e8a375a | 110 | candidateComponent = new CandidateComponent(*componentIt); |
patrick_duc | 20:b0281e8a375a | 111 | } |
patrick_duc | 20:b0281e8a375a | 112 | candidateComponent->addService(*serviceIt); |
patrick_duc | 20:b0281e8a375a | 113 | } |
patrick_duc | 20:b0281e8a375a | 114 | } |
patrick_duc | 20:b0281e8a375a | 115 | } |
patrick_duc | 20:b0281e8a375a | 116 | |
patrick_duc | 20:b0281e8a375a | 117 | if (candidateComponent != (CandidateComponent*) NULL) { |
patrick_duc | 20:b0281e8a375a | 118 | result->push_back(candidateComponent); |
patrick_duc | 20:b0281e8a375a | 119 | candidateComponent = (CandidateComponent*) NULL; |
patrick_duc | 20:b0281e8a375a | 120 | } |
patrick_duc | 20:b0281e8a375a | 121 | |
patrick_duc | 20:b0281e8a375a | 122 | } |
patrick_duc | 20:b0281e8a375a | 123 | |
patrick_duc | 20:b0281e8a375a | 124 | return result; |
patrick_duc | 20:b0281e8a375a | 125 | } |