diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2017-02-20 09:50:32 +0000 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2017-02-21 10:59:19 +0000 |
commit | c8a9ae83b95b3105717c58e390ba216567937772 (patch) | |
tree | 3bd5d543166474858b11f3039f140de20242bd3a /src/can_event_push.cpp | |
parent | 15250b2e51e8383a0df4b6e5a870c07e914d406d (diff) |
Fix: OBD2_PIDS array initialization
Change-Id: Ic2c297e4ff94a13872f066ca42ee42beb45451ca
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'src/can_event_push.cpp')
-rw-r--r-- | src/can_event_push.cpp | 39 |
1 files changed, 3 insertions, 36 deletions
diff --git a/src/can_event_push.cpp b/src/can_event_push.cpp index 3964f97c..d3f4cbd6 100644 --- a/src/can_event_push.cpp +++ b/src/can_event_push.cpp @@ -23,6 +23,7 @@ #include <afb/afb-binding.h> #include "can-utils.h" +#include "openxc-utils.hpp" #include "openxc.pb.h" #include "json-c/json.h" @@ -37,43 +38,9 @@ void can_event_push(can_bus_t& can_bus) if(v_message = can_bus->next_vehicle_message()) { s_message = get_simple_message(v_msg); - const auto& it_event = subscribed_signals.find(s_msg.name); + const auto& it_event = subscribed_signals.find(s_message.name); if(! it_event->end() && afb_event_is_valid(it_event->second)) - afb_event_push(it_event->second, jsonify_simple(s_msg)); + afb_event_push(it_event->second, jsonify_simple(s_message)); } } } - -void jsonify_DynamicField(const openxc_DynamicField& field, const json_object& value) -{ - if(field.has_numeric_value) - json_object_object_add(value, "value", json_object_new_double(field.numeric_value)); - else if(field.has_boolean_value) - json_object_object_add(value, "value", json_object_new_boolean(field.boolean_value)); - else if(field.has_string_value) - json_object_object_add(value, "value", json_object_new_string(field.string_value)); - - return value; -} - -/* Extract the simple message value from an openxc_VehicleMessage - * and return it, or null if there isn't. - */ -openxc_SimpleMessage get_simple_message(const openxc_VehicleMessage& v_msg) -{ - return v_msg.has_simple_message ? v_msg.simple_message : {0}; -} - -json_object jsonify_simple(const openxc_SimpleMessage& s_msg) -{ - json_object *json; - json = nullptr; - - if(s_msg->has_name) - { - json = json_object_new_object(); - json_object_object_add(json, "name", json_object_new_string(s_msg->name)); - jsonify_DynamicField(&s_msg->value, json); - } - return json; -}
\ No newline at end of file |