Version FC

Dependencies:   DmTftLibrary eeprom SX1280Lib filesystem mbed

Fork of MSNV2-Terminal_V1-5 by Francis CHATAIN

Committer:
patrick_duc
Date:
Tue Sep 04 13:34:36 2018 +0000
Revision:
21:8524d815c587
Parent:
20:b0281e8a375a
Child:
22:a5929d3668b6
Ajout de la fonctionnalit? de d?termination si la valeur acquise sur un capteur doit ?tre envoy?e ? la gateway.; Ajout d'une classe Value qui encapsule les valeurs g?n?riques (pr?c?demment GENERIC_VALUE).

Who changed what in which revision?

UserRevisionLine numberNew contents of line
patrick_duc 19:4b147d8f9164 1 #include "Service.hpp"
patrick_duc 13:5414193da1de 2
patrick_duc 20:b0281e8a375a 3 using namespace misnet;
patrick_duc 20:b0281e8a375a 4
patrick_duc 20:b0281e8a375a 5 Service::Service(DEVICE_TYPE type,
patrick_duc 20:b0281e8a375a 6 MISNET_CODE misnet_code,
patrick_duc 20:b0281e8a375a 7 STATE state,
patrick_duc 20:b0281e8a375a 8 ACCESS_TYPE access_type,
patrick_duc 20:b0281e8a375a 9 REQUEST_MODE request_mode,
patrick_duc 20:b0281e8a375a 10 UP_MODE up_mode,
patrick_duc 20:b0281e8a375a 11 ACCESS_PIN access_pins[6],
patrick_duc 20:b0281e8a375a 12 uint32_t subsample_rate,
patrick_duc 20:b0281e8a375a 13 ACTION action,
patrick_duc 20:b0281e8a375a 14 OUTPUT_MODE output_mode,
patrick_duc 20:b0281e8a375a 15 std::string comment)
patrick_duc 20:b0281e8a375a 16 : device_type(type), misnet_code(misnet_code), state(state),
patrick_duc 20:b0281e8a375a 17 access_type(access_type), request_mode(request_mode),
patrick_duc 20:b0281e8a375a 18 up_mode(up_mode), action(action), output_mode(output_mode),
patrick_duc 20:b0281e8a375a 19 comment(comment), subsample_rate(subsample_rate), activation_nb(0) {
patrick_duc 13:5414193da1de 20 for (int i = 0; i < 6; i++) {
patrick_duc 13:5414193da1de 21 this->access_pins[i] = access_pins[i];
patrick_duc 13:5414193da1de 22 }
patrick_duc 20:b0281e8a375a 23 }
patrick_duc 20:b0281e8a375a 24
patrick_duc 20:b0281e8a375a 25
patrick_duc 20:b0281e8a375a 26 bool Service::processHeartbeat() {
patrick_duc 20:b0281e8a375a 27 if (this->readyToSample()) {
patrick_duc 20:b0281e8a375a 28 //DEBUG("\tReady to sample !\n");
patrick_duc 20:b0281e8a375a 29 this->activation_nb = 0;
patrick_duc 20:b0281e8a375a 30 return true;
patrick_duc 20:b0281e8a375a 31 }
patrick_duc 20:b0281e8a375a 32
patrick_duc 20:b0281e8a375a 33 //DEBUG("\tNot ready to sample...\n");
patrick_duc 20:b0281e8a375a 34 ++(this->activation_nb);
patrick_duc 20:b0281e8a375a 35
patrick_duc 20:b0281e8a375a 36 return false;
patrick_duc 13:5414193da1de 37 }
patrick_duc 13:5414193da1de 38
patrick_duc 20:b0281e8a375a 39
patrick_duc 21:8524d815c587 40 bool Service::valueToBeSentToGateway() {
patrick_duc 21:8524d815c587 41 if (this->up_mode == Service::BY_RANGE) {
patrick_duc 21:8524d815c587 42 return ((this->low_threshold_limit.compareTo(this->current_value) > 0)
patrick_duc 21:8524d815c587 43 || (this->current_value.compareTo(this->high_threshold_limit) > 0));
patrick_duc 21:8524d815c587 44 }
patrick_duc 20:b0281e8a375a 45
patrick_duc 21:8524d815c587 46 if (this->up_mode == Service::BY_DELTA) {
patrick_duc 21:8524d815c587 47 return this->current_value.isAbsoluteDifferenceValueGreatherThanDelta(this->previous_value, this->delta_threshold);
patrick_duc 21:8524d815c587 48 }
patrick_duc 20:b0281e8a375a 49
patrick_duc 21:8524d815c587 50 return (this->current_value.isDifferentFrom(this->previous_value));
patrick_duc 13:5414193da1de 51 }