X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=low-can-binding%2Futils%2Fopenxc-utils.cpp;h=e454121b6fb92d338bc789c9b86705b0b08fbd09;hb=ea35eabeadce57e4f5015797fea530c5bb219fff;hp=35b7d9c9482c1948afd06c09554f6e53767b250f;hpb=e08e9bc89e78b3937f84a8dbf47968159521a7ea;p=apps%2Fagl-service-can-low-level.git diff --git a/low-can-binding/utils/openxc-utils.cpp b/low-can-binding/utils/openxc-utils.cpp index 35b7d9c9..e454121b 100644 --- a/low-can-binding/utils/openxc-utils.cpp +++ b/low-can-binding/utils/openxc-utils.cpp @@ -181,6 +181,32 @@ const openxc_SimpleMessage build_SimpleMessage(const std::string& name, const op return s; } +/// @brief Build an openxc_DynamicField with a json object +/// +/// @param[in] value - const json_object pointer to assign to convert in an +/// openxc_DynamicField. +/// +/// @return openxc_DynamicField initialized with a json object. +/// +const openxc_DynamicField build_DynamicField(json_object* value) +{ + switch(json_object_get_type(value)) + { + case json_type_string: + return build_DynamicField(json_object_get_string(value)); + case json_type_double: + return build_DynamicField(json_object_get_double(value)); + case json_type_int: + return build_DynamicField(json_object_get_double(value)); + case json_type_boolean: + return build_DynamicField((bool)json_object_get_boolean(value)); + default: + openxc_DynamicField d; + ::memset(&d, 0, sizeof(openxc_DynamicField)); + return d; + } +} + /// /// @brief Build an openxc_DynamicField with a string value /// @@ -366,7 +392,7 @@ bool jsonify_vehicle(const openxc_VehicleMessage& v_msg, json_object* json) { if(v_msg.has_timestamp) { - json_object_object_add(json, "timestamp", json_object_new_double(v_msg.timestamp)); + json_object_object_add(json, "timestamp", json_object_new_int64(v_msg.timestamp)); return true; } return true;