Version FC

Dependencies:   DmTftLibrary eeprom SX1280Lib filesystem mbed

Fork of MSNV2-Terminal_V1-5 by Francis CHATAIN

Committer:
patrick_duc
Date:
Fri Oct 19 15:08:35 2018 +0000
Branch:
Integration
Revision:
39:13e66d087ae9
Parent:
32:3bef9b81f639
Suite d'int?gration (ne compile pas encore).

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