From a3ea0574a55751d4df1d784d89bccca5ac76cfd6 Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Wed, 31 May 2017 12:09:27 +0200 Subject: Consider using char* as well as string. Change-Id: I08aba32f1273c7be305ceacf121e42fddfca173e Signed-off-by: Romain Forlot --- CAN-binder/low-can-binding/utils/openxc-utils.cpp | 25 ++++++++++++++++++++++- CAN-binder/low-can-binding/utils/openxc-utils.hpp | 1 + 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/CAN-binder/low-can-binding/utils/openxc-utils.cpp b/CAN-binder/low-can-binding/utils/openxc-utils.cpp index 27c2509..2449c47 100644 --- a/CAN-binder/low-can-binding/utils/openxc-utils.cpp +++ b/CAN-binder/low-can-binding/utils/openxc-utils.cpp @@ -87,9 +87,10 @@ const openxc_VehicleMessage build_VehicleMessage(active_diagnostic_request_t* re return message; } /// -/// @brief Build a specific VehicleMessage containing a SimpleMessage. +/// @brief Build a specific VehicleMessage containing a SimpleMessage with associated timestamp /// /// @param[in] message - simple message to include into openxc_VehicleMessage +/// @param[in] timestamp - timestamp from ioctl when reading the socket /// /// @return a vehicle message including simple message that will be convert into /// a JSON object before being pushed to the subscribers @@ -180,6 +181,28 @@ const openxc_SimpleMessage build_SimpleMessage(const std::string& name, const op return s; } +/// +/// @brief Build an openxc_DynamicField with a string value +/// +/// @param[in] value - const string reference value to assign to builded +/// openxc_DynamicField. +/// +/// @return openxc_DynamicField initialized with a string value. +/// +const openxc_DynamicField build_DynamicField(const char* value) +{ + openxc_DynamicField d; + d.has_type = true; + d.type = openxc_DynamicField_Type_STRING; + + d.has_string_value = true; + d.has_numeric_value = false; + d.has_boolean_value = false; + ::strncpy(d.string_value, value, 100); + + return d; +} + /// /// @brief Build an openxc_DynamicField with a string value /// diff --git a/CAN-binder/low-can-binding/utils/openxc-utils.hpp b/CAN-binder/low-can-binding/utils/openxc-utils.hpp index edfc497..34ac3eb 100644 --- a/CAN-binder/low-can-binding/utils/openxc-utils.hpp +++ b/CAN-binder/low-can-binding/utils/openxc-utils.hpp @@ -32,6 +32,7 @@ openxc_VehicleMessage build_VehicleMessage(); bool is_valid(const openxc_VehicleMessage& v); const openxc_SimpleMessage build_SimpleMessage(const std::string& name, const openxc_DynamicField& value); +const openxc_DynamicField build_DynamicField(const char* value); const openxc_DynamicField build_DynamicField(const std::string& value); const openxc_DynamicField build_DynamicField(double value); const openxc_DynamicField build_DynamicField(bool value); -- cgit 1.2.3-korg