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:
32:3bef9b81f639
avec radio;

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;
lo 32:3bef9b81f639 4
FCH_31 41:5a436163dddf 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 24:92c30dabfda4 12 uint32_t subsample_rate,
patrick_duc 24:92c30dabfda4 13 Value& delta_threshold,
patrick_duc 24:92c30dabfda4 14 Value& low_threshold_limit,
patrick_duc 24:92c30dabfda4 15 Value& high_threshold_limit,
patrick_duc 20:b0281e8a375a 16 ACTION action,
patrick_duc 20:b0281e8a375a 17 OUTPUT_MODE output_mode,
patrick_duc 20:b0281e8a375a 18 std::string comment)
patrick_duc 20:b0281e8a375a 19 : device_type(type), misnet_code(misnet_code), state(state),
patrick_duc 20:b0281e8a375a 20 access_type(access_type), request_mode(request_mode),
patrick_duc 24:92c30dabfda4 21 up_mode(up_mode), subsample_rate(subsample_rate), delta_threshold(delta_threshold),
patrick_duc 24:92c30dabfda4 22 low_threshold_limit(low_threshold_limit), high_threshold_limit(high_threshold_limit),
patrick_duc 24:92c30dabfda4 23 action(action), output_mode(output_mode),
patrick_duc 24:92c30dabfda4 24 comment(comment), activation_nb(0) {
patrick_duc 13:5414193da1de 25 for (int i = 0; i < 6; i++) {
patrick_duc 13:5414193da1de 26 this->access_pins[i] = access_pins[i];
patrick_duc 13:5414193da1de 27 }
patrick_duc 24:92c30dabfda4 28
patrick_duc 24:92c30dabfda4 29 this->current_value._value.type = Value::NOT_SET;
patrick_duc 24:92c30dabfda4 30 this->previous_value._value.type = Value::NOT_SET;
patrick_duc 20:b0281e8a375a 31 }
lo 32:3bef9b81f639 32
patrick_duc 20:b0281e8a375a 33
patrick_duc 20:b0281e8a375a 34 bool Service::processHeartbeat() {
patrick_duc 20:b0281e8a375a 35 if (this->readyToSample()) {
patrick_duc 20:b0281e8a375a 36 //DEBUG("\tReady to sample !\n");
patrick_duc 20:b0281e8a375a 37 this->activation_nb = 0;
patrick_duc 20:b0281e8a375a 38 return true;
patrick_duc 20:b0281e8a375a 39 }
patrick_duc 20:b0281e8a375a 40
patrick_duc 20:b0281e8a375a 41 //DEBUG("\tNot ready to sample...\n");
patrick_duc 20:b0281e8a375a 42 ++(this->activation_nb);
patrick_duc 20:b0281e8a375a 43
patrick_duc 20:b0281e8a375a 44 return false;
patrick_duc 13:5414193da1de 45 }
patrick_duc 13:5414193da1de 46
patrick_duc 20:b0281e8a375a 47
patrick_duc 21:8524d815c587 48 bool Service::valueToBeSentToGateway() {
patrick_duc 21:8524d815c587 49 if (this->up_mode == Service::BY_RANGE) {
patrick_duc 24:92c30dabfda4 50 DEBUG("About to compare value %s to low limit (%s) and high limit (%s)\n",
patrick_duc 24:92c30dabfda4 51 this->current_value.toString().c_str(), this->low_threshold_limit.toString().c_str(),
patrick_duc 24:92c30dabfda4 52 this->high_threshold_limit.toString().c_str());
patrick_duc 21:8524d815c587 53 return ((this->low_threshold_limit.compareTo(this->current_value) > 0)
patrick_duc 21:8524d815c587 54 || (this->current_value.compareTo(this->high_threshold_limit) > 0));
patrick_duc 21:8524d815c587 55 }
patrick_duc 20:b0281e8a375a 56
patrick_duc 21:8524d815c587 57 if (this->up_mode == Service::BY_DELTA) {
patrick_duc 22:a5929d3668b6 58 return this->current_value.isAbsoluteDifferenceValueGreaterThanDelta(this->previous_value, this->delta_threshold);
patrick_duc 21:8524d815c587 59 }
patrick_duc 20:b0281e8a375a 60
patrick_duc 21:8524d815c587 61 return (this->current_value.isDifferentFrom(this->previous_value));
patrick_duc 13:5414193da1de 62 }