![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Version FC
Dependencies: DmTftLibrary eeprom SX1280Lib filesystem mbed
Fork of MSNV2-Terminal_V1-5 by
Service.cpp@39:13e66d087ae9, 2018-10-19 (annotated)
- 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?
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; |
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 | } |