From: Romain Forlot Date: Thu, 1 Jun 2017 16:18:33 +0000 (+0200) Subject: Implement minimum and maximum subscription filters X-Git-Tag: Renesas_delivery_Q2~42 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=5b992c19e04ccb3c4ba0b3314fd4152a9919d98c;p=apps%2Flow-level-can-service.git Implement minimum and maximum subscription filters Change-Id: I6b027cdb37e425e185b8d2278ae775f857ff96bc Signed-off-by: Romain Forlot --- diff --git a/CAN-binder/low-can-binding/can/can-bus.cpp b/CAN-binder/low-can-binding/can/can-bus.cpp index cc0a3d6..9ee649c 100644 --- a/CAN-binder/low-can-binding/can/can-bus.cpp +++ b/CAN-binder/low-can-binding/can/can-bus.cpp @@ -47,11 +47,15 @@ can_bus_t::can_bus_t(utils::config_parser_t conf_file) bool can_bus_t::apply_filter(const openxc_VehicleMessage& vehicle_message, std::shared_ptr can_subscription) { + bool send = false; if(is_valid(vehicle_message)) { - return true; + float min = std::isnan(can_subscription->get_min()) ? -INFINITY : can_subscription->get_min(); + float max = std::isnan(can_subscription->get_max()) ? INFINITY : can_subscription->get_max(); + double value = get_numerical_from_DynamicField(vehicle_message); + send = (value < min && value > max) ? false : true; } - return false; + return send; } /// @brief Will make the decoding operation on a classic CAN message. It will not