Version FC
Dependencies: DmTftLibrary eeprom SX1280Lib filesystem mbed
Fork of MSNV2-Terminal_V1-5 by
Service.cpp@21:8524d815c587, 2018-09-04 (annotated)
- 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?
User | Revision | Line number | New 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 | } |