summaryrefslogtreecommitdiffstats
path: root/low-can-binding/utils
diff options
context:
space:
mode:
Diffstat (limited to 'low-can-binding/utils')
-rw-r--r--low-can-binding/utils/openxc-utils.cpp25
-rw-r--r--low-can-binding/utils/openxc-utils.hpp4
2 files changed, 28 insertions, 1 deletions
diff --git a/low-can-binding/utils/openxc-utils.cpp b/low-can-binding/utils/openxc-utils.cpp
index 3b404f09..35b7d9c9 100644
--- a/low-can-binding/utils/openxc-utils.cpp
+++ b/low-can-binding/utils/openxc-utils.cpp
@@ -349,3 +349,28 @@ bool jsonify_simple(const openxc_SimpleMessage& s_msg, json_object* json)
json_object_object_add(json, "error", json_object_new_string("openxc_SimpleMessage doesn't have name'"));
return false;
}
+
+///
+/// @brief Make a JSON object from a VehicleMessage
+///
+/// @param[in] v_msg - const reference to an openxc_VehicleMessage
+/// struct to convert into a json object.
+/// @param[out] json - pointer with the DynamicField converted into json object
+///
+/// @return True if VehicleMessage has been transformed into json object
+/// and false if not. In such case, a json object is returned { "error": "error msg"}
+///
+bool jsonify_vehicle(const openxc_VehicleMessage& v_msg, json_object* json)
+{
+ if(jsonify_simple(get_simple_message(v_msg), json))
+ {
+ if(v_msg.has_timestamp)
+ {
+ json_object_object_add(json, "timestamp", json_object_new_double(v_msg.timestamp));
+ return true;
+ }
+ return true;
+ }
+ json_object_object_add(json, "error", json_object_new_string("openxc_SimpleMessage doesn't have name'"));
+ return false;
+}
diff --git a/low-can-binding/utils/openxc-utils.hpp b/low-can-binding/utils/openxc-utils.hpp
index 83d63797..57663045 100644
--- a/low-can-binding/utils/openxc-utils.hpp
+++ b/low-can-binding/utils/openxc-utils.hpp
@@ -44,4 +44,6 @@ const openxc_SimpleMessage get_simple_message(const openxc_VehicleMessage& v_msg
void jsonify_DynamicField(const openxc_DynamicField& field, json_object* value);
-bool jsonify_simple(const openxc_SimpleMessage& s_msg, json_object* json); \ No newline at end of file
+bool jsonify_simple(const openxc_SimpleMessage& s_msg, json_object* json);
+
+bool jsonify_vehicle(const openxc_VehicleMessage& v_msg, json_object* json);