diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2017-02-17 17:04:47 +0000 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2017-02-20 11:14:55 +0000 |
commit | f97e5f6d0b15df8fe8c7a4621e40c6a23bbac137 (patch) | |
tree | 5616f14b81208f6a3d0bab04ae6554326d72a91f /src/can_event_push.cpp | |
parent | d9237e07858fb243eb35f78ded3664aec69f524d (diff) |
Change hpp include file directive
Change-Id: I1df7ab41b19a2c065d8ed477115e21e0ded8659f
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 | 48 |
1 files changed, 23 insertions, 25 deletions
diff --git a/src/can_event_push.cpp b/src/can_event_push.cpp index a59aba75..3964f97c 100644 --- a/src/can_event_push.cpp +++ b/src/can_event_push.cpp @@ -26,10 +26,10 @@ #include "openxc.pb.h" #include "json-c/json.h" -void can_event_push(can_bus_t *can_bus) +void can_event_push(can_bus_t& can_bus) { - openxc_VehicleMessage *v_message; - openxc_SimpleMessage *s_message; + openxc_VehicleMessage v_message; + openxc_SimpleMessage s_message; iterator it_event; while(true) @@ -37,20 +37,21 @@ void can_event_push(can_bus_t *can_bus) if(v_message = can_bus->next_vehicle_message()) { s_message = get_simple_message(v_msg); - it_event = event_map.find(s_msg->name); - afb_event_push(it_event->second, jsonify_simple(s_msg)); + const auto& it_event = subscribed_signals.find(s_msg.name); + if(! it_event->end() && afb_event_is_valid(it_event->second)) + afb_event_push(it_event->second, jsonify_simple(s_msg)); } } } -void jsonify_DynamicField(openxc_DynamicField *field, json_object *value) +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)); + 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; } @@ -58,24 +59,21 @@ void jsonify_DynamicField(openxc_DynamicField *field, json_object *value) /* Extract the simple message value from an openxc_VehicleMessage * and return it, or null if there isn't. */ -openxc_SimpleMessage* get_simple_message(openxc_VehicleMessage *v_msg) +openxc_SimpleMessage get_simple_message(const openxc_VehicleMessage& v_msg) { - if(v_msg->has_simple_message) - return v_msg->simple_message; - - return nullptr; + return v_msg.has_simple_message ? v_msg.simple_message : {0}; } -json_object* jsonify_simple(openxc_SimpleMessage *s_msg) +json_object jsonify_simple(const openxc_SimpleMessage& s_msg) { json_object *json; - json = json_object_new_object(); - - if(!s_msg->has_name) - return nullptr; - - json_object_object_add(json, "name", json_object_new_string(s_msg->name)); - jsonify_DynamicField(&s_msg->value, 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 |