diff --git a/CMakeLists.txt b/CMakeLists.txt index 97bda27c531..51029d8c7b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -112,9 +112,6 @@ if (HMI_ADAPTER_OPTION) if (${HMI_ADAPTER_OPTION} STREQUAL "MESSAGEBROKER") message(STATUS "Jenkins integration: selected HMI adapter MESSAGEBROKER") set (HMIADAPTER "messagebroker") - elseif (${HMI_ADAPTER_OPTION} STREQUAL "DBUS") - message(STATUS "Jenkins integration: selected HMI adapter DBUS") - set (HMIADAPTER "dbus") endif() endif() @@ -381,15 +378,6 @@ if (HMI STREQUAL "web" AND NOT DEFINED HMIADAPTER) set(HMIADAPTER "messagebroker") endif() -if (HMIADAPTER STREQUAL "dbus") - set(HMI_DBUS_API ON) - add_definitions(-DDBUS_HMIADAPTER) - add_definitions(-DHMI_DBUS_API) - - find_package(DBus REQUIRED) - set(DBUS_LIBS_DIRECTORY ${DBUS_LIBRARY_DIRS} PARENT_SCOPE) - message(${DBUS_INCLUDE_DIRS}) -endif() if (HMIADAPTER STREQUAL "messagebroker") set(HMI_JSON_API ON) add_definitions(-DMESSAGEBROKER_HMIADAPTER) diff --git a/README.md b/README.md index e41006cca55..80a6fbc88d3 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,6 @@ The dependencies for SDL Core vary based on the configuration. You can change SD | Flag | Description | Dependencies | |------|-------------|--------------| |Web HMI|Use HTML5 HMI|chromium-browser| -|DBus|Use DBus HMI Adapter|dbus-1-dev| |EXTENDED_MEDIA_MODE|Support Video and Audio Streaming|Opengl es2, gstreamer1.0*| |Bluetooth|Enable bluetooth transport adapter|libbluetooth3, libbluetooth-dev, bluez-tools| |USB|Enable USB transport adapter|libusb-dev| diff --git a/src/3rd_party/CMakeLists.txt b/src/3rd_party/CMakeLists.txt index 6f1e3dc3538..ae9267e5bbc 100644 --- a/src/3rd_party/CMakeLists.txt +++ b/src/3rd_party/CMakeLists.txt @@ -44,17 +44,14 @@ if(FORCE_3RD_PARTY) message(FATAL_ERROR "Please don't turn on both FORCE_3RD_PARTY and NO_REBUILD_3RD_PARTY at the same time.") else() set(FORCE_3RD_PARTY_LOGGER ON) - set(FORCE_3RD_PARTY_DBUS ON) endif() endif() -if(ENABLE_LOG OR HMI_DBUS_API) +if(ENABLE_LOG) # --- libexpat add_subdirectory(expat-2.1.0) set(EXPAT_LIBS_DIRECTORY ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib PARENT_SCOPE) -endif() -if(ENABLE_LOG) if(NO_REBUILD_3RD_PARTY_LOGGER) message(STATUS "Not rebuilding logger.") else() diff --git a/src/appMain/CMakeLists.txt b/src/appMain/CMakeLists.txt index e82d95f904a..a05f4f97a12 100644 --- a/src/appMain/CMakeLists.txt +++ b/src/appMain/CMakeLists.txt @@ -62,7 +62,6 @@ include_directories( ${POLICY_GLOBAL_INCLUDE_PATH}/ ${COMPONENTS_DIR}/rpc_base/include ${COMPONENTS_DIR}/resumption/include - ${COMPONENTS_DIR}/dbus/include ${CMAKE_BINARY_DIR}/src/components ${JSONCPP_INCLUDE_DIRECTORY} ${LOG4CXX_INCLUDE_DIRECTORY} diff --git a/src/appMain/life_cycle.cc b/src/appMain/life_cycle.cc index e42032a5cbf..b9623d080a6 100644 --- a/src/appMain/life_cycle.cc +++ b/src/appMain/life_cycle.cc @@ -70,10 +70,6 @@ LifeCycle::LifeCycle(const profile::Profile& profile) #ifdef TELEMETRY_MONITOR , telemetry_monitor_(NULL) #endif // TELEMETRY_MONITOR -#ifdef DBUS_HMIADAPTER - , dbus_adapter_(NULL) - , dbus_adapter_thread_(NULL) -#endif // DBUS_HMIADAPTER #ifdef MESSAGEBROKER_HMIADAPTER , mb_adapter_(NULL) , mb_adapter_thread_(NULL) @@ -189,30 +185,6 @@ bool LifeCycle::InitMessageSystem() { } #endif // MESSAGEBROKER_HMIADAPTER -#ifdef DBUS_HMIADAPTER -/** - * Initialize DBus component - * @return true if success otherwise false. - */ -bool LifeCycle::InitMessageSystem() { - dbus_adapter_ = new hmi_message_handler::DBusMessageAdapter(hmi_handler_); - - hmi_handler_->AddHMIMessageAdapter(dbus_adapter_); - if (!dbus_adapter_->Init()) { - LOG4CXX_FATAL(logger_, "Cannot init DBus service!"); - return false; - } - - dbus_adapter_->SubscribeTo(); - - LOG4CXX_INFO(logger_, "Start DBusMessageAdapter thread!"); - dbus_adapter_thread_ = new std::thread( - &hmi_message_handler::DBusMessageAdapter::Run, dbus_adapter_); - - return true; -} -#endif // DBUS_HMIADAPTER - namespace { void sig_handler(int sig) { switch (sig) { @@ -315,21 +287,6 @@ void LifeCycle::StopComponents() { LOG4CXX_INFO(logger_, "Destroying HMI Message Handler and MB adapter."); -#ifdef DBUS_HMIADAPTER - if (dbus_adapter_) { - DCHECK_OR_RETURN_VOID(hmi_handler_); - hmi_handler_->RemoveHMIMessageAdapter(dbus_adapter_); - dbus_adapter_->Shutdown(); - if (dbus_adapter_thread_ != NULL) { - dbus_adapter_thread_->join(); - } - delete dbus_adapter_; - dbus_adapter_ = NULL; - delete dbus_adapter_thread_; - dbus_adapter_thread_ = NULL; - } -#endif // DBUS_HMIADAPTER - #ifdef MESSAGEBROKER_HMIADAPTER if (mb_adapter_) { DCHECK_OR_RETURN_VOID(hmi_handler_); diff --git a/src/appMain/life_cycle.h b/src/appMain/life_cycle.h index 69f4b987f5f..0ac2f4047b0 100644 --- a/src/appMain/life_cycle.h +++ b/src/appMain/life_cycle.h @@ -39,9 +39,6 @@ #include "config_profile/profile.h" #include "hmi_message_handler/hmi_message_handler_impl.h" -#ifdef DBUS_HMIADAPTER -#include "hmi_message_handler/dbus_message_adapter.h" -#endif // DBUS_HMIADAPTER #if (defined(MESSAGEBROKER_HMIADAPTER) || defined(PASA_HMI)) #include "hmi_message_handler/messagebroker_adapter.h" #endif // #if ( defined (MESSAGEBROKER_HMIADAPTER) || defined(PASA_HMI) ) @@ -99,10 +96,6 @@ class LifeCycle { #ifdef TELEMETRY_MONITOR telemetry_monitor::TelemetryMonitor* telemetry_monitor_; #endif // TELEMETRY_MONITOR -#ifdef DBUS_HMIADAPTER - hmi_message_handler::DBusMessageAdapter* dbus_adapter_; - std::thread* dbus_adapter_thread_; -#endif // DBUS_HMIADAPTER #ifdef MESSAGEBROKER_HMIADAPTER hmi_message_handler::MessageBrokerAdapter* mb_adapter_; diff --git a/src/components/CMakeLists.txt b/src/components/CMakeLists.txt index 4f984bb3a82..f262f201c21 100644 --- a/src/components/CMakeLists.txt +++ b/src/components/CMakeLists.txt @@ -91,8 +91,3 @@ add_subdirectory(./media_manager) if(TELEMETRY_MONITOR) add_subdirectory(./telemetry_monitor) endif() - -# --- DBus -if(HMI_DBUS_API) - add_subdirectory(./dbus) -endif() diff --git a/src/components/application_manager/CMakeLists.txt b/src/components/application_manager/CMakeLists.txt index b7a6d94503d..67a7136a629 100644 --- a/src/components/application_manager/CMakeLists.txt +++ b/src/components/application_manager/CMakeLists.txt @@ -118,12 +118,6 @@ collect_sources(EVENT_ENGINE_SOURCES "${EVENT_ENGINE_PATHS}") collect_sources(POLICIES_SOURCES "${POLICIES_PATHS}") -if (${HMI_JSON_API}) - set (HMI_COMMANDS_SOURCES ${HMI_COMMANDS_SOURCES} ${HMI_COMMANDS_SOURCES_JSON}) -endif (${HMI_JSON_API}) - -set (HMI_COMMANDS_SOURCES ${HMI_COMMANDS_SOURCES} ${HMI_COMMANDS_SOURCES_DBUS}) - set(EXCLUDE_PATHS ${EVENT_ENGINE_SOURCE_DIR} ${MESSAGE_HELPER_SOURCE_DIR} diff --git a/src/components/application_manager/include/application_manager/message_helper.h b/src/components/application_manager/include/application_manager/message_helper.h index 763b6c3c7ae..f28b7950f96 100644 --- a/src/components/application_manager/include/application_manager/message_helper.h +++ b/src/components/application_manager/include/application_manager/message_helper.h @@ -72,7 +72,7 @@ typedef std::map VehicleData; class MessageHelper { public: /** - * @brief Creates request for different interfaces(JSON, DBUS) + * @brief Creates request for different interfaces(JSON) * @param correlation_id unique ID * @param params Vector of arguments that we need in GetVehicleData request * (e.g. gps, odometer, fuel_level) diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/vi_get_vehicle_data_request_template.h b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/vi_get_vehicle_data_request_template.h deleted file mode 100644 index 0c3c63c32c0..00000000000 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/vi_get_vehicle_data_request_template.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2018, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_SDL_RPC_PLUGIN_INCLUDE_SDL_RPC_PLUGIN_COMMANDS_HMI_VI_GET_VEHICLE_DATA_REQUEST_TEMPLATE_H_ -#define SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_SDL_RPC_PLUGIN_INCLUDE_SDL_RPC_PLUGIN_COMMANDS_HMI_VI_GET_VEHICLE_DATA_REQUEST_TEMPLATE_H_ - -#include "application_manager/event_engine/event.h" -#include "application_manager/commands/request_to_hmi.h" - -namespace sdl_rpc_plugin { -namespace app_mngr = application_manager; -namespace commands { - -/** - * @brief VIGetVehicleDataRequestTemplate command class - * - * Template class for sending 1 subscribe thin request - **/ -template -class VIGetVehicleDataRequestTemplate - : public app_mngr::commands::RequestToHMI { - public: - /** - * @brief VIGetVehicleDataRequestTemplate class constructor - * - * @param message Incoming SmartObject message - **/ - VIGetVehicleDataRequestTemplate( - const app_mngr::commands::MessageSharedPtr& message, - app_mngr::ApplicationManager& application_manager, - app_mngr::rpc_service::RPCService& rpc_service, - app_mngr::HMICapabilities& hmi_capabilities, - policy::PolicyHandlerInterface& policy_handle) - : RequestToHMI(message, - application_manager, - rpc_service, - hmi_capabilities, - policy_handle) {} - - /** - * @brief Execute command with sending DBus thin request to HMI - **/ - virtual void Run() { - LOG4CXX_AUTO_TRACE(logger_); - SendRequest(); - } - - private: - DISALLOW_COPY_AND_ASSIGN(VIGetVehicleDataRequestTemplate); -}; - -} // namespace commands -} // namespace application_manager -#endif // SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_SDL_RPC_PLUGIN_INCLUDE_SDL_RPC_PLUGIN_COMMANDS_HMI_VI_GET_VEHICLE_DATA_REQUEST_TEMPLATE_H_ diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/vi_get_vehicle_data_response_template.h b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/vi_get_vehicle_data_response_template.h deleted file mode 100644 index e28c55ba12d..00000000000 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/vi_get_vehicle_data_response_template.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2018, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_SDL_RPC_PLUGIN_INCLUDE_SDL_RPC_PLUGIN_COMMANDS_HMI_VI_GET_VEHICLE_DATA_RESPONSE_TEMPLATE_H_ -#define SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_SDL_RPC_PLUGIN_INCLUDE_SDL_RPC_PLUGIN_COMMANDS_HMI_VI_GET_VEHICLE_DATA_RESPONSE_TEMPLATE_H_ - -#include "application_manager/event_engine/event.h" -#include "application_manager/commands/response_from_hmi.h" -#include "application_manager/application_manager.h" - -namespace sdl_rpc_plugin { -namespace app_mngr = application_manager; -namespace commands { - -/** - * @brief VIGetVehicleDataResponseTemplate command class - **/ -template -class VIGetVehicleDataResponseTemplate : public ResponseFromHMI { - public: - /** - * @brief VIGetVehicleDataResponseTemplate class constructor - * - * @param message Incoming SmartObject message - **/ - VIGetVehicleDataResponseTemplate( - const app_mngr::commands::MessageSharedPtr& message, - app_mngr::ApplicationManager& application_manager, - app_mngr::rpc_service::RPCService& rpc_service, - app_mngr::HMICapabilities& hmi_capabilities, - policy::PolicyHandlerInterface& policy_handle) - : ResponseFromHMI(message, - application_manager, - rpc_service, - hmi_capabilities, - policy_handle) {} - - /** - * @brief Execute command - **/ - virtual void Run() { - LOG4CXX_AUTO_TRACE(logger_); - event_engine::Event event(eventID); - event.set_smart_object(*message_); - event.raise(application_manager_.event_dispatcher()); - } - - private: - DISALLOW_COPY_AND_ASSIGN(VIGetVehicleDataResponseTemplate); -}; - -} // namespace commands -} // namespace application_manager -#endif // SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_SDL_RPC_PLUGIN_INCLUDE_SDL_RPC_PLUGIN_COMMANDS_HMI_VI_GET_VEHICLE_DATA_RESPONSE_TEMPLATE_H_ diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/vi_subscribe_vehicle_data_request_template.h b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/vi_subscribe_vehicle_data_request_template.h deleted file mode 100644 index b74d013a828..00000000000 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/vi_subscribe_vehicle_data_request_template.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2018, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_SDL_RPC_PLUGIN_INCLUDE_SDL_RPC_PLUGIN_COMMANDS_HMI_VI_SUBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_ -#define SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_SDL_RPC_PLUGIN_INCLUDE_SDL_RPC_PLUGIN_COMMANDS_HMI_VI_SUBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_ - -#include "application_manager/event_engine/event.h" -#include "application_manager/commands/request_to_hmi.h" - -namespace sdl_rpc_plugin { -namespace app_mngr = application_manager; -namespace commands { - -/** - * @brief VISubscriveVehicleDataRequestTemplate command class - * - * Template class for sending 1 subscribe thin request - **/ -template -class VISubscribeVehicleDataRequestTemplate - : public app_mngr::commands::RequestToHMI { - public: - /** - * @brief VISubscriveVehicleDataRequestTemplate class constructor - * - * @param message Incoming SmartObject message - **/ - VISubscribeVehicleDataRequestTemplate( - const app_mngr::commands::MessageSharedPtr& message, - app_mngr::ApplicationManager& application_manager, - app_mngr::rpc_service::RPCService& rpc_service, - app_mngr::HMICapabilities& hmi_capabilities, - policy::PolicyHandlerInterface& policy_handle) - : RequestToHMI(message, - application_manager, - rpc_service, - hmi_capabilities, - policy_handle) {} - - /** - * @brief Execute command with sending DBus thin request to HMI - **/ - virtual void Run() { - LOG4CXX_AUTO_TRACE(logger_); - SendRequest(); - } - - private: - DISALLOW_COPY_AND_ASSIGN(VISubscribeVehicleDataRequestTemplate); -}; - -} // namespace commands -} // namespace application_manager -#endif // SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_SDL_RPC_PLUGIN_INCLUDE_SDL_RPC_PLUGIN_COMMANDS_HMI_VI_SUBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_ diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/vi_subscribe_vehicle_data_response_template.h b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/vi_subscribe_vehicle_data_response_template.h deleted file mode 100644 index 42dba56345a..00000000000 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/vi_subscribe_vehicle_data_response_template.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 2018, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_SDL_RPC_PLUGIN_INCLUDE_SDL_RPC_PLUGIN_COMMANDS_HMI_VI_SUBSCRIBE_VEHICLE_DATA_RESPONSE_TEMPLATE_H_ -#define SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_SDL_RPC_PLUGIN_INCLUDE_SDL_RPC_PLUGIN_COMMANDS_HMI_VI_SUBSCRIBE_VEHICLE_DATA_RESPONSE_TEMPLATE_H_ - -#include "application_manager/event_engine/event.h" -#include "application_manager/commands/response_from_hmi.h" -#include "application_manager/application_manager.h" - -namespace sdl_rpc_plugin { -namespace app_mngr = application_manager; -namespace commands { -/** - * @brief VISubscriveVehicleDataResponseTemplate command class - **/ -template -class VISubscribeVehicleDataResponseTemplate : public ResponseFromHMI { - public: - /** - * @brief VISubscriveVehicleDataResponseTemplate class constructor - * - * @param message Incoming SmartObject message - **/ - VISubscribeVehicleDataResponseTemplate( - const app_mngr::commands::MessageSharedPtr& message, - app_mngr::ApplicationManager& application_manager, - app_mngr::rpc_service::RPCService& rpc_service, - app_mngr::HMICapabilities& hmi_capabilities, - policy::PolicyHandlerInterface& policy_handle) - : ResponseFromHMI(message, - application_manager, - rpc_service, - hmi_capabilities, - policy_handle) {} - - /** - * @brief Execute command - **/ - virtual void Run() { - LOG4CXX_AUTO_TRACE(logger_); - event_engine::Event event(eventID); - event.set_smart_object(*message_); - event.raise(application_manager_.event_dispatcher()); - } - - private: - DISALLOW_COPY_AND_ASSIGN(VISubscribeVehicleDataResponseTemplate); -}; - -} // namespace commands -} // namespace application_manager -#endif // SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_SDL_RPC_PLUGIN_INCLUDE_SDL_RPC_PLUGIN_COMMANDS_HMI_VI_SUBSCRIBE_VEHICLE_DATA_RESPONSE_TEMPLATE_H_ diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h deleted file mode 100644 index 2cb5d622b1f..00000000000 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2018, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_SDL_RPC_PLUGIN_INCLUDE_SDL_RPC_PLUGIN_COMMANDS_HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_ -#define SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_SDL_RPC_PLUGIN_INCLUDE_SDL_RPC_PLUGIN_COMMANDS_HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_ - -#include "application_manager/event_engine/event.h" -#include "application_manager/commands/request_to_hmi.h" - -namespace sdl_rpc_plugin { -namespace app_mngr = application_manager; -namespace commands { - -/** - * @brief VIUnsubscriveVehicleDataRequestTemplate command class - * - * Template class for sending 1 unsubscribe thin request - **/ -template -class VIUnsubscribeVehicleDataRequestTemplate - : public app_mngr::commands::RequestToHMI { - public: - /** - * @brief VIUnsubscriveVehicleDataRequestTemplate class constructor - * - * @param message Incoming SmartObject message - **/ - VIUnsubscribeVehicleDataRequestTemplate( - const app_mngr::commands::MessageSharedPtr& message, - app_mngr::ApplicationManager& application_manager, - app_mngr::rpc_service::RPCService& rpc_service, - app_mngr::HMICapabilities& hmi_capabilities, - policy::PolicyHandlerInterface& policy_handle) - : RequestToHMI(message, - application_manager, - rpc_service, - hmi_capabilities, - policy_handle) {} - - /** - * @brief Execute command with sending DBus thin request to HMI - **/ - virtual void Run() { - LOG4CXX_AUTO_TRACE(logger_); - SendRequest(); - } - - private: - DISALLOW_COPY_AND_ASSIGN(VIUnsubscribeVehicleDataRequestTemplate); -}; - -} // namespace commands -} // namespace application_manager -#endif // SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_SDL_RPC_PLUGIN_INCLUDE_SDL_RPC_PLUGIN_COMMANDS_HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_ diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h deleted file mode 100644 index 6138aa59fbc..00000000000 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (c) 2018, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_SDL_RPC_PLUGIN_INCLUDE_SDL_RPC_PLUGIN_COMMANDS_HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_TEMPLATE_H_ -#define SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_SDL_RPC_PLUGIN_INCLUDE_SDL_RPC_PLUGIN_COMMANDS_HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_TEMPLATE_H_ - -#include "application_manager/event_engine/event.h" -#include "application_manager/commands/response_from_hmi.h" -#include "application_manager/application_manager.h" - -namespace sdl_rpc_plugin { -namespace app_mngr = application_manager; -namespace commands { - -/** - * @brief VIUnsubscriveVehicleDataResponseTemplate command class - **/ -template -class VIUnsubscribeVehicleDataResponseTemplate : public ResponseFromHMI { - public: - /** - * @brief VISubscriveVehicleDataResponseTemplate class constructor - * - * @param message Incoming SmartObject message - **/ - VIUnsubscribeVehicleDataResponseTemplate( - const app_mngr::commands::MessageSharedPtr& message, - app_mngr::ApplicationManager& application_manager, - app_mngr::rpc_service::RPCService& rpc_service, - app_mngr::HMICapabilities& hmi_capabilities, - policy::PolicyHandlerInterface& policy_handle) - : ResponseFromHMI(message, - application_manager, - rpc_service, - hmi_capabilities, - policy_handle) {} - - /** - * @brief Execute command - **/ - virtual void Run() { - LOG4CXX_AUTO_TRACE(logger_); - event_engine::Event event(eventID); - event.set_smart_object(*message_); - event.raise(application_manager_.event_dispatcher()); - } - - private: - DISALLOW_COPY_AND_ASSIGN(VIUnsubscribeVehicleDataResponseTemplate); -}; - -} // namespace commands -} // namespace application_manager - -#endif // SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_SDL_RPC_PLUGIN_INCLUDE_SDL_RPC_PLUGIN_COMMANDS_HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_TEMPLATE_H_ diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/hmi_command_factory.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/hmi_command_factory.cc index 83edb762649..c510315ad8e 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/hmi_command_factory.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/hmi_command_factory.cc @@ -158,36 +158,6 @@ #include "sdl_rpc_plugin/commands/hmi/decrypt_certificate_response.h" #endif // EXTERNAL_PROPRIETARY_MODE -#ifdef HMI_DBUS_API -#include "sdl_rpc_plugin/commands/hmi/vi_get_vehicle_data_request_template.h" -#include "sdl_rpc_plugin/commands/hmi/vi_get_vehicle_data_response_template.h" -#include "sdl_rpc_plugin/commands/hmi/vi_subscribe_vehicle_data_request_template.h" -#include "sdl_rpc_plugin/commands/hmi/vi_subscribe_vehicle_data_response_template.h" -#include "sdl_rpc_plugin/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h" -#include "sdl_rpc_plugin/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_gps_data_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_speed_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_rpm_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_fuel_level_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_fuel_level_state_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_instant_fuel_consumption_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_external_temperature_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_vin_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_prndl_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_tire_pressure_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_odometer_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_belt_status_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_body_information_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_device_status_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_driver_braking_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_wiper_status_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_head_lamp_status_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_engine_torque_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_acc_pedal_position_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_steering_wheel_angle_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_my_key_notification.h" -#endif // #ifdef HMI_DBUS_API - #include "sdl_rpc_plugin/commands/hmi/navi_is_ready_request.h" #include "sdl_rpc_plugin/commands/hmi/navi_show_constant_tbt_request.h" #include "sdl_rpc_plugin/commands/hmi/navi_show_constant_tbt_response.h" @@ -603,229 +573,6 @@ CommandCreator& HMICommandFactory::get_creator_factory( ? factory.GetCreator() : factory.GetCreator(); } -#ifdef HMI_DBUS_API - case hmi_apis::FunctionID::VehicleInfo_GetGpsData: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID::VehicleInfo_GetGpsData> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID::VehicleInfo_GetGpsData> >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetSpeed: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetRpm: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetFuelLevel: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetFuelLevelState: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetInstantFuelConsumption: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetExternalTemperature: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetPrndl: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetVin: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetTirePressure: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetOdometer: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetBeltStatus: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetBodyInformation: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetDeviceStatus: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetDriverBraking: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetWiperStatus: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetHeadLampStatus: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetEngineTorque: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetAccPedalPosition: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetSteeringWheelAngle: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetECallInfo: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetAirbagStatus: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetEmergencyEvent: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetClusterModeStatus: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } - case hmi_apis::FunctionID::VehicleInfo_GetMyKey: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator >() - : factory - .GetCreator >(); - } -#endif // #ifdef HMI_DBUS_API case hmi_apis::FunctionID::Navigation_IsReady: { return hmi_apis::messageType::request == message_type ? factory.GetCreator() @@ -955,610 +702,6 @@ CommandCreator& HMICommandFactory::get_creator_factory( return factory .GetCreator(); } -#ifdef HMI_DBUS_API - case hmi_apis::FunctionID::VehicleInfo_SubscribeGps: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID::VehicleInfo_SubscribeGps> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID::VehicleInfo_SubscribeGps> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeSpeed: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID::VehicleInfo_SubscribeSpeed> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeSpeed> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeRpm: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID::VehicleInfo_SubscribeRpm> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID::VehicleInfo_SubscribeRpm> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeFuelLevel> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeFuelLevel> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel_State: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeFuelLevel_State> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeFuelLevel_State> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeInstantFuelConsumption: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeInstantFuelConsumption> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeInstantFuelConsumption> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeExternalTemperature: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeExternalTemperature> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeExternalTemperature> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribePrndl: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID::VehicleInfo_SubscribePrndl> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribePrndl> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeVin: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID::VehicleInfo_SubscribeVin> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID::VehicleInfo_SubscribeVin> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeTirePressure: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeTirePressure> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeTirePressure> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeOdometer: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeOdometer> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeOdometer> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeBeltStatus: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeBeltStatus> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeBeltStatus> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeBodyInformation: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeBodyInformation> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeBodyInformation> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeDeviceStatus: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeDeviceStatus> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeDeviceStatus> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeDriverBraking: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeDriverBraking> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeDriverBraking> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeWiperStatus: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeWiperStatus> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeWiperStatus> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeHeadLampStatus: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeHeadLampStatus> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeHeadLampStatus> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeEngineTorque: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeEngineTorque> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeEngineTorque> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeAccPedalPosition: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeAccPedalPosition> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeAccPedalPosition> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeSteeringWheelAngle: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeSteeringWheelAngle> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeSteeringWheelAngle> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeECallInfo: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeECallInfo> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeECallInfo> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeAirbagStatus: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeAirbagStatus> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeAirbagStatus> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeEmergencyEvent: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeEmergencyEvent> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeEmergencyEvent> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeClusterModeStatus: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeClusterModeStatus> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeClusterModeStatus> >(); - } - case hmi_apis::FunctionID::VehicleInfo_SubscribeMyKey: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VISubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID::VehicleInfo_SubscribeMyKey> >() - : factory.GetCreator< - commands::VISubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_SubscribeMyKey> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeGps: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator < - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID::VehicleInfo_UnsubscribeGps>() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeGps> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeSpeed: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeSpeed> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeSpeed> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeRpm: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID::VehicleInfo_UnsubscribeRpm> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeRpm> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeFuelLevel> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeFuelLevel> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel_State: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeFuelLevel_State> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeFuelLevel_State> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeInstantFuelConsumption: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeInstantFuelConsumption> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeInstantFuelConsumption> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeExternalTemperature: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeExternalTemperature> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeExternalTemperature> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribePrndl: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribePrndl> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribePrndl> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeVin: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID::VehicleInfo_UnsubscribeVin> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeVin> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeTirePressure: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeTirePressure> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeTirePressure> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeOdometer: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeOdometer> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeOdometer> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeBeltStatus: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeBeltStatus> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeBeltStatus> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeBodyInformation: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeBodyInformation> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeBodyInformation> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeDeviceStatus: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeDeviceStatus> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeDeviceStatus> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeDriverBraking: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeDriverBraking> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeDriverBraking> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeWiperStatus: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeWiperStatus> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeWiperStatus> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeHeadLampStatus: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeHeadLampStatus> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeHeadLampStatus> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeEngineTorque: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeEngineTorque> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeEngineTorque> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeAccPedalPosition: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeAccPedalPosition> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeAccPedalPosition> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeSteeringWheelAngle: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeSteeringWheelAngle> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeSteeringWheelAngle> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeECallInfo: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeECallInfo> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeECallInfo> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeAirbagStatus: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeAirbagStatus> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeAirbagStatus> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeEmergencyEvent: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeEmergencyEvent> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeEmergencyEvent> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeClusterModeStatus: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator< - commands::VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeClusterModeStatus> >() - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeClusterModeStatus> >(); - } - case hmi_apis::FunctionID::VehicleInfo_UnsubscribeMyKey: { - return hmi_apis::messageType::request == message_type - ? factory.GetCreator( - VIUnsubscribeVehicleDataRequestTemplate< - hmi_apis::FunctionID::VehicleInfo_UnsubscribeMyKey>) - : factory.GetCreator< - commands::VIUnsubscribeVehicleDataResponseTemplate< - hmi_apis::FunctionID:: - VehicleInfo_UnsubscribeMyKey> >(); - } - case hmi_apis::FunctionID::VehicleInfo_OnGpsData: { - return factory.GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnSpeed: { - return factory.GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnRpm: { - return factory.GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnFuelLevel: { - return factory.GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnFuelLevelState: { - return factory.GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnInstantFuelConsumption: { - return factory - .GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnExternalTemperature: { - return factory - .GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnVin: { - return factory.GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnPrndl: { - return factory.GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnTirePressure: { - return factory.GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnOdometer: { - return factory.GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnBeltStatus: { - return factory.GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnBodyInformation: { - return factory.GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnDeviceStatus: { - return factory.GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnDriverBraking: { - return factory.GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnWiperStatus: { - return factory.GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnHeadLampStatus: { - return factory.GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnEngineTorque: { - return factory.GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnAccPedalPosition: { - return factory.GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnSteeringWheelAngle: { - return factory.GetCreator(); - } - case hmi_apis::FunctionID::VehicleInfo_OnMyKey: { - return factory.GetCreator(); - } -#endif // #ifdef HMI_DBUS_API case hmi_apis::FunctionID::Navigation_OnTBTClientState: { return factory.GetCreator(); } diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/dummy_hmi_commands_test.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/dummy_hmi_commands_test.cc index 2374609774d..b8b84f13c93 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/dummy_hmi_commands_test.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/dummy_hmi_commands_test.cc @@ -223,27 +223,6 @@ #include "hmi/on_tts_reset_timeout_notification.h" #include "hmi/dial_number_request.h" #include "hmi/dial_number_response.h" -#include "hmi/on_vi_gps_data_notification.h" -#include "hmi/on_vi_speed_notification.h" -#include "hmi/on_vi_rpm_notification.h" -#include "hmi/on_vi_fuel_level_notification.h" -#include "hmi/on_vi_fuel_level_state_notification.h" -#include "hmi/on_vi_instant_fuel_consumption_notification.h" -#include "hmi/on_vi_external_temperature_notification.h" -#include "hmi/on_vi_vin_notification.h" -#include "hmi/on_vi_prndl_notification.h" -#include "hmi/on_vi_tire_pressure_notification.h" -#include "hmi/on_vi_odometer_notification.h" -#include "hmi/on_vi_belt_status_notification.h" -#include "hmi/on_vi_body_information_notification.h" -#include "hmi/on_vi_device_status_notification.h" -#include "hmi/on_vi_driver_braking_notification.h" -#include "hmi/on_vi_wiper_status_notification.h" -#include "hmi/on_vi_head_lamp_status_notification.h" -#include "hmi/on_vi_engine_torque_notification.h" -#include "hmi/on_vi_acc_pedal_position_notification.h" -#include "hmi/on_vi_steering_wheel_angle_notification.h" -#include "hmi/on_vi_my_key_notification.h" #include "hmi/ui_set_icon_request.h" #include "application_manager/commands/commands_test.h" @@ -515,28 +494,7 @@ typedef Types HMICommandsListFourth; -typedef Types HMICommandsListFifth; diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/hmi_notifications_test.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/hmi_notifications_test.cc index b498d07d995..245bb728603 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/hmi_notifications_test.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/hmi_notifications_test.cc @@ -42,27 +42,6 @@ #include "sdl_rpc_plugin/commands/hmi/on_ui_command_notification.h" #include "sdl_rpc_plugin/commands/hmi/on_ui_keyboard_input_notification.h" #include "sdl_rpc_plugin/commands/hmi/on_ui_touch_event_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_acc_pedal_position_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_belt_status_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_body_information_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_device_status_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_driver_braking_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_engine_torque_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_external_temperature_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_fuel_level_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_fuel_level_state_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_gps_data_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_head_lamp_status_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_instant_fuel_consumption_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_my_key_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_odometer_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_prndl_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_rpm_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_speed_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_steering_wheel_angle_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_tire_pressure_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_vin_notification.h" -#include "sdl_rpc_plugin/commands/hmi/on_vi_wiper_status_notification.h" #include "sdl_rpc_plugin/commands/hmi/on_app_permission_changed_notification.h" #include "sdl_rpc_plugin/commands/hmi/on_app_registered_notification.h" #include "sdl_rpc_plugin/commands/hmi/on_audio_data_streaming_notification.h" @@ -311,12 +290,6 @@ void sig_handler(int sig) { } } // namespace -template -class HMIOnViNotifications : public commands_test::CommandsTest { - public: - typedef Command CommandType; -}; - template class HMIOnNotificationsListToHMI : public commands_test::CommandsTest { diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/include/vehicle_info_plugin/commands/mobile/get_vehicle_data_request.h b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/include/vehicle_info_plugin/commands/mobile/get_vehicle_data_request.h index 17ae1ffd09d..04a131da8fd 100644 --- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/include/vehicle_info_plugin/commands/mobile/get_vehicle_data_request.h +++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/include/vehicle_info_plugin/commands/mobile/get_vehicle_data_request.h @@ -73,22 +73,6 @@ class GetVehicleDataRequest : public app_mngr::commands::CommandRequestImpl { protected: virtual void on_event(const app_mngr::event_engine::Event& event); -#ifdef HMI_DBUS_API - private: - void SendRequestsToHmi(const int32_t app_id); - - struct HmiRequest { - hmi_apis::Common_Result::eType status; - bool complete; - smart_objects::SmartObject value; - const char* str; - hmi_apis::FunctionID::eType func_id; - }; - - typedef std::vector HmiRequests; - HmiRequests hmi_requests_; -#endif // #ifdef HMI_DBUS_API - DISALLOW_COPY_AND_ASSIGN(GetVehicleDataRequest); }; diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/include/vehicle_info_plugin/commands/mobile/subscribe_vehicle_data_request.h b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/include/vehicle_info_plugin/commands/mobile/subscribe_vehicle_data_request.h index d324d5ca24c..6e084e08696 100644 --- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/include/vehicle_info_plugin/commands/mobile/subscribe_vehicle_data_request.h +++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/include/vehicle_info_plugin/commands/mobile/subscribe_vehicle_data_request.h @@ -87,20 +87,6 @@ class SubscribeVehicleDataRequest */ bool Init() FINAL; -#ifdef HMI_DBUS_API - private: - struct HmiRequest { - hmi_apis::Common_Result::eType status; - bool complete; - smart_objects::SmartObject value; - const char* str; - hmi_apis::FunctionID::eType func_id; - }; - - typedef std::vector HmiRequests; - HmiRequests hmi_requests_; -#endif // #ifdef HMI_DBUS_API - private: /** * @brief Checks, if any app is subscribed for particular VI parameter diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/include/vehicle_info_plugin/commands/mobile/unsubscribe_vehicle_data_request.h b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/include/vehicle_info_plugin/commands/mobile/unsubscribe_vehicle_data_request.h index 5730048b851..e04d1fb97a3 100644 --- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/include/vehicle_info_plugin/commands/mobile/unsubscribe_vehicle_data_request.h +++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/include/vehicle_info_plugin/commands/mobile/unsubscribe_vehicle_data_request.h @@ -84,20 +84,6 @@ class UnsubscribeVehicleDataRequest */ bool Init() FINAL; -#ifdef HMI_DBUS_API - private: - struct HmiRequest { - hmi_apis::Common_Result::eType status; - bool complete; - smart_objects::SmartObject value; - const char* str; - hmi_apis::FunctionID::eType func_id; - }; - - typedef std::vector HmiRequests; - HmiRequests hmi_requests_; -#endif // #ifdef HMI_DBUS_API - private: /** * @brief Checks, if any app is subscribed for particular VI parameter diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/get_vehicle_data_request.cc b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/get_vehicle_data_request.cc index 7c7a5e61f76..87a9ace377c 100644 --- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/get_vehicle_data_request.cc +++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/get_vehicle_data_request.cc @@ -46,176 +46,6 @@ namespace commands { namespace str = strings; -#ifdef HMI_DBUS_API -GetVehicleDataRequest::GetVehicleDataRequest( - const application_manager::commands::MessageSharedPtr& message, - ApplicationManager& application_manager, - app_mngr::rpc_service::RPCService& rpc_service, - app_mngr::HMICapabilities& hmi_capabilities, - policy::PolicyHandlerInterface& policy_handler) - : CommandRequestImpl(message, application_manager) {} - -GetVehicleDataRequest::~GetVehicleDataRequest() {} - -void GetVehicleDataRequest::Run() { - LOG4CXX_AUTO_TRACE(logger_); - - int32_t app_id = - (*message_)[strings::params][strings::connection_key].asUInt(); - ApplicationSharedPtr app = application_manager_.application(app_id); - - if (!app) { - LOG4CXX_ERROR(logger_, "NULL pointer"); - SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); - return; - } - - const VehicleData& vehicle_data = MessageHelper::vehicle_data(); - VehicleData::const_iterator it = vehicle_data.begin(); - - for (; vehicle_data.end() != it; ++it) { - if (true == (*message_)[str::msg_params].keyExists(it->first) && - true == (*message_)[str::msg_params][it->first].asBool()) { - SendRequestsToHmi(app->app_id()); - return; - } - } - - SendResponse(false, mobile_apis::Result::INVALID_DATA); -} - -namespace { -struct Subrequest { - hmi_apis::FunctionID::eType func_id; - const char* str; -}; -Subrequest subrequests[] = { - {hmi_apis::FunctionID::VehicleInfo_GetGpsData, str::gps}, - {hmi_apis::FunctionID::VehicleInfo_GetSpeed, str::speed}, - {hmi_apis::FunctionID::VehicleInfo_GetRpm, str::rpm}, - {hmi_apis::FunctionID::VehicleInfo_GetFuelLevel, str::fuel_level}, - {hmi_apis::FunctionID::VehicleInfo_GetFuelLevelState, - str::fuel_level_state}, - {hmi_apis::FunctionID::VehicleInfo_GetInstantFuelConsumption, - str::instant_fuel_consumption}, - {hmi_apis::FunctionID::VehicleInfo_GetExternalTemperature, - str::external_temp}, - {hmi_apis::FunctionID::VehicleInfo_GetVin, str::vin}, - {hmi_apis::FunctionID::VehicleInfo_GetPrndl, str::prndl}, - {hmi_apis::FunctionID::VehicleInfo_GetTirePressure, str::tire_pressure}, - {hmi_apis::FunctionID::VehicleInfo_GetOdometer, str::odometer}, - {hmi_apis::FunctionID::VehicleInfo_GetBeltStatus, str::belt_status}, - {hmi_apis::FunctionID::VehicleInfo_GetBodyInformation, - str::body_information}, - {hmi_apis::FunctionID::VehicleInfo_GetDeviceStatus, str::device_status}, - {hmi_apis::FunctionID::VehicleInfo_GetDriverBraking, str::driver_braking}, - {hmi_apis::FunctionID::VehicleInfo_GetWiperStatus, str::wiper_status}, - {hmi_apis::FunctionID::VehicleInfo_GetHeadLampStatus, - str::head_lamp_status}, - {hmi_apis::FunctionID::VehicleInfo_GetEngineTorque, str::engine_torque}, - {hmi_apis::FunctionID::VehicleInfo_GetAccPedalPosition, str::acc_pedal_pos}, - {hmi_apis::FunctionID::VehicleInfo_GetSteeringWheelAngle, - str::steering_wheel_angle}, - {hmi_apis::FunctionID::VehicleInfo_GetECallInfo, str::e_call_info}, - {hmi_apis::FunctionID::VehicleInfo_GetAirbagStatus, str::airbag_status}, - {hmi_apis::FunctionID::VehicleInfo_GetEmergencyEvent, str::emergency_event}, - {hmi_apis::FunctionID::VehicleInfo_GetClusterModeStatus, - str::cluster_mode_status}, - {hmi_apis::FunctionID::VehicleInfo_GetMyKey, str::my_key}, -}; -} - -void GetVehicleDataRequest::SendRequestsToHmi(const int32_t app_id) { - smart_objects::SmartObject msg_params(smart_objects::SmartType_Map); - msg_params[strings::app_id] = app_id; - - for (size_t i = 0; i < sizeof(subrequests) / sizeof(subrequests[0]); ++i) { - const Subrequest& sr = subrequests[i]; - if (true == (*message_)[str::msg_params].keyExists(sr.str) && - true == (*message_)[str::msg_params][sr.str].asBool()) { - HmiRequest hmi_request; - hmi_request.str = sr.str; - hmi_request.func_id = sr.func_id; - hmi_request.complete = false; - hmi_requests_.push_back(hmi_request); - } - } - - LOG4CXX_INFO(logger_, - hmi_requests_.size() << " requests are going to be sent to HMI"); - - for (HmiRequests::const_iterator it = hmi_requests_.begin(); - it != hmi_requests_.end(); - ++it) { - SendHMIRequest(it->func_id, &msg_params, true); - } -} - -void GetVehicleDataRequest::on_event(const event_engine::Event& event) { - LOG4CXX_INFO(logger_, "GetVehicleDataRequest::on_event " << event.id()); - - const smart_objects::SmartObject& message = event.smart_object(); - - for (HmiRequests::iterator it = hmi_requests_.begin(); - it != hmi_requests_.end(); - ++it) { - HmiRequest& hmi_request = *it; - if (hmi_request.func_id == event.id()) { - hmi_request.status = static_cast( - message[strings::params][hmi_response::code].asInt()); - if (hmi_apis::Common_Result::SUCCESS == hmi_request.status) - hmi_request.value = message[str::msg_params][hmi_request.str]; - hmi_request.complete = true; - break; - } - } - - bool all_complete = true; - bool any_arg_success = false; - mobile_api::Result::eType status = mobile_api::Result::eType::SUCCESS; - for (HmiRequests::const_iterator it = hmi_requests_.begin(); - it != hmi_requests_.end(); - ++it) { - if (!it->complete) { - all_complete = false; - break; - } - if (hmi_apis::Common_Result::SUCCESS != it->status) { - if (mobile_api::Result::SUCCESS == status) { - status = static_cast(it->status); - } else if (status != - static_cast(it->status)) { - status = mobile_api::Result::eType::GENERIC_ERROR; - } - LOG4CXX_TRACE(logger_, - "Status from HMI: " << it->status - << ", so response status become " - << status); - } else { - any_arg_success = true; - } - } - - if (all_complete) { - smart_objects::SmartObject response_params(smart_objects::SmartType_Map); - if (any_arg_success) { - for (HmiRequests::const_iterator it = hmi_requests_.begin(); - it != hmi_requests_.end(); - ++it) { - response_params[it->str] = it->value; - } - } - LOG4CXX_INFO(logger_, "All HMI requests are complete"); - const char* info = NULL; - std::string error_message; - if (true == message[strings::params].keyExists(strings::error_msg)) { - error_message = message[strings::params][strings::error_msg].asString(); - info = error_message.c_str(); - } - SendResponse(any_arg_success, status, info, &response_params); - } -} -#else GetVehicleDataRequest::GetVehicleDataRequest( const application_manager::commands::MessageSharedPtr& message, ApplicationManager& application_manager, @@ -312,8 +142,6 @@ void GetVehicleDataRequest::on_event(const event_engine::Event& event) { } } -#endif // #ifdef HMI_DBUS_API - } // namespace commands } // namespace application_manager diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/subscribe_vehicle_data_request.cc b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/subscribe_vehicle_data_request.cc index 27716855a24..41fd35b8b52 100644 --- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/subscribe_vehicle_data_request.cc +++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/subscribe_vehicle_data_request.cc @@ -1,26 +1,19 @@ /* - Copyright (c) 2018, Ford Motor Company All rights reserved. - Copyright (c) 2018, Livio, Inc. All rights reserved. - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of the Ford Motor Company nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -59,59 +52,6 @@ SubscribeVehicleDataRequest::SubscribeVehicleDataRequest( SubscribeVehicleDataRequest::~SubscribeVehicleDataRequest() {} -#ifdef HMI_DBUS_API -namespace { -struct Subrequest { - hmi_apis::FunctionID::eType func_id; - const char* str; -}; -Subrequest subrequests[] = { - {hmi_apis::FunctionID::VehicleInfo_SubscribeGps, strings::gps}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeSpeed, strings::speed}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeRpm, strings::rpm}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel, strings::fuel_level}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel_State, - strings::fuel_level_state}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeInstantFuelConsumption, - strings::instant_fuel_consumption}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeExternalTemperature, - strings::external_temp}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeVin, strings::vin}, - {hmi_apis::FunctionID::VehicleInfo_SubscribePrndl, strings::prndl}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeTirePressure, - strings::tire_pressure}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeOdometer, strings::odometer}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeBeltStatus, - strings::belt_status}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeBodyInformation, - strings::body_information}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeDeviceStatus, - strings::device_status}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeDriverBraking, - strings::driver_braking}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeWiperStatus, - strings::wiper_status}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeHeadLampStatus, - strings::head_lamp_status}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeEngineTorque, - strings::engine_torque}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeAccPedalPosition, - strings::acc_pedal_pos}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeSteeringWheelAngle, - strings::steering_wheel_angle}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeECallInfo, - strings::e_call_info}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeAirbagStatus, - strings::airbag_status}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeEmergencyEvent, - strings::emergency_event}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeClusterModeStatus, - strings::cluster_mode_status}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeMyKey, strings::my_key}, -}; -} -#endif // #ifdef HMI_DBUS_API - void SubscribeVehicleDataRequest::Run() { LOG4CXX_AUTO_TRACE(logger_); @@ -140,33 +80,10 @@ void SubscribeVehicleDataRequest::Run() { return; } -#ifdef HMI_DBUS_API - // Generate list of subrequests - for (size_t i = 0; i < sizeof(subrequests) / sizeof(subrequests[0]); ++i) { - const Subrequest& sr = subrequests[i]; - if (true == (*message_)[strings::msg_params].keyExists(sr.str) && - true == (*message_)[strings::msg_params][sr.str].asBool()) { - HmiRequest hmi_request; - hmi_request.str = sr.str; - hmi_request.func_id = sr.func_id; - hmi_request.complete = false; - hmi_requests_.push_back(hmi_request); - } - } - LOG4CXX_DEBUG( - logger_, hmi_requests_.size() << " requests are going to be sent to HMI"); - - // Send subrequests - for (HmiRequests::const_iterator it = hmi_requests_.begin(); - it != hmi_requests_.end(); - ++it) - SendHMIRequest(it->func_id, &msg_params, true); -#else StartAwaitForInterface(HmiInterfaces::HMI_INTERFACE_VehicleInfo); SendHMIRequest(hmi_apis::FunctionID::VehicleInfo_SubscribeVehicleData, &msg_params, true); -#endif // #ifdef HMI_DBUS_API } void SubscribeVehicleDataRequest::on_event(const event_engine::Event& event) { @@ -188,64 +105,6 @@ void SubscribeVehicleDataRequest::on_event(const event_engine::Event& event) { return; } -#ifdef HMI_DBUS_API - for (HmiRequests::iterator it = hmi_requests_.begin(); - it != hmi_requests_.end(); - ++it) { - HmiRequest& hmi_request = *it; - if (hmi_request.func_id == event.id()) { - hmi_request.status = static_cast( - message[strings::params][hmi_response::code].asInt()); - if (hmi_apis::Common_Result::SUCCESS == hmi_request.status) - hmi_request.value = message[strings::msg_params][hmi_request.str]; - hmi_request.complete = true; - break; - } - } - bool all_complete = true; - bool any_arg_success = false; - mobile_api::Result::eType status = mobile_api::Result::eType::SUCCESS; - for (HmiRequests::const_iterator it = hmi_requests_.begin(); - it != hmi_requests_.end(); - ++it) { - if (!it->complete) { - all_complete = false; - break; - } - if (hmi_apis::Common_Result::SUCCESS != it->status) { - if (mobile_api::Result::SUCCESS == status) { - status = static_cast(it->status); - } else if (status != - static_cast(it->status)) { - status = mobile_api::Result::eType::GENERIC_ERROR; - } - LOG4CXX_TRACE(logger_, - "Status from HMI: " << it->status - << ", so response status become " - << status); - } else { - any_arg_success = true; - } - } - - if (all_complete) { - smart_objects::SmartObject response_params(smart_objects::SmartType_Map); - if (any_arg_success) { - for (HmiRequests::const_iterator it = hmi_requests_.begin(); - it != hmi_requests_.end(); - ++it) { - response_params[it->str] = it->value; - } - } - LOG4CXX_DEBUG(logger_, "All HMI requests are complete"); - const bool result = any_arg_success; - SendResponse(any_arg_success, status, NULL, &response_params); - if (result) { - app->UpdateHash(); - } - } -#else - hmi_apis::Common_Result::eType hmi_result = static_cast( message[strings::params][hmi_response::code].asInt()); @@ -288,7 +147,6 @@ void SubscribeVehicleDataRequest::on_event(const event_engine::Event& event) { result_code, response_info.empty() ? NULL : response_info.c_str(), &(message[strings::msg_params])); -#endif // #ifdef HMI_DBUS_API } bool SubscribeVehicleDataRequest::Init() { diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/unsubscribe_vehicle_data_request.cc b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/unsubscribe_vehicle_data_request.cc index de419894c52..d0152ea0c3a 100644 --- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/unsubscribe_vehicle_data_request.cc +++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/unsubscribe_vehicle_data_request.cc @@ -60,60 +60,6 @@ UnsubscribeVehicleDataRequest::UnsubscribeVehicleDataRequest( UnsubscribeVehicleDataRequest::~UnsubscribeVehicleDataRequest() {} -#ifdef HMI_DBUS_API -namespace { -struct Subrequest { - hmi_apis::FunctionID::eType func_id; - const char* str; -}; -Subrequest subrequests[] = { - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeGps, strings::gps}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeSpeed, strings::speed}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeRpm, strings::rpm}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel, - strings::fuel_level}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel_State, - strings::fuel_level_state}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeInstantFuelConsumption, - strings::instant_fuel_consumption}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeExternalTemperature, - strings::external_temp}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeVin, strings::vin}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribePrndl, strings::prndl}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeTirePressure, - strings::tire_pressure}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeOdometer, strings::odometer}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeBeltStatus, - strings::belt_status}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeBodyInformation, - strings::body_information}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeDeviceStatus, - strings::device_status}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeDriverBraking, - strings::driver_braking}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeWiperStatus, - strings::wiper_status}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeHeadLampStatus, - strings::head_lamp_status}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeEngineTorque, - strings::engine_torque}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeAccPedalPosition, - strings::acc_pedal_pos}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeSteeringWheelAngle, - strings::steering_wheel_angle}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeECallInfo, - strings::e_call_info}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeAirbagStatus, - strings::airbag_status}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeEmergencyEvent, - strings::emergency_event}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeClusterModeStatus, - strings::cluster_mode_status}, - {hmi_apis::FunctionID::VehicleInfo_UnsubscribeMyKey, strings::my_key}, -}; -} -#endif // #ifdef HMI_DBUS_API - void UnsubscribeVehicleDataRequest::Run() { LOG4CXX_AUTO_TRACE(logger_); @@ -226,33 +172,10 @@ void UnsubscribeVehicleDataRequest::Run() { return; } -#ifdef HMI_DBUS_API - // Generate list of subrequests - for (size_t i = 0; i < sizeof(subrequests) / sizeof(subrequests[0]); ++i) { - const Subrequest& sr = subrequests[i]; - if (true == (*message_)[strings::msg_params].keyExists(sr.str) && - true == (*message_)[strings::msg_params][sr.str].asBool()) { - HmiRequest hmi_request; - hmi_request.str = sr.str; - hmi_request.func_id = sr.func_id; - hmi_request.complete = false; - hmi_requests_.push_back(hmi_request); - } - } - LOG4CXX_INFO(logger_, - hmi_requests_.size() << " requests are going to be sent to HMI"); - - // Send subrequests - for (HmiRequests::const_iterator it = hmi_requests_.begin(); - it != hmi_requests_.end(); - ++it) - SendHMIRequest(it->func_id, &msg_params, true); -#else StartAwaitForInterface(HmiInterfaces::HMI_INTERFACE_VehicleInfo); SendHMIRequest(hmi_apis::FunctionID::VehicleInfo_UnsubscribeVehicleData, &msg_params, true); -#endif // #ifdef HMI_DBUS_API } void UnsubscribeVehicleDataRequest::on_event(const event_engine::Event& event) { @@ -275,65 +198,6 @@ void UnsubscribeVehicleDataRequest::on_event(const event_engine::Event& event) { return; } -#ifdef HMI_DBUS_API - for (HmiRequests::iterator it = hmi_requests_.begin(); - it != hmi_requests_.end(); - ++it) { - HmiRequest& hmi_request = *it; - if (hmi_request.func_id == event.id()) { - hmi_request.status = static_cast( - message[strings::params][hmi_response::code].asInt()); - if (hmi_apis::Common_Result::SUCCESS == hmi_request.status) - hmi_request.value = message[strings::msg_params][hmi_request.str]; - hmi_request.complete = true; - break; - } - } - bool all_complete = true; - bool any_arg_success = false; - mobile_api::Result::eType status = mobile_api::Result::eType::SUCCESS; - for (HmiRequests::const_iterator it = hmi_requests_.begin(); - it != hmi_requests_.end(); - ++it) { - if (!it->complete) { - all_complete = false; - break; - } - if (hmi_apis::Common_Result::SUCCESS != it->status) { - if (mobile_api::Result::SUCCESS == status) { - status = static_cast(it->status); - } else if (status != - static_cast(it->status)) { - status = mobile_api::Result::eType::GENERIC_ERROR; - } - LOG4CXX_TRACE(logger_, - "Status from HMI: " << it->status - << ", so response status become " - << status); - } else { - any_arg_success = true; - } - } - if (all_complete) { - smart_objects::SmartObject response_params(smart_objects::SmartType_Map); - if (any_arg_success) { - for (HmiRequests::const_iterator it = hmi_requests_.begin(); - it != hmi_requests_.end(); - ++it) { - response_params[it->str] = it->value; - } - } - - LOG4CXX_INFO(logger_, "All HMI requests are complete"); - if (true == any_arg_success) { - SetAllowedToTerminate(false); - } - SendResponse(any_arg_success, status, NULL, &response_params); - if (true == any_arg_success) { - app->UpdateHash(); - } - } -#else hmi_apis::Common_Result::eType hmi_result = static_cast( message[strings::params][hmi_response::code].asInt()); @@ -369,7 +233,6 @@ void UnsubscribeVehicleDataRequest::on_event(const event_engine::Event& event) { application_manager_.TerminateRequest( connection_key(), correlation_id(), function_id()); } -#endif // #ifdef HMI_DBUS_API } bool UnsubscribeVehicleDataRequest::Init() { diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/commands/mobile/get_vehicle_data_request_test.cc b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/commands/mobile/get_vehicle_data_request_test.cc index d8e4c3d075d..4ad8a84189d 100644 --- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/commands/mobile/get_vehicle_data_request_test.cc +++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/commands/mobile/get_vehicle_data_request_test.cc @@ -92,10 +92,6 @@ class UnwrappedGetVehicleDataRequest : public GetVehicleDataRequest { using GetVehicleDataRequest::on_event; }; -#ifdef HMI_DBUS_API -// HMI_DBUS_API currently not supported -#else - TEST_F(GetVehicleDataRequestTest, Run_ApplicationIsNotRegistered_UNSUCCESS) { GetVehicleDataRequestPtr command(CreateCommand()); @@ -253,8 +249,6 @@ TEST_F(GetVehicleDataRequestTest, OnEvent_DataNotAvailable_SUCCESS) { command->on_event(event); } -#endif // HMI_DBUS_API - } // namespace get_vehicle_data_request } // namespace mobile_commands_test } // namespace commands_test diff --git a/src/components/application_manager/src/application_manager_impl.cc b/src/components/application_manager/src/application_manager_impl.cc index ad9886969bf..06711412bd5 100644 --- a/src/components/application_manager/src/application_manager_impl.cc +++ b/src/components/application_manager/src/application_manager_impl.cc @@ -2449,15 +2449,11 @@ void ApplicationManagerImpl::SendOnSDLClose() { logger_, "Attached schema to message, result if valid: " << msg->isValid()); -#ifdef HMI_DBUS_API - message_to_send->set_smart_object(*msg); -#else if (!ConvertSOtoMessage(*msg, *message_to_send)) { LOG4CXX_WARN(logger_, "Cannot send message to HMI: failed to create string"); return; } -#endif // HMI_DBUS_API if (!hmi_handler_) { LOG4CXX_WARN(logger_, "No HMI Handler set"); diff --git a/src/components/application_manager/src/message_helper/message_helper.cc b/src/components/application_manager/src/message_helper/message_helper.cc index 8e04251928d..3b6b720b192 100644 --- a/src/components/application_manager/src/message_helper/message_helper.cc +++ b/src/components/application_manager/src/message_helper/message_helper.cc @@ -232,59 +232,6 @@ const VehicleData MessageHelper::vehicle_data_( kVehicleDataInitializer, kVehicleDataInitializer + ARRAYSIZE(kVehicleDataInitializer)); -#ifdef HMI_DBUS_API -namespace { -struct VehicleInfo_Requests { - hmi_apis::FunctionID::eType func_id; - const char* str; -}; -static VehicleInfo_Requests ivi_subrequests[] = { - {hmi_apis::FunctionID::VehicleInfo_SubscribeGps, strings::gps}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeSpeed, strings::speed}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeRpm, strings::rpm}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel, strings::fuel_level}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel_State, - strings::fuel_level_state}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeInstantFuelConsumption, - strings::instant_fuel_consumption}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeExternalTemperature, - strings::external_temp}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeVin, strings::vin}, - {hmi_apis::FunctionID::VehicleInfo_SubscribePrndl, strings::prndl}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeTirePressure, - strings::tire_pressure}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeOdometer, strings::odometer}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeBeltStatus, - strings::belt_status}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeBodyInformation, - strings::body_information}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeDeviceStatus, - strings::device_status}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeDriverBraking, - strings::driver_braking}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeWiperStatus, - strings::wiper_status}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeHeadLampStatus, - strings::head_lamp_status}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeEngineTorque, - strings::engine_torque}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeAccPedalPosition, - strings::acc_pedal_pos}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeSteeringWheelAngle, - strings::steering_wheel_angle}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeECallInfo, - strings::e_call_info}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeAirbagStatus, - strings::airbag_status}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeEmergencyEvent, - strings::emergency_event}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeClusterModeStatus, - strings::cluster_mode_status}, - {hmi_apis::FunctionID::VehicleInfo_SubscribeMyKey, strings::my_key}, -}; -} -#endif // #ifdef HMI_DBUS_API - const uint32_t MessageHelper::GetPriorityCode(const std::string& priority) { CommonAppPriorityMap::const_iterator it = app_priority_values.find(priority); if (app_priority_values.end() != it) { @@ -833,101 +780,11 @@ std::string MessageHelper::StringifiedFunctionID( return std::string(); } -#ifdef HMI_DBUS_API -namespace { -const std::map create_get_vehicle_data_args() { - std::map rc; - rc.insert(std::make_pair(strings::gps, - hmi_apis::FunctionID::VehicleInfo_GetGpsData)); - rc.insert(std::make_pair(strings::speed, - hmi_apis::FunctionID::VehicleInfo_GetSpeed)); - rc.insert( - std::make_pair(strings::rpm, hmi_apis::FunctionID::VehicleInfo_GetRpm)); - rc.insert(std::make_pair(strings::fuel_level, - hmi_apis::FunctionID::VehicleInfo_GetFuelLevel)); - rc.insert( - std::make_pair(strings::fuel_level_state, - hmi_apis::FunctionID::VehicleInfo_GetFuelLevelState)); - rc.insert(std::make_pair( - strings::instant_fuel_consumption, - hmi_apis::FunctionID::VehicleInfo_GetInstantFuelConsumption)); - rc.insert( - std::make_pair(strings::external_temp, - hmi_apis::FunctionID::VehicleInfo_GetExternalTemperature)); - rc.insert( - std::make_pair(strings::vin, hmi_apis::FunctionID::VehicleInfo_GetVin)); - rc.insert(std::make_pair(strings::prndl, - hmi_apis::FunctionID::VehicleInfo_GetPrndl)); - rc.insert(std::make_pair(strings::tire_pressure, - hmi_apis::FunctionID::VehicleInfo_GetTirePressure)); - rc.insert(std::make_pair(strings::odometer, - hmi_apis::FunctionID::VehicleInfo_GetOdometer)); - rc.insert(std::make_pair(strings::belt_status, - hmi_apis::FunctionID::VehicleInfo_GetBeltStatus)); - rc.insert( - std::make_pair(strings::body_information, - hmi_apis::FunctionID::VehicleInfo_GetBodyInformation)); - rc.insert(std::make_pair(strings::device_status, - hmi_apis::FunctionID::VehicleInfo_GetDeviceStatus)); - rc.insert(std::make_pair(strings::driver_braking, - hmi_apis::FunctionID::VehicleInfo_GetDriverBraking)); - rc.insert(std::make_pair(strings::wiper_status, - hmi_apis::FunctionID::VehicleInfo_GetWiperStatus)); - rc.insert( - std::make_pair(strings::head_lamp_status, - hmi_apis::FunctionID::VehicleInfo_GetHeadLampStatus)); - rc.insert(std::make_pair(strings::engine_torque, - hmi_apis::FunctionID::VehicleInfo_GetEngineTorque)); - rc.insert( - std::make_pair(strings::acc_pedal_pos, - hmi_apis::FunctionID::VehicleInfo_GetAccPedalPosition)); - rc.insert( - std::make_pair(strings::steering_wheel_angle, - hmi_apis::FunctionID::VehicleInfo_GetSteeringWheelAngle)); - rc.insert(std::make_pair(strings::e_call_info, - hmi_apis::FunctionID::VehicleInfo_GetECallInfo)); - rc.insert(std::make_pair(strings::airbag_status, - hmi_apis::FunctionID::VehicleInfo_GetAirbagStatus)); - rc.insert( - std::make_pair(strings::emergency_event, - hmi_apis::FunctionID::VehicleInfo_GetEmergencyEvent)); - rc.insert( - std::make_pair(strings::cluster_mode_status, - hmi_apis::FunctionID::VehicleInfo_GetClusterModeStatus)); - rc.insert(std::make_pair(strings::my_key, - hmi_apis::FunctionID::VehicleInfo_GetMyKey)); - return rc; -} -static std::map vehicle_data_args = - create_get_vehicle_data_args(); -} -#endif - void MessageHelper::CreateGetVehicleDataRequest( const uint32_t correlation_id, const std::vector& params, ApplicationManager& app_mngr) { LOG4CXX_AUTO_TRACE(logger_); -#ifdef HMI_DBUS_API - for (std::vector::const_iterator it = params.begin(); - it != params.end(); - it++) { - smart_objects::SmartObjectSPtr request = - utils::MakeShared(); - - (*request)[strings::params][strings::message_type] = - static_cast(kRequest); - (*request)[strings::params][strings::correlation_id] = correlation_id; - (*request)[strings::params][strings::protocol_version] = - commands::CommandImpl::protocol_version_; - (*request)[strings::params][strings::protocol_type] = - commands::CommandImpl::hmi_protocol_type_; - (*request)[strings::params][strings::function_id] = - static_cast(vehicle_data_args[*it]); - app_mngr.GetRPCService().ManageHMICommand(request); - } -#else - smart_objects::SmartObjectSPtr request = utils::MakeShared(); @@ -948,7 +805,6 @@ void MessageHelper::CreateGetVehicleDataRequest( (*request)[strings::msg_params][*it] = true; } app_mngr.GetRPCService().ManageHMICommand(request); -#endif } smart_objects::SmartObjectSPtr MessageHelper::CreateBlockedByPoliciesResponse( diff --git a/src/components/application_manager/src/policies/policy_event_observer.cc b/src/components/application_manager/src/policies/policy_event_observer.cc index 828f2d923a6..f3978140052 100644 --- a/src/components/application_manager/src/policies/policy_event_observer.cc +++ b/src/components/application_manager/src/policies/policy_event_observer.cc @@ -63,14 +63,6 @@ void PolicyEventObserver::on_event(const event_engine::Event& event) { const smart_objects::SmartObject& message = event.smart_object(); switch (event.id()) { -#ifdef HMI_DBUS_API - case hmi_apis::FunctionID::VehicleInfo_GetOdometer: { - ProcessOdometerEvent(message); - break; - } - default: { break; } - unsubscribe_from_event(hmi_apis::FunctionID::VehicleInfo_GetOdometer); -#else case hmi_apis::FunctionID::VehicleInfo_GetVehicleData: { ProcessOdometerEvent(message); unsubscribe_from_event(hmi_apis::FunctionID::VehicleInfo_GetVehicleData); @@ -82,7 +74,6 @@ void PolicyEventObserver::on_event(const event_engine::Event& event) { break; } default: { break; } -#endif } } diff --git a/src/components/application_manager/src/policies/policy_handler.cc b/src/components/application_manager/src/policies/policy_handler.cc index 1cff7b7c960..88c01c7af7a 100644 --- a/src/components/application_manager/src/policies/policy_handler.cc +++ b/src/components/application_manager/src/policies/policy_handler.cc @@ -1083,12 +1083,7 @@ bool PolicyHandler::ReceiveMessageFromSDK(const std::string& file, SetDaysAfterEpoch(); event_observer_->subscribe_on_event( -#ifdef HMI_DBUS_API - hmi_apis::FunctionID::VehicleInfo_GetOdometer, correlation_id -#else - hmi_apis::FunctionID::VehicleInfo_GetVehicleData, correlation_id -#endif - ); + hmi_apis::FunctionID::VehicleInfo_GetVehicleData, correlation_id); std::vector vehicle_data_args; vehicle_data_args.push_back(strings::odometer); MessageHelper::CreateGetVehicleDataRequest( diff --git a/src/components/application_manager/src/rpc_handler_impl.cc b/src/components/application_manager/src/rpc_handler_impl.cc index 5cf5500709b..42894a36a8f 100644 --- a/src/components/application_manager/src/rpc_handler_impl.cc +++ b/src/components/application_manager/src/rpc_handler_impl.cc @@ -100,9 +100,6 @@ void RPCHandlerImpl::ProcessMessageFromHMI( return; } -#ifdef HMI_DBUS_API - *smart_object = message->smart_object(); -#else if (!ConvertMessageToSO(*message, *smart_object)) { if (application_manager::MessageType::kResponse == (*smart_object)[strings::params][strings::message_type].asInt()) { @@ -116,7 +113,6 @@ void RPCHandlerImpl::ProcessMessageFromHMI( return; } } -#endif // HMI_DBUS_API LOG4CXX_DEBUG(logger_, "Converted message, trying to create hmi command"); if (!app_manager_.GetRPCService().ManageHMICommand(smart_object)) { diff --git a/src/components/application_manager/src/rpc_service_impl.cc b/src/components/application_manager/src/rpc_service_impl.cc index 7d930d14327..11a98fc970c 100644 --- a/src/components/application_manager/src/rpc_service_impl.cc +++ b/src/components/application_manager/src/rpc_service_impl.cc @@ -498,15 +498,11 @@ void RPCServiceImpl::SendMessageToHMI( logger_, "Attached schema to message, result if valid: " << message->isValid()); -#ifdef HMI_DBUS_API - message_to_send->set_smart_object(*message); -#else if (!ConvertSOtoMessage(*message, *message_to_send)) { LOG4CXX_WARN(logger_, "Cannot send message to HMI: failed to create string"); return; } -#endif // HMI_DBUS_API messages_to_hmi_.PostMessage(impl::MessageToHmi(message_to_send)); } diff --git a/src/components/dbus/CMakeLists.txt b/src/components/dbus/CMakeLists.txt deleted file mode 100644 index 26ff9373bf0..00000000000 --- a/src/components/dbus/CMakeLists.txt +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright (c) 2016, Ford Motor Company -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following -# disclaimer in the documentation and/or other materials provided with the -# distribution. -# -# Neither the name of the Ford Motor Company nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) - -include_directories ( - ${DBUS_INCLUDE_DIRS} - ${CMAKE_CURRENT_SOURCE_DIR}/include/ - ${CMAKE_SOURCE_DIR}/ - ${COMPONENTS_DIR} - ${COMPONENTS_DIR}/formatters/include/ - ${COMPONENTS_DIR}/smart_objects/include/ - ${COMPONENTS_DIR}/utils/include/ - ${CMAKE_BINARY_DIR}/src/components/ -) - -set(PATHS - ${CMAKE_CURRENT_SOURCE_DIR}/include - ${CMAKE_CURRENT_SOURCE_DIR}/src - ${CMAKE_CURRENT_SOURCE_DIR}/src/introspection_xml.cc - ${CMAKE_CURRENT_BINARY_DIR}/message_descriptions.cc -) -collect_sources(SOURCES "${PATHS}") - -set(LIBRARIES - HMI_API - Utils - dbus-1 -) - -add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/message_descriptions.cc - COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/codegen/make_message_descriptions.py - --infile ${CMAKE_CURRENT_SOURCE_DIR}/../interfaces/QT_HMI_API.xml - --outdir ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../interfaces/QT_HMI_API.xml - ${CMAKE_CURRENT_SOURCE_DIR}/codegen/make_message_descriptions.py -) - -add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/introspection_xml.cc - COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/codegen/make_introspection_c.py - --infile ${CMAKE_CURRENT_SOURCE_DIR}/../interfaces/QT_HMI_API.xml - --outdir ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../interfaces/QT_HMI_API.xml - ${CMAKE_CURRENT_SOURCE_DIR}/codegen/make_introspection_c.py -) - -add_library("DBus" ${SOURCES}) - -target_link_libraries("DBus" "${LIBRARIES}") - -if(BUILD_TESTS) - add_subdirectory(test) -endif() diff --git a/src/components/dbus/codegen/code_formatter.py b/src/components/dbus/codegen/code_formatter.py deleted file mode 100644 index c3eb1b7815c..00000000000 --- a/src/components/dbus/codegen/code_formatter.py +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# @file code_formatter.py -# @brief Utility that helps to manage indents in generated code -# -# This file is a part of HMI D-Bus layer. -# -# Copyright (c) 2013, Ford Motor Company -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following -# disclaimer in the documentation and/or other materials provided with the -# distribution. -# -# Neither the name of the Ford Motor Company nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -class CodeBlock: - indent = 0 - def __init__(self, out): - self.out = out - if type(out) == file: - self.indent = 0 - elif type(out) == CodeBlock: - self.indent = out.indent - def __enter__(self): - self.indent += 1 - return self - def __exit__(self, exc_type, exc_value, traceback): - if self.indent >= 1: - self.indent -= 1 - def write(self, s): - for string in s.splitlines(True): - self.out.write(' ' * self.indent + string) - -# vim: set ts=4 sw=4 et: - diff --git a/src/components/dbus/codegen/ford_xml_parser.py b/src/components/dbus/codegen/ford_xml_parser.py deleted file mode 100644 index 4f9f222d24d..00000000000 --- a/src/components/dbus/codegen/ford_xml_parser.py +++ /dev/null @@ -1,231 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# @file ford_xml_parser.py -# @brief Parser for HMI_API.xml -# -# This file is a part of HMI D-Bus layer. -# -# Copyright (c) 2013, Ford Motor Company -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following -# disclaimer in the documentation and/or other materials provided with the -# distribution. -# -# Neither the name of the Ford Motor Company nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -from xml.etree import ElementTree -from collections import OrderedDict - -node_name = '/com/ford/hmi' - -class ParamDesc: - pass - -class FordXmlParser: - def __init__(self, in_el_tree, interface_path=None): - self.interface_path = interface_path - self.el_tree = in_el_tree - self.find_enums() - self.find_structs() - - def find_enums(self): - self.enums = dict() - for interface_el in self.el_tree.findall('interface'): - interface_name = interface_el.get('name') - for enum_el in interface_el.findall('enum'): - enum_name = enum_el.get('name') - self.enums[(interface_name,enum_name)] = enum_el - - - def make_param_desc(self, param_el, iface=None): - param_desc = ParamDesc() - param_desc.name = param_el.get('name') - param_desc.type = param_el.get('type') - param_desc.enum = False - param_desc.struct = False - param_desc.fulltype = param_desc.type - if param_el.get('mandatory') == 'false': - param_desc.mandatory = False - else: - param_desc.mandatory = True - if param_el.get('array') == 'true': - param_desc.array = True - else: - param_desc.array = False - param_desc.minValue = param_el.get('minvalue') if param_el.get('minvalue') else 0 - param_desc.maxValue = param_el.get('maxvalue') - param_desc.minLength = param_el.get('minlength') if param_el.get('minlength') else 0 - param_desc.maxLength = param_el.get('maxlength') - param_desc.minSize = param_el.get('minsize') - param_desc.maxSize = param_el.get('maxsize') - - param_desc.restricted = param_desc.minValue != None or \ - param_desc.maxValue != None or \ - param_desc.minLength > 0 or \ - param_desc.maxLength > 0 - param_desc.restrictedArray = param_desc.array and (param_desc.minSize > 0 or param_desc.maxSize > 0) - if iface is None: - return param_desc - if param_desc.type not in ['Integer', 'String', 'Boolean', 'Float']: - param_type = param_desc.type.split('.') - if len(param_type) > 1: - param_type = (param_type[0], param_type[1]) - else: - param_type = (iface, param_type[0]) - param_desc.fulltype = param_type - if param_type in self.enums: param_desc.enum = True - elif param_type in self.structs: param_desc.struct = True - return param_desc - - - def find_structs(self): - self.structs = OrderedDict() - for interface_el in self.el_tree.findall('interface'): - interface_name = interface_el.get('name') - for struct_el in interface_el.findall('struct'): - struct_name = struct_el.get('name') - self.structs[(interface_name, struct_name)] = [] - - for interface_el in self.el_tree.findall('interface'): - interface_name = interface_el.get('name') - for struct_el in interface_el.findall('struct'): - struct_name = struct_el.get('name') - for param_el in struct_el.findall('param'): - param_desc = self.make_param_desc(param_el, interface_name) - self.structs[(interface_name, struct_name)].append(param_desc) - - - def convert_struct_to_dbus(self, param_type): - ret = '(' - struct = self.structs[param_type] - for param in struct: - ret = ret + self.convert_to_dbus_type(param) - ret = ret + ')' - return ret - - - def convert_to_dbus_type(self, param): - if param.type == 'Integer': restype = 'i' - elif param.type == 'String': restype = 's' - elif param.type == 'Boolean': restype = 'b' - elif param.type == 'Float': restype = 'd' # D-Bus double - elif param.enum: restype = 'i' # D-Bus 32-bit signed int - elif param.struct: restype = self.convert_struct_to_dbus(param.fulltype) - else: raise RuntimeError('Unknown type: ' + param.type) - if param.array: restype = 'a' + restype - if not param.mandatory: restype = '(b' + restype + ')' - return restype - - - def find_notifications(self, interface_el): - notifications = list() - for function_el in interface_el.findall('function[@messagetype="notification"]'): - notifications.append(function_el) - return notifications - - - def find_notifications_by_provider(self, interface_el, provider): - notifications = list() - condition = 'function[@messagetype="notification"][@provider="%s"]' % provider - for function_el in interface_el.findall(condition): - notifications.append(function_el) - return notifications - - - def find_request_response_pairs(self, interface_el): - result = list() - request_els = interface_el.findall('function[@messagetype="request"]') - response_els = interface_el.findall('function[@messagetype="response"]') - for request_el in request_els: - name = request_el.get('name') - response_el = next(r for r in response_els if r.get('name') == name) - result.append((request_el, response_el)) - return result - - - def find_request_response_pairs_by_provider(self, interface_el, provider): - result = list() - condition = 'function[@messagetype="request"][@provider="%s"]' % provider - request_els = interface_el.findall(condition) - response_els = interface_el.findall('function[@messagetype="response"]') - for request_el in request_els: - name = request_el.get('name') - response_el = next(r for r in response_els if r.get('name') == name) - result.append((request_el, response_el)) - return result - - - def convert_to_signal(self, notification_el, interface): - result = ElementTree.Element('signal') - result.set('name', notification_el.get('name')) - for param_el in notification_el.findall('param'): - self.create_arg_element(result, param_el, interface) - return result - - - def convert_to_method(self, (request_el, response_el), interface): - result = ElementTree.Element('method') - result.set('name', request_el.get('name')) - for param_el in request_el.findall('param'): - arg_el = self.create_arg_element(result, param_el, interface) - arg_el.set('direction', 'in') - - arg_el = ElementTree.SubElement(result, 'arg') - arg_el.set('name', 'retCode') - arg_el.set('type', 'i') - arg_el.set('direction', 'out') - - for param_el in response_el.findall('param'): - arg_el = self.create_arg_element(result, param_el, interface) - arg_el.set('direction', 'out') - return result - - - def create_arg_element(self, parent, param_el, interface): - arg_el = ElementTree.SubElement(parent, 'arg') - arg_el.set('name', param_el.get('name')) - arg_el.set('type', self.convert_to_dbus_type(self.make_param_desc(param_el, interface))) - return arg_el - - - def create_introspection_iface_el(self, interface_el, provider): - interface = interface_el.get('name') - interface_name = self.interface_path + '.' + interface - - notifications = self.find_notifications_by_provider(interface_el, provider) - signals = [self.convert_to_signal(n, interface) for n in notifications] - - request_responses = self.find_request_response_pairs_by_provider(interface_el, provider) - methods = [self.convert_to_method(r, interface) for r in request_responses] - - if signals or methods: - el = ElementTree.Element('interface', attrib={'name':interface_name}) - for m in methods: el.append(m) - for s in signals: el.append(s) - return el - - - diff --git a/src/components/dbus/codegen/introspection_xml.cc b/src/components/dbus/codegen/introspection_xml.cc deleted file mode 100644 index 210c232a4d6..00000000000 --- a/src/components/dbus/codegen/introspection_xml.cc +++ /dev/null @@ -1,327 +0,0 @@ -// Warning! This file is generated by 'make_introspection_c.py'. Edit at your -// own risk. -/** - * @file instrospections_xml.cc - * @brief D-Bus introspection XML as C-string - * - * This file is a part of HMI D-Bus layer. - */ -// Copyright (c) 2013, Ford Motor Company -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following -// disclaimer in the documentation and/or other materials provided with the -// distribution. -// -// Neither the name of the Ford Motor Company nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -char introspection_xml[] = { - 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, 0x6e, 0x6f, - 0x64, 0x65, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x22, 0x2d, - 0x2f, 0x2f, 0x66, 0x72, 0x65, 0x65, 0x64, 0x65, 0x73, 0x6b, 0x74, 0x6f, - 0x70, 0x2f, 0x2f, 0x44, 0x54, 0x44, 0x20, 0x44, 0x2d, 0x42, 0x55, 0x53, - 0x20, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x31, 0x2e, - 0x30, 0x2f, 0x2f, 0x45, 0x4e, 0x22, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, - 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x66, 0x72, 0x65, 0x65, 0x64, - 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x73, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x73, 0x2f, 0x64, 0x62, 0x75, - 0x73, 0x2f, 0x31, 0x2e, 0x30, 0x2f, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x73, - 0x70, 0x65, 0x63, 0x74, 0x2e, 0x64, 0x74, 0x64, 0x22, 0x3e, 0x0a, 0x3c, - 0x6e, 0x6f, 0x64, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x2f, - 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6f, 0x72, 0x64, 0x2f, 0x68, 0x6d, 0x69, - 0x22, 0x3e, 0x3c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x66, - 0x6f, 0x72, 0x64, 0x2e, 0x68, 0x6d, 0x69, 0x2e, 0x73, 0x64, 0x6c, 0x2e, - 0x42, 0x61, 0x73, 0x69, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3e, 0x3c, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4f, 0x6e, - 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x70, 0x70, 0x49, 0x44, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, 0x22, 0x20, 0x2f, 0x3e, - 0x3c, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x3e, 0x3c, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4f, - 0x6e, 0x53, 0x44, 0x4c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x22, - 0x20, 0x2f, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4f, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x22, 0x3e, 0x3c, 0x61, 0x72, 0x67, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x73, - 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, 0x22, 0x20, 0x2f, 0x3e, - 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, - 0x70, 0x70, 0x49, 0x44, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x4f, 0x6e, 0x41, 0x70, 0x70, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x22, 0x3e, 0x3c, 0x61, 0x72, - 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x28, 0x73, 0x28, 0x62, 0x73, 0x29, 0x28, 0x62, 0x73, - 0x29, 0x28, 0x73, 0x73, 0x28, 0x62, 0x69, 0x29, 0x28, 0x62, 0x62, 0x29, - 0x29, 0x73, 0x28, 0x62, 0x61, 0x28, 0x73, 0x69, 0x29, 0x29, 0x28, 0x62, - 0x61, 0x73, 0x29, 0x69, 0x69, 0x62, 0x28, 0x62, 0x61, 0x69, 0x29, 0x28, - 0x62, 0x62, 0x29, 0x28, 0x62, 0x61, 0x69, 0x29, 0x29, 0x22, 0x20, 0x2f, - 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x74, 0x74, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x28, 0x62, 0x61, 0x28, 0x73, 0x69, 0x29, 0x29, 0x22, - 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x76, 0x72, 0x53, 0x79, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x73, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x61, 0x73, - 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x56, 0x72, - 0x47, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x72, 0x73, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x62, 0x29, 0x22, 0x20, 0x2f, 0x3e, - 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x28, 0x62, 0x69, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, - 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x3e, 0x3c, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4f, 0x6e, - 0x41, 0x70, 0x70, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, - 0x72, 0x65, 0x64, 0x22, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x62, 0x22, 0x20, 0x2f, - 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x61, 0x70, 0x70, 0x49, 0x44, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x50, 0x6c, 0x61, 0x79, 0x54, 0x6f, 0x6e, - 0x65, 0x22, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x61, 0x70, 0x70, 0x49, 0x44, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4f, 0x6e, 0x53, 0x44, 0x4c, 0x43, 0x6c, - 0x6f, 0x73, 0x65, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4f, 0x6e, 0x50, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x22, 0x3e, 0x3c, 0x61, 0x72, 0x67, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x69, - 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x69, 0x29, 0x22, 0x20, - 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x69, 0x29, 0x22, 0x20, 0x2f, - 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x73, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, - 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x79, 0x6e, 0x63, - 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x73, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, - 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x69, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x28, 0x62, 0x62, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x3e, 0x3c, 0x2f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x3e, 0x3c, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6f, 0x72, 0x64, 0x2e, 0x68, 0x6d, 0x69, - 0x2e, 0x73, 0x64, 0x6c, 0x2e, 0x55, 0x49, 0x22, 0x3e, 0x3c, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4f, - 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x22, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x61, 0x70, 0x70, 0x49, 0x44, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x3e, 0x3c, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x3e, 0x3c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6f, 0x6d, - 0x2e, 0x66, 0x6f, 0x72, 0x64, 0x2e, 0x68, 0x6d, 0x69, 0x2e, 0x73, 0x64, - 0x6c, 0x2e, 0x53, 0x44, 0x4c, 0x22, 0x3e, 0x3c, 0x6d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x22, 0x3e, 0x3c, 0x61, - 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x3d, 0x22, 0x69, 0x6e, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x61, 0x70, 0x70, 0x49, 0x44, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, - 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, 0x74, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x73, 0x53, 0x44, - 0x4c, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x62, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, - 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, - 0x22, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x28, 0x62, 0x28, 0x73, 0x73, 0x28, 0x62, 0x69, 0x29, 0x28, - 0x62, 0x62, 0x29, 0x29, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, - 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, - 0x22, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x69, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, - 0x65, 0x64, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x62, 0x22, - 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, 0x74, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x73, 0x41, 0x70, 0x70, 0x50, - 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x62, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, - 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x70, 0x70, - 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x28, 0x62, 0x61, 0x28, 0x73, 0x69, 0x28, 0x62, 0x62, 0x29, - 0x29, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, - 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x73, 0x41, - 0x70, 0x70, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x62, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, - 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x3d, 0x22, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x69, 0x29, 0x22, 0x20, 0x2f, - 0x3e, 0x3c, 0x2f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3e, 0x3c, 0x6d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3e, - 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x3d, 0x22, 0x69, 0x6e, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, - 0x65, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x61, 0x73, - 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x69, 0x6e, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, - 0x69, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, - 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, 0x74, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x28, 0x62, 0x61, 0x28, 0x73, 0x28, 0x62, 0x73, 0x29, 0x28, 0x62, 0x73, - 0x29, 0x28, 0x62, 0x73, 0x29, 0x28, 0x62, 0x73, 0x29, 0x28, 0x62, 0x73, - 0x29, 0x29, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x3e, 0x3c, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x4f, 0x66, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x22, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x69, 0x6e, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x70, 0x70, 0x49, 0x44, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x69, 0x29, 0x22, - 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, 0x74, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, 0x22, 0x20, - 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x61, 0x28, 0x73, 0x69, 0x28, 0x62, 0x62, - 0x29, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x6d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x3e, 0x3c, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, - 0x44, 0x4c, 0x22, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, 0x74, 0x22, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, 0x22, - 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, 0x74, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, 0x22, 0x20, 0x2f, - 0x3e, 0x3c, 0x2f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3e, 0x3c, 0x6d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x22, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, 0x74, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, - 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, 0x74, 0x22, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, 0x22, 0x20, - 0x2f, 0x3e, 0x3c, 0x2f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3e, 0x3c, - 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x47, 0x65, 0x74, 0x55, 0x52, 0x4c, 0x53, 0x22, 0x3e, 0x3c, 0x61, - 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x3d, 0x22, 0x69, 0x6e, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, - 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, - 0x6f, 0x75, 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, - 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, - 0x75, 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x72, - 0x6c, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, - 0x61, 0x28, 0x73, 0x28, 0x62, 0x73, 0x29, 0x29, 0x29, 0x22, 0x20, 0x2f, - 0x3e, 0x3c, 0x2f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3e, 0x3c, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x4f, 0x6e, 0x41, 0x70, 0x70, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x22, 0x3e, - 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, - 0x70, 0x70, 0x49, 0x44, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x73, 0x41, 0x70, 0x70, 0x50, 0x65, 0x72, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x76, 0x6f, - 0x6b, 0x65, 0x64, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, - 0x62, 0x62, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x70, 0x70, 0x52, 0x65, 0x76, - 0x6f, 0x6b, 0x65, 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, - 0x62, 0x61, 0x28, 0x73, 0x69, 0x28, 0x62, 0x62, 0x29, 0x29, 0x29, 0x22, - 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x61, 0x70, 0x70, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x62, 0x29, - 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x61, 0x70, 0x70, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, - 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x28, 0x62, 0x62, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, - 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x70, 0x70, - 0x55, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x62, 0x29, - 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x69, 0x29, 0x22, - 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x61, - 0x69, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4f, 0x6e, 0x53, 0x44, 0x4c, 0x43, 0x6f, - 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x22, - 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x28, 0x73, 0x73, 0x28, 0x62, 0x69, 0x29, 0x28, 0x62, 0x62, - 0x29, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x3e, 0x3c, 0x61, 0x72, - 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, 0x22, - 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x3e, - 0x3c, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x3e, - 0x3c, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x3e, 0x00}; \ No newline at end of file diff --git a/src/components/dbus/codegen/make_hmi_requests.py b/src/components/dbus/codegen/make_hmi_requests.py deleted file mode 100755 index 4716d40439b..00000000000 --- a/src/components/dbus/codegen/make_hmi_requests.py +++ /dev/null @@ -1,343 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# @file make_qml_dbus_cpp.py -# @brief Generator of QML to QDbus C++ part -# -# This file is a part of HMI D-Bus layer. -# -# Copyright (c) 2014, Ford Motor Company -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following -# disclaimer in the documentation and/or other materials provided with the -# distribution. -# -# Neither the name of the Ford Motor Company nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -from argparse import ArgumentParser -import os.path -from sys import argv -from xml.etree import ElementTree -from copy import copy -from ford_xml_parser import FordXmlParser, ParamDesc -from code_formatter import CodeBlock - -prefix_class_item = 'Declarative' -invoke_type_connection = 'Direct' - -def defaultValue(param): - if param.type == "Integer": - return "0" - elif param.type == "Float": - return "0.0" - elif param.type == "Boolean": - return "false" - elif param.enum: - return "0" - -class Impl(FordXmlParser): - def make_requests_classes_header(self, out): - for interface_el in self.el_tree.findall('interface'): - request_responses = self.find_request_response_pairs_by_provider(interface_el, "sdl") - for (request, response) in request_responses: - request_full_name = interface_el.get('name') + '_' +request.get('name') - out.write('class ' + request_full_name + ': public HMIRequest {\n') - with CodeBlock(out) as output: - output.write('Q_OBJECT\n') - out.write(' public:\n') - with CodeBlock(out) as output: - output.write(request_full_name + '(QJSValue hmi_callback, QDBusInterface *interface, QList args, QString name):\n') - output.write(' HMIRequest(hmi_callback, interface, args, name) {}\n') - out.write(' private:\n') - with CodeBlock(out) as output: - output.write('QJSValueList fillArgsList();\n};\n\n') - - - def make_header_file(self, out): - out.write("namespace requests {\n") - out.write("class HMIRequest: public QObject {\n") - with CodeBlock(out) as output: - output.write('Q_OBJECT\n') - out.write('public:\n') - with CodeBlock(out) as output: - output.write('HMIRequest(QJSValue hmi_callback, QDBusInterface *interface, QList args, QString name );\n') - out.write('protected:\n') - with CodeBlock(out) as output: - output.write('virtual QJSValueList fillArgsList() = 0;\n') - output.write('QDBusPendingCallWatcher *watcher_;\n') - output.write('QJSValue hmi_callback_;\n\n') - output.write('template\n') - output.write('QJSValue CreateQJSValue(T value) {\n') - output.write(' return QJSValue(value);\n') - output.write('}\n\n') - output.write('template\n') - output.write('QJSValue CreateQJSValue(QList value) {\n') - with CodeBlock(output) as output: - output.write('QJSValue array = hmi_callback_.engine()->newArray();\n') - output.write('int i = 0;\n') - output.write('foreach (T item, value) {\n') - output.write(' QJSValue value = CreateQJSValue(item);\n') - output.write(' array.setProperty(i, value);\n') - output.write(' ++i;\n') - output.write('}\n') - output.write('return array;\n') - output.write('}\n') - out.write('private:\n') - with CodeBlock(out) as output: - output.write('QDBusInterface *interface_;\n') - output.write('QList args_;\n') - out.write('public slots:\n') - with CodeBlock(out) as output: - output.write('void invokeCallback();\n') - out.write('};\n\n') - output.write('template<>\n') - output.write('QJSValue HMIRequest::CreateQJSValue(QStringList value);\n') - for (interface_name, struct_name) in self.structs: - out.write('template<>\n') - out.write('QJSValue HMIRequest::CreateQJSValue(Common_' + struct_name + ' value);\n\n') - impl.make_requests_classes_header(out) - out.write("} // namespace requests\n") - - - def qt_param_type(self, param): - if not param.mandatory: - param_copy = copy(param) - param_copy.mandatory = True - return "OptionalArgument< " + self.qt_param_type(param_copy) + " >" - if param.array: - param_copy = copy(param) - param_copy.array = False - if param.type == 'String': - return "QStringList" - return "QList< " + self.qt_param_type(param_copy) + " >" - if param.type == 'Integer' or param.enum: - return 'int' - elif param.type == 'String': - return 'QString' - elif param.type == 'Boolean': - return 'bool' - elif param.type == 'Float': - return 'double' - elif param.struct: - return "_".join(param.fulltype) - return "xxx" - - - def make_requests_methods_source(self, out): - for interface_el in self.el_tree.findall('interface'): - request_responses = self.find_request_response_pairs_by_provider(interface_el, "sdl") - for (request, response) in request_responses: - iface_name = interface_el.get('name') - request_full_name = iface_name + '_' +request.get('name') - out.write('QJSValueList ' + request_full_name + '::fillArgsList() {\n') - out.write(' QDBusPendingReply< ') - count = 0 - for param_el in response.findall('param'): - param = self.make_param_desc(param_el, iface_name) - out.write(self.qt_param_type(param)) - count += 1 - if count < len(response.findall('param')): - out.write(',') - out.write(' > reply = *watcher_;\n') - - with CodeBlock(out) as out: - out.write('QJSValueList qjsValueList;\n\n') - out.write('QJSValue param;\n\n') - count = 0 - for param_el in response.findall('param'): - if param_el.get('mandatory') == 'false': - out.write('if (reply.argumentAt<' + str(count) + '>().presence) {\n') - out.write(' param = CreateQJSValue(reply.argumentAt<' + str(count) + '>().val);\n') - out.write('} else {\n') - out.write(' param = QJSValue();\n') - out.write('}\n') - out.write('qjsValueList.append(param);\n') - else: - out.write('param = CreateQJSValue(reply.argumentAt<' + str(count) + '>());\n') - out.write('qjsValueList.append(param);\n') - count += 1 - out.write('return qjsValueList;\n') - out.write('}\n\n') - - - def make_source_file(self, out): - out.write("namespace requests {\n") - for interface_el in self.el_tree.findall('interface'): - for struct_el in interface_el.findall('struct'): - out.write('template<>\n') - out.write('QJSValue HMIRequest::CreateQJSValue(Common_' + struct_el.get('name') + ' value){\n') - with CodeBlock(out) as output: - output.write('QJSValue object = hmi_callback_.engine()->newObject();\n') - for param_el in struct_el.findall('param'): - param_name = param_el.get('name') - if param_el.get('mandatory') == 'true': - with CodeBlock(out) as output: - output.write('object.setProperty("' + param_name + '", CreateQJSValue(value.' + param_name + '));\n') - elif param_el.get('mandatory') == 'false': - with CodeBlock(out) as output: - output.write('object.setProperty("' + param_name + '", value.' + param_name + '.presence ? CreateQJSValue(value.' + param_name + '.val) : QJSValue());\n') - out.write('return object;\n') - out.write('}\n\n') - - - out.write('HMIRequest::HMIRequest(QJSValue hmi_callback, QDBusInterface *interface, QList args, QString name) :\n') - out.write(' hmi_callback_(hmi_callback), interface_(interface), args_(args) {\n') - with CodeBlock(out) as output: - output.write('QDBusPendingCall pcall = interface->asyncCallWithArgumentList(name, args);\n') - output.write('watcher_ = new QDBusPendingCallWatcher(pcall);\n') - output.write('QObject::connect(watcher_, SIGNAL(finished(QDBusPendingCallWatcher*)), this, SLOT(invokeCallback()));\n}\n\n') - out.write('void HMIRequest::invokeCallback() {\n') - with CodeBlock(out) as output: - output.write('if (!hmi_callback_.isUndefined()) {\n') - with CodeBlock(output) as output: - output.write('QJSValueList qjsValueList;\n') - output.write('qjsValueList = this->fillArgsList();\n') - output.write('hmi_callback_.call(qjsValueList);\n') - output.write('}\n') - output.write('watcher_->deleteLater();\n') - output.write('this->deleteLater();\n}\n\n') - impl.make_requests_methods_source(out) - out.write("} // namespace requests\n") - - -arg_parser = ArgumentParser(description="Generator of Qt to QDbus C++ part") -arg_parser.add_argument('--infile', required=True, help="full name of input file, e.g. applink/src/components/interfaces/QT_HMI_API.xml") -arg_parser.add_argument('--version', required=False, help="Qt version 4.8.5 (default) or 5.1.0") -arg_parser.add_argument('--outdir', required=True, help="path to directory where output files request_to_sdl.h, request_to_sdl.cc will be saved") -args = arg_parser.parse_args() - -if args.version == "4.8.5": - prefix_class_item = 'Declarative' - invoke_type_connection = 'Direct' -elif args.version == "5.1.0": - prefix_class_item = 'Quick' - invoke_type_connection = 'BlockingQueued' - -header_name = 'hmi_requests.h' -source_name = 'hmi_requests.cc' - -in_tree = ElementTree.parse(args.infile) -in_tree_root = in_tree.getroot() - -impl = Impl(in_tree_root, 'com.ford.sdl.hmi') - -header_out = open(args.outdir + '/' + header_name, "w") -source_out = open(args.outdir + '/' + source_name, "w") - -header_out.write("// Warning! This file is generated by '%s'. Edit at your own risk.\n" % argv[0]) -header_out.write("""/** - * @file hmi_requests.h - * @brief Generated class that process requests from qtHMI - * - * This file is a part of HMI D-Bus layer. - */ -// Copyright (c) 2014, Ford Motor Company -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following -// disclaimer in the documentation and/or other materials provided with the -// distribution. -// -// Neither the name of the Ford Motor Company nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -""") -header_out.write("#ifndef SRC_COMPONENTS_QTHMI_QMLMODELQT5_HMIREQUESTS_\n"); -header_out.write("#define SRC_COMPONENTS_QTHMI_QMLMODELQT5_HMIREQUESTS_\n\n"); -header_out.write("#include \n"); -header_out.write("#include \n"); -header_out.write("#include \n"); -header_out.write("#include \n"); -header_out.write('#include \n'); -header_out.write("#include \n"); -header_out.write("#include \n"); -header_out.write("#include \n"); - -header_out.write('#include "qml_dbus.h"\n\n'); - -impl.make_header_file(header_out) - -header_out.write("#endif // SRC_COMPONENTS_QTHMI_QMLMODELQT5_HMIREQUESTS_\n"); - -source_out.write("// Warning! This file is generated by '%s'. Edit at your own risk.\n" % argv[0]) -source_out.write("""/** - * @file hmi_requests.cc - * @brief Generated class that process requests from qtHMI - * - * This file is a part of HMI D-Bus layer. - */ -// Copyright (c) 2014, Ford Motor Company -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following -// disclaimer in the documentation and/or other materials provided with the -// distribution. -// -// Neither the name of the Ford Motor Company nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -""") -source_out.write('#include "hmi_requests.h"\n\n') -impl.make_source_file(source_out) diff --git a/src/components/dbus/codegen/make_introspection_c.py b/src/components/dbus/codegen/make_introspection_c.py deleted file mode 100755 index 22a53f308d9..00000000000 --- a/src/components/dbus/codegen/make_introspection_c.py +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# @file make_introspection_c.py -# @brief Converts introspection.xml to C-string -# -# This file is a part of HMI D-Bus layer. -# -# Copyright (c) 2013, Ford Motor Company -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following -# disclaimer in the documentation and/or other materials provided with the -# distribution. -# -# Neither the name of the Ford Motor Company nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -from argparse import ArgumentParser -from ford_xml_parser import FordXmlParser -from ford_xml_parser import node_name -from xml.etree import ElementTree -from os import path -from sys import argv - -class Impl(FordXmlParser): - def convert_to_introspection(self, out_el_tree): - for interface_el in self.el_tree.findall('interface'): - el = self.create_introspection_iface_el(interface_el, 'sdl') - if el is not None: - out_el_tree.append(el) - -arg_parser = ArgumentParser(description='Converts introspection.xml to C-string') -arg_parser.add_argument('--infile', required=True, help="Full name of input file, e.g. applink/src/components/interfaces/QT_HMI_API.xml") -arg_parser.add_argument('--outdir', required=True, help="Path to directory where output file introspection_xml.cc will be saved") -args = arg_parser.parse_args() - -if not path.isdir(args.outdir): - makedirs(args.outdir) - -out_file = open(args.outdir + '/' + 'introspection_xml.cc', "w") - -in_tree = ElementTree.parse(args.infile) -in_tree_root = in_tree.getroot() -out_tree_root = ElementTree.Element('node', attrib={'name':node_name}) - -impl = Impl(in_tree_root, 'com.ford.hmi.sdl') -impl.convert_to_introspection(out_tree_root) - -introspection_string = '' -introspection_string += "\n" -introspection_string += ElementTree.tostring(out_tree_root) - -out_file.write("// Warning! This file is generated by '%s'. Edit at your own risk.\n" % argv[0]) -out_file.write("""/** - * @file instrospections_xml.cc - * @brief D-Bus introspection XML as C-string - * - * This file is a part of HMI D-Bus layer. - */ -// Copyright (c) 2013, Ford Motor Company -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following -// disclaimer in the documentation and/or other materials provided with the -// distribution. -// -// Neither the name of the Ford Motor Company nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -""") - -out_file.write("char introspection_xml[] = {") - -cnt = 0 -for char in introspection_string: - if cnt % 12 == 0: - out_file.write("\n ") - else: - out_file.write(" ") - out_file.write("0x%02x," % ord(char)) - cnt = cnt + 1 - -out_file.write(" 0x00\n") -out_file.write("};") - diff --git a/src/components/dbus/codegen/make_message_descriptions.py b/src/components/dbus/codegen/make_message_descriptions.py deleted file mode 100755 index 00796663929..00000000000 --- a/src/components/dbus/codegen/make_message_descriptions.py +++ /dev/null @@ -1,273 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# @file make_message_descriptions.py -# @brief Generates HMI API message descriptions for D-Bus -# -# This file is a part of HMI D-Bus layer. -# -# Copyright (c) 2013, Ford Motor Company -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following -# disclaimer in the documentation and/or other materials provided with the -# distribution. -# -# Neither the name of the Ford Motor Company nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -from argparse import ArgumentParser -from xml.etree import ElementTree -from copy import copy -from ford_xml_parser import FordXmlParser -from os import path -from sys import argv - -namespace_name = 'ford_message_descriptions' -namespace = namespace_name + '::' - - -class Impl(FordXmlParser): - def write_param_definition(self, param_var_name, param, out): - if param.array: - tmp_param = copy(param) - tmp_param.array = False - tmp_param.mandatory = True - dbus_sig = self.convert_to_dbus_type(tmp_param) - self.write_param_definition(param_var_name + '_array', tmp_param, out) - - if param.array: out.write('const ' + namespace + 'ArrayDescription ') - elif param.struct: out.write('const ' + namespace + 'StructDescription ') - else: out.write('const ' + namespace + 'ParameterDescription ') - - out.write(param_var_name + " = {\n") - - if param.struct or param.array: - out.write(" {\n") - shift = ' ' * 4 - else: - shift = ' ' * 2 - - out.write(shift + "\"" + param.name + "\",\n") - - if param.array: - out.write(shift + namespace + "Array,\n") - elif param.struct: - out.write(shift + namespace + "Struct,\n") - elif param.enum: - out.write(shift + namespace + "Enum,\n") - else: - out.write(shift + namespace + param.type + ",\n") - - if param.mandatory: - out.write(shift + "true\n") - else: - out.write(shift + "false\n") - - if param.struct or param.array: - out.write(" },\n") - if param.array: - out.write(" (const " + namespace + "ParameterDescription*)&" + param_var_name + "_array,\n") - out.write(" \"" + dbus_sig + "\"\n") - elif param.struct: - out.write(" Structs::" + param.fulltype[0] + "__" + param.fulltype[1] + "__parameters\n") - out.write("};\n") - - - def write_struct_params_declarations(self, out): - out.write("struct Structs {\n"); - for (interface, name), params in self.structs.iteritems(): - params_var_name = interface + '__' + name + '__parameters' - out.write(" static const " + namespace + "ParameterDescription* " + params_var_name + "[];\n") - out.write("};\n\n") - - - def write_enum_entries_declarations(self, out): - out.write("struct Enums {\n"); - for interface, name in self.enums: - entries_var_name = interface + '__' + name + '__entries' - out.write(" static const " + namespace + "EnumDescription::Entry* " + entries_var_name + "[];\n") - out.write("};\n\n") - - - def write_parameters(self, params, out, name): - n = 1 - for param in params: - param_var_name = name + str(n) - n = n + 1 - self.write_param_definition(param_var_name, param, out) - - - def write_struct_params_definitions(self, out): - for (interface, name), params in self.structs.iteritems(): - param_var_name = interface + '__' + name + '__parameter' - self.write_parameters(params, out, param_var_name) - params_var_name = 'Structs::' + interface + '__' + name + '__parameters' - out.write("const " + namespace + "ParameterDescription* " + params_var_name + "[] = {\n") - for n in range(1, len(params) + 1): - name = param_var_name + str(n) - out.write(" (const " + namespace + "ParameterDescription*)&" + name + ",\n") - out.write( " NULL };\n\n") - - - def write_enum_entries_definitions(self, out): - for (interface, name), enum_el in self.enums.iteritems(): - n = 1 - for element_el in enum_el.findall('element'): - entry_var_name = interface + '__' + name + '__entry' + str(n) - value = element_el.get("value") - if value is None: - value = str(n) - out.write(namespace + "EnumDescription::Entry " + entry_var_name + " = {\"" + element_el.get("name") + "\", " + value + "};\n") - n = n + 1 - - entries_var_name = "Enums::" + interface + '__' + name + '__entries' - out.write("const " + namespace + "EnumDescription::Entry* " + entries_var_name + "[] = {\n") - for n in range(1, len(enum_el.findall('element')) + 1): - entry_var_name = interface + '__' + name + '__entry' + str(n) - out.write(" &" + entry_var_name + ",\n") - out.write(" NULL };\n\n") - - - def write_message_definition(self, message_el, interface, out): - name = message_el.get('name') - messagetype = message_el.get('messagetype') - params = list() - for param_el in message_el.findall('param'): - param_desc = self.make_param_desc(param_el, interface) - params.append(param_desc) - param_var_name = interface + '__' + name + '__' + messagetype + '__parameter' - self.write_parameters(params, out, param_var_name) - - params_var_name = param_var_name + 's' - out.write("const " + namespace + "ParameterDescription* " + params_var_name + "[] = {\n") - for n in range(1, len(params) + 1): - param_name = param_var_name + str(n) - out.write(" (const " + namespace + "ParameterDescription*)&" + param_name + ",\n") - out.write(" NULL };\n") - - message_desc_name = interface + '__' + name + '__' + messagetype - out.write("const " + namespace + "MessageDescription " + message_desc_name + " = {\n") - out.write(" \"" + interface + "\",\n") - out.write(" \"" + name + "\",\n") - out.write(" hmi_apis::messageType::" + messagetype + ",\n") - out.write(" hmi_apis::FunctionID::" + interface + "_" + name + ",\n") - out.write(" " + params_var_name + "\n") - out.write("};\n\n") - - - def write_message_definitions(self, out): - for interface_el in self.el_tree.findall('interface'): - interface = interface_el.get('name') - message_els = interface_el.findall('function') - for message_el in message_els: - self.write_message_definition(message_el, interface, out) - - - def make_message_descriptions(self, out): - self.write_struct_params_declarations(out) - #self.write_enum_entries_declarations(out) - self.write_struct_params_definitions(out) - #self.write_enum_entries_definitions(out) - self.write_message_definitions(out) - - - def make_message_array(self, out): - out.write("const MessageDescription* message_descriptions[] = {\n") - for interface_el in self.el_tree.findall('interface'): - interface = interface_el.get('name') - message_els = interface_el.findall('function') - for message_el in message_els: - name = message_el.get('name') - messagetype = message_el.get('messagetype') - message_desc_name = interface + '__' + name + '__' + messagetype - out.write(" &" + message_desc_name + ",\n") - out.write(" NULL\n") - out.write("};\n") - - -arg_parser = ArgumentParser(description="Generates HMI API message descriptions for D-Bus on SDL core side") -arg_parser.add_argument('--infile', required=True, help="full name of input file, e.g. applink/src/components/interfaces/QT_HMI_API.xml") -arg_parser.add_argument('--outdir', required=True, help="path to directory where output file message_descriptions.cc will be saved") -args = arg_parser.parse_args() - -if not path.isdir(args.outdir): - makedirs(args.outdir) - -outfile = 'message_descriptions.cc' - -in_tree = ElementTree.parse(args.infile) -in_tree_root = in_tree.getroot() - -impl = Impl(in_tree_root) - -out = open(args.outdir + "/" + outfile, "w") - -out.write("// Warning! This file is generated by '%s'. Edit at your own risk.\n" % argv[0]) -out.write("""/** - * @file message_descriptions.cc - * @brief Generated HMI API message descriptions for D-Bus - * - * This file is a part of HMI D-Bus layer. - */ -// Copyright (c) 2013, Ford Motor Company -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following -// disclaimer in the documentation and/or other materials provided with the -// distribution. -// -// Neither the name of the Ford Motor Company nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -""") - -out.write("#include \"dbus/message_descriptions.h\"\n\n"); -out.write("namespace {\n\n"); -impl.make_message_descriptions(out) -out.write("}\n\n"); - -out.write("namespace " + namespace_name + " {\n\n"); -impl.make_message_array(out) -out.write("}\n\n"); - diff --git a/src/components/dbus/codegen/make_notifications_qml.py b/src/components/dbus/codegen/make_notifications_qml.py deleted file mode 100755 index 3c173e8b4fd..00000000000 --- a/src/components/dbus/codegen/make_notifications_qml.py +++ /dev/null @@ -1,387 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# @file make_qml_dbus_cpp.py -# @brief Generator of QML to QDbus C++ part -# -# This file is a part of HMI D-Bus layer. -# -# Copyright (c) 2014, Ford Motor Company -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following -# disclaimer in the documentation and/or other materials provided with the -# distribution. -# -# Neither the name of the Ford Motor Company nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -from argparse import ArgumentParser -import os.path -from sys import argv -from xml.etree import ElementTree -from copy import copy -from ford_xml_parser import FordXmlParser, ParamDesc -from code_formatter import CodeBlock - -class Notifications_qml(FordXmlParser): - #Used for qt signal names, because qt signals cannot begin with a capital letter - def first_letter_to_lower_case(self, s): - if len(s) == 0: - return s - else: - return s[0].lower() + s[1:] - - def make_header(self, out): - out.write("class SdlProxy: public Item {\n") - with CodeBlock(out) as out: - out.write("Q_OBJECT\n") - out.write("Q_DISABLE_COPY(SdlProxy)\n") - out.write("public:\n") - out.write("explicit SdlProxy(Item* parent = 0);\n") - out.write("private:\n") - out.write("QDBusInterface *sdlBasicCommunicationInterface;\n") - out.write("signals:\n") - for interface_el in self.el_tree.findall('interface'): - iface_name = interface_el.get('name') - notifications = self.find_notifications_by_provider(interface_el, "sdl") - for notification_el in notifications: - with CodeBlock(out) as out: - out.write("void %s(" % self.first_letter_to_lower_case( notification_el.get("name")) ) - param_el_count = 1 - list_of_params = notification_el.findall("param") - list_of_params_len = len(list_of_params) - for param_el in list_of_params: - param = self.make_param_desc(param_el, iface_name) - out.write("QVariant %s" % param_el.get("name")) - if param_el_count < list_of_params_len: - out.write(", ") - param_el_count += 1 - out.write(");\n") - with CodeBlock(out) as out: - out.write("private slots:\n") - for interface_el in self.el_tree.findall('interface'): - iface_name = interface_el.get('name') - notifications = self.find_notifications_by_provider(interface_el, "sdl") - for notification_el in notifications: - with CodeBlock(out) as out: - out.write("void slot_%s(" % notification_el.get("name")) - param_el_count = 1 - list_of_params = notification_el.findall("param") - list_of_params_len = len(list_of_params) - for param_el in list_of_params: - param = self.make_param_desc(param_el, iface_name) - out.write("%s %s" % (self.qt_param_type(param), param_el.get("name"))) - if param_el_count < list_of_params_len: - out.write(", ") - param_el_count += 1 - out.write(");\n") - out.write("};\n") - - - def qt_param_type(self, param): - if not param.mandatory: - param_copy = copy(param) - param_copy.mandatory = True - return "OptionalArgument< " + self.qt_param_type(param_copy) + " >" - if param.array: - param_copy = copy(param) - param_copy.array = False - if param.type == 'String': - return "QStringList" - return "QList< " + self.qt_param_type(param_copy) + " >" - if param.type == 'Integer' or param.enum: - return 'int' - elif param.type == 'String': - return 'QString' - elif param.type == 'Boolean': - return 'bool' - elif param.type == 'Float': - return 'double' - elif param.struct: - return "_".join(param.fulltype) - else: - raise RuntimeError('Unknown type: ' + param.type) - - - def qml_param_type(self, param): - if not param.mandatory: - return "QVariant" - if param.array: - return "QVariant" - if param.type == 'Integer' or param.enum: - return 'int' - elif param.type == 'String': - return 'QString' - elif param.type == 'Boolean': - return 'bool' - elif param.type == 'Float': - return 'double' - elif param.struct: - return "QVariant" - else: - raise RuntimeError('Unknown type: ' + param.type) - - - def make_source(self, out): - def qml_args(variable_name_needed): - param_el_count = 1 - list_of_params = notification_el.findall("param") - list_of_params_len = len(list_of_params) - for param_el in list_of_params: - param = self.make_param_desc(param_el, iface_name) - if variable_name_needed: - out.write("%s %s" % (self.qt_param_type(param), param_el.get("name"))) - else: - out.write("%s" % self.qt_param_type(param)) - if param_el_count < list_of_params_len: - out.write(", ") - param_el_count += 1 - out.write("SdlProxy::SdlProxy(Item *parent): Item(parent) {\n") - for interface_el in self.el_tree.findall('interface'): - iface_name = interface_el.get('name') - notifications = self.find_notifications_by_provider(interface_el, "sdl") - for notification_el in notifications: - notification_name = notification_el.get('name') - with CodeBlock(out) as out: - out.write("QDBusConnection::sessionBus().connect(\n") - with CodeBlock(out) as out: - out.write("\"com.ford.sdl.core\", \"/\", \"com.ford.sdl.core.%s\",\n" % iface_name) - out.write("\"%s\", this, SLOT(slot_%s(" % (notification_name, notification_el.get("name"))) - qml_args(variable_name_needed = False) - out.write(")));\n") - out.write("}\n\n") - for interface_el in self.el_tree.findall('interface'): - iface_name = interface_el.get('name') - notifications = self.find_notifications_by_provider(interface_el, "sdl") - for notification_el in notifications: - notific_full_name = interface_el.get("name") + "_" + notification_el.get("name") - out.write("void SdlProxy::slot_%s(" % notification_el.get("name")) - qml_args(variable_name_needed = True) - out.write(") {\n") - with CodeBlock(out) as out: - out.write("LOG4CXX_TRACE(logger_, \"ENTER\");\n\n") - for param_el in notification_el.findall("param"): - param = self.make_param_desc(param_el, iface_name) - tmp_param_name = param.name + "_qvariant" - out.write("QVariant %s;\n" % tmp_param_name) - out.write("%s = ValueToVariant(%s);\n" % (tmp_param_name, param.name)) - self.write_param_validation(param, param.name, "\nLOG4CXX_ERROR(logger_, \"%s in %s out of bounds\")" % (param.name, notific_full_name), out) - out.write("\n") - out.write("emit %s(" % self.first_letter_to_lower_case( notification_el.get("name")) ) - param_el_count = 1 - list_of_params = notification_el.findall("param") - list_of_params_len = len(list_of_params) - for param_el in list_of_params: - param = self.make_param_desc(param_el, iface_name) - out.write("%s" % param.name + "_qvariant") - if param_el_count < list_of_params_len: - out.write(", ") - param_el_count += 1 - out.write(");\n") - with CodeBlock(out) as out: - out.write("LOG4CXX_TRACE(logger_, \"EXIT\");\n") - out.write("}\n\n") - - - - def write_param_validation(self, param, param_name, fail_statement, out, level=0): - if not param.mandatory and (param.restricted or param.restrictedArray or (param.struct and any(map(lambda x: x.restricted, self.structs[param.fulltype])))): - out.write("if (%s.presence) {\n" % param_name) - param_copy = copy(param) - param_copy.mandatory = True - with CodeBlock(out) as out: - self.write_param_validation(param_copy, param_name + ".val", fail_statement, out, level+1) - out.write("}\n") - elif param.array: - if param.minSize > 0: - out.write("if ({0}.count() < {1}) {{".format(param_name, param.minSize)) - with CodeBlock(out) as out: - out.write("{0};\n".format(fail_statement)) - out.write("}\n") - if param.maxSize != None: - out.write("if ({0}.count() > {1}) {{".format(param_name, param.maxSize)) - with CodeBlock(out) as out: - out.write("{0};\n".format(fail_statement)) - out.write("}\n") - if param.restricted: - out.write('for ({0}::const_iterator it_{2} = {1}.begin(); it_{2} != {1}.end(); ++it_{2}) {{\n'.format(self.qt_param_type(param), param_name, level)) - with CodeBlock(out) as out: - param_copy = copy(param) - param_copy.array = False - self.write_param_validation(param_copy, "(*it_{0})".format(level), fail_statement, out, level+1) - out.write("}\n") - elif param.struct: - for p in self.structs[param.fulltype]: - self.write_param_validation(p, "{0}.{1}".format(param_name, p.name), fail_statement, out, level+1) - elif param.type == "Integer" or param.type == "Float": - conditions = [] - if (param.minValue != None): - conditions.append("(%s < %s)" % (param_name, param.minValue)) - if (param.maxValue != None): - conditions.append("(%s > %s)" % (param_name, param.maxValue)) - if conditions: - out.write('if (%s) {' % ' || '.join(conditions)) - with CodeBlock(out) as out: - out.write('%s;\n' % fail_statement) - out.write("}\n") - elif param.type == "String": - conditions = [] - if (param.minLength > 0): - conditions.append("(%s.size() < %s)" % (param_name, param.minLength)) - if (param.maxLength > 0): - conditions.append("(%s.size() > %s)" % (param_name, param.maxLength)) - if conditions: - out.write('if (%s) {' % ' || '.join(conditions)) - with CodeBlock(out) as out: - out.write('%s;\n' % (fail_statement)) - out.write("}\n") - - -#QVarian name; -#if (ttsName.presence) { - - - -arg_parser = ArgumentParser(description="Generator of classes which Qt to QDbus C++ part") -arg_parser.add_argument('--infile', required=True, help="full name of input file, e.g. applink/src/components/interfaces/QT_HMI_API.xml") -arg_parser.add_argument('--version', required=False, help="Qt version 4.8.5 (default) or 5.1.0") -arg_parser.add_argument('--outdir', required=True, help="path to directory where output files request_to_sdl.h, request_to_sdl.cc will be saved") -args = arg_parser.parse_args() - - -if args.version == "4.8.5": - prefix_class_item = 'Script' - invoke_type_connection = 'Direct' -elif args.version == "5.1.0": - prefix_class_item = 'JS' - invoke_type_connection = 'BlockingQueued' -else: - prefix_class_item = 'JS' - invoke_type_connection = 'BlockingQueued' - -header_name = 'sdl_proxy.h' -source_name = 'sdl_proxy.cc' - -in_tree = ElementTree.parse(args.infile) -in_tree_root = in_tree.getroot() - -impl = Notifications_qml(in_tree_root, 'com.ford.sdl.hmi') - -header_out = open(args.outdir + '/' + header_name, "w") -source_out = open(args.outdir + '/' + source_name, "w") - -header_out.write("// Warning! This file is generated by '%s'. Edit at your own risk.\n" % argv[0]) -header_out.write(""" -/* - Copyright (c) 2014, Ford Motor Company - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the - distribution. - - Neither the name of the Ford Motor Company nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -""") -header_out.write("#ifndef SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_SDL_PROXY_H_\n") -header_out.write("#define SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_SDL_PROXY_H_\n\n") -header_out.write("#include \"qml_dbus.h\"\n") -header_out.write("#include \"qt_version.h\"\n\n") -header_out.write("#include \n") -header_out.write("#include \n") -header_out.write("#if QT_4\n") -header_out.write("#include \n") -header_out.write("typedef QDeclarativeItem Item;\n") -header_out.write("#elif QT_5\n") -header_out.write("#include \n") -header_out.write("typedef QQuickItem Item;\n") -header_out.write("#endif // QT_VERSION\n") - -impl.make_header(header_out) - -header_out.write("#endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_REQUEST_TO_SDL_H_") - - -source_out.write("// Warning! This file is generated by '%s'. Edit at your own risk.\n" % argv[0]) -source_out.write(""" -/* - Copyright (c) 2014, Ford Motor Company - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the - distribution. - - Neither the name of the Ford Motor Company nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -""") - -source_out.write("#include \"sdl_proxy.h\"\n") -source_out.write("#include \"utils/logger.h\"\n") -source_out.write("CREATE_LOGGERPTR_GLOBAL(logger_, \"DBusPlugin\")\n\n") - -impl.make_source(source_out) diff --git a/src/components/dbus/codegen/make_qml_dbus_cpp.py b/src/components/dbus/codegen/make_qml_dbus_cpp.py deleted file mode 100755 index f40bc74df83..00000000000 --- a/src/components/dbus/codegen/make_qml_dbus_cpp.py +++ /dev/null @@ -1,736 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# @file make_qml_dbus_cpp.py -# @brief Generator of QML to QDbus C++ part -# -# This file is a part of HMI D-Bus layer. -# -# Copyright (c) 2013, Ford Motor Company -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following -# disclaimer in the documentation and/or other materials provided with the -# distribution. -# -# Neither the name of the Ford Motor Company nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -from argparse import ArgumentParser -import os.path -from sys import argv -from xml.etree import ElementTree -from copy import copy -from ford_xml_parser import FordXmlParser, ParamDesc -from code_formatter import CodeBlock - -prefix_class_item = 'Declarative' -invoke_type_connection = 'Direct' - -def defaultValue(param): - if param.type == "Integer": - return "0" - elif param.type == "Float": - return "0.0" - elif param.type == "Boolean": - return "false" - elif param.enum: - return "0" - -class Impl(FordXmlParser): - def make_dbus_type_declarations(self, out): - for struct in self.structs.items(): - self.write_struct_declaration(struct, out) - - def make_dbus_metatype_declarations(self, out): - for struct in self.structs.items(): - self.write_struct_metatype_declaration(struct, out) - - - def write_struct_declaration(self, ((iface, name), params), out): - struct_name = "{0}_{1}".format(iface, name) - out.write("struct {0} {{\n".format(struct_name)) - with CodeBlock(out) as out: - for param in params: - out.write("{0} {1};\n".format(self.qt_param_type(param), param.name)) - out.write("{0}()\n".format(struct_name)) - initializersList = map(lambda x: "{0}({1})".format(x.name, defaultValue(x)), [p for p in params if p.type != "String" and not p.struct and not p.array]) - if initializersList: - out.write(": " + ",\n ".join(initializersList)) - - out.write("{ }\n") - - out.write("};\n") - out.write('QDBusArgument& operator << (QDBusArgument&, const ' + struct_name + "&);\n") - out.write('const QDBusArgument& operator >> (const QDBusArgument&, ' + struct_name + "&);\n") - out.write('void PutArgToMap(QVariantMap& map, const char* name, const ' + struct_name + "& v);\n") - out.write('QVariant ValueToVariant(const ' + struct_name + "& v);\n") - out.write('QVariant ValueToVariant(const QList<' + struct_name + " >& v);\n") - out.write('bool GetArgFromMap(const QVariantMap& map, const char* name, ' + struct_name + "& v);\n") - out.write('bool VariantToValue(const QVariant& variant, ' + struct_name + "& v);\n") - out.write('bool VariantToValue(const QVariant& variant, QList<' + struct_name + " >& v);\n") - - - def write_struct_metatype_declaration(self, ((iface, name), params), out): - struct_name = iface + '_' + name - out.write('Q_DECLARE_METATYPE(' + struct_name + ")\n") - out.write('Q_DECLARE_METATYPE(OptionalArgument<' + struct_name + ">)\n") - out.write('Q_DECLARE_METATYPE(QList<' + struct_name + ">)\n") - out.write('Q_DECLARE_METATYPE(OptionalArgument >)\n\n") - - - def make_dbus_type_definitions(self, out): - for struct in self.structs.items(): - self.write_struct_definition(struct, out) - - def write_struct_definition(self, ((iface, name), params), out): - struct_name = iface + '_' + name - - out.write('QDBusArgument& operator << (QDBusArgument& arg, const ' + struct_name + "& v) {\n") - with CodeBlock(out) as out: - out.write("arg.beginStructure();\n") - for param in params: - out.write("arg << v.{0};\n".format(param.name)) - out.write("arg.endStructure();\n") - out.write("return arg;\n") - out.write("}\n\n") - - out.write('const QDBusArgument& operator >> (const QDBusArgument& arg, ' + struct_name + "& v) {\n") - with CodeBlock(out) as out: - out.write("arg.beginStructure();\n") - for param in params: - out.write("arg >> v.{0};\n".format(param.name)) - out.write("arg.endStructure();\n") - out.write("return arg;\n") - out.write("}\n\n") - - out.write('QVariant ValueToVariant(const ' + struct_name + "& v) {\n") - with CodeBlock(out) as out: - out.write("QVariantMap map;\n") - for param in params: - out.write("""PutArgToMap(map, "{0}", v.{0});\n""".format(param.name)) - out.write("return QVariant::fromValue(map);\n") - out.write("}\n\n") - - out.write('QVariant ValueToVariant(const QList<' + struct_name + ">& v) {\n") - with CodeBlock(out) as out: - out.write("QList ret;\n") - out.write("for (QList<{0}>::const_iterator i = v.begin(); i != v.end(); ++i)\n".format(struct_name)) - with CodeBlock(out) as out: - out.write("ret.append(ValueToVariant(*i));\n") - out.write("return QVariant::fromValue(ret);\n") - out.write("}\n\n") - - out.write('void PutArgToMap(QVariantMap& map, const char* name, const ' + struct_name + "& v) {\n") - with CodeBlock(out) as out: - out.write("map.insert(name, ValueToVariant(v));\n") - out.write("}\n\n") - - out.write('bool VariantToValue(const QVariant& variant, ' + struct_name + "& v) {\n") - with CodeBlock(out) as out: - out.write("if (variant.type() != QVariant::Map) {\n") - with CodeBlock(out) as out: - out.write("""LOG4CXX_ERROR(logger_, "Input argument isn't a map");\n""") - out.write("return false;\n") - out.write("}\n") - out.write("QVariantMap map = variant.toMap();\n") - for param in params: - out.write("if (!GetArgFromMap(map, \"" + param.name + "\", v." + param.name + ")) return false;\n") - out.write("return true;\n") - out.write("}\n\n") - - out.write('bool VariantToValue(const QVariant& variant, QList<' + struct_name + ">& v) {\n") - with CodeBlock(out) as out: - out.write("if (variant.type() != QVariant::List) {\n") - with CodeBlock(out) as out: - out.write("""LOG4CXX_ERROR(logger_, "Input argument isn't a list");\n""") - out.write("return false;\n") - out.write("}\n") - out.write("QList list = variant.toList();\n") - out.write("for (QList::const_iterator i = list.begin(); i != list.end(); ++i) {\n"); - with CodeBlock(out) as out: - out.write(struct_name + " s;\n"); - out.write("if (!VariantToValue(*i, s)) return false;\n"); - out.write("v.append(s);\n"); - out.write("}\n") - out.write("return true;\n") - out.write("}\n\n") - - out.write('bool GetArgFromMap(const QVariantMap& map, const char* name, ' + struct_name + "& v) {\n") - with CodeBlock(out) as out: - out.write("QVariantMap::const_iterator it = map.find(name);\n") - out.write("if (map.end() == it) {\n") - with CodeBlock(out) as out: - out.write("""LOG4CXX_WARN(logger_, "Argument '" << name << "' not found");\n""") - out.write("return false;\n") - out.write("}\n") - out.write("if (it->type() != QVariant::Map) {\n") - with CodeBlock(out) as out: - out.write("""LOG4CXX_ERROR(logger_, "Argument '" << name << "' isn't a map");\n""") - out.write("return false;\n") - out.write("}\n") - out.write("const QVariantMap& inmap = it->toMap();\n") - for param in params: - out.write("if (!GetArgFromMap(inmap, \"" + param.name + "\", v." + param.name + ")) return false;\n") - out.write("return true;\n") - out.write("}\n\n") - - def write_param_validation(self, param, param_name, fail_statement, out, level=0): - if not param.mandatory and (param.restricted or param.restrictedArray or (param.struct and any(map(lambda x: x.restricted, self.structs[param.fulltype])))): - out.write("if (%s.presence) {\n" % param_name) - param_copy = copy(param) - param_copy.mandatory = True - with CodeBlock(out) as out: - self.write_param_validation(param_copy, param_name + ".val", fail_statement, out, level+1) - out.write("}\n") - elif param.array: - if param.minSize > 0: - out.write("if ({0}.count() < {1}) {{ {2}; }}\n".format(param_name, param.minSize, fail_statement)) - if param.maxSize != None: - out.write("if ({0}.count() > {1}) {{ {2}; }}\n".format(param_name, param.maxSize, fail_statement)) - if param.restricted: - out.write('for ({0}::const_iterator it_{2} = {1}.begin(); it_{2} != {1}.end(); ++it_{2}) {{\n'.format(self.qt_param_type(param), param_name, level)) - with CodeBlock(out) as out: - param_copy = copy(param) - param_copy.array = False - self.write_param_validation(param_copy, "(*it_{0})".format(level), fail_statement, out, level+1) - out.write("}\n") - elif param.struct: - for p in self.structs[param.fulltype]: - self.write_param_validation(p, "{0}.{1}".format(param_name, p.name), fail_statement, out, level+1) - elif param.type == "Integer" or param.type == "Float": - conditions = [] - if (param.minValue != None): - conditions.append("(%s < %s)" % (param_name, param.minValue)) - if (param.maxValue != None): - conditions.append("(%s > %s)" % (param_name, param.maxValue)) - if conditions: - out.write('if (%s) { %s; }\n' % (' || '.join(conditions), fail_statement)) - elif param.type == "String": - conditions = [] - if (param.minLength > 0): - conditions.append("(%s.size() < %s)" % (param_name, param.minLength)) - if (param.maxLength > 0): - conditions.append("(%s.size() > %s)" % (param_name, param.maxLength)) - if conditions: - with CodeBlock(out) as out: - out.write('if (%s) { %s;\n }\n' % (' || '.join(conditions), fail_statement)) - - def qt_param_type(self, param): - if not param.mandatory: - param_copy = copy(param) - param_copy.mandatory = True - return "OptionalArgument< " + self.qt_param_type(param_copy) + " >" - if param.array: - param_copy = copy(param) - param_copy.array = False - if param.type == 'String': - return "QStringList" - return "QList< " + self.qt_param_type(param_copy) + " >" - if param.type == 'Integer' or param.enum: - return 'int' - elif param.type == 'String': - return 'QString' - elif param.type == 'Boolean': - return 'bool' - elif param.type == 'Float': - return 'double' - elif param.struct: - return "_".join(param.fulltype) - return "xxx" - - - def from_variant_func_name(self, param, interface): - prefix = '' - if not param.mandatory: - param_copy = copy(param) - param_copy.mandatory = True - return 'opt_' + self.from_variant_func_name(param_copy, interface) - if param.array: - param_copy = copy(param) - param_copy.array = False - return 'arr_' + self.from_variant_func_name(param_copy, interface) - - if param.type in ['Integer', 'String', 'Boolean', 'Float']: - param_type = param.type - else: - param_type = param.type.split('.') - if len(param_type) > 1: - param_type = (param_type[0], param_type[1]) - else: - param_type = (interface, param_type[0]) - if param_type in self.structs: - param_type = param_type[0] + '_' + param_type[1] - elif param_type in self.enums: - param_type = 'Integer' - return param_type + '_from_variant' - - - def make_method_signature(self, request, response, interface, add_classname): - in_params = [self.make_param_desc(x, interface) for x in request.findall('param')] - out_params = [self.make_param_desc(x, interface) for x in response.findall('param')] - - signature_len = len(''.join(map(lambda x: self.convert_to_dbus_type(x), in_params + out_params))) - if signature_len > 255: - raise RuntimeError("Too long signature of {0} method. Maximum valid length is 255, actual is {1}", request.get('name'), signature_len) - - return "int {0}{1} ({2}{3}const QDBusMessage& message, QString& userMessage_out{4}{5})".format( - interface + "Adaptor::" if add_classname else "", - request.get('name'), - ", ".join(map(lambda x: "const {0}& {1}_in".format(self.qt_param_type(x), x.name), in_params)), - ", " if in_params else "", - ", " if out_params else "", - ", ".join(map(lambda x: "{0}& {1}_out".format(self.qt_param_type(x), x.name), out_params))) - - - def make_signal_signature(self, signal, interface, add_void): - params = signal.findall('param') - if add_void: - retstr = 'void ' - else: - retstr = '' - retstr = retstr + signal.get('name') + '(' - params_num = len(params) - for i in range(0, params_num): - param_desc = self.make_param_desc(params[i], interface) - param_type = self.qt_param_type(param_desc) - retstr = retstr + param_type + ' ' + param_desc.name - if i <> params_num - 1: retstr = retstr + ", " - retstr = retstr + ')' - return retstr - - - def make_qml_signal_signature(self, signal, interface, name, short=False, add_classname=False): - params = signal.findall('param') - if short: - retstr = '' - else: - retstr = 'void ' - if add_classname: - retstr = retstr + interface + 'Adaptor::' - retstr = retstr + name + '(' - params_num = len(params) - for i in range(0, params_num): - param_desc = self.make_param_desc(params[i], interface) - if param_desc.struct or param_desc.array or not param_desc.mandatory: typ = 'QVariant' - elif param_desc.type == 'Integer' or param_desc.enum: typ = 'int' - elif param_desc.type == 'Boolean': typ = 'bool' - elif param_desc.type == 'Float': typ = 'double' - elif param_desc.type == 'String': typ = 'QString' - else: typ = 'QVariant' - retstr = retstr + typ - if not short: retstr = retstr + ' ' + param_desc.name - if i <> params_num - 1: retstr = retstr + ", " - retstr = retstr + ')' - return retstr - - - def write_adaptor_declaration(self, interface_el, notifications, request_responses, out): - global prefix_class_item - def glue_strings(strings): - ret = list() - curstr = '' - for str in strings: - curstr = curstr + str - if(str[-1] == '>'): - ret.append(curstr) - curstr = '' - return ret - ifacename = interface_el.get('name') - out.write("class " + ifacename + "Adaptor : public QDBusAbstractAdaptor {\n"); - out.write(" Q_OBJECT\n"); - out.write(" Q_CLASSINFO(\"D-Bus Interface\", \"" + self.interface_path + '.' + ifacename + "\")\n"); - out.write(" Q_CLASSINFO(\"D-Bus Introspection\",\n"); - introspection_el = self.create_introspection_iface_el(interface_el, 'hmi') - introspection = glue_strings(ElementTree.tostringlist(introspection_el)) - for str in introspection: - str = str.replace('"', '\\"') - out.write('"' + str + '"' + "\n") - out.write(" )\n") - out.write(" public:\n") - out.write(" explicit " + ifacename + "Adaptor(QObject *parent = 0);\n") - out.write(" void SetApi(Q%sItem*);\n" % prefix_class_item) - out.write(" DBusController *dbusController;\n") - out.write(" public slots:\n") - for (request, response) in request_responses: - signature = self.make_method_signature(request, response, ifacename, False) - out.write(" " + signature + ";\n") - out.write(" signals:\n") - for n in notifications: - signature = self.make_signal_signature(n, ifacename, True) - out.write(" " + signature + ";\n") - out.write(" private slots:\n") - for n in notifications: - signature = self.make_qml_signal_signature(n, ifacename, n.get('name') + '_qml', False) - out.write(" " + signature + ";\n") - out.write(" private:\n") - out.write(" Q%sItem* api_;\n" % prefix_class_item) - out.write("};\n\n"); - - def write_adaptor_definition(self, interface_el, notifications, request_responses, out): - global prefix_class_item - iface_name = interface_el.get('name') - classname = iface_name + 'Adaptor' - out.write("{0}::{0}(QObject* parent) : QDBusAbstractAdaptor(parent) {{}}\n".format(classname)) - - out.write("void {0}::SetApi(Q{1}Item* api) {{\n".format(classname, prefix_class_item)) - with CodeBlock(out) as out: - out.write("api_ = api;\n") - for n in notifications: - signame = n.get('name') - signame = signame[:1].lower() + signame[1:] - slotname = n.get('name') + '_qml' - sig_signature = self.make_qml_signal_signature(n, iface_name, signame, True) - slot_signature = self.make_qml_signal_signature(n, iface_name, slotname, True) - out.write("connect(api_, SIGNAL(" + sig_signature + "), this, SLOT(" + slot_signature + "));\n") - out.write("LOG4CXX_TRACE(logger_, \"CONNECT SIGNALS: \" << __PRETTY_FUNCTION__ );\n") - out.write("}\n\n") - - for (request,response) in request_responses: - in_params = [ self.make_param_desc(x, iface_name) for x in request.findall('param') ] - out_params = [ self.make_param_desc(x, iface_name) for x in response.findall('param') ] - - out.write("bool fill{0}{1}Reply(QDBusMessage& message, const QVariantMap& map) {{\n".format(classname, request.get('name'))) - with CodeBlock(out) as out: - out.write("int retCode_out = 0;\n") - out.write("GetArgFromMap(map, \"__retCode\", retCode_out);\n") - out.write("QVariant retCode_arg = QVariant::fromValue(retCode_out);\n") - out.write("message << retCode_arg;\n") - out.write("QString userMessage_out;\n") - out.write("GetArgFromMap(map, \"__message\", userMessage_out);\n") - out.write("QVariant userMessage_arg = QVariant::fromValue(userMessage_out);\n") - out.write("message << userMessage_arg;\n") - for p in out_params: - param_name = p.name - param_type = self.qt_param_type(p) - out.write("%s %s_out;\n" % (param_type, p.name)) - out.write("if (!GetArgFromMap(map, \"{0}\", {0}_out)) {{ return false; }}\n".format(p.name)) - self.write_param_validation(p, p.name + "_out", "return false", out) - out.write("QVariant {0}_arg;\n".format(p.name)) - out.write("{0}_arg.setValue({0}_out);\n".format(p.name)) - out.write("message << {0}_arg;\n".format(p.name)) - out.write("LOG4CXX_DEBUG(logger_, \"Output arguments:\\n\" << QVariant(map));\n") - out.write("LOG4CXX_TRACE(logger_, \"REPLY ASYNC: \" << __PRETTY_FUNCTION__ );\n") - out.write("return true;\n") - out.write("}\n\n") - - out.write("{0} {{\n".format(self.make_method_signature(request, response, iface_name, True))) - with CodeBlock(out) as out: - out.write("LOG4CXX_TRACE(logger_, \"ENTER: \" << __PRETTY_FUNCTION__ );\n") - out.write("int ret = 0;\n") - return_statement = "return ret;\n" - out.write("QVariantMap in_arg;\n"); - out.write("QVariant out_arg_v;\n"); - for param in in_params: - self.write_param_validation(param, param.name + "_in", "RaiseDbusError(this, InvalidData); return ret", out) - out.write("PutArgToMap(in_arg, \"" + param.name + "\", " + param.name + "_in);\n") - out.write("LOG4CXX_DEBUG(logger_, \"Input arguments:\\n\" << in_arg);\n") - method_name = request.get('name')[:1].lower() + request.get('name')[1:] - - out.write("dbusController->message = &message;\n") - out.write("dbusController->fill = &fill{0}{1}Reply;\n".format(classname, request.get("name"))) - - out.write("""if (!QMetaObject::invokeMethod(api_, "{0}", Qt::{1}Connection, Q_RETURN_ARG(QVariant, out_arg_v), Q_ARG(QVariant, QVariant(in_arg)))) {{\n""".format(method_name, invoke_type_connection)) - with CodeBlock(out) as out: - out.write("RaiseDbusError(this, InvalidData);\n") - out.write("LOG4CXX_ERROR(logger_, \"Can't invoke method " + method_name +"\");\n ") - out.write("return ret;\n") - out.write("}\n") - - out.write("dbusController->message = NULL;\n") - out.write("dbusController->fill = NULL;\n") - out.write("if (message.isDelayedReply()) {\n") - with CodeBlock(out) as out: - out.write("return ret;\n") - out.write("}\n") - - out.write("QVariantMap out_arg;\n") - out.write("if (out_arg_v.type() == QVariant::Map) {\n") - with CodeBlock(out) as out: - out.write("out_arg = out_arg_v.toMap();\n") - out.write("};\n") - - out.write("int err;\n") - out.write("""if (GetArgFromMap(out_arg, "__errno", err)) { RaiseDbusError(this, err); return ret; }\n""") - - out.write("int async_uid;\n") - out.write("if (GetArgFromMap(out_arg, \"__async_uid\", async_uid)) {\n") - with CodeBlock(out) as out: - out.write("message.setDelayedReply(true);\n") - out.write("dbusController->addMessage(message, &fill%s%sReply, async_uid);\n" % (classname, request.get('name'))) - out.write("LOG4CXX_TRACE(logger_, \"EXIT ASYNC: \" << __PRETTY_FUNCTION__ );\n") - out.write("return ret;\n"); - out.write("}\n\n") - - for param in out_params: - out.write("if (!GetArgFromMap(out_arg, \"{0}\", {0}_out)) {{ RaiseDbusError(this, InvalidData); return ret; }}\n".format(param.name)) - self.write_param_validation(param, param.name + "_out", "RaiseDbusError(this, InvalidData); return ret", out) - - out.write("GetArgFromMap(out_arg, \"__retCode\", ret);\n") - out.write("GetArgFromMap(out_arg, \"__message\", userMessage_out);\n") - out.write("LOG4CXX_DEBUG(logger_, \"Output arguments:\\n\" << QVariant(out_arg));\n") - out.write("LOG4CXX_TRACE(logger_, \"EXIT: \" << __PRETTY_FUNCTION__ );\n") - out.write("return ret;\n") - out.write("}\n\n") - - for n in notifications: - slotname = n.get('name') + '_qml' - slot_signature = self.make_qml_signal_signature(n, iface_name, slotname, False, True) - out.write(slot_signature + " {\n") - params = n.findall('param') - out.write(" LOG4CXX_TRACE(logger_, \"EMIT SIGNAL: \" << __PRETTY_FUNCTION__ );\n") - out.write(" LOG4CXX_DEBUG(logger_, \"Arguments:\\n{\"") - for p in params[0:-1]: - param = self.make_param_desc(p, iface_name) - out.write(" << \" " + param.name + ":\" << " + param.name + " << \",\"") - for p in params[-1:]: # last param without comma in end line - p = params[-1] - param = self.make_param_desc(p, iface_name) - out.write(" << \" " + param.name + ":\" << " + param.name) - out.write(" << \" }\");\n") - for p in params: - param = self.make_param_desc(p, iface_name) - param_type = self.qt_param_type(param) - param_name = 'p_' + param.name - if param.mandatory: - if param.array or (param.type not in ['Integer', 'String', 'Float', 'Boolean'] and not param.enum): - out.write(' ' + param_type + ' ' + param_name + ";\n") - out.write(' if (!VariantToValue(' + param.name + ', ' + param_name + ")) {\n") - out.write(" LOG4CXX_ERROR(logger_, \"Can't convert variant to value\");\n") - out.write(" return;}\n") - else: - out.write(' ' + param_type + ' ' + param_name + ";\n") - out.write(' ' + param_name + '.presence = !' + param.name + ".isNull();\n") - out.write(' if (' + param_name + ".presence) {\n") - out.write(' if (!VariantToValue(' + param.name + ', ' + param_name + ".val)) {\n") - out.write(" LOG4CXX_ERROR(logger_, \"Can't convert variant to value\");\n") - out.write(" return;\n }\n") - out.write(" }\n") - out.write(' emit ' + n.get('name') + '(') - for i in range(len(params)): - param = self.make_param_desc(params[i], iface_name) - basic_type = (param.type in ['Integer', 'String', 'Float', 'Boolean']) or param.enum - if param.array or (not param.mandatory) or (not basic_type): - param_name = 'p_' + param.name - else: - param_name = param.name - out.write(param_name) - if i != len(params) - 1: out.write(', ') - out.write(");\n") - out.write("}\n\n") - - - def make_dbus_adaptor_declarations(self, out): - for interface_el in self.el_tree.findall('interface'): - notifications = self.find_notifications_by_provider(interface_el, "hmi") - request_responses = self.find_request_response_pairs_by_provider(interface_el, "hmi") - if len(notifications) > 0 or len(request_responses) > 0: - self.write_adaptor_declaration(interface_el, notifications, request_responses, out) - - - def make_dbus_adaptor_definitions(self, out): - for interface_el in self.el_tree.findall('interface'): - notifications = self.find_notifications_by_provider(interface_el, "hmi") - request_responses = self.find_request_response_pairs_by_provider(interface_el, "hmi") - if len(notifications) > 0 or len(request_responses) > 0: - self.write_adaptor_definition(interface_el, notifications, request_responses, out) - - - def make_dbus_register_metatypes_declaraion(self, out): - out.write("void RegisterDbusMetatypes();\n") - - - def make_dbus_register_metatypes_definition(self, out): - out.write("void RegisterDbusMetatypes() {\n") - for (iface, name) in self.structs: - struct_name = iface + '_' + name - out.write('qDBusRegisterMetaType<' + struct_name + ">();\n") - out.write('qDBusRegisterMetaType >();\n") - out.write('qDBusRegisterMetaType >();\n") - out.write('qDBusRegisterMetaType > >();\n") - out.write("}\n") - - - def make_api_adaptors_class(self, out): - global prefix_class_item - out.write("struct ApiAdaptors {\n") - interfaces = self.el_tree.findall('interface') - def filt(iface): - return self.find_notifications_by_provider(iface, "hmi") or self.find_request_response_pairs_by_provider(iface, "hmi") - interfaces = filter(filt, interfaces) - for interface_el in interfaces: - name = interface_el.get('name') + 'Adaptor' - out.write(" " + name + "* " + name + "_;\n") - out.write(" ApiAdaptors() :\n") - for i in range(len(interfaces)): - name = interfaces[i].get('name') + 'Adaptor' - out.write(" " + name + "_(NULL)") - if i <> len(interfaces) - 1: out.write(',') - out.write("\n") - out.write(" {}\n") - out.write(" void Init(QObject* p) {\n") - for interface_el in interfaces: - name = interface_el.get('name') + 'Adaptor' - out.write(" " + name + "_ = new " + name + "(p);\n") - out.write(" }\n") - out.write(" void SetApi(QObject* p) {\n") - for interface_el in interfaces: - name = interface_el.get('name') + 'Adaptor' - chname = interface_el.get('name') - out.write(" " + name + ("_->SetApi(p->findChild(\"" % prefix_class_item) + chname + "\"));\n") - out.write(" }\n") - out.write(" void SetDBusController(DBusController* dc) {\n") - for interface_el in interfaces: - name = interface_el.get('name') + 'Adaptor' - chname = interface_el.get('name') - out.write(" " + name + "_->dbusController = dc;\n") - out.write(" }\n") - out.write("};\n\n") - - - -arg_parser = ArgumentParser(description="Generator of Qt to QDbus C++ part") -arg_parser.add_argument('--infile', required=True, help="full name of input file, e.g. applink/src/components/interfaces/QT_HMI_API.xml") -arg_parser.add_argument('--version', required=False, help="Qt version 4.8.5 (default) or 5.1.0") -arg_parser.add_argument('--outdir', required=True, help="path to directory where output files qml_dbus.cc, qml_dbus.h will be saved") -args = arg_parser.parse_args() - -if args.version == "4.8.5": - prefix_class_item = 'Declarative' - invoke_type_connection = 'Direct' -elif args.version == "5.1.0": - prefix_class_item = 'Quick' - invoke_type_connection = 'BlockingQueued' - -header_name = 'qml_dbus.h' -source_name = 'qml_dbus.cc' - -in_tree = ElementTree.parse(args.infile) -in_tree_root = in_tree.getroot() - -impl = Impl(in_tree_root, 'com.ford.sdl.hmi') - -header_out = open(args.outdir + '/' + header_name, "w") -source_out = open(args.outdir + '/' + source_name, "w") - -header_out.write("// Warning! This file is generated by '%s'. Edit at your own risk.\n" % argv[0]) -header_out.write("""/** - * @file qml_dbus.h - * @brief Generated QDbus adaptors header file - * - * This file is a part of HMI D-Bus layer. - */ -// Copyright (c) 2013, Ford Motor Company -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following -// disclaimer in the documentation and/or other materials provided with the -// distribution. -// -// Neither the name of the Ford Motor Company nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -""") -header_out.write("#ifndef SRC_COMPONENTS_DBUS_QML_DBUS_H_\n"); -header_out.write("#define SRC_COMPONENTS_DBUS_QML_DBUS_H_\n\n"); -header_out.write("#include \n"); -header_out.write("#include \n"); -header_out.write("#include \n"); -header_out.write("#include \n"); -header_out.write("#include \n"); -header_out.write("#include \n" % (prefix_class_item, prefix_class_item)); -header_out.write("#include \"qml_dbus_common.h\"\n\n"); -header_out.write("#include \"dbus_controller.h\"\n\n"); -impl.make_dbus_type_declarations(header_out) -impl.make_dbus_adaptor_declarations(header_out) -impl.make_dbus_register_metatypes_declaraion(header_out) -impl.make_api_adaptors_class(header_out) -impl.make_dbus_metatype_declarations(header_out) -header_out.write("#endif // #ifndef SRC_COMPONENTS_DBUS_QML_DBUS_H_\n"); - -source_out.write("// Warning! This file is generated by '%s'. Edit at your own risk.\n" % argv[0]) -source_out.write("""/** - * @file qml_dbus.cc - * @brief Generated QDbus adaptors source file - * - * This file is a part of HMI D-Bus layer. - */ -// Copyright (c) 2013, Ford Motor Company -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following -// disclaimer in the documentation and/or other materials provided with the -// distribution. -// -// Neither the name of the Ford Motor Company nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -""") -source_out.write("#include \"" + header_name + "\"\n\n"); -source_out.write("#include \"utils/logger.h\"\n") -source_out.write("#ifdef ENABLE_LOG\n") -source_out.write("extern log4cxx::LoggerPtr logger_;\n") -source_out.write("#endif // ENABLE_LOG\n\n") -impl.make_dbus_type_definitions(source_out) -impl.make_dbus_adaptor_definitions(source_out) -impl.make_dbus_register_metatypes_definition(source_out) diff --git a/src/components/dbus/codegen/make_qml_dbus_qml.py b/src/components/dbus/codegen/make_qml_dbus_qml.py deleted file mode 100755 index 8d057dcda19..00000000000 --- a/src/components/dbus/codegen/make_qml_dbus_qml.py +++ /dev/null @@ -1,217 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# @file make_qml_dbus_qml.py -# @brief Generator of QML to QDbus QML part -# -# This file is a part of HMI D-Bus layer. -# -# Copyright (c) 2013, Ford Motor Company -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following -# disclaimer in the documentation and/or other materials provided with the -# distribution. -# -# Neither the name of the Ford Motor Company nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -from os import path -from os import makedirs -from sys import argv -from argparse import ArgumentParser -from xml.etree import ElementTree -from copy import copy -from ford_xml_parser import FordXmlParser - -namespace = 'dbus_qml' -qt_quick_version = '1.1' -type_variant_name = 'variant' - -class Impl(FordXmlParser): - def write_function(self, ifacename, request, response, out): - name = request.get('name') - name = name[:1].lower() + name[1:] - out.write(" function " + name + "(params) {\n") - out.write(""" console.debug("{0}Proxy::{1}")\n""".format(ifacename, name)) - out.write(" try {\n") - out.write(" if(\"{0}\" in sdl{1})\n".format(name, ifacename)) - out.write(" return sdl{0}.{1}(" .format(ifacename, name)) - params = request.findall('param') - for i in range(len(params)): - out.write('params.' + params[i].get('name')) - if i <> len(params) - 1: - out.write(', ') - out.write(")\n") - out.write(" else\n") - out.write(""" return { "__errno": Common.Result.UNSUPPORTED_REQUEST }\n""") - out.write(" } catch(err) {\n") - out.write(""" return { "__errno": err }\n""") - out.write(" }\n") - out.write(" }\n\n") - - - def write_signal_param(self, param, out): - if param.array or param.struct or not param.mandatory: typ = type_variant_name - elif param.type == 'Integer' or param.enum: typ = 'int' - elif param.type == 'String': typ = 'string' - elif param.type == 'Boolean': typ = 'bool' - elif param.type == 'Float': typ = 'double' - else: typ = type_variant_name - out.write(typ + ' ' + param.name) - - - def write_signal(self, ifacename, notification, out): - name = notification.get('name') - name = name[:1].lower() + name[1:] - out.write(" signal " + name + "(") - params = notification.findall('param') - for i in range(len(params)): - self.write_signal_param(self.make_param_desc(params[i], ifacename), out) - if i <> len(params) - 1: - out.write(', ') - out.write(")\n") - name = notification.get('name') - out.write(""" on{1}: console.debug("emitted {0}:{1}")\n""".format(ifacename, name)) - - - def write_qml(self, iface, out): - global qt_quick_version - name = iface.get('name') - out.write("import QtQuick %s\n" % qt_quick_version) - out.write("""import "Common.js" as Common\n""") - out.write("import \"..\"\n\n") - out.write("Item {\n") - out.write(" " + name + " {\n") - out.write(" id: sdl" + name + "\n") - out.write(" }\n") - - notifications = impl.find_notifications_by_provider(interface_el, "hmi") - request_responses = impl.find_request_response_pairs_by_provider(interface_el, "hmi") - for request, response in request_responses: - self.write_function(name, request, response, out) - for n in notifications: - self.write_signal(name, n, out) - out.write("}\n") - - - def write_js_enum(self, enum, out): - out.write("var " + enum.get('name') + " = {\n") - lastval = -1 - elements = enum.findall('element') - for i in range(len(elements)): - element = elements[i] - value = element.get('value') - if value is None: - value = lastval + 1 - else: - value = int(value) - lastval = value - name = element.get('internal_name') - if name is None: - name = element.get('name') - out.write(" " + name + ': ' + str(value)) - if len(elements) - 1 != i: out.write(',') - out.write("\n") - out.write("}\n\n") - - -def write_header(out): - out.write("// Warning! This file is generated by '%s'. Edit at your own risk.\n" % argv[0]) - out.write("""/** - * Copyright (c) 2013, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -""") - -arg_parser = ArgumentParser(description="Generator of Qt to QDbus QML part") -arg_parser.add_argument('--infile', required=True, help="full name of input file, e.g. applink/src/components/interfaces/QT_HMI_API.xml") -arg_parser.add_argument('--version', required=False, help="Qt version 4.8.5 (default) or 5.1.0") -arg_parser.add_argument('--outdir', required=True, help="path to directory where output files with pattern name Proxy.qml will be saved, e.g. BasicCommunicationProxy.qml, ButtonsProxy.qml VRProxy.qml") -args = arg_parser.parse_args() - -if args.version == "4.8.5": - qt_quick_version = "1.1" - type_variant_name = "variant" -elif args.version == "5.1.0": - qt_quick_version = "2.0" - type_variant_name = "var" - -if not path.isdir(args.outdir): - makedirs(args.outdir) - -in_tree = ElementTree.parse(args.infile) -in_tree_root = in_tree.getroot() - -impl = Impl(in_tree_root) - -for interface_el in in_tree_root.findall('interface'): - notifications = impl.find_notifications_by_provider(interface_el, "hmi") - request_responses = impl.find_request_response_pairs_by_provider(interface_el, "hmi") - if notifications or request_responses: - filename = interface_el.get('name')+'Proxy.qml' - outfile = open(args.outdir + '/' + filename, 'w') - write_header(outfile) - impl.write_qml(interface_el, outfile) - -enum_files = dict() -for (iface, name), enum in impl.enums.items(): - if iface in enum_files: - outfile = enum_files[iface] - else: - filename = iface+'.js' - outfile = open(args.outdir + '/' + filename, 'w') - write_header(outfile) - outfile.write(".pragma library\n") - enum_files[iface] = outfile - impl.write_js_enum(enum, outfile) - - diff --git a/src/components/dbus/codegen/make_qml_requests_cpp.py b/src/components/dbus/codegen/make_qml_requests_cpp.py deleted file mode 100644 index 6674b8f5e26..00000000000 --- a/src/components/dbus/codegen/make_qml_requests_cpp.py +++ /dev/null @@ -1,253 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# @file make_qml_dbus_cpp.py -# @brief Generator of QML to QDbus C++ part -# -# This file is a part of HMI D-Bus layer. -# -# Copyright (c) 2014, Ford Motor Company -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following -# disclaimer in the documentation and/or other materials provided with the -# distribution. -# -# Neither the name of the Ford Motor Company nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -from argparse import ArgumentParser -import os.path -from sys import argv -from xml.etree import ElementTree -from copy import copy -from ford_xml_parser import FordXmlParser, ParamDesc -from code_formatter import CodeBlock - -prefix_class_item = 'Declarative' -invoke_type_connection = 'Direct' - -def defaultValue(param): - if param.type == "Integer": - return "0" - elif param.type == "Float": - return "0.0" - elif param.type == "Boolean": - return "false" - elif param.enum: - return "0" - -class Impl(FordXmlParser): - - - def args_for_function_definition(self, params, out): - if len(params) == 0: - out.write('QJSValue hmi_callback') - return - for param in params: - out.write('QVariant ' + param.get('name') + ', ') - out.write('QJSValue hmi_callback') - - - def make_requests_for_header(self, out): - for interface_el in self.el_tree.findall('interface'): - request_responses = self.find_request_response_pairs_by_provider(interface_el, "sdl") - for (request, response) in request_responses: - all_params = list() - for param_el in request.findall('param'): - all_params.append(param_el) - with CodeBlock(out) as output: - output.write("Q_INVOLABKE void " + interface_el.get('name') + "_" +request.get('name') + "(") - impl.args_for_function_definition(all_params, out) - output.write(");\n") - - - def make_header_file(self, out): - out.write("class RequestToSDL : public QObject\n") - out.write("{\n") - out.write(" public:\n") - with CodeBlock(out) as output: - output.write("explicit RequestToSDL(QObject *parent = 0);\n") - output.write("~RequestToSDL();\n") - impl.make_requests_for_header(out) - out.write(" private:\n") - with CodeBlock(out) as output: - for interface_el in self.el_tree.findall('interface'): - output.write('QDBusInterface *' + interface_el.get('name') + ';\n') - out.write("};\n") - - - def make_requests_for_source(self, out): - for interface_el in self.el_tree.findall('interface'): - request_responses = self.find_request_response_pairs_by_provider(interface_el, "sdl") - for (request, response) in request_responses: - out.write('void RequestToSDL::' + request.get('name') + '(QString name, ') - for param_el in request.findall('param'): - out.write('QVariant ' + param_el.get('name') + ', ') - out.write('QJSValue hmi_callback) {\n') - with CodeBlock(out) as output: - output.write('QList args;\n') - for param_el in request.findall('param'): - output.write('args << ' + param_el.get('name') + ';\n') - output.write('new ' + interface_el.get('name') + '_' + request.get('name') + '(' + interface_el.get('name') + ', name, args, hmi_callback);\n}\n') - - - - def make_source_file(self, out): - out.write('#include "request_to_sdl.h"\n') - out.write('\n') - out.write('RequestToSDL::RequestToSDL(QObject *parent) {\n') - with CodeBlock(out) as output: - output.write('QDBusConnection bus = QDBusConnection::sessionBus();\n') - for interface_el in self.el_tree.findall('interface'): - iface_name = interface_el.get('name') - output.write(iface_name + ' = new QDBusInterface("com.ford.sdl.core", "/", "com.ford.sdl.core.' + iface_name + '", bus, this);\n') - out.write('}\n\n') - out.write('RequestToSDL::~RequestToSDL() {\n') - with CodeBlock(out) as output: - for interface_el in self.el_tree.findall('interface'): - iface_name = interface_el.get('name') - output.write(iface_name + '->deleteLater();\n') - output.write('this->deleteLater();\n') - out.write('}\n\n') - impl.make_requests_for_source(out) - - - - - -arg_parser = ArgumentParser(description="Generator of Qt to QDbus C++ part") -arg_parser.add_argument('--infile', required=True, help="full name of input file, e.g. applink/src/components/interfaces/QT_HMI_API.xml") -arg_parser.add_argument('--version', required=False, help="Qt version 4.8.5 (default) or 5.1.0") -arg_parser.add_argument('--outdir', required=True, help="path to directory where output files request_to_sdl.h, request_to_sdl.cc will be saved") -args = arg_parser.parse_args() - -if args.version == "4.8.5": - prefix_class_item = 'Declarative' - invoke_type_connection = 'Direct' -elif args.version == "5.1.0": - prefix_class_item = 'Quick' - invoke_type_connection = 'BlockingQueued' - -header_name = 'request_to_sdl.h' -source_name = 'request_to_sdl.cc' - -in_tree = ElementTree.parse(args.infile) -in_tree_root = in_tree.getroot() - -impl = Impl(in_tree_root, 'com.ford.sdl.hmi') - -header_out = open(args.outdir + '/' + header_name, "w") -source_out = open(args.outdir + '/' + source_name, "w") - -header_out.write("// Warning! This file is generated by '%s'. Edit at your own risk.\n" % argv[0]) -header_out.write("""/** - * @file request_to_sdl.h - * @brief Generated class that process requests from qtHMI - * - * This file is a part of HMI D-Bus layer. - */ -// Copyright (c) 2013, Ford Motor Company -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following -// disclaimer in the documentation and/or other materials provided with the -// distribution. -// -// Neither the name of the Ford Motor Company nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -""") -header_out.write("#ifndef SRC_COMPONENTS_QTHMI_QMLMODELQT5_REQUESTTOSDL_\n"); -header_out.write("#define SRC_COMPONENTS_QTHMI_QMLMODELQT5_REQUESTTOSDL_\n\n"); -header_out.write("#include \n"); -header_out.write("#include \n"); -header_out.write("#include \n"); -header_out.write("#include \n"); -header_out.write('#include "hmi_requests.h"\n'); - -impl.make_header_file(header_out) - -header_out.write("#endif SRC_COMPONENTS_QTHMI_QMLMODELQT5_REQUESTTOSDL_\n"); - - -source_out.write("// Warning! This file is generated by '%s'. Edit at your own risk.\n" % argv[0]) -source_out.write("""/** - * @file request_to_sdl.cc - * @brief Generated class that process requests from qtHMI - * - * This file is a part of HMI D-Bus layer. - */ -// Copyright (c) 2014, Ford Motor Company -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following -// disclaimer in the documentation and/or other materials provided with the -// distribution. -// -// Neither the name of the Ford Motor Company nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -""") - -impl.make_source_file(source_out) diff --git a/src/components/dbus/codegen/make_request_to_sdl.py b/src/components/dbus/codegen/make_request_to_sdl.py deleted file mode 100755 index c8940f3eb75..00000000000 --- a/src/components/dbus/codegen/make_request_to_sdl.py +++ /dev/null @@ -1,335 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# @file make_qml_dbus_cpp.py -# @brief Generator of QML to QDbus C++ part -# -# This file is a part of HMI D-Bus layer. -# -# Copyright (c) 2014, Ford Motor Company -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following -# disclaimer in the documentation and/or other materials provided with the -# distribution. -# -# Neither the name of the Ford Motor Company nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -from argparse import ArgumentParser -import os.path -from sys import argv -from xml.etree import ElementTree -from copy import copy -from ford_xml_parser import FordXmlParser, ParamDesc -from code_formatter import CodeBlock - -class Impl(FordXmlParser): - - def args_for_function_definition(self, params, iface_name, out): - for param_el in params: - param = self.make_param_desc(param_el, iface_name) - out.write('QVariant %s,' % (param.name)) - out.write('Q%sValue hmi_callback' % prefix_class_item) - - def make_requests_for_header(self, out): - for interface_el in self.el_tree.findall('interface'): - request_responses = self.find_request_response_pairs_by_provider(interface_el, "sdl") - for (request, response) in request_responses: - all_params = list() - for param_el in request.findall('param'): - all_params.append(param_el) - with CodeBlock(out) as output: - output.write("Q_INVOKABLE bool %s_%s(" % (interface_el.get('name'), request.get('name'))) - impl.args_for_function_definition(all_params, interface_el.get('name'), out) - output.write(");\n") - - - def make_header_file(self, out): - out.write("class QDBusInterface;\n") - out.write("class RequestToSDL : public QObject\n") - out.write("{\n") - out.write(' Q_OBJECT\n') - out.write(" public:\n") - with CodeBlock(out) as output: - output.write("explicit RequestToSDL(QObject *parent = 0);\n") - output.write("~RequestToSDL();\n") - impl.make_requests_for_header(out) - out.write(" private:\n") - with CodeBlock(out) as output: - for interface_el in self.el_tree.findall('interface'): - output.write('QDBusInterface *%s;\n' % interface_el.get('name')) - out.write("};\n") - - - def qt_param_type(self, param): - if not param.mandatory: - param_copy = copy(param) - param_copy.mandatory = True - return "OptionalArgument< " + self.qt_param_type(param_copy) + " >" - if param.array: - param_copy = copy(param) - param_copy.array = False - if param.type == 'String': - return "QStringList" - return "QList< " + self.qt_param_type(param_copy) + " >" - if param.type == 'Integer' or param.enum: - return 'int' - elif param.type == 'String': - return 'QString' - elif param.type == 'Boolean': - return 'bool' - elif param.type == 'Float': - return 'double' - elif param.struct: - return "_".join(param.fulltype) - else: - raise RuntimeError('Unknown type: ' + param.type) - - - def make_requests_for_source(self, out): - for interface_el in self.el_tree.findall('interface'): - request_responses = self.find_request_response_pairs_by_provider(interface_el, "sdl") - for (request, response) in request_responses: - request_name = request.get('name') - iface_name = interface_el.get('name') - request_full_name = iface_name + '_' + request_name - out.write('bool RequestToSDL::' + request_full_name + '(') - for param_el in request.findall('param'): - out.write('QVariant %s, ' % (param_el.get('name'))) - out.write('Q%sValue hmi_callback) {\n' % prefix_class_item) - with CodeBlock(out) as output: - output.write('LOG4CXX_TRACE(logger_, "ENTER");\n') - output.write('QList args;\n') - for param_el in request.findall('param'): - param = self.make_param_desc(param_el, iface_name) - output.write('%s %s;\n' % (impl.qt_param_type(param), param.name + "_tmp")) - output.write('if (VariantToValue(%s, %s)) {\n' % (param.name, param.name + '_tmp')) - with CodeBlock(output) as out: - self.write_param_validation(param, param.name + "_tmp", - "\nLOG4CXX_ERROR(logger_, \"%s in %s out of bounds\");\nreturn false" % (param.name, request_full_name), - out) - out.write('args << QVariant::fromValue(%s);\n' % (param.name + '_tmp')) - output.write('} else {\n') - with CodeBlock(output) as out: - out.write('LOG4CXX_ERROR(logger_, "%s in %s is NOT valid");\n' % (param.name, request_full_name)) - out.write('return false;\n') - out.write('}\n') - output.write('new requests::' + request_full_name + '(hmi_callback, ' + interface_el.get('name') + ' , args, ' - + '"' + request_name + '");\n') - output.write('LOG4CXX_TRACE(logger_, "EXIT");\n') - output.write('return true;\n') - out.write('}\n\n') - - - def write_param_validation(self, param, param_name, fail_statement, out, level=0): - if not param.mandatory and (param.restricted or param.restrictedArray or (param.struct and any(map(lambda x: x.restricted, self.structs[param.fulltype])))): - out.write("if (%s.presence) {\n" % param_name) - param_copy = copy(param) - param_copy.mandatory = True - with CodeBlock(out) as out: - self.write_param_validation(param_copy, param_name + ".val", fail_statement, out, level+1) - out.write("}\n") - elif param.array: - if param.minSize > 0: - out.write("if ({0}.count() < {1}) {{".format(param_name, param.minSize)) - with CodeBlock(out) as out: - out.write("{0};\n".format(fail_statement)) - out.write("}\n") - if param.maxSize != None: - out.write("if ({0}.count() > {1}) {{".format(param_name, param.maxSize)) - with CodeBlock(out) as out: - out.write("{0};\n".format(fail_statement)) - out.write("}\n") - if param.restricted: - out.write('for ({0}::const_iterator it_{2} = {1}.begin(); it_{2} != {1}.end(); ++it_{2}) {{\n'.format(self.qt_param_type(param), param_name, level)) - with CodeBlock(out) as out: - param_copy = copy(param) - param_copy.array = False - self.write_param_validation(param_copy, "(*it_{0})".format(level), fail_statement, out, level+1) - out.write("}\n") - elif param.struct: - for p in self.structs[param.fulltype]: - self.write_param_validation(p, "{0}.{1}".format(param_name, p.name), fail_statement, out, level+1) - elif param.type == "Integer" or param.type == "Float": - conditions = [] - if (param.minValue != None): - conditions.append("(%s < %s)" % (param_name, param.minValue)) - if (param.maxValue != None): - conditions.append("(%s > %s)" % (param_name, param.maxValue)) - if conditions: - out.write('if (%s) {' % ' || '.join(conditions)) - with CodeBlock(out) as out: - out.write('%s;\n' % fail_statement) - out.write("}\n") - elif param.type == "String": - conditions = [] - if (param.minLength > 0): - conditions.append("(%s.size() < %s)" % (param_name, param.minLength)) - if (param.maxLength > 0): - conditions.append("(%s.size() > %s)" % (param_name, param.maxLength)) - if conditions: - out.write('if (%s) {' % ' || '.join(conditions)) - with CodeBlock(out) as out: - out.write('%s;\n' % (fail_statement)) - out.write("}\n") - - def make_source_file(self, out): - out.write('RequestToSDL::RequestToSDL(QObject *parent) {\n') - with CodeBlock(out) as output: - output.write('QDBusConnection bus = QDBusConnection::sessionBus();\n') - for interface_el in self.el_tree.findall('interface'): - iface_name = interface_el.get('name') - output.write(iface_name + ' = new QDBusInterface("com.ford.sdl.core", "/", "com.ford.sdl.core.' + iface_name + '", bus, this);\n') - out.write('}\n\n') - out.write('RequestToSDL::~RequestToSDL() {\n') - with CodeBlock(out) as output: - for interface_el in self.el_tree.findall('interface'): - iface_name = interface_el.get('name') - output.write(iface_name + '->deleteLater();\n') - output.write('this->deleteLater();\n') - out.write('}\n\n') - impl.make_requests_for_source(out) - -arg_parser = ArgumentParser(description="Generator of Qt to QDbus C++ part") -arg_parser.add_argument('--infile', required=True, help="full name of input file, e.g. applink/src/components/interfaces/QT_HMI_API.xml") -arg_parser.add_argument('--version', required=False, help="Qt version 4.8.5 (default) or 5.1.0") -arg_parser.add_argument('--outdir', required=True, help="path to directory where output files request_to_sdl.h, request_to_sdl.cc will be saved") -args = arg_parser.parse_args() - - -if args.version == "4.8.5": - prefix_class_item = 'Script' - invoke_type_connection = 'Direct' -elif args.version == "5.1.0": - prefix_class_item = 'JS' - invoke_type_connection = 'BlockingQueued' -else: - prefix_class_item = 'JS' - invoke_type_connection = 'BlockingQueued' - -header_name = 'request_to_sdl.h' -source_name = 'request_to_sdl.cc' - -in_tree = ElementTree.parse(args.infile) -in_tree_root = in_tree.getroot() - -impl = Impl(in_tree_root, 'com.ford.sdl.hmi') - -header_out = open(args.outdir + '/' + header_name, "w") -source_out = open(args.outdir + '/' + source_name, "w") - -header_out.write("// Warning! This file is generated by '%s'. Edit at your own risk.\n" % argv[0]) -header_out.write(""" -/* - Copyright (c) 2014, Ford Motor Company - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the - distribution. - - Neither the name of the Ford Motor Company nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -""") -header_out.write("#ifndef SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_REQUEST_TO_SDL_H_\n") -header_out.write("#define SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_REQUEST_TO_SDL_H_\n\n") - -header_out.write("#include \n") -header_out.write("#include \n") -header_out.write("#include \n\n") -header_out.write('#include "qml_dbus.h"\n\n') -if args.version == "4.8.5": - header_out.write("#include \n") -elif args.version == "5.1.0": - header_out.write("#include \n") - -impl.make_header_file(header_out) -header_out.write("#endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_REQUEST_TO_SDL_H_") - - -source_out.write("// Warning! This file is generated by '%s'. Edit at your own risk.\n" % argv[0]) -source_out.write(""" -/* - Copyright (c) 2014, Ford Motor Company - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the - distribution. - - Neither the name of the Ford Motor Company nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -""") - -source_out.write('#include "request_to_sdl.h"\n') -source_out.write("#include \n") -source_out.write("#include \n") -source_out.write('#include "hmi_requests.h"\n') -source_out.write('#include "utils/logger.h"\n\n') -source_out.write('CREATE_LOGGERPTR_GLOBAL(logger_, "DBusPlugin")\n\n') - -impl.make_source_file(source_out) diff --git a/src/components/dbus/include/dbus/dbus_adapter.h b/src/components/dbus/include/dbus/dbus_adapter.h deleted file mode 100644 index 42a2ac1140e..00000000000 --- a/src/components/dbus/include/dbus/dbus_adapter.h +++ /dev/null @@ -1,375 +0,0 @@ -/* - * Copyright (c) 2013-2014, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef SRC_COMPONENTS_DBUS_INCLUDE_DBUS_DBUS_ADAPTER_H_ -#define SRC_COMPONENTS_DBUS_INCLUDE_DBUS_DBUS_ADAPTER_H_ - -#include -#include "smart_objects/smart_object.h" -#include "dbus/schema.h" -#include "dbus/message_descriptions.h" - -struct DBusConnection; -struct DBusMessage; -struct DBusMessageIter; - -namespace dbus { - -/** - * \brief class for work with DBus - */ -class DBusAdapter { - public: - /** - * \brief constructs DBus adapter - * \param sdlServiceName core service name - * \param sdlObjectPath core object path - * \param hmiServiceName hmi service name - */ - DBusAdapter(const std::string& sdlServiceName, - const std::string& sdlObjectPath, - const std::string& hmiServiceName, - const std::string& hmiObjectPath); - - /** - * \brief destructs DBus adapter - */ - virtual ~DBusAdapter(); - - /** - * \brief inits service - * \return true if success - */ - bool Init(); - - /** - * \brief return schema messages for DBus - * \return schema - */ - const DBusSchema& get_schema() const; - - protected: - /** - * \brief calls method on HMI - * \param id id message - * \param func_id id function in Ford protocol - * \param name pair interface and name of method for call - * \param obj params for call - */ - void MethodCall(uint id, - const MessageId func_id, - const MessageName& name, - const smart_objects::SmartObject& obj); - - /** - * \brief sends signal - * \param id id message - * \param func_id id function in Ford protocol - * \param name pair interface and name of signal for call - * \param obj params for signal - */ - void Signal(const MessageId func_id, - const MessageName& name, - const smart_objects::SmartObject& obj); - - /** - * \brief returns result of call method to HMI - * \param id id message - * \param obj params for return - */ - void MethodReturn(uint id, - const MessageId func_id, - const MessageName& name, - const smart_objects::SmartObject& obj); - - /** - * \brief sends error on message from HMI - * \param id id message - * \param msg message from HMI - * \param name name of error - * \param description description of error - */ - void Error(uint id, const std::string& name, const std::string& description); - - /** - * \brief adds a match rule - * \param rule string rule in the DBus specification - */ - void AddMatch(const std::string& rule); - - /** - * \brief processes incoming message from DBus if queue isn't empty - * and fill obj - * \param obj object for send to core - * \return true if message processed - */ - bool Process(smart_objects::SmartObject& obj); - - /** - * \brief saves link D-Bus serial to Ford message id - * \param serial D-Bus message serial - * \param ids pair correlation id and Ford message id - */ - inline void SaveRequestToHMI(uint32_t serial, - const std::pair& ids); - - /** - * \brief gets Ford message id by serial - * \param serial D-Bus message serial - * \return pair correlation id and Ford message id - */ - inline std::pair GetRequestToHMI(uint32_t serial); - - /** - * \brief saves link D-Bus serial to Ford message id - * \param serial D-Bus message serial - * \param request D-Bus message from HMI - */ - inline void SaveRequestFromHMI(uint32_t serial, DBusMessage* request); - - /** - * \brief gets D-Bus message id by serial - * \param serial DBus message serial - * \return D-Bus message from HMI - */ - inline DBusMessage* GetRequestFromHMI(uint32_t serial); - - std::string sdl_service_name_; - std::string sdl_object_path_; - std::string hmi_service_name_; - std::string hmi_object_path_; - DBusConnection* conn_; - - private: - /** - * \brief schema messages and arguments for DBus - */ - const DBusSchema* schema_; - - /** - * \brief mapping serial message DBus on message id Ford protocol - */ - std::map > requests_to_hmi_; - - /** - * \brief mapping message id Ford protocol on message DBus - */ - std::map requests_from_hmi_; - - /** - * \brief processes incoming call of method and fill obj - * \param msg message from DBus - * \param obj object for send to core - * \return true if success - */ - bool ProcessMethodCall(DBusMessage* msg, smart_objects::SmartObject& obj); - - /** - * \brief processes incoming return of method and fill obj - * \param msg message from DBus - * \param obj object for send to core - * \return true if success - */ - bool ProcessMethodReturn(DBusMessage* msg, smart_objects::SmartObject& obj); - - /** - * \brief processes incoming error and fill obj - * \param msg message from DBus - * \param obj object for send to core - * \return true if success - */ - bool ProcessError(DBusMessage* msg, smart_objects::SmartObject& obj); - - /** - * \brief processes incoming signal and fill obj - * \param msg message from DBus - * \param obj object for send to core - * \return true if success - */ - bool ProcessSignal(DBusMessage* msg, smart_objects::SmartObject& obj); - - /** - * \brief sets arguments to message - * \param msg DBus message - * \param rules list of rules for arguments - * \param args map of arguments - * \return true if success - */ - bool SetArguments(DBusMessage* msg, - const ListArgs& rules, - const smart_objects::SmartObject& args); - - /** - * \brief Sets one argument to message - * \param iter DBus message iterator - * \param rules description for argument - * \param param value of argument - * \return true if success - */ - bool SetOneArgument( - DBusMessageIter* iter, - const ford_message_descriptions::ParameterDescription* rules, - const smart_objects::SmartObject& param); - - /** - * \brief sets value for argument - * \param iter DBus message iterator - * \param rules description for argument - * \param param value of argument - * \return true if success - */ - bool SetValue(DBusMessageIter* iter, - const ford_message_descriptions::ParameterDescription* rules, - const smart_objects::SmartObject& param); - - /** - * \brief sets value for every element of argument - * \param iter DBus message iterator - * \param rules description for argument - * \param param array values of argument - * \return true if success - */ - bool SetArrayValue(DBusMessageIter* iter, - const ford_message_descriptions::ArrayDescription* rules, - const smart_objects::SmartObject& param); - - /** - * \brief sets struct value for argument - * \param iter DBus message iter - * \param rules description for argument - * \param param structure - * \return true if success - */ - bool SetStructValue(DBusMessageIter* iter, - const ford_message_descriptions::StructDescription* rules, - const smart_objects::SmartObject& param); - - /** - * \brief sets optional value for argument. - * Optional param is struct bool, value - * \param iter DBus message iterator - * \param rules description for argument - * \param param value of optional argument - * \return true if success - */ - bool SetOptionalValue( - DBusMessageIter* iter, - const ford_message_descriptions::ParameterDescription* rules, - const smart_objects::SmartObject& param); - - /** - * \brief gets arguments from message - * \param iter DBus message iterator - * \param code response code (output) - * \param message response message (output) - * \return true if success - */ - bool GetHeader(DBusMessageIter* iter, int* code, std::string* message); - - /** - * \brief gets arguments from message with header - * \param iter DBus message iterator - * \param rules list of rules for arguments - * \param args map of arguments - * \return true if success - */ - bool GetArguments(DBusMessageIter* iter, - const ListArgs& rules, - smart_objects::SmartObject& args); - - /** - * \brief gets one argument from message - * \param iter DBus message iterator - * \param rules description for argument - * \param args map of arguments - * \return true if success - */ - bool GetOneArgument( - DBusMessageIter* iter, - const ford_message_descriptions::ParameterDescription* rules, - smart_objects::SmartObject& args); - - /** - * \brief gets value for argument - * \param iter DBus message iterator - * \param rules description for argument - * \param param value of argument - * \return true if success - */ - bool GetValue(DBusMessageIter* iter, - const ford_message_descriptions::ParameterDescription* rules, - smart_objects::SmartObject& param); - - /** - * \brief gets value for every element of argument - * \param iter DBus message iterator - * \param rules description for argument - * \param param array values of argument - * \return true if success - */ - bool GetArrayValue(DBusMessageIter* iter, - const ford_message_descriptions::ArrayDescription* rules, - smart_objects::SmartObject& param); - - /** - * \brief gets struct value for argument - * \param iter DBus message iterator - * \param rules description for argument - * \param param structure - * \return true if success - */ - bool GetStructValue(DBusMessageIter* iter, - const ford_message_descriptions::StructDescription* rules, - smart_objects::SmartObject& param); - - /** - * \brief gets optional value for argument. - * Optional param is struct bool, value - * \param iter DBus message iterator - * \param rules description for argument - * \param param value of optional argument - * \return true if success - */ - bool GetOptionalValue( - DBusMessageIter* iter, - const ford_message_descriptions::ParameterDescription* rules, - smart_objects::SmartObject& param); - - /** - * \brief processes request on introspect - * \param msg DBus message - */ - void Introspect(DBusMessage* msg); -}; - -} // namespace dbus - -#endif // SRC_COMPONENTS_DBUS_INCLUDE_DBUS_DBUS_ADAPTER_H_ diff --git a/src/components/dbus/include/dbus/dbus_message.h b/src/components/dbus/include/dbus/dbus_message.h deleted file mode 100644 index 23e672d0fc9..00000000000 --- a/src/components/dbus/include/dbus/dbus_message.h +++ /dev/null @@ -1,179 +0,0 @@ -/* Copyright (c) 2014, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef SRC_COMPONENTS_DBUS_INCLUDE_DBUS_DBUS_MESSAGE_H_ -#define SRC_COMPONENTS_DBUS_INCLUDE_DBUS_DBUS_MESSAGE_H_ - -#include -#include - -#include - -namespace dbus { - -enum ContainerType { - kArray = DBUS_TYPE_ARRAY, - kStruct = DBUS_TYPE_STRUCT, - kDictEntry = DBUS_TYPE_DICT_ENTRY -}; - -class MessageRefKeeper { - public: - MessageRefKeeper(); - MessageRefKeeper(DBusMessage* message); - ~MessageRefKeeper(); - MessageRefKeeper(const MessageRefKeeper& other); - MessageRefKeeper& operator=(MessageRefKeeper other); - DBusMessage* get() const; - DBusMessage* Pass(); - void swap(MessageRefKeeper& other); - - private: - DBusMessage* raw_message_; -}; - -class MessageRef { - public: - MessageRef(DBusMessage* message); - ~MessageRef(); - std::string GetInterface() const; - std::string GetMember() const; - - protected: - MessageRefKeeper raw_message_ref_; - friend class MessageReader; - friend class MessageWriter; -}; - -class MessageReader { - public: - // Main constructor - MessageReader(const MessageRef& message); - bool has_failed() const; - bool IsAtLastElement() const; - bool HasNext() const; - - // Type checkers - bool NextIsInvalid() const; - bool NextIsBool() const; - bool NextIsByte() const; - bool NextIsInt16() const; - bool NextIsUint16() const; - bool NextIsInt32() const; - bool NextIsUint32() const; - bool NextIsInt64() const; - bool NextIsUint64() const; - bool NextIsDouble() const; - bool NextIsString() const; - bool NextIsArray() const; - bool NextIsStruct() const; - bool NextIsDictEntry() const; - - // Readers - bool TakeBool(); - uint8_t TakeByte(); - int16_t TakeInt16(); - uint16_t TakeUint16(); - int32_t TakeInt32(); - uint32_t TakeUint32(); - int64_t TakeInt64(); - uint64_t TakeUint64(); - double TakeDouble(); - std::string TakeString(); - - MessageReader TakeArrayReader(); - MessageReader TakeStructReader(); - MessageReader TakeDictEntryReader(); - - private: - typedef int DataType; - // Container reader constructor - MessageReader(MessageReader* reader, DataType container_data_type); - void MoveToNext(); - void MarkFailed(); - DataType NextValueType() const; - void ReadNextValue(DataType type, void* value); - - private: - // Fields - MessageReader* parent_reader_; - bool failed_; - DBusMessageIter iterator_; -}; - -class MessageWriter { - public: - // Methods - // Main appending constructor - MessageWriter(const MessageRef& message); - // Container writer constructor - MessageWriter(MessageWriter* parent, - ContainerType type, - const char* array_signature); - ~MessageWriter(); - void PutBool(bool value); - void PutByte(uint8_t value); - void PutInt16(int16_t value); - void PutUint16(uint16_t value); - void PutInt32(int32_t value); - void PutUint32(uint32_t value); - void PutInt64(int64_t value); - void PutUint64(uint64_t value); - void PutDouble(double value); - void PutString(const std::string& value); - - private: - typedef int DataType; - // Main constructor - void WriteAndCheck(DataType value_type, const void* value); - void CloseWriter(); - - private: - // Fields - bool has_opened_subcontainer_; - MessageWriter* parent_writer_; - DBusMessageIter iterator_; - - // Disallow copy and assign - MessageWriter(const MessageWriter& other); - MessageWriter& operator=(const MessageWriter& other); -}; - -MessageRef MethodCall(const char* bus_name, - const char* path, - const char* interface, - const char* method); -MessageRef Signal(const char* path, const char* interface, const char* name); -} // namespace dbus - -#include "dbus/dbus_message_inl.h" - -#endif // SRC_COMPONENTS_DBUS_INCLUDE_DBUS_DBUS_MESSAGE_H_ diff --git a/src/components/dbus/include/dbus/dbus_message_controller.h b/src/components/dbus/include/dbus/dbus_message_controller.h deleted file mode 100644 index a4a3718ce3b..00000000000 --- a/src/components/dbus/include/dbus/dbus_message_controller.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (c) 2013, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef SRC_COMPONENTS_DBUS_INCLUDE_DBUS_DBUS_MESSAGE_CONTROLLER_H_ -#define SRC_COMPONENTS_DBUS_INCLUDE_DBUS_DBUS_MESSAGE_CONTROLLER_H_ - -#include -#include -#include "dbus/dbus_adapter.h" -#include "smart_objects/smart_object.h" - -namespace dbus { - -class DBusMessageController : public DBusAdapter { - public: - /** - * @brief constructs DBus message controller - * @param sdlServiceName name of service SDL - * @param sdlObjectPath path of object SDL - * @param hmiServiceName name of service HMI - * @param hmiObjectPath path of object HMI - */ - DBusMessageController(const std::string& sdlServiceName, - const std::string& sdlObjectPath, - const std::string& hmiServiceName, - const std::string& hmiObjectPath); - - /** - * @brief destructs DBus message controller - */ - virtual ~DBusMessageController(); - - /** - * @brief subscribes to the DBus signal. - * @param interface name of interface in HMI - * @param signal name of signal - */ - void SubscribeTo(const std::string& interface, const std::string& signal); - - /** - * @brief Method for receiving thread. - */ - void* MethodForReceiverThread(void*); - - /** - * @brief Main thread loop. - */ - bool Run(); - - /** - * @brief Signal shutdown for thread loop. - */ - void Shutdown(); - - protected: - /** - * @brief sends message to core - * @param obj - */ - virtual void SendMessageToCore(const smart_objects::SmartObject& obj) = 0; - - private: - bool shutdown_; -}; - -} // namespace dbus - -#endif // SRC_COMPONENTS_DBUS_INCLUDE_DBUS_DBUS_MESSAGE_CONTROLLER_H_ diff --git a/src/components/dbus/include/dbus/dbus_message_inl.h b/src/components/dbus/include/dbus/dbus_message_inl.h deleted file mode 100644 index ba9bfaa78d6..00000000000 --- a/src/components/dbus/include/dbus/dbus_message_inl.h +++ /dev/null @@ -1,214 +0,0 @@ -/* Copyright (c) 2014, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef SRC_COMPONENTS_DBUS_INCLUDE_DBUS_DBUS_MESSAGE_INL_H_ -#define SRC_COMPONENTS_DBUS_INCLUDE_DBUS_DBUS_MESSAGE_INL_H_ - -#include "dbus/dbus_message.h" - -namespace dbus { -// MessageReader -inline bool MessageReader::has_failed() const { - return failed_; -} - -inline bool MessageReader::IsAtLastElement() const { - DBusMessageIter* iter = const_cast(&iterator_); - return dbus_message_iter_has_next(iter) == 0; -} - -inline bool MessageReader::HasNext() const { - return !failed_ && NextValueType() != DBUS_TYPE_INVALID; -} - -inline bool MessageReader::NextIsInvalid() const { - return NextValueType() == DBUS_TYPE_INVALID; -} - -inline bool MessageReader::NextIsBool() const { - return NextValueType() == DBUS_TYPE_BOOLEAN; -} - -inline bool MessageReader::NextIsByte() const { - return NextValueType() == DBUS_TYPE_BYTE; -} - -inline bool MessageReader::NextIsInt16() const { - return NextValueType() == DBUS_TYPE_INT16; -} - -inline bool MessageReader::NextIsUint16() const { - return NextValueType() == DBUS_TYPE_UINT16; -} - -inline bool MessageReader::NextIsInt32() const { - return NextValueType() == DBUS_TYPE_INT32; -} - -inline bool MessageReader::NextIsUint32() const { - return NextValueType() == DBUS_TYPE_UINT32; -} - -inline bool MessageReader::NextIsInt64() const { - return NextValueType() == DBUS_TYPE_INT64; -} - -inline bool MessageReader::NextIsUint64() const { - return NextValueType() == DBUS_TYPE_UINT64; -} - -inline bool MessageReader::NextIsDouble() const { - return NextValueType() == DBUS_TYPE_DOUBLE; -} - -inline bool MessageReader::NextIsString() const { - return NextValueType() == DBUS_TYPE_STRING; -} - -inline bool MessageReader::NextIsArray() const { - return NextValueType() == DBUS_TYPE_ARRAY; -} - -inline bool MessageReader::NextIsStruct() const { - return NextValueType() == DBUS_TYPE_STRUCT; -} - -inline bool MessageReader::TakeBool() { - dbus_bool_t value = 0; - ReadNextValue(DBUS_TYPE_BOOLEAN, &value); - return value != 0; -} - -inline uint8_t MessageReader::TakeByte() { - uint8_t value = 0; - ReadNextValue(DBUS_TYPE_BYTE, &value); - return value; -} - -inline int16_t MessageReader::TakeInt16() { - int16_t value = 0; - ReadNextValue(DBUS_TYPE_INT16, &value); - return value; -} - -inline uint16_t MessageReader::TakeUint16() { - uint16_t value = 0; - ReadNextValue(DBUS_TYPE_UINT16, &value); - return value; -} - -inline int32_t MessageReader::TakeInt32() { - int32_t value = 0; - ReadNextValue(DBUS_TYPE_INT32, &value); - return value; -} - -inline uint32_t MessageReader::TakeUint32() { - uint32_t value = 0; - ReadNextValue(DBUS_TYPE_UINT32, &value); - return value; -} - -inline int64_t MessageReader::TakeInt64() { - int64_t value = 0; - ReadNextValue(DBUS_TYPE_INT64, &value); - return value; -} - -inline uint64_t MessageReader::TakeUint64() { - uint64_t value = 0; - ReadNextValue(DBUS_TYPE_UINT64, &value); - return value; -} - -inline double MessageReader::TakeDouble() { - double value = 0.; - ReadNextValue(DBUS_TYPE_DOUBLE, &value); - return value; -} - -inline std::string MessageReader::TakeString() { - const char* value = ""; - ReadNextValue(DBUS_TYPE_STRING, &value); - return value; -} - -inline MessageReader::DataType MessageReader::NextValueType() const { - DBusMessageIter* iter = const_cast(&iterator_); - return failed_ ? DBUS_TYPE_INVALID : dbus_message_iter_get_arg_type(iter); -} - -// Message writer methods -inline void MessageWriter::PutBool(bool value) { - dbus_bool_t dbus_value = value; - WriteAndCheck(DBUS_TYPE_BOOLEAN, &dbus_value); -} - -inline void MessageWriter::PutByte(uint8_t value) { - WriteAndCheck(DBUS_TYPE_BYTE, &value); -} - -inline void MessageWriter::PutInt16(int16_t value) { - WriteAndCheck(DBUS_TYPE_INT16, &value); -} - -inline void MessageWriter::PutUint16(uint16_t value) { - WriteAndCheck(DBUS_TYPE_UINT16, &value); -} - -inline void MessageWriter::PutInt32(int32_t value) { - WriteAndCheck(DBUS_TYPE_INT32, &value); -} - -inline void MessageWriter::PutUint32(uint32_t value) { - WriteAndCheck(DBUS_TYPE_UINT32, &value); -} - -inline void MessageWriter::PutInt64(int64_t value) { - WriteAndCheck(DBUS_TYPE_INT64, &value); -} - -inline void MessageWriter::PutUint64(uint64_t value) { - WriteAndCheck(DBUS_TYPE_UINT64, &value); -} - -inline void MessageWriter::PutDouble(double value) { - WriteAndCheck(DBUS_TYPE_DOUBLE, &value); -} - -inline void MessageWriter::PutString(const std::string& value) { - const char* pointer = value.c_str(); - WriteAndCheck(DBUS_TYPE_STRING, &pointer); -} - -} // namespace dbus - -#endif // SRC_COMPONENTS_DBUS_INCLUDE_DBUS_DBUS_MESSAGE_INL_H_ diff --git a/src/components/dbus/include/dbus/message_descriptions.h b/src/components/dbus/include/dbus/message_descriptions.h deleted file mode 100644 index a9e7a5e1418..00000000000 --- a/src/components/dbus/include/dbus/message_descriptions.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2013, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef SRC_COMPONENTS_DBUS_INCLUDE_DBUS_MESSAGE_DESCRIPTIONS_H_ -#define SRC_COMPONENTS_DBUS_INCLUDE_DBUS_MESSAGE_DESCRIPTIONS_H_ - -#include -#include -#include "interfaces/HMI_API.h" - -namespace ford_message_descriptions { - -enum ParameterType { Integer, Boolean, Float, String, Struct, Enum, Array }; - -struct ParameterDescription { - const char* name; - const ParameterType type; - const bool obligatory; // TODO (dchmerev@luxoft.com): rename to 'mandatory' - // as in HMI API description -}; - -struct ArrayDescription { - const ParameterDescription base; - const ParameterDescription* element; - const char* element_dbus_signature; -}; - -struct StructDescription { - const ParameterDescription base; - const ParameterDescription** parameters; -}; - -struct MessageDescription { - const char* interface; - const char* name; - const hmi_apis::messageType::eType message_type; - const hmi_apis::FunctionID::eType function_id; - const ParameterDescription** parameters; -}; - -extern const MessageDescription* message_descriptions[]; - -} // namespace ford_message_descriptions - -#endif // SRC_COMPONENTS_DBUS_INCLUDE_DBUS_MESSAGE_DESCRIPTIONS_H_ diff --git a/src/components/dbus/include/dbus/schema.h b/src/components/dbus/include/dbus/schema.h deleted file mode 100644 index 3dfe49cc953..00000000000 --- a/src/components/dbus/include/dbus/schema.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (c) 2013, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef SRC_COMPONENTS_DBUS_INCLUDE_DBUS_SCHEMA_H_ -#define SRC_COMPONENTS_DBUS_INCLUDE_DBUS_SCHEMA_H_ - -#include -#include -#include - -#include "dbus/message_descriptions.h" -#include "interfaces/HMI_API.h" - -namespace dbus { - -using ford_message_descriptions::ParameterDescription; -using ford_message_descriptions::MessageDescription; - -struct Description; - -typedef hmi_apis::FunctionID::eType MessageId; -typedef hmi_apis::messageType::eType MessageType; -typedef std::pair MessageName; // interface, message -typedef std::vector ListArgs; -typedef std::vector Messages; - -/** - * \brief Wrapper class for message description - */ -class DBusSchema { - public: - explicit DBusSchema(const MessageDescription** array); - - /** - * \brief gets message name by message id - * \param id id message - * \return name message - */ - MessageName getMessageName(MessageId id) const; - - /** - * \brief gets message id by message name - * \param name name message - * \return id message - */ - MessageId getMessageId(const MessageName& name) const; - - /** - * \brief gets list rules for arguments - * \param id id message - * \param type type message - * \return list rules - */ - ListArgs getListArgs(MessageId id, MessageType type) const; - - /** - * \brief gets list rules for arguments - * @param name name message - * @param type type message - * @return list rules - */ - ListArgs getListArgs(const MessageName& name, MessageType type) const; - - private: - Messages msgs_; -}; - -} // namespace dbus - -#endif // SRC_COMPONENTS_DBUS_INCLUDE_DBUS_SCHEMA_H_ diff --git a/src/components/dbus/src/dbus_adapter.cc b/src/components/dbus/src/dbus_adapter.cc deleted file mode 100644 index 33d05a728bb..00000000000 --- a/src/components/dbus/src/dbus_adapter.cc +++ /dev/null @@ -1,937 +0,0 @@ -/* - * Copyright (c) 2013-2014, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include "dbus/dbus_adapter.h" -#include -#include -#include "formatters/CSmartFactory.h" -#include "utils/logger.h" -#include "smart_objects/smart_object.h" -#include "introspection_xml.cc" -#include "message_descriptions.cc" - -using ford_message_descriptions::ParameterDescription; -namespace sos = NsSmartDeviceLink::NsJSONHandler::strings; - -extern char introspection_xml[]; - -namespace dbus { - -CREATE_LOGGERPTR_GLOBAL(logger_, "HMIMessageHandler") - -std::vector& split(const std::string& s, - char delim, - std::vector& elems) { - std::stringstream ss(s); - std::string item; - while (std::getline(ss, item, delim)) { - elems.push_back(item); - } - return elems; -} - -DBusAdapter::DBusAdapter(const std::string& sdlServiceName, - const std::string& sdlObjectPath, - const std::string& hmiServiceName, - const std::string& hmiObjectPath) - : sdl_service_name_(sdlServiceName) - , sdl_object_path_(sdlObjectPath) - , hmi_service_name_(hmiServiceName) - , hmi_object_path_(hmiObjectPath) - , conn_(NULL) - , schema_(new DBusSchema(ford_message_descriptions::message_descriptions)) { -} - -DBusAdapter::~DBusAdapter() { - dbus_shutdown(); - delete schema_; -} - -bool DBusAdapter::Init() { - DBusError err; - int ret; - dbus_error_init(&err); - if (!dbus_threads_init_default()) { - LOG4CXX_ERROR(logger_, "DBus: Can't initializes threads"); - return false; - } - conn_ = dbus_bus_get(DBUS_BUS_SESSION, &err); - if (dbus_error_is_set(&err)) { - LOG4CXX_ERROR(logger_, "DBus: Connection Error " << err.message); - dbus_error_free(&err); - return false; - } - ret = dbus_bus_request_name( - conn_, sdl_service_name_.c_str(), DBUS_NAME_FLAG_DO_NOT_QUEUE, &err); - if (ret == -1 || dbus_error_is_set(&err)) { - LOG4CXX_ERROR(logger_, "DBus: Can't request name " << err.name); - dbus_error_free(&err); - return false; - } - if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) { - LOG4CXX_ERROR(logger_, - "DBus: Service '" << sdl_service_name_ - << "' is already running"); - return false; - } - - LOG4CXX_INFO(logger_, "DBus: Success init dbus adaptor"); - return true; -} - -bool DBusAdapter::Process(smart_objects::SmartObject& obj) { - if (conn_ == NULL) { - LOG4CXX_ERROR(logger_, "DBus: DBusAdaptor isn't initialized"); - return false; - } - DBusMessage* msg = dbus_connection_pop_message(conn_); - if (msg != NULL) { - switch (dbus_message_get_type(msg)) { - case DBUS_MESSAGE_TYPE_METHOD_CALL: - return ProcessMethodCall(msg, obj); - case DBUS_MESSAGE_TYPE_METHOD_RETURN: - return ProcessMethodReturn(msg, obj); - case DBUS_MESSAGE_TYPE_ERROR: - return ProcessError(msg, obj); - case DBUS_MESSAGE_TYPE_SIGNAL: - return ProcessSignal(msg, obj); - default: - return false; - } - } else { - dbus_connection_read_write(conn_, 50); - } - return false; -} - -void DBusAdapter::MethodReturn(uint id, - const MessageId func_id, - const MessageName& name, - const smart_objects::SmartObject& obj) { - LOG4CXX_DEBUG(logger_, "Method return " << name.first << "." << name.second); - if (conn_ == NULL) { - LOG4CXX_ERROR(logger_, "DBus: DBusAdaptor isn't init"); - return; - } - - if (func_id == hmi_apis::FunctionID::INVALID_ENUM) { - LOG4CXX_ERROR(logger_, "DBus: Invalid name method"); - return; - } - - DBusMessage* msg = GetRequestFromHMI(id); - if (!msg) { - LOG4CXX_WARN(logger_, "DBus: request from HMI is not found"); - return; - } - - DBusMessage* reply; - reply = dbus_message_new_method_return(msg); - if (NULL == reply) { - LOG4CXX_WARN(logger_, "DBus: Failed call method (Message Null)"); - return; - } - - const ListArgs& args = - schema_->getListArgs(func_id, hmi_apis::messageType::response); - if (!SetArguments(reply, args, obj)) { - LOG4CXX_ERROR(logger_, "DBus: Failed call method (Signature is wrong)"); - dbus_message_unref(reply); - dbus_message_unref(msg); - return; - } - - dbus_uint32_t serial; - if (!dbus_connection_send(conn_, reply, &serial)) { - LOG4CXX_ERROR(logger_, "DBus: Failed call method (Can't send message)"); - dbus_message_unref(reply); - dbus_message_unref(msg); - return; - } - dbus_connection_flush(conn_); - dbus_message_unref(reply); - dbus_message_unref(msg); - LOG4CXX_INFO(logger_, "DBus: Success return method"); -} - -void DBusAdapter::Error(uint id, - const std::string& name, - const std::string& description) { - LOG4CXX_DEBUG(logger_, "Error " << name << ": " << description); - if (conn_ == NULL) { - LOG4CXX_ERROR(logger_, "DBus: DBusAdaptor isn't init"); - return; - } - - DBusMessage* msg = GetRequestFromHMI(id); - if (!msg) { - LOG4CXX_WARN(logger_, "DBus: request from HMI is not found"); - return; - } - - DBusMessage* error; - error = dbus_message_new_error(msg, name.c_str(), description.c_str()); - if (NULL == error) { - LOG4CXX_WARN(logger_, "DBus: Failed call method (Message Null)"); - return; - } - - dbus_uint32_t serial; - if (!dbus_connection_send(conn_, error, &serial)) { - LOG4CXX_ERROR(logger_, "DBus: Failed call method (Can't send message)"); - dbus_message_unref(error); - dbus_message_unref(msg); - return; - } - dbus_connection_flush(conn_); - dbus_message_unref(error); - dbus_message_unref(msg); - LOG4CXX_INFO(logger_, "DBus: Success error"); -} - -void DBusAdapter::MethodCall(uint id, - const MessageId func_id, - const MessageName& name, - const smart_objects::SmartObject& obj) { - LOG4CXX_DEBUG(logger_, "Method call " << name.first << "." << name.second); - if (conn_ == NULL) { - LOG4CXX_ERROR(logger_, "DBus: DBusAdaptor isn't init"); - return; - } - - if (func_id == hmi_apis::FunctionID::INVALID_ENUM) { - LOG4CXX_ERROR(logger_, "DBus: Invalid name method"); - return; - } - - DBusMessage* msg; - msg = dbus_message_new_method_call( - hmi_service_name_.c_str(), - hmi_object_path_.c_str(), - (hmi_service_name_ + "." + name.first).c_str(), - name.second.c_str()); - if (NULL == msg) { - LOG4CXX_WARN(logger_, "DBus: Failed call method (Message Null)"); - return; - } - - const ListArgs& args = - schema_->getListArgs(func_id, hmi_apis::messageType::request); - if (!SetArguments(msg, args, obj)) { - LOG4CXX_ERROR(logger_, "DBus: Failed call method (Signature is wrong)"); - dbus_message_unref(msg); - return; - } - - dbus_uint32_t serial; - if (!dbus_connection_send(conn_, msg, &serial)) { - LOG4CXX_ERROR(logger_, "DBus: Failed call method (Can't send message)"); - dbus_message_unref(msg); - return; - } - SaveRequestToHMI(serial, std::make_pair(id, func_id)); - dbus_message_unref(msg); - LOG4CXX_INFO(logger_, "DBus: Success call method"); -} - -void DBusAdapter::Signal(const MessageId func_id, - const MessageName& name, - const smart_objects::SmartObject& obj) { - LOG4CXX_DEBUG(logger_, "Signal " << name.first << "." << name.second); - if (conn_ == NULL) { - LOG4CXX_ERROR(logger_, "DBus: DBusAdaptor isn't init"); - return; - } - - if (func_id == hmi_apis::FunctionID::INVALID_ENUM) { - LOG4CXX_ERROR(logger_, "DBus: Invalid name method"); - return; - } - - DBusMessage* msg; - msg = dbus_message_new_signal(sdl_object_path_.c_str(), - (sdl_service_name_ + "." + name.first).c_str(), - name.second.c_str()); - if (NULL == msg) { - LOG4CXX_WARN(logger_, "DBus: Failed emit signal (Message Null)"); - return; - } - - const ListArgs& args = - schema_->getListArgs(func_id, hmi_apis::messageType::notification); - if (!SetArguments(msg, args, obj)) { - LOG4CXX_ERROR(logger_, "DBus: Failed call method (Signature is wrong)"); - dbus_message_unref(msg); - return; - } - - if (!dbus_connection_send(conn_, msg, NULL)) { // serial isn't required - LOG4CXX_WARN(logger_, "DBus: Failed emit signal (Out Of Memory)"); - dbus_message_unref(msg); - return; - } - dbus_message_unref(msg); - LOG4CXX_INFO(logger_, "DBus: Success emit signal"); -} - -void DBusAdapter::AddMatch(const std::string& rule) { - LOG4CXX_INFO(logger_, "Subscription: " << rule); - dbus_bus_add_match(conn_, rule.c_str(), NULL); -} - -bool DBusAdapter::ProcessMethodCall(DBusMessage* msg, - smart_objects::SmartObject& obj) { - std::string method = dbus_message_get_member(msg); - std::string interface = dbus_message_get_interface(msg); - LOG4CXX_INFO(logger_, "DBus: name of method " << interface << " " << method); - - if (interface == "org.freedesktop.DBus.Introspectable" && - method == "Introspect") { - LOG4CXX_INFO(logger_, "DBus: INTROSPECT"); - Introspect(msg); - return false; - } - - std::vector elems; - split(interface, '.', elems); - MessageName name(elems.back(), method); - MessageId m_id = schema_->getMessageId(name); - if (m_id == hmi_apis::FunctionID::INVALID_ENUM) { - LOG4CXX_ERROR(logger_, "DBus: Invalid name method call from hmi"); - return false; - } - - uint32_t serial = dbus_message_get_serial(msg); - if (!serial) { - LOG4CXX_ERROR(logger_, "DBus: Serial of request from HMI isn't defined"); - return false; - } - - obj[sos::S_PARAMS][sos::S_CORRELATION_ID] = serial; - obj[sos::S_PARAMS][sos::S_FUNCTION_ID] = m_id; - obj[sos::S_PARAMS][sos::S_MESSAGE_TYPE] = hmi_apis::messageType::request; - obj[sos::S_MSG_PARAMS] = - smart_objects::SmartObject(smart_objects::SmartType_Map); - - const ListArgs args = - schema_->getListArgs(name, hmi_apis::messageType::request); - - DBusMessageIter iter; - dbus_message_iter_init(msg, &iter); - if (GetArguments(&iter, args, obj[sos::S_MSG_PARAMS])) { - SaveRequestFromHMI(serial, msg); - return true; - } - return false; -} - -bool DBusAdapter::ProcessMethodReturn(DBusMessage* msg, - smart_objects::SmartObject& obj) { - LOG4CXX_AUTO_TRACE(logger_); - dbus_uint32_t reply_serial = dbus_message_get_reply_serial(msg); - std::pair ids = GetRequestToHMI(reply_serial); - if (ids.second == hmi_apis::FunctionID::INVALID_ENUM) { - LOG4CXX_ERROR(logger_, "DBus: Invalid name method"); - return false; - } - - obj[sos::S_MSG_PARAMS] = - smart_objects::SmartObject(smart_objects::SmartType_Map); - - ListArgs args = - schema_->getListArgs(ids.second, hmi_apis::messageType::response); - DBusMessageIter iter; - dbus_message_iter_init(msg, &iter); - int code = 0; - std::string message; - smart_objects::SmartObject description(smart_objects::SmartType_Map); - bool ret = GetHeader(&iter, &code, &message) && - GetArguments(&iter, args, description); - - if (ret) { - obj[sos::S_PARAMS][sos::S_CORRELATION_ID] = ids.first; - obj[sos::S_PARAMS][sos::S_FUNCTION_ID] = ids.second; - obj[sos::S_PARAMS][sos::S_MESSAGE_TYPE] = hmi_apis::messageType::response; - obj[sos::S_PARAMS][sos::kCode] = code; - obj[sos::S_PARAMS][sos::kMessage] = message; - if (code != hmi_apis::Common_Result::SUCCESS) { - MessageName name = schema_->getMessageName(ids.second); - description["method"] = name.first + "." + name.second; - obj[sos::S_PARAMS]["data"] = description; - } else { - obj[sos::S_MSG_PARAMS] = description; - } - } - - dbus_message_unref(msg); - return ret; -} - -bool DBusAdapter::ProcessError(DBusMessage* msg, - smart_objects::SmartObject& obj) { - dbus_uint32_t reply_serial = dbus_message_get_reply_serial(msg); - std::pair ids = GetRequestToHMI(reply_serial); - if (ids.second == hmi_apis::FunctionID::INVALID_ENUM) { - LOG4CXX_ERROR(logger_, "DBus: Invalid name method"); - return false; - } - - const char* error_name; - bool ret = false; - if ((error_name = dbus_message_get_error_name(msg)) != NULL) { - smart_objects::SmartObject name(smart_objects::SmartType_String); - name = error_name; - ford_message_descriptions::ParameterDescription rule = { - "description", ford_message_descriptions::String, true}; - ListArgs args; - args.push_back(&rule); - smart_objects::SmartObject description(smart_objects::SmartType_Map); - description[rule.name] = - smart_objects::SmartObject(smart_objects::SmartType_String); - - DBusMessageIter iter; - dbus_message_iter_init(msg, &iter); - ret = GetArguments(&iter, args, description); - MessageName method = schema_->getMessageName(ids.second); - - obj[sos::S_PARAMS][sos::S_CORRELATION_ID] = ids.first; - obj[sos::S_PARAMS][sos::S_FUNCTION_ID] = ids.second; - obj[sos::S_PARAMS][sos::S_MESSAGE_TYPE] = - hmi_apis::messageType::error_response; - obj[sos::S_PARAMS][sos::kCode] = name.asInt(); - obj[sos::S_PARAMS][sos::kMessage] = description[rule.name].asString(); - obj[sos::S_MSG_PARAMS] = - smart_objects::SmartObject(smart_objects::SmartType_Map); - obj[sos::S_PARAMS]["data"]["method"] = method.first + "." + method.second; - - LOG4CXX_WARN(logger_, - "DBus: Call of method " << method.first << "." << method.second - << " returned error " << name.asInt() - << ": " - << description[rule.name].asString()); - } else { - LOG4CXX_ERROR(logger_, "DBus: Type message isn't error"); - } - - dbus_message_unref(msg); - return ret; -} - -bool DBusAdapter::ProcessSignal(DBusMessage* msg, - smart_objects::SmartObject& obj) { - std::string method = dbus_message_get_member(msg); - std::string interface = dbus_message_get_interface(msg); - LOG4CXX_INFO(logger_, "DBus: name of signal " << method); - - std::vector elems; - split(interface, '.', elems); - MessageName name(elems.back(), method); - MessageId m_id = schema_->getMessageId(name); - if (m_id == hmi_apis::FunctionID::INVALID_ENUM) { - LOG4CXX_ERROR(logger_, "DBus: Invalid name signal"); - return false; - } - - obj[sos::S_PARAMS][sos::S_FUNCTION_ID] = m_id; - obj[sos::S_PARAMS][sos::S_MESSAGE_TYPE] = hmi_apis::messageType::notification; - obj[sos::S_MSG_PARAMS] = - smart_objects::SmartObject(smart_objects::SmartType_Map); - - const ListArgs args = - schema_->getListArgs(name, hmi_apis::messageType::notification); - - DBusMessageIter iter; - dbus_message_iter_init(msg, &iter); - bool ret = GetArguments(&iter, args, obj[sos::S_MSG_PARAMS]); - dbus_message_unref(msg); - return ret; -} - -bool DBusAdapter::SetArguments(DBusMessage* msg, - const ListArgs& rules, - const smart_objects::SmartObject& args) { - DBusMessageIter iter; - dbus_message_iter_init_append(msg, &iter); - size_t size = rules.size(); - for (size_t i = 0; i < size; ++i) { - const smart_objects::SmartObject& param = args.getElement(rules[i]->name); - if (!SetOneArgument(&iter, rules[i], param)) { - return false; - } - } - return true; -} - -bool DBusAdapter::SetOneArgument(DBusMessageIter* iter, - const ParameterDescription* rules, - const smart_objects::SmartObject& param) { - if (rules->obligatory) { - if (param.isValid()) { - return SetValue(iter, rules, param); - } else { - LOG4CXX_WARN(logger_, - "DBus: Argument '" << rules->name << "' is obligatory!"); - return false; - } - } else { - return SetOptionalValue(iter, rules, param); - } -} - -bool DBusAdapter::SetValue( - DBusMessageIter* iter, - const ford_message_descriptions::ParameterDescription* rules, - const smart_objects::SmartObject& param) { - // LOG4CXX_DEBUG(logger_, "DBus: Set param " << rules->name << " = " << - // param.asString()); - int type = 0; - void* value = 0; - dbus_int32_t integerValue = 0; - double floatValue = 0; - dbus_bool_t booleanValue = false; - std::string stringValue; - const char* cStringValue; - switch (rules->type) { - case ford_message_descriptions::ParameterType::Array: - return SetArrayValue( - iter, - reinterpret_cast( - rules), - param); - break; - case ford_message_descriptions::ParameterType::Struct: - return SetStructValue( - iter, - reinterpret_cast( - rules), - param); - break; - case ford_message_descriptions::ParameterType::Enum: - case ford_message_descriptions::ParameterType::Integer: - type = DBUS_TYPE_INT32; - integerValue = param.asInt(); - value = &integerValue; - break; - case ford_message_descriptions::ParameterType::Float: - type = DBUS_TYPE_DOUBLE; - floatValue = param.asDouble(); - value = &floatValue; - break; - case ford_message_descriptions::ParameterType::Boolean: - type = DBUS_TYPE_BOOLEAN; - booleanValue = param.asBool(); - value = &booleanValue; - break; - case ford_message_descriptions::ParameterType::String: - type = DBUS_TYPE_STRING; - stringValue = param.asString(); - cStringValue = stringValue.c_str(); - value = &cStringValue; - break; - default: - LOG4CXX_ERROR(logger_, "DBus: Unknown type of argument"); - return false; - } - return dbus_message_iter_append_basic(iter, type, value); -} - -bool DBusAdapter::SetOptionalValue( - DBusMessageIter* iter, - const ford_message_descriptions::ParameterDescription* rules, - const smart_objects::SmartObject& param) { - DBusMessageIter sub_iter; - if (!dbus_message_iter_open_container( - iter, DBUS_TYPE_STRUCT, NULL, &sub_iter)) { - LOG4CXX_ERROR( - logger_, - "DBus: Can't open container type (STRUCT) for optional parameter"); - return false; - } - - ford_message_descriptions::ParameterDescription flagRules = { - "flag", ford_message_descriptions::Boolean, true}; - smart_objects::SmartObject flag(param.getType() != - smart_objects::SmartType_Invalid); - if (!SetValue(&sub_iter, &flagRules, flag) || - !SetValue(&sub_iter, rules, param)) { - return false; - } - - if (!dbus_message_iter_close_container(iter, &sub_iter)) { - LOG4CXX_ERROR( - logger_, - "DBus: Can't close container type (STRUCT) for optional parameter"); - return false; - } - return true; -} - -bool DBusAdapter::SetArrayValue( - DBusMessageIter* iter, - const ford_message_descriptions::ArrayDescription* rules, - const smart_objects::SmartObject& param) { - smart_objects::SmartType type = param.getType(); - if (type != smart_objects::SmartType_Array && - type != smart_objects::SmartType_Invalid) { - LOG4CXX_ERROR(logger_, "DBus: SmartObject is not a map"); - return false; - } - DBusMessageIter sub_iter; - if (!dbus_message_iter_open_container( - iter, DBUS_TYPE_ARRAY, rules->element_dbus_signature, &sub_iter)) { - LOG4CXX_ERROR(logger_, "DBus: Can't open container type (ARRAY)"); - return false; - } - size_t size = param.length(); - for (size_t i = 0; i < size; ++i) { - if (!SetValue(&sub_iter, rules->element, param[i])) { - return false; - } - } - if (!dbus_message_iter_close_container(iter, &sub_iter)) { - LOG4CXX_ERROR(logger_, "DBus: Can't close container type (ARRAY)"); - return false; - } - return true; -} - -bool DBusAdapter::SetStructValue( - DBusMessageIter* iter, - const ford_message_descriptions::StructDescription* rules, - const smart_objects::SmartObject& structure) { - smart_objects::SmartType type = structure.getType(); - if (type != smart_objects::SmartType_Map && - type != smart_objects::SmartType_Invalid) { - LOG4CXX_ERROR(logger_, "DBus: SmartObject is not a map"); - return false; - } - DBusMessageIter sub_iter; - if (!dbus_message_iter_open_container( - iter, DBUS_TYPE_STRUCT, NULL, &sub_iter)) { - LOG4CXX_ERROR(logger_, "DBus: Can't open container type (STRUCT)"); - return false; - } - const ParameterDescription** entry; - entry = rules->parameters; - while (*entry != NULL) { - const smart_objects::SmartObject& param = - structure.getElement((*entry)->name); - if (!SetOneArgument(&sub_iter, *entry, param)) { - return false; - } - entry++; - } - if (!dbus_message_iter_close_container(iter, &sub_iter)) { - LOG4CXX_ERROR(logger_, "DBus: Can't close container type (STRUCT)"); - return false; - } - return true; -} - -bool DBusAdapter::GetHeader(DBusMessageIter* iter, - int* code, - std::string* message) { - // Get code of response - dbus_int32_t intValue; - int type = dbus_message_iter_get_arg_type(iter); - if (type != DBUS_TYPE_INT32) { - LOG4CXX_ERROR(logger_, "DBus: Unknown format of header"); - return false; - } - dbus_message_iter_get_basic(iter, &intValue); - *code = intValue; - LOG4CXX_DEBUG(logger_, "DBus: Code of response " << *code); - - dbus_message_iter_next(iter); - - // Get message of response - type = dbus_message_iter_get_arg_type(iter); - if (type != DBUS_TYPE_STRING) { - LOG4CXX_ERROR(logger_, "DBus: Unknown format of header"); - return false; - } - const char* stringValue; - dbus_message_iter_get_basic(iter, &stringValue); - *message = stringValue; - LOG4CXX_DEBUG(logger_, "DBus: message of response " << *message); - - dbus_message_iter_next(iter); - return true; -} - -bool DBusAdapter::GetArguments(DBusMessageIter* iter, - const ListArgs& rules, - smart_objects::SmartObject& args) { - LOG4CXX_AUTO_TRACE(logger_); - - size_t size = rules.size(); - for (size_t i = 0; i < size; ++i) { - if (!GetOneArgument(iter, rules[i], args)) { - return false; - } - dbus_message_iter_next(iter); - } - return true; -} - -const DBusSchema& DBusAdapter::get_schema() const { - return *schema_; -} - -bool DBusAdapter::GetOneArgument( - DBusMessageIter* iter, - const ford_message_descriptions::ParameterDescription* rules, - smart_objects::SmartObject& args) { - if (rules->obligatory) { - return GetValue(iter, rules, args[rules->name]); - } else { - return GetOptionalValue(iter, rules, args); - } -} - -bool DBusAdapter::GetValue( - DBusMessageIter* iter, - const ford_message_descriptions::ParameterDescription* rules, - smart_objects::SmartObject& param) { - LOG4CXX_DEBUG(logger_, "DBus: Get param " << rules->name); - int type = dbus_message_iter_get_arg_type(iter); - switch (rules->type) { - case ford_message_descriptions::ParameterType::Array: - if (type == DBUS_TYPE_ARRAY) { - return GetArrayValue( - iter, - // FIXME (dchmerev@luxoft.com): not portable, danger cast. - reinterpret_cast< - const ford_message_descriptions::ArrayDescription*>(rules), - param); - } else { - LOG4CXX_ERROR(logger_, "DBus: Not expected type of argument"); - return false; - } - break; - case ford_message_descriptions::ParameterType::Struct: - if (type == DBUS_TYPE_STRUCT) { - return GetStructValue( - iter, - reinterpret_cast< - const ford_message_descriptions::StructDescription*>(rules), - param); - } else { - LOG4CXX_ERROR(logger_, "DBus: Not expected type of argument"); - return false; - } - break; - case ford_message_descriptions::ParameterType::Enum: - case ford_message_descriptions::ParameterType::Integer: - if (type == DBUS_TYPE_INT32) { - dbus_int32_t integerValue; - dbus_message_iter_get_basic(iter, &integerValue); - smart_objects::SmartObject value(integerValue); - param = value; - LOG4CXX_DEBUG(logger_, - "DBus: " << rules->name << " = " << integerValue); - } else { - LOG4CXX_ERROR(logger_, "DBus: Not expected type of argument"); - return false; - } - break; - case ford_message_descriptions::ParameterType::Float: - if (type == DBUS_TYPE_DOUBLE) { - double floatValue; - dbus_message_iter_get_basic(iter, &floatValue); - smart_objects::SmartObject value(floatValue); - param = value; - LOG4CXX_DEBUG(logger_, "DBus: " << rules->name << " = " << floatValue); - } else { - LOG4CXX_ERROR(logger_, "DBus: Not expected type of argument"); - return false; - } - break; - case ford_message_descriptions::ParameterType::Boolean: - if (type == DBUS_TYPE_BOOLEAN) { - dbus_bool_t booleanValue; - dbus_message_iter_get_basic(iter, &booleanValue); - smart_objects::SmartObject value(static_cast(booleanValue)); - param = value; - LOG4CXX_DEBUG(logger_, - "DBus: " << rules->name << " = " << std::boolalpha - << booleanValue); - } else { - LOG4CXX_ERROR(logger_, "DBus: Not expected type of argument"); - return false; - } - break; - case ford_message_descriptions::ParameterType::String: - if (type == DBUS_TYPE_STRING) { - const char* stringValue; - dbus_message_iter_get_basic(iter, &stringValue); - std::string strValue = stringValue; - smart_objects::SmartObject value(strValue); - param = value; - LOG4CXX_DEBUG(logger_, - "DBus: " << rules->name << " = \"" << strValue << "\""); - } else { - LOG4CXX_ERROR(logger_, "DBus: Not expected type of argument"); - return false; - } - break; - default: - LOG4CXX_ERROR(logger_, "DBus: Unknown type of argument"); - return false; - } - return true; -} - -bool DBusAdapter::GetArrayValue( - DBusMessageIter* iter, - const ford_message_descriptions::ArrayDescription* rules, - smart_objects::SmartObject& param) { - smart_objects::SmartObject array(smart_objects::SmartType_Array); - - int i = 0; - DBusMessageIter sub_iter; - dbus_message_iter_recurse(iter, &sub_iter); - while (dbus_message_iter_get_arg_type(&sub_iter) != DBUS_TYPE_INVALID) { - if (!GetValue(&sub_iter, rules->element, array[i])) { - return false; - } - dbus_message_iter_next(&sub_iter); - i++; - } - param = array; - return true; -} - -bool DBusAdapter::GetStructValue( - DBusMessageIter* iter, - const ford_message_descriptions::StructDescription* rules, - smart_objects::SmartObject& param) { - DBusMessageIter sub_iter; - dbus_message_iter_recurse(iter, &sub_iter); - const ParameterDescription** entry; - entry = rules->parameters; - smart_objects::SmartObject structure(smart_objects::SmartType_Map); - while (*entry != NULL) { - if (!GetOneArgument(&sub_iter, *entry, structure)) { - return false; - } - dbus_message_iter_next(&sub_iter); - entry++; - } - param = structure; - return true; -} - -bool DBusAdapter::GetOptionalValue( - DBusMessageIter* iter, - const ford_message_descriptions::ParameterDescription* rules, - smart_objects::SmartObject& param) { - int type = dbus_message_iter_get_arg_type(iter); - if (type != DBUS_TYPE_STRUCT) { - LOG4CXX_WARN( - logger_, - "DBus: Not expected type of argument. It is not optional parameter."); - return false; - } - - DBusMessageIter sub_iter; - dbus_message_iter_recurse(iter, &sub_iter); - ford_message_descriptions::ParameterDescription flagRules = { - "flag", ford_message_descriptions::Boolean, true}; - smart_objects::SmartObject flag; - if (!GetValue(&sub_iter, &flagRules, flag)) { - return false; - } - if (flag.asBool()) { - dbus_message_iter_next(&sub_iter); - return GetValue(&sub_iter, rules, param[rules->name]); - } else { - return true; - } -} - -std::pair DBusAdapter::GetRequestToHMI(uint32_t serial) { - std::map >::iterator it; - it = requests_to_hmi_.find(serial); - if (it != requests_to_hmi_.end()) { - std::pair ids = it->second; - requests_to_hmi_.erase(it); - return ids; - } - return std::make_pair(0, hmi_apis::FunctionID::INVALID_ENUM); -} - -void DBusAdapter::SaveRequestToHMI(uint32_t serial, - const std::pair& ids) { - requests_to_hmi_.insert(std::make_pair(serial, ids)); -} - -void DBusAdapter::Introspect(DBusMessage* msg) { - DBusMessage* reply; - - dbus_uint32_t serial = dbus_message_get_serial(msg); - reply = dbus_message_new_method_return(msg); - if (!reply) { - LOG4CXX_WARN(logger_, "DBus: Failed return method for introspection"); - return; - } - - DBusMessageIter iter; - dbus_message_iter_init_append(reply, &iter); - char* value = introspection_xml; - dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &value); - dbus_connection_send(conn_, reply, &serial); - dbus_connection_flush(conn_); - dbus_message_unref(reply); - dbus_message_unref(msg); -} - -void DBusAdapter::SaveRequestFromHMI(uint32_t serial, DBusMessage* request) { - LOG4CXX_DEBUG(logger_, "Save correlation id (serial id) : " << serial); - LOG4CXX_DEBUG(logger_, "D-Bus message: " << request); - requests_from_hmi_.insert(std::make_pair(serial, request)); -} - -DBusMessage* DBusAdapter::GetRequestFromHMI(uint32_t serial) { - LOG4CXX_DEBUG(logger_, "Get correlation id (serial id) : " << serial); - std::map::iterator it; - it = requests_from_hmi_.find(serial); - if (it != requests_from_hmi_.end()) { - DBusMessage* msg = it->second; - requests_from_hmi_.erase(it); - LOG4CXX_DEBUG(logger_, "D-Bus message: " << msg); - return msg; - } - return 0; -} - -} // namespace dbus diff --git a/src/components/dbus/src/dbus_message.cc b/src/components/dbus/src/dbus_message.cc deleted file mode 100644 index b8a55896ced..00000000000 --- a/src/components/dbus/src/dbus_message.cc +++ /dev/null @@ -1,217 +0,0 @@ -/* Copyright (c) 2014, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include "dbus/dbus_message.h" - -#include -#include - -#include - -namespace dbus { - -MessageRefKeeper::MessageRefKeeper() : raw_message_(NULL) {} - -MessageRefKeeper::MessageRefKeeper(DBusMessage* message) - : raw_message_(message) { - assert(raw_message_); - dbus_message_ref(raw_message_); -} - -MessageRefKeeper::~MessageRefKeeper() { - if (raw_message_) { - dbus_message_unref(raw_message_); - } -} - -MessageRefKeeper::MessageRefKeeper(const MessageRefKeeper& other) - : raw_message_(other.raw_message_) { - assert(raw_message_); - dbus_message_ref(raw_message_); -} - -MessageRefKeeper& MessageRefKeeper::operator=(MessageRefKeeper other) { - other.swap(*this); - return *this; -} - -DBusMessage* MessageRefKeeper::get() const { - return raw_message_; -} - -DBusMessage* MessageRefKeeper::Pass() { - DBusMessage* message = raw_message_; - raw_message_ = NULL; - return message; -} - -void MessageRefKeeper::swap(MessageRefKeeper& other) { - std::swap(raw_message_, other.raw_message_); -} - -MessageRef::MessageRef(DBusMessage* message) : raw_message_ref_(message) {} - -MessageRef::~MessageRef() {} - -std::string MessageRef::GetInterface() const { - return dbus_message_get_interface(raw_message_ref_.get()); -} - -std::string MessageRef::GetMember() const { - return dbus_message_get_member(raw_message_ref_.get()); -} - -// Message writer -MessageReader::MessageReader(const MessageRef& message) - : parent_reader_(NULL), failed_(false) { - dbus_bool_t success = - dbus_message_iter_init(message.raw_message_ref_.get(), &iterator_); - if (!success) { - MarkFailed(); - } -} - -MessageReader::MessageReader(MessageReader* reader, - DataType container_data_type) - : parent_reader_(reader), failed_(reader->has_failed()) { - assert(parent_reader_); - if (!failed_) { - if (reader->NextValueType() != container_data_type) { - MarkFailed(); - } else { - dbus_message_iter_recurse(&reader->iterator_, &iterator_); - reader->MoveToNext(); - } - } -} - -bool MessageReader::NextIsDictEntry() const { - return NextValueType() == DBUS_TYPE_DICT_ENTRY; -} - -MessageReader MessageReader::TakeArrayReader() { - return MessageReader(this, DBUS_TYPE_ARRAY); -} - -MessageReader MessageReader::TakeStructReader() { - return MessageReader(this, DBUS_TYPE_STRUCT); -} - -MessageReader MessageReader::TakeDictEntryReader() { - return MessageReader(this, DBUS_TYPE_DICT_ENTRY); -} - -void MessageReader::MoveToNext() { - if (!HasNext()) { - MarkFailed(); - } - dbus_message_iter_next(&iterator_); -} - -void MessageReader::MarkFailed() { - if (!failed_) { - failed_ = true; - if (parent_reader_) { - parent_reader_->MarkFailed(); - } - } -} - -void MessageReader::ReadNextValue(MessageReader::DataType type, void* value) { - assert(value); - if (NextValueType() != type) { - MarkFailed(); - } else if (!failed_) { - dbus_message_iter_get_basic(&iterator_, value); - MoveToNext(); - } -} - -// DbusMessageWriter -MessageWriter::MessageWriter(const MessageRef& message) - : has_opened_subcontainer_(false), parent_writer_(NULL) { - dbus_message_iter_init_append(message.raw_message_ref_.get(), &iterator_); -} - -MessageWriter::MessageWriter(MessageWriter* parent, - ContainerType container_type, - const char* array_signature) - : has_opened_subcontainer_(false), parent_writer_(parent) { - assert(parent_writer_); - // Only array writers require array_signature - assert((container_type == kArray && array_signature != NULL) || - (container_type != kArray && array_signature == NULL)); - assert(!parent_writer_->has_opened_subcontainer_); - bool enough_memory = dbus_message_iter_open_container( - &parent_writer_->iterator_, container_type, array_signature, &iterator_); - assert(enough_memory); - parent_writer_->has_opened_subcontainer_ = true; -} - -MessageWriter::~MessageWriter() { - assert(!has_opened_subcontainer_); - if (parent_writer_ != NULL) { - CloseWriter(); - } -} - -void MessageWriter::WriteAndCheck(MessageWriter::DataType value_type, - const void* value) { - assert(!has_opened_subcontainer_); - dbus_bool_t enough_memory = - dbus_message_iter_append_basic(&iterator_, value_type, value); - assert(enough_memory); -} - -void MessageWriter::CloseWriter() { - assert(parent_writer_); - assert(parent_writer_->has_opened_subcontainer_); - dbus_bool_t enough_memory = - dbus_message_iter_close_container(&parent_writer_->iterator_, &iterator_); - assert(enough_memory); - parent_writer_->has_opened_subcontainer_ = false; -} - -// Construction functions - -MessageRef MethodCall(const char* bus_name, - const char* path, - const char* interface, - const char* method) { - return MessageRef( - dbus_message_new_method_call(bus_name, path, interface, method)); -} - -MessageRef Signal(const char* path, const char* interface, const char* name) { - return MessageRef(dbus_message_new_signal(path, interface, name)); -} - -} // namespace dbus diff --git a/src/components/dbus/src/dbus_message_controller.cc b/src/components/dbus/src/dbus_message_controller.cc deleted file mode 100644 index 59f08d66952..00000000000 --- a/src/components/dbus/src/dbus_message_controller.cc +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) 2013, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include "dbus/dbus_message_controller.h" -#include "formatters/CSmartFactory.h" - -namespace sos = NsSmartDeviceLink::NsJSONHandler::strings; - -namespace dbus { - -DBusMessageController::DBusMessageController(const std::string& sdlServiceName, - const std::string& sdlObjectPath, - const std::string& hmiServiceName, - const std::string& hmiObjectPath) - : DBusAdapter(sdlServiceName, sdlObjectPath, hmiServiceName, hmiObjectPath) - , shutdown_(false) {} - -void DBusMessageController::SubscribeTo(const std::string& interface, - const std::string& signal) { - std::string rule = "type='signal'"; - rule.append(", sender='") - .append(hmi_service_name_) - .append("'") - .append(", path='") - .append(hmi_object_path_) - .append("'") - .append(", interface='") - .append(hmi_service_name_) - .append(".") - .append(interface) - .append("'") - .append(", member='") - .append(signal) - .append("'"); - DBusAdapter::AddMatch(rule); -} - -DBusMessageController::~DBusMessageController() {} - -void* DBusMessageController::MethodForReceiverThread(void*) { - Run(); - return NULL; -} - -bool DBusMessageController::Run() { - while (!shutdown_) { - smart_objects::SmartObject obj(smart_objects::SmartType_Map); - obj[sos::S_PARAMS][sos::S_PROTOCOL_VERSION] = 2; - obj[sos::S_PARAMS][sos::S_PROTOCOL_TYPE] = 1; - if (DBusAdapter::Process(obj)) { - SendMessageToCore(obj); - } - } - return true; -} - -void DBusMessageController::Shutdown() { - shutdown_ = true; -} - -} // namespace dbus diff --git a/src/components/dbus/src/introspection_xml.cc b/src/components/dbus/src/introspection_xml.cc deleted file mode 100644 index 210c232a4d6..00000000000 --- a/src/components/dbus/src/introspection_xml.cc +++ /dev/null @@ -1,327 +0,0 @@ -// Warning! This file is generated by 'make_introspection_c.py'. Edit at your -// own risk. -/** - * @file instrospections_xml.cc - * @brief D-Bus introspection XML as C-string - * - * This file is a part of HMI D-Bus layer. - */ -// Copyright (c) 2013, Ford Motor Company -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following -// disclaimer in the documentation and/or other materials provided with the -// distribution. -// -// Neither the name of the Ford Motor Company nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -char introspection_xml[] = { - 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, 0x6e, 0x6f, - 0x64, 0x65, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x22, 0x2d, - 0x2f, 0x2f, 0x66, 0x72, 0x65, 0x65, 0x64, 0x65, 0x73, 0x6b, 0x74, 0x6f, - 0x70, 0x2f, 0x2f, 0x44, 0x54, 0x44, 0x20, 0x44, 0x2d, 0x42, 0x55, 0x53, - 0x20, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x31, 0x2e, - 0x30, 0x2f, 0x2f, 0x45, 0x4e, 0x22, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, - 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x66, 0x72, 0x65, 0x65, 0x64, - 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x73, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x73, 0x2f, 0x64, 0x62, 0x75, - 0x73, 0x2f, 0x31, 0x2e, 0x30, 0x2f, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x73, - 0x70, 0x65, 0x63, 0x74, 0x2e, 0x64, 0x74, 0x64, 0x22, 0x3e, 0x0a, 0x3c, - 0x6e, 0x6f, 0x64, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x2f, - 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6f, 0x72, 0x64, 0x2f, 0x68, 0x6d, 0x69, - 0x22, 0x3e, 0x3c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x66, - 0x6f, 0x72, 0x64, 0x2e, 0x68, 0x6d, 0x69, 0x2e, 0x73, 0x64, 0x6c, 0x2e, - 0x42, 0x61, 0x73, 0x69, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3e, 0x3c, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4f, 0x6e, - 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x70, 0x70, 0x49, 0x44, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, 0x22, 0x20, 0x2f, 0x3e, - 0x3c, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x3e, 0x3c, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4f, - 0x6e, 0x53, 0x44, 0x4c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x22, - 0x20, 0x2f, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4f, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x22, 0x3e, 0x3c, 0x61, 0x72, 0x67, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x73, - 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, 0x22, 0x20, 0x2f, 0x3e, - 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, - 0x70, 0x70, 0x49, 0x44, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x4f, 0x6e, 0x41, 0x70, 0x70, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x22, 0x3e, 0x3c, 0x61, 0x72, - 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x28, 0x73, 0x28, 0x62, 0x73, 0x29, 0x28, 0x62, 0x73, - 0x29, 0x28, 0x73, 0x73, 0x28, 0x62, 0x69, 0x29, 0x28, 0x62, 0x62, 0x29, - 0x29, 0x73, 0x28, 0x62, 0x61, 0x28, 0x73, 0x69, 0x29, 0x29, 0x28, 0x62, - 0x61, 0x73, 0x29, 0x69, 0x69, 0x62, 0x28, 0x62, 0x61, 0x69, 0x29, 0x28, - 0x62, 0x62, 0x29, 0x28, 0x62, 0x61, 0x69, 0x29, 0x29, 0x22, 0x20, 0x2f, - 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x74, 0x74, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x28, 0x62, 0x61, 0x28, 0x73, 0x69, 0x29, 0x29, 0x22, - 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x76, 0x72, 0x53, 0x79, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x73, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x61, 0x73, - 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x56, 0x72, - 0x47, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x72, 0x73, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x62, 0x29, 0x22, 0x20, 0x2f, 0x3e, - 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x28, 0x62, 0x69, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, - 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x3e, 0x3c, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4f, 0x6e, - 0x41, 0x70, 0x70, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, - 0x72, 0x65, 0x64, 0x22, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x62, 0x22, 0x20, 0x2f, - 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x61, 0x70, 0x70, 0x49, 0x44, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x50, 0x6c, 0x61, 0x79, 0x54, 0x6f, 0x6e, - 0x65, 0x22, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x61, 0x70, 0x70, 0x49, 0x44, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4f, 0x6e, 0x53, 0x44, 0x4c, 0x43, 0x6c, - 0x6f, 0x73, 0x65, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4f, 0x6e, 0x50, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x22, 0x3e, 0x3c, 0x61, 0x72, 0x67, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x69, - 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x69, 0x29, 0x22, 0x20, - 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x69, 0x29, 0x22, 0x20, 0x2f, - 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x73, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, - 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x79, 0x6e, 0x63, - 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x73, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, - 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x69, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x28, 0x62, 0x62, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x3e, 0x3c, 0x2f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x3e, 0x3c, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6f, 0x72, 0x64, 0x2e, 0x68, 0x6d, 0x69, - 0x2e, 0x73, 0x64, 0x6c, 0x2e, 0x55, 0x49, 0x22, 0x3e, 0x3c, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4f, - 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x22, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x61, 0x70, 0x70, 0x49, 0x44, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x3e, 0x3c, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x3e, 0x3c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6f, 0x6d, - 0x2e, 0x66, 0x6f, 0x72, 0x64, 0x2e, 0x68, 0x6d, 0x69, 0x2e, 0x73, 0x64, - 0x6c, 0x2e, 0x53, 0x44, 0x4c, 0x22, 0x3e, 0x3c, 0x6d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x22, 0x3e, 0x3c, 0x61, - 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x3d, 0x22, 0x69, 0x6e, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x61, 0x70, 0x70, 0x49, 0x44, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, - 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, 0x74, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x73, 0x53, 0x44, - 0x4c, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x62, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, - 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, - 0x22, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x28, 0x62, 0x28, 0x73, 0x73, 0x28, 0x62, 0x69, 0x29, 0x28, - 0x62, 0x62, 0x29, 0x29, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, - 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, - 0x22, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x69, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, - 0x65, 0x64, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x62, 0x22, - 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, 0x74, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x73, 0x41, 0x70, 0x70, 0x50, - 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x62, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, - 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x70, 0x70, - 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x28, 0x62, 0x61, 0x28, 0x73, 0x69, 0x28, 0x62, 0x62, 0x29, - 0x29, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, - 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x73, 0x41, - 0x70, 0x70, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x62, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, - 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x3d, 0x22, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x69, 0x29, 0x22, 0x20, 0x2f, - 0x3e, 0x3c, 0x2f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3e, 0x3c, 0x6d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3e, - 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x3d, 0x22, 0x69, 0x6e, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, - 0x65, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x61, 0x73, - 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x69, 0x6e, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, - 0x69, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, - 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, 0x74, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x28, 0x62, 0x61, 0x28, 0x73, 0x28, 0x62, 0x73, 0x29, 0x28, 0x62, 0x73, - 0x29, 0x28, 0x62, 0x73, 0x29, 0x28, 0x62, 0x73, 0x29, 0x28, 0x62, 0x73, - 0x29, 0x29, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x3e, 0x3c, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x4f, 0x66, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x22, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x69, 0x6e, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x70, 0x70, 0x49, 0x44, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x69, 0x29, 0x22, - 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, 0x74, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, 0x22, 0x20, - 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x61, 0x28, 0x73, 0x69, 0x28, 0x62, 0x62, - 0x29, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x6d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x3e, 0x3c, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, - 0x44, 0x4c, 0x22, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, 0x74, 0x22, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, 0x22, - 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, 0x74, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, 0x22, 0x20, 0x2f, - 0x3e, 0x3c, 0x2f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3e, 0x3c, 0x6d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x22, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, 0x74, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, - 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, 0x75, 0x74, 0x22, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, 0x22, 0x20, - 0x2f, 0x3e, 0x3c, 0x2f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3e, 0x3c, - 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x47, 0x65, 0x74, 0x55, 0x52, 0x4c, 0x53, 0x22, 0x3e, 0x3c, 0x61, - 0x72, 0x67, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x3d, 0x22, 0x69, 0x6e, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, - 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, - 0x6f, 0x75, 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, - 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x6f, - 0x75, 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x72, - 0x6c, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, - 0x61, 0x28, 0x73, 0x28, 0x62, 0x73, 0x29, 0x29, 0x29, 0x22, 0x20, 0x2f, - 0x3e, 0x3c, 0x2f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3e, 0x3c, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x4f, 0x6e, 0x41, 0x70, 0x70, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x22, 0x3e, - 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, - 0x70, 0x70, 0x49, 0x44, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x69, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x73, 0x41, 0x70, 0x70, 0x50, 0x65, 0x72, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x76, 0x6f, - 0x6b, 0x65, 0x64, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, - 0x62, 0x62, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x70, 0x70, 0x52, 0x65, 0x76, - 0x6f, 0x6b, 0x65, 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, - 0x62, 0x61, 0x28, 0x73, 0x69, 0x28, 0x62, 0x62, 0x29, 0x29, 0x29, 0x22, - 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x61, 0x70, 0x70, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x62, 0x29, - 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x61, 0x70, 0x70, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, - 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x28, 0x62, 0x62, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, - 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x70, 0x70, - 0x55, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x62, 0x29, - 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x69, 0x29, 0x22, - 0x20, 0x2f, 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x28, 0x62, 0x61, - 0x69, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4f, 0x6e, 0x53, 0x44, 0x4c, 0x43, 0x6f, - 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x22, - 0x3e, 0x3c, 0x61, 0x72, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x28, 0x73, 0x73, 0x28, 0x62, 0x69, 0x29, 0x28, 0x62, 0x62, - 0x29, 0x29, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x3e, 0x3c, 0x61, 0x72, - 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, 0x22, - 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x3e, - 0x3c, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x3e, - 0x3c, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x3e, 0x00}; \ No newline at end of file diff --git a/src/components/dbus/src/message_descriptions.cc b/src/components/dbus/src/message_descriptions.cc deleted file mode 100644 index 1a5e499a7ff..00000000000 --- a/src/components/dbus/src/message_descriptions.cc +++ /dev/null @@ -1,10424 +0,0 @@ -// Warning! This file is generated by 'make_message_descriptions.py'. Edit at -// your own risk. -/** - * @file message_descriptions.cc - * @brief Generated HMI API message descriptions for D-Bus - * - * This file is a part of HMI D-Bus layer. - */ -// Copyright (c) 2013, Ford Motor Company -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following -// disclaimer in the documentation and/or other materials provided with the -// distribution. -// -// Neither the name of the Ford Motor Company nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -#include "dbus/message_descriptions.h" - -namespace { - -struct Structs { - static const ford_message_descriptions::ParameterDescription* - Common__Coordinate__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__DeviceInfo__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__UserFriendlyMessage__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__PermissionItem__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__ServiceInfo__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__TextField__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__ButtonCapabilities__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__VehicleDataResult__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__TouchCoord__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__TouchEvent__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__PresetBankCapabilities__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__Image__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__SoftButton__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__TTSChunk__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__HMIApplication__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__MenuParams__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__Choice__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__VrHelpItem__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__TimeFormat__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__TouchEventCapabilities__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__ImageResolution__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__ScreenParams__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__ImageField__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__VideoStreamingFormat__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__VideoConfig__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__DisplayCapabilities__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__SoftButtonCapabilities__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__HMICapabilities__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__AudioPassThruCapabilities__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__TextFieldStruct__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__KeyboardProperties__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__Turn__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__VehicleType__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__GPSData__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__SingleTireStatus__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__DIDResult__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__HeadLampStatus__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__TireStatus__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__BeltStatus__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__BodyInformation__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__DeviceStatus__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__ECallInfo__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__AirbagStatus__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__EmergencyEvent__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__ClusterModeStatus__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__MyKey__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__RdsData__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__RadioControlData__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__RadioControlCapabilities__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__Temperature__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__ClimateControlData__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__ClimateControlCapabilities__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__ModuleData__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__DateTime__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__OASISAddress__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__LocationDetails__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__NavigationCapability__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__PhoneCapability__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__VideoStreamingCapability__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__SystemCapabilities__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__RemoteControlCapabilities__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__Rectangle__parameters[]; - static const ford_message_descriptions::ParameterDescription* - Common__HapticRect__parameters[]; -}; - -const ford_message_descriptions::ParameterDescription - Common__Coordinate__parameter1 = { - "latitudeDegrees", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription - Common__Coordinate__parameter2 = { - "longitudeDegrees", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__Coordinate__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__Coordinate__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__Coordinate__parameter2, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__DeviceInfo__parameter1 = { - "name", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - Common__DeviceInfo__parameter2 = { - "id", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - Common__DeviceInfo__parameter3 = { - "transportType", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__DeviceInfo__parameter4 = { - "isSDLAllowed", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__DeviceInfo__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__DeviceInfo__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DeviceInfo__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DeviceInfo__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DeviceInfo__parameter4, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__UserFriendlyMessage__parameter1 = { - "messageCode", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - Common__UserFriendlyMessage__parameter2 = { - "ttsString", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__UserFriendlyMessage__parameter3 = { - "label", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__UserFriendlyMessage__parameter4 = { - "line1", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__UserFriendlyMessage__parameter5 = { - "line2", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__UserFriendlyMessage__parameter6 = { - "textBody", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__UserFriendlyMessage__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__UserFriendlyMessage__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__UserFriendlyMessage__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__UserFriendlyMessage__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__UserFriendlyMessage__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__UserFriendlyMessage__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Common__UserFriendlyMessage__parameter6, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__PermissionItem__parameter1 = { - "name", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - Common__PermissionItem__parameter2 = { - "id", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - Common__PermissionItem__parameter3 = { - "allowed", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__PermissionItem__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__PermissionItem__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__PermissionItem__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__PermissionItem__parameter3, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__ServiceInfo__parameter1 = { - "url", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - Common__ServiceInfo__parameter2 = { - "policyAppId", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__ServiceInfo__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__ServiceInfo__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ServiceInfo__parameter2, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__TextField__parameter1 = { - "name", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__TextField__parameter2 = { - "characterSet", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__TextField__parameter3 = { - "width", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - Common__TextField__parameter4 = { - "rows", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__TextField__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__TextField__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TextField__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TextField__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TextField__parameter4, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__ButtonCapabilities__parameter1 = { - "name", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__ButtonCapabilities__parameter2 = { - "shortPressAvailable", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription - Common__ButtonCapabilities__parameter3 = { - "longPressAvailable", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription - Common__ButtonCapabilities__parameter4 = { - "upDownAvailable", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__ButtonCapabilities__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__ButtonCapabilities__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ButtonCapabilities__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ButtonCapabilities__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ButtonCapabilities__parameter4, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__VehicleDataResult__parameter1 = { - "dataType", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__VehicleDataResult__parameter2 = { - "resultCode", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__VehicleDataResult__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__VehicleDataResult__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__VehicleDataResult__parameter2, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__TouchCoord__parameter1 = { - "x", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - Common__TouchCoord__parameter2 = { - "y", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__TouchCoord__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__TouchCoord__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TouchCoord__parameter2, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__TouchEvent__parameter1 = { - "id", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - Common__TouchEvent__parameter2_array = { - "ts", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ArrayDescription - Common__TouchEvent__parameter2 = { - {"ts", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TouchEvent__parameter2_array, - "i"}; -const ford_message_descriptions::StructDescription - Common__TouchEvent__parameter3_array = { - {"c", ford_message_descriptions::Struct, true}, - Structs::Common__TouchCoord__parameters}; -const ford_message_descriptions::ArrayDescription - Common__TouchEvent__parameter3 = { - {"c", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TouchEvent__parameter3_array, - "(ii)"}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__TouchEvent__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__TouchEvent__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TouchEvent__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TouchEvent__parameter3, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__PresetBankCapabilities__parameter1 = { - "onScreenPresetsAvailable", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__PresetBankCapabilities__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__PresetBankCapabilities__parameter1, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__Image__parameter1 = { - "value", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - Common__Image__parameter2 = { - "imageType", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__Image__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__Image__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__Image__parameter2, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__SoftButton__parameter1 = { - "type", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__SoftButton__parameter2 = { - "text", ford_message_descriptions::String, false}; -const ford_message_descriptions::StructDescription - Common__SoftButton__parameter3 = { - {"image", ford_message_descriptions::Struct, false}, - Structs::Common__Image__parameters}; -const ford_message_descriptions::ParameterDescription - Common__SoftButton__parameter4 = { - "isHighlighted", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__SoftButton__parameter5 = { - "softButtonID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - Common__SoftButton__parameter6 = { - "systemAction", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__SoftButton__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__SoftButton__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__SoftButton__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__SoftButton__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__SoftButton__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__SoftButton__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Common__SoftButton__parameter6, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__TTSChunk__parameter1 = { - "text", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - Common__TTSChunk__parameter2 = { - "type", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__TTSChunk__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__TTSChunk__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TTSChunk__parameter2, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__HMIApplication__parameter1 = { - "appName", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - Common__HMIApplication__parameter2 = { - "ngnMediaScreenAppName", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__HMIApplication__parameter3 = { - "icon", ford_message_descriptions::String, false}; -const ford_message_descriptions::StructDescription - Common__HMIApplication__parameter4 = { - {"deviceInfo", ford_message_descriptions::Struct, true}, - Structs::Common__DeviceInfo__parameters}; -const ford_message_descriptions::ParameterDescription - Common__HMIApplication__parameter5 = { - "policyAppID", ford_message_descriptions::String, true}; -const ford_message_descriptions::StructDescription - Common__HMIApplication__parameter6_array = { - {"ttsName", ford_message_descriptions::Struct, true}, - Structs::Common__TTSChunk__parameters}; -const ford_message_descriptions::ArrayDescription - Common__HMIApplication__parameter6 = { - {"ttsName", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HMIApplication__parameter6_array, - "(si)"}; -const ford_message_descriptions::ParameterDescription - Common__HMIApplication__parameter7_array = { - "vrSynonyms", ford_message_descriptions::String, true}; -const ford_message_descriptions::ArrayDescription - Common__HMIApplication__parameter7 = { - {"vrSynonyms", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HMIApplication__parameter7_array, - "s"}; -const ford_message_descriptions::ParameterDescription - Common__HMIApplication__parameter8 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - Common__HMIApplication__parameter9 = { - "hmiDisplayLanguageDesired", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__HMIApplication__parameter10 = { - "isMediaApplication", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription - Common__HMIApplication__parameter11_array = { - "appType", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ArrayDescription - Common__HMIApplication__parameter11 = { - {"appType", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HMIApplication__parameter11_array, - "i"}; -const ford_message_descriptions::ParameterDescription - Common__HMIApplication__parameter12 = { - "greyOut", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__HMIApplication__parameter13_array = { - "requestType", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ArrayDescription - Common__HMIApplication__parameter13 = { - {"requestType", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HMIApplication__parameter13_array, - "i"}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__HMIApplication__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__HMIApplication__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HMIApplication__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HMIApplication__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HMIApplication__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HMIApplication__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HMIApplication__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HMIApplication__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HMIApplication__parameter8, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HMIApplication__parameter9, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HMIApplication__parameter10, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HMIApplication__parameter11, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HMIApplication__parameter12, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HMIApplication__parameter13, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__MenuParams__parameter1 = { - "parentID", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__MenuParams__parameter2 = { - "position", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__MenuParams__parameter3 = { - "menuName", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__MenuParams__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__MenuParams__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__MenuParams__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__MenuParams__parameter3, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__Choice__parameter1 = { - "choiceID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - Common__Choice__parameter2 = { - "menuName", ford_message_descriptions::String, false}; -const ford_message_descriptions::StructDescription Common__Choice__parameter3 = - {{"image", ford_message_descriptions::Struct, false}, - Structs::Common__Image__parameters}; -const ford_message_descriptions::ParameterDescription - Common__Choice__parameter4 = { - "secondaryText", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__Choice__parameter5 = { - "tertiaryText", ford_message_descriptions::String, false}; -const ford_message_descriptions::StructDescription Common__Choice__parameter6 = - {{"secondaryImage", ford_message_descriptions::Struct, false}, - Structs::Common__Image__parameters}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__Choice__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__Choice__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__Choice__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__Choice__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__Choice__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__Choice__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Common__Choice__parameter6, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__VrHelpItem__parameter1 = { - "text", ford_message_descriptions::String, true}; -const ford_message_descriptions::StructDescription - Common__VrHelpItem__parameter2 = { - {"image", ford_message_descriptions::Struct, false}, - Structs::Common__Image__parameters}; -const ford_message_descriptions::ParameterDescription - Common__VrHelpItem__parameter3 = { - "position", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__VrHelpItem__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__VrHelpItem__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__VrHelpItem__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__VrHelpItem__parameter3, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__TimeFormat__parameter1 = { - "hours", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - Common__TimeFormat__parameter2 = { - "minutes", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - Common__TimeFormat__parameter3 = { - "seconds", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__TimeFormat__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__TimeFormat__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TimeFormat__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TimeFormat__parameter3, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__TouchEventCapabilities__parameter1 = { - "pressAvailable", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription - Common__TouchEventCapabilities__parameter2 = { - "multiTouchAvailable", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription - Common__TouchEventCapabilities__parameter3 = { - "doublePressAvailable", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__TouchEventCapabilities__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__TouchEventCapabilities__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TouchEventCapabilities__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TouchEventCapabilities__parameter3, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__ImageResolution__parameter1 = { - "resolutionWidth", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - Common__ImageResolution__parameter2 = { - "resolutionHeight", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__ImageResolution__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__ImageResolution__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ImageResolution__parameter2, - NULL}; - -const ford_message_descriptions::StructDescription - Common__ScreenParams__parameter1 = { - {"resolution", ford_message_descriptions::Struct, true}, - Structs::Common__ImageResolution__parameters}; -const ford_message_descriptions::StructDescription - Common__ScreenParams__parameter2 = { - {"touchEventAvailable", ford_message_descriptions::Struct, false}, - Structs::Common__TouchEventCapabilities__parameters}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__ScreenParams__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__ScreenParams__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ScreenParams__parameter2, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__ImageField__parameter1 = { - "name", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__ImageField__parameter2_array = { - "imageTypeSupported", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ArrayDescription - Common__ImageField__parameter2 = { - {"imageTypeSupported", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ImageField__parameter2_array, - "i"}; -const ford_message_descriptions::StructDescription - Common__ImageField__parameter3 = { - {"imageResolution", ford_message_descriptions::Struct, false}, - Structs::Common__ImageResolution__parameters}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__ImageField__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__ImageField__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ImageField__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ImageField__parameter3, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__VideoStreamingFormat__parameter1 = { - "protocol", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__VideoStreamingFormat__parameter2 = { - "codec", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__VideoStreamingFormat__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__VideoStreamingFormat__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__VideoStreamingFormat__parameter2, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__VideoConfig__parameter1 = { - "protocol", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__VideoConfig__parameter2 = { - "codec", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__VideoConfig__parameter3 = { - "width", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__VideoConfig__parameter4 = { - "height", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__VideoConfig__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__VideoConfig__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__VideoConfig__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__VideoConfig__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__VideoConfig__parameter4, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__DisplayCapabilities__parameter1 = { - "displayType", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::StructDescription - Common__DisplayCapabilities__parameter2_array = { - {"textFields", ford_message_descriptions::Struct, true}, - Structs::Common__TextField__parameters}; -const ford_message_descriptions::ArrayDescription - Common__DisplayCapabilities__parameter2 = { - {"textFields", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DisplayCapabilities__parameter2_array, - "(iiii)"}; -const ford_message_descriptions::StructDescription - Common__DisplayCapabilities__parameter3_array = { - {"imageFields", ford_message_descriptions::Struct, true}, - Structs::Common__ImageField__parameters}; -const ford_message_descriptions::ArrayDescription - Common__DisplayCapabilities__parameter3 = { - {"imageFields", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DisplayCapabilities__parameter3_array, - "(i(bai)(b(ii)))"}; -const ford_message_descriptions::ParameterDescription - Common__DisplayCapabilities__parameter4_array = { - "mediaClockFormats", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ArrayDescription - Common__DisplayCapabilities__parameter4 = { - {"mediaClockFormats", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DisplayCapabilities__parameter4_array, - "i"}; -const ford_message_descriptions::ParameterDescription - Common__DisplayCapabilities__parameter5_array = { - "imageCapabilities", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ArrayDescription - Common__DisplayCapabilities__parameter5 = { - {"imageCapabilities", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DisplayCapabilities__parameter5_array, - "i"}; -const ford_message_descriptions::ParameterDescription - Common__DisplayCapabilities__parameter6 = { - "graphicSupported", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription - Common__DisplayCapabilities__parameter7_array = { - "templatesAvailable", ford_message_descriptions::String, true}; -const ford_message_descriptions::ArrayDescription - Common__DisplayCapabilities__parameter7 = { - {"templatesAvailable", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DisplayCapabilities__parameter7_array, - "s"}; -const ford_message_descriptions::StructDescription - Common__DisplayCapabilities__parameter8 = { - {"screenParams", ford_message_descriptions::Struct, false}, - Structs::Common__ScreenParams__parameters}; -const ford_message_descriptions::ParameterDescription - Common__DisplayCapabilities__parameter9 = { - "numCustomPresetsAvailable", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__DisplayCapabilities__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__DisplayCapabilities__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DisplayCapabilities__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DisplayCapabilities__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DisplayCapabilities__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DisplayCapabilities__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DisplayCapabilities__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DisplayCapabilities__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DisplayCapabilities__parameter8, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DisplayCapabilities__parameter9, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__SoftButtonCapabilities__parameter1 = { - "shortPressAvailable", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription - Common__SoftButtonCapabilities__parameter2 = { - "longPressAvailable", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription - Common__SoftButtonCapabilities__parameter3 = { - "upDownAvailable", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription - Common__SoftButtonCapabilities__parameter4 = { - "imageSupported", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__SoftButtonCapabilities__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__SoftButtonCapabilities__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__SoftButtonCapabilities__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__SoftButtonCapabilities__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__SoftButtonCapabilities__parameter4, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__HMICapabilities__parameter1 = { - "navigation", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__HMICapabilities__parameter2 = { - "phoneCall", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__HMICapabilities__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__HMICapabilities__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HMICapabilities__parameter2, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__AudioPassThruCapabilities__parameter1 = { - "samplingRate", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__AudioPassThruCapabilities__parameter2 = { - "bitsPerSample", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__AudioPassThruCapabilities__parameter3 = { - "audioType", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__AudioPassThruCapabilities__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__AudioPassThruCapabilities__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__AudioPassThruCapabilities__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__AudioPassThruCapabilities__parameter3, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__TextFieldStruct__parameter1 = { - "fieldName", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__TextFieldStruct__parameter2 = { - "fieldText", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__TextFieldStruct__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__TextFieldStruct__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TextFieldStruct__parameter2, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__KeyboardProperties__parameter1 = { - "language", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__KeyboardProperties__parameter2 = { - "keyboardLayout", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__KeyboardProperties__parameter3 = { - "keypressMode", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__KeyboardProperties__parameter4_array = { - "limitedCharacterList", ford_message_descriptions::String, true}; -const ford_message_descriptions::ArrayDescription - Common__KeyboardProperties__parameter4 = { - {"limitedCharacterList", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__KeyboardProperties__parameter4_array, - "s"}; -const ford_message_descriptions::ParameterDescription - Common__KeyboardProperties__parameter5 = { - "autoCompleteText", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__KeyboardProperties__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__KeyboardProperties__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__KeyboardProperties__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__KeyboardProperties__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__KeyboardProperties__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__KeyboardProperties__parameter5, - NULL}; - -const ford_message_descriptions::StructDescription Common__Turn__parameter1 = { - {"navigationText", ford_message_descriptions::Struct, false}, - Structs::Common__TextFieldStruct__parameters}; -const ford_message_descriptions::StructDescription Common__Turn__parameter2 = { - {"turnIcon", ford_message_descriptions::Struct, false}, - Structs::Common__Image__parameters}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__Turn__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__Turn__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__Turn__parameter2, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__VehicleType__parameter1 = { - "make", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__VehicleType__parameter2 = { - "model", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__VehicleType__parameter3 = { - "modelYear", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__VehicleType__parameter4 = { - "trim", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__VehicleType__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__VehicleType__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__VehicleType__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__VehicleType__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__VehicleType__parameter4, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__GPSData__parameter1 = { - "longitudeDegrees", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription - Common__GPSData__parameter2 = { - "latitudeDegrees", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription - Common__GPSData__parameter3 = { - "utcYear", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__GPSData__parameter4 = { - "utcMonth", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__GPSData__parameter5 = { - "utcDay", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__GPSData__parameter6 = { - "utcHours", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__GPSData__parameter7 = { - "utcMinutes", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__GPSData__parameter8 = { - "utcSeconds", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__GPSData__parameter9 = { - "compassDirection", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__GPSData__parameter10 = { - "pdop", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription - Common__GPSData__parameter11 = { - "hdop", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription - Common__GPSData__parameter12 = { - "vdop", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription - Common__GPSData__parameter13 = { - "actual", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__GPSData__parameter14 = { - "satellites", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__GPSData__parameter15 = { - "dimension", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__GPSData__parameter16 = { - "altitude", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription - Common__GPSData__parameter17 = { - "heading", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription - Common__GPSData__parameter18 = { - "speed", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__GPSData__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__GPSData__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__GPSData__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__GPSData__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__GPSData__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__GPSData__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Common__GPSData__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&Common__GPSData__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&Common__GPSData__parameter8, - (const ford_message_descriptions:: - ParameterDescription*)&Common__GPSData__parameter9, - (const ford_message_descriptions:: - ParameterDescription*)&Common__GPSData__parameter10, - (const ford_message_descriptions:: - ParameterDescription*)&Common__GPSData__parameter11, - (const ford_message_descriptions:: - ParameterDescription*)&Common__GPSData__parameter12, - (const ford_message_descriptions:: - ParameterDescription*)&Common__GPSData__parameter13, - (const ford_message_descriptions:: - ParameterDescription*)&Common__GPSData__parameter14, - (const ford_message_descriptions:: - ParameterDescription*)&Common__GPSData__parameter15, - (const ford_message_descriptions:: - ParameterDescription*)&Common__GPSData__parameter16, - (const ford_message_descriptions:: - ParameterDescription*)&Common__GPSData__parameter17, - (const ford_message_descriptions:: - ParameterDescription*)&Common__GPSData__parameter18, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__SingleTireStatus__parameter1 = { - "status", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__SingleTireStatus__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__SingleTireStatus__parameter1, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__DIDResult__parameter1 = { - "resultCode", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__DIDResult__parameter2 = { - "didLocation", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - Common__DIDResult__parameter3 = { - "data", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__DIDResult__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__DIDResult__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DIDResult__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DIDResult__parameter3, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__HeadLampStatus__parameter1 = { - "lowBeamsOn", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription - Common__HeadLampStatus__parameter2 = { - "highBeamsOn", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription - Common__HeadLampStatus__parameter3 = { - "ambientLightSensorStatus", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__HeadLampStatus__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__HeadLampStatus__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HeadLampStatus__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HeadLampStatus__parameter3, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__TireStatus__parameter1 = { - "pressureTelltale", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::StructDescription - Common__TireStatus__parameter2 = { - {"leftFront", ford_message_descriptions::Struct, false}, - Structs::Common__SingleTireStatus__parameters}; -const ford_message_descriptions::StructDescription - Common__TireStatus__parameter3 = { - {"rightFront", ford_message_descriptions::Struct, false}, - Structs::Common__SingleTireStatus__parameters}; -const ford_message_descriptions::StructDescription - Common__TireStatus__parameter4 = { - {"leftRear", ford_message_descriptions::Struct, false}, - Structs::Common__SingleTireStatus__parameters}; -const ford_message_descriptions::StructDescription - Common__TireStatus__parameter5 = { - {"rightRear", ford_message_descriptions::Struct, false}, - Structs::Common__SingleTireStatus__parameters}; -const ford_message_descriptions::StructDescription - Common__TireStatus__parameter6 = { - {"innerLeftRear", ford_message_descriptions::Struct, false}, - Structs::Common__SingleTireStatus__parameters}; -const ford_message_descriptions::StructDescription - Common__TireStatus__parameter7 = { - {"innerRightRear", ford_message_descriptions::Struct, false}, - Structs::Common__SingleTireStatus__parameters}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__TireStatus__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__TireStatus__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TireStatus__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TireStatus__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TireStatus__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TireStatus__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TireStatus__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&Common__TireStatus__parameter7, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__BeltStatus__parameter1 = { - "driverBeltDeployed", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__BeltStatus__parameter2 = { - "passengerBeltDeployed", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__BeltStatus__parameter3 = { - "passengerBuckleBelted", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__BeltStatus__parameter4 = { - "driverBuckleBelted", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__BeltStatus__parameter5 = { - "leftRow2BuckleBelted", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__BeltStatus__parameter6 = { - "passengerChildDetected", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__BeltStatus__parameter7 = { - "rightRow2BuckleBelted", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__BeltStatus__parameter8 = { - "middleRow2BuckleBelted", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__BeltStatus__parameter9 = { - "middleRow3BuckleBelted", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__BeltStatus__parameter10 = { - "leftRow3BuckleBelted", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__BeltStatus__parameter11 = { - "rightRow3BuckleBelted", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__BeltStatus__parameter12 = { - "leftRearInflatableBelted", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__BeltStatus__parameter13 = { - "rightRearInflatableBelted", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__BeltStatus__parameter14 = { - "middleRow1BeltDeployed", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__BeltStatus__parameter15 = { - "middleRow1BuckleBelted", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__BeltStatus__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__BeltStatus__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BeltStatus__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BeltStatus__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BeltStatus__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BeltStatus__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BeltStatus__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BeltStatus__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BeltStatus__parameter8, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BeltStatus__parameter9, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BeltStatus__parameter10, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BeltStatus__parameter11, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BeltStatus__parameter12, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BeltStatus__parameter13, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BeltStatus__parameter14, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BeltStatus__parameter15, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__BodyInformation__parameter1 = { - "parkBrakeActive", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription - Common__BodyInformation__parameter2 = { - "ignitionStableStatus", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__BodyInformation__parameter3 = { - "ignitionStatus", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__BodyInformation__parameter4 = { - "driverDoorAjar", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__BodyInformation__parameter5 = { - "passengerDoorAjar", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__BodyInformation__parameter6 = { - "rearLeftDoorAjar", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__BodyInformation__parameter7 = { - "rearRightDoorAjar", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__BodyInformation__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__BodyInformation__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BodyInformation__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BodyInformation__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BodyInformation__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BodyInformation__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BodyInformation__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&Common__BodyInformation__parameter7, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__DeviceStatus__parameter1 = { - "voiceRecOn", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__DeviceStatus__parameter2 = { - "btIconOn", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__DeviceStatus__parameter3 = { - "callActive", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__DeviceStatus__parameter4 = { - "phoneRoaming", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__DeviceStatus__parameter5 = { - "textMsgAvailable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__DeviceStatus__parameter6 = { - "battLevelStatus", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__DeviceStatus__parameter7 = { - "stereoAudioOutputMuted", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__DeviceStatus__parameter8 = { - "monoAudioOutputMuted", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__DeviceStatus__parameter9 = { - "signalLevelStatus", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__DeviceStatus__parameter10 = { - "primaryAudioSource", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__DeviceStatus__parameter11 = { - "eCallEventActive", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__DeviceStatus__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__DeviceStatus__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DeviceStatus__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DeviceStatus__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DeviceStatus__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DeviceStatus__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DeviceStatus__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DeviceStatus__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DeviceStatus__parameter8, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DeviceStatus__parameter9, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DeviceStatus__parameter10, - (const ford_message_descriptions:: - ParameterDescription*)&Common__DeviceStatus__parameter11, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__ECallInfo__parameter1 = { - "eCallNotificationStatus", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__ECallInfo__parameter2 = { - "auxECallNotificationStatus", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__ECallInfo__parameter3 = { - "eCallConfirmationStatus", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__ECallInfo__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__ECallInfo__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ECallInfo__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ECallInfo__parameter3, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__AirbagStatus__parameter1 = { - "driverAirbagDeployed", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__AirbagStatus__parameter2 = { - "driverSideAirbagDeployed", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__AirbagStatus__parameter3 = { - "driverCurtainAirbagDeployed", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__AirbagStatus__parameter4 = { - "passengerAirbagDeployed", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__AirbagStatus__parameter5 = {"passengerCurtainAirbagDeployed", - ford_message_descriptions::Enum, - true}; -const ford_message_descriptions::ParameterDescription - Common__AirbagStatus__parameter6 = { - "driverKneeAirbagDeployed", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__AirbagStatus__parameter7 = { - "passengerSideAirbagDeployed", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__AirbagStatus__parameter8 = { - "passengerKneeAirbagDeployed", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__AirbagStatus__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__AirbagStatus__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__AirbagStatus__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__AirbagStatus__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__AirbagStatus__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__AirbagStatus__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Common__AirbagStatus__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&Common__AirbagStatus__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&Common__AirbagStatus__parameter8, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__EmergencyEvent__parameter1 = { - "emergencyEventType", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__EmergencyEvent__parameter2 = { - "fuelCutoffStatus", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__EmergencyEvent__parameter3 = { - "rolloverEvent", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__EmergencyEvent__parameter4 = { - "maximumChangeVelocity", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__EmergencyEvent__parameter5 = { - "multipleEvents", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__EmergencyEvent__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__EmergencyEvent__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__EmergencyEvent__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__EmergencyEvent__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__EmergencyEvent__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__EmergencyEvent__parameter5, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__ClusterModeStatus__parameter1 = { - "powerModeActive", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription - Common__ClusterModeStatus__parameter2 = { - "powerModeQualificationStatus", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__ClusterModeStatus__parameter3 = { - "carModeStatus", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__ClusterModeStatus__parameter4 = { - "powerModeStatus", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__ClusterModeStatus__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClusterModeStatus__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClusterModeStatus__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClusterModeStatus__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClusterModeStatus__parameter4, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__MyKey__parameter1 = { - "e911Override", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__MyKey__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__MyKey__parameter1, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__RdsData__parameter1 = { - "PS", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__RdsData__parameter2 = { - "RT", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__RdsData__parameter3 = { - "CT", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__RdsData__parameter4 = { - "PI", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__RdsData__parameter5 = { - "PTY", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__RdsData__parameter6 = { - "TP", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__RdsData__parameter7 = { - "TA", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__RdsData__parameter8 = { - "REG", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__RdsData__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__RdsData__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RdsData__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RdsData__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RdsData__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RdsData__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RdsData__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RdsData__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RdsData__parameter8, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__RadioControlData__parameter1 = { - "frequencyInteger", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__RadioControlData__parameter2 = { - "frequencyFraction", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__RadioControlData__parameter3 = { - "band", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::StructDescription - Common__RadioControlData__parameter4 = { - {"rdsData", ford_message_descriptions::Struct, false}, - Structs::Common__RdsData__parameters}; -const ford_message_descriptions::ParameterDescription - Common__RadioControlData__parameter5 = { - "availableHDs", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__RadioControlData__parameter6 = { - "hdChannel", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__RadioControlData__parameter7 = { - "signalStrength", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__RadioControlData__parameter8 = { - "signalChangeThreshold", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__RadioControlData__parameter9 = { - "radioEnable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__RadioControlData__parameter10 = { - "state", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__RadioControlData__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlData__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlData__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlData__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlData__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlData__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlData__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlData__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlData__parameter8, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlData__parameter9, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlData__parameter10, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__RadioControlCapabilities__parameter1 = { - "moduleName", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - Common__RadioControlCapabilities__parameter2 = { - "radioEnableAvailable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__RadioControlCapabilities__parameter3 = { - "radioBandAvailable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__RadioControlCapabilities__parameter4 = { - "radioFrequencyAvailable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__RadioControlCapabilities__parameter5 = { - "hdChannelAvailable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__RadioControlCapabilities__parameter6 = { - "rdsDataAvailable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__RadioControlCapabilities__parameter7 = { - "availableHDsAvailable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__RadioControlCapabilities__parameter8 = { - "stateAvailable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__RadioControlCapabilities__parameter9 = { - "signalStrengthAvailable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__RadioControlCapabilities__parameter10 = { - "signalChangeThresholdAvailable", - ford_message_descriptions::Boolean, - false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__RadioControlCapabilities__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlCapabilities__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlCapabilities__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlCapabilities__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlCapabilities__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlCapabilities__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlCapabilities__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlCapabilities__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlCapabilities__parameter8, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlCapabilities__parameter9, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RadioControlCapabilities__parameter10, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__Temperature__parameter1 = { - "unit", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Common__Temperature__parameter2 = { - "value", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__Temperature__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__Temperature__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__Temperature__parameter2, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__ClimateControlData__parameter1 = { - "fanSpeed", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::StructDescription - Common__ClimateControlData__parameter2 = { - {"currentTemperature", ford_message_descriptions::Struct, false}, - Structs::Common__Temperature__parameters}; -const ford_message_descriptions::StructDescription - Common__ClimateControlData__parameter3 = { - {"desiredTemperature", ford_message_descriptions::Struct, false}, - Structs::Common__Temperature__parameters}; -const ford_message_descriptions::ParameterDescription - Common__ClimateControlData__parameter4 = { - "acEnable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__ClimateControlData__parameter5 = { - "circulateAirEnable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__ClimateControlData__parameter6 = { - "autoModeEnable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__ClimateControlData__parameter7 = { - "defrostZone", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - Common__ClimateControlData__parameter8 = { - "dualModeEnable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__ClimateControlData__parameter9 = { - "acMaxEnable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__ClimateControlData__parameter10 = { - "ventilationMode", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__ClimateControlData__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlData__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlData__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlData__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlData__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlData__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlData__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlData__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlData__parameter8, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlData__parameter9, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlData__parameter10, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__ClimateControlCapabilities__parameter1 = { - "moduleName", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - Common__ClimateControlCapabilities__parameter2 = { - "currentTemperatureAvailable", - ford_message_descriptions::Boolean, - false}; -const ford_message_descriptions::ParameterDescription - Common__ClimateControlCapabilities__parameter3 = { - "fanSpeedAvailable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__ClimateControlCapabilities__parameter4 = { - "desiredTemperatureAvailable", - ford_message_descriptions::Boolean, - false}; -const ford_message_descriptions::ParameterDescription - Common__ClimateControlCapabilities__parameter5 = { - "acEnableAvailable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__ClimateControlCapabilities__parameter6 = { - "acMaxEnableAvailable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__ClimateControlCapabilities__parameter7 = { - "circulateAirEnableAvailable", - ford_message_descriptions::Boolean, - false}; -const ford_message_descriptions::ParameterDescription - Common__ClimateControlCapabilities__parameter8 = { - "autoModeEnableAvailable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__ClimateControlCapabilities__parameter9 = { - "dualModeEnableAvailable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__ClimateControlCapabilities__parameter10 = { - "defrostZoneAvailable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__ClimateControlCapabilities__parameter11_array = { - "defrostZone", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ArrayDescription - Common__ClimateControlCapabilities__parameter11 = { - {"defrostZone", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlCapabilities__parameter11_array, - "i"}; -const ford_message_descriptions::ParameterDescription - Common__ClimateControlCapabilities__parameter12 = { - "ventilationModeAvailable", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__ClimateControlCapabilities__parameter13_array = { - "ventilationMode", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ArrayDescription - Common__ClimateControlCapabilities__parameter13 = { - {"ventilationMode", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlCapabilities__parameter13_array, - "i"}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__ClimateControlCapabilities__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlCapabilities__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlCapabilities__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlCapabilities__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlCapabilities__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlCapabilities__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlCapabilities__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlCapabilities__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlCapabilities__parameter8, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlCapabilities__parameter9, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlCapabilities__parameter10, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlCapabilities__parameter11, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlCapabilities__parameter12, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ClimateControlCapabilities__parameter13, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__ModuleData__parameter1 = { - "moduleType", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::StructDescription - Common__ModuleData__parameter2 = { - {"radioControlData", ford_message_descriptions::Struct, false}, - Structs::Common__RadioControlData__parameters}; -const ford_message_descriptions::StructDescription - Common__ModuleData__parameter3 = { - {"climateControlData", ford_message_descriptions::Struct, false}, - Structs::Common__ClimateControlData__parameters}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__ModuleData__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__ModuleData__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ModuleData__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__ModuleData__parameter3, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__DateTime__parameter1 = { - "millisecond", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__DateTime__parameter2 = { - "second", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__DateTime__parameter3 = { - "minute", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__DateTime__parameter4 = { - "hour", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__DateTime__parameter5 = { - "day", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__DateTime__parameter6 = { - "month", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__DateTime__parameter7 = { - "year", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__DateTime__parameter8 = { - "tz_hour", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Common__DateTime__parameter9 = { - "tz_minute", ford_message_descriptions::Integer, false}; -/*const ford_message_descriptions::ParameterDescription* - Structs::Common__DateTime__parameters[] = { - (const - ford_message_descriptions::ParameterDescription*)&Common__DateTime__parameter1, - (const - ford_message_descriptions::ParameterDescription*)&Common__DateTime__parameter2, - (const - ford_message_descriptions::ParameterDescription*)&Common__DateTime__parameter3, - (const - ford_message_descriptions::ParameterDescription*)&Common__DateTime__parameter4, - (const - ford_message_descriptions::ParameterDescription*)&Common__DateTime__parameter5, - (const - ford_message_descriptions::ParameterDescription*)&Common__DateTime__parameter6, - (const - ford_message_descriptions::ParameterDescription*)&Common__DateTime__parameter7, - (const - ford_message_descriptions::ParameterDescription*)&Common__DateTime__parameter8, - (const - ford_message_descriptions::ParameterDescription*)&Common__DateTime__parameter9, - NULL };*/ - -const ford_message_descriptions::ParameterDescription - Common__OASISAddress__parameter1 = { - "countryName", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__OASISAddress__parameter2 = { - "countryCode", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__OASISAddress__parameter3 = { - "postalCode", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__OASISAddress__parameter4 = { - "administrativeArea", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__OASISAddress__parameter5 = { - "subAdministrativeArea", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__OASISAddress__parameter6 = { - "locality", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__OASISAddress__parameter7 = { - "subLocality", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__OASISAddress__parameter8 = { - "thoroughfare", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__OASISAddress__parameter9 = { - "subThoroughfare", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__OASISAddress__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__OASISAddress__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__OASISAddress__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__OASISAddress__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__OASISAddress__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__OASISAddress__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Common__OASISAddress__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&Common__OASISAddress__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&Common__OASISAddress__parameter8, - (const ford_message_descriptions:: - ParameterDescription*)&Common__OASISAddress__parameter9, - NULL}; - -const ford_message_descriptions::StructDescription - Common__LocationDetails__parameter1 = { - {"coordinate", ford_message_descriptions::Struct, false}, - Structs::Common__Coordinate__parameters}; -const ford_message_descriptions::ParameterDescription - Common__LocationDetails__parameter2 = { - "locationName", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__LocationDetails__parameter3_array = { - "addressLines", ford_message_descriptions::String, true}; -const ford_message_descriptions::ArrayDescription - Common__LocationDetails__parameter3 = { - {"addressLines", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__LocationDetails__parameter3_array, - "s"}; -const ford_message_descriptions::ParameterDescription - Common__LocationDetails__parameter4 = { - "locationDescription", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Common__LocationDetails__parameter5 = { - "phoneNumber", ford_message_descriptions::String, false}; -const ford_message_descriptions::StructDescription - Common__LocationDetails__parameter6 = { - {"locationImage", ford_message_descriptions::Struct, false}, - Structs::Common__Image__parameters}; -const ford_message_descriptions::StructDescription - Common__LocationDetails__parameter7 = { - {"searchAddress", ford_message_descriptions::Struct, false}, - Structs::Common__OASISAddress__parameters}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__LocationDetails__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__LocationDetails__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__LocationDetails__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__LocationDetails__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__LocationDetails__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Common__LocationDetails__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Common__LocationDetails__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&Common__LocationDetails__parameter7, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__NavigationCapability__parameter1 = { - "sendLocationEnabled", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - Common__NavigationCapability__parameter2 = { - "getWayPointsEnabled", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__NavigationCapability__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__NavigationCapability__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__NavigationCapability__parameter2, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__PhoneCapability__parameter1 = { - "dialNumberEnabled", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__PhoneCapability__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__PhoneCapability__parameter1, - NULL}; - -const ford_message_descriptions::StructDescription - Common__VideoStreamingCapability__parameter1 = { - {"preferredResolution", ford_message_descriptions::Struct, false}, - Structs::Common__ImageResolution__parameters}; -const ford_message_descriptions::ParameterDescription - Common__VideoStreamingCapability__parameter2 = { - "maxBitrate", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::StructDescription - Common__VideoStreamingCapability__parameter3_array = { - {"supportedFormats", ford_message_descriptions::Struct, true}, - Structs::Common__VideoStreamingFormat__parameters}; -const ford_message_descriptions::ArrayDescription - Common__VideoStreamingCapability__parameter3 = { - {"supportedFormats", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__VideoStreamingCapability__parameter3_array, - "(ii)"}; -const ford_message_descriptions::ParameterDescription - Common__VideoStreamingCapability__parameter4 = { - "hapticSpatialDataSupported", - ford_message_descriptions::Boolean, - false}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__VideoStreamingCapability__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__VideoStreamingCapability__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__VideoStreamingCapability__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__VideoStreamingCapability__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__VideoStreamingCapability__parameter4, - NULL}; - -const ford_message_descriptions::StructDescription - Common__SystemCapabilities__parameter1 = { - {"navigationCapability", ford_message_descriptions::Struct, false}, - Structs::Common__NavigationCapability__parameters}; -const ford_message_descriptions::StructDescription - Common__SystemCapabilities__parameter2 = { - {"phoneCapability", ford_message_descriptions::Struct, false}, - Structs::Common__PhoneCapability__parameters}; -const ford_message_descriptions::StructDescription - Common__SystemCapabilities__parameter3 = { - {"videoStreamingCapability", ford_message_descriptions::Struct, false}, - Structs::Common__VideoStreamingCapability__parameters}; -/*const ford_message_descriptions::ParameterDescription* - Structs::Common__SystemCapabilities__parameters[] = { - (const - ford_message_descriptions::ParameterDescription*)&Common__SystemCapabilities__parameter1, - (const - ford_message_descriptions::ParameterDescription*)&Common__SystemCapabilities__parameter2, - (const - ford_message_descriptions::ParameterDescription*)&Common__SystemCapabilities__parameter3, - NULL };*/ - -const ford_message_descriptions::StructDescription - Common__RemoteControlCapabilities__parameter1_array = { - {"climateControlCapabilities", ford_message_descriptions::Struct, true}, - Structs::Common__ClimateControlCapabilities__parameters}; -const ford_message_descriptions::ArrayDescription - Common__RemoteControlCapabilities__parameter1 = { - {"climateControlCapabilities", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RemoteControlCapabilities__parameter1_array, - "(s(bb)(bb)(bb)(bb)(bb)(bb)(bb)(bb)(bb)(bai)(bb)(bai))"}; -const ford_message_descriptions::StructDescription - Common__RemoteControlCapabilities__parameter2_array = { - {"radioControlCapabilities", ford_message_descriptions::Struct, true}, - Structs::Common__RadioControlCapabilities__parameters}; -const ford_message_descriptions::ArrayDescription - Common__RemoteControlCapabilities__parameter2 = { - {"radioControlCapabilities", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RemoteControlCapabilities__parameter2_array, - "(s(bb)(bb)(bb)(bb)(bb)(bb)(bb)(bb)(bb))"}; -const ford_message_descriptions::StructDescription - Common__RemoteControlCapabilities__parameter3_array = { - {"buttonCapabilities", ford_message_descriptions::Struct, true}, - Structs::Common__ButtonCapabilities__parameters}; -const ford_message_descriptions::ArrayDescription - Common__RemoteControlCapabilities__parameter3 = { - {"buttonCapabilities", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RemoteControlCapabilities__parameter3_array, - "(ibbb)"}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__RemoteControlCapabilities__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__RemoteControlCapabilities__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RemoteControlCapabilities__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__RemoteControlCapabilities__parameter3, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__Rectangle__parameter1 = { - "x", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription - Common__Rectangle__parameter2 = { - "y", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription - Common__Rectangle__parameter3 = { - "width", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription - Common__Rectangle__parameter4 = { - "height", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__Rectangle__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__Rectangle__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__Rectangle__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Common__Rectangle__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Common__Rectangle__parameter4, - NULL}; - -const ford_message_descriptions::ParameterDescription - Common__HapticRect__parameter1 = { - "id", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::StructDescription - Common__HapticRect__parameter2 = { - {"rect", ford_message_descriptions::Struct, true}, - Structs::Common__Rectangle__parameters}; -const ford_message_descriptions::ParameterDescription* - Structs::Common__HapticRect__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Common__HapticRect__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Common__HapticRect__parameter2, - NULL}; - -const ford_message_descriptions::ParameterDescription* - Buttons__GetCapabilities__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - Buttons__GetCapabilities__request = { - "Buttons", - "GetCapabilities", - hmi_apis::messageType::request, - hmi_apis::FunctionID::Buttons_GetCapabilities, - Buttons__GetCapabilities__request__parameters}; - -const ford_message_descriptions::StructDescription - Buttons__GetCapabilities__response__parameter1_array = { - {"capabilities", ford_message_descriptions::Struct, true}, - Structs::Common__ButtonCapabilities__parameters}; -const ford_message_descriptions::ArrayDescription - Buttons__GetCapabilities__response__parameter1 = { - {"capabilities", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&Buttons__GetCapabilities__response__parameter1_array, - "(ibbb)"}; -const ford_message_descriptions::StructDescription - Buttons__GetCapabilities__response__parameter2 = { - {"presetBankCapabilities", ford_message_descriptions::Struct, false}, - Structs::Common__PresetBankCapabilities__parameters}; -const ford_message_descriptions::ParameterDescription* - Buttons__GetCapabilities__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Buttons__GetCapabilities__response__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Buttons__GetCapabilities__response__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - Buttons__GetCapabilities__response = { - "Buttons", - "GetCapabilities", - hmi_apis::messageType::response, - hmi_apis::FunctionID::Buttons_GetCapabilities, - Buttons__GetCapabilities__response__parameters}; - -const ford_message_descriptions::ParameterDescription - Buttons__OnButtonEvent__notification__parameter1 = { - "name", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Buttons__OnButtonEvent__notification__parameter2 = { - "mode", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Buttons__OnButtonEvent__notification__parameter3 = { - "customButtonID", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Buttons__OnButtonEvent__notification__parameter4 = { - "appID", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription* - Buttons__OnButtonEvent__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Buttons__OnButtonEvent__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Buttons__OnButtonEvent__notification__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Buttons__OnButtonEvent__notification__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Buttons__OnButtonEvent__notification__parameter4, - NULL}; -const ford_message_descriptions::MessageDescription - Buttons__OnButtonEvent__notification = { - "Buttons", - "OnButtonEvent", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::Buttons_OnButtonEvent, - Buttons__OnButtonEvent__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - Buttons__OnButtonPress__notification__parameter1 = { - "name", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Buttons__OnButtonPress__notification__parameter2 = { - "mode", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Buttons__OnButtonPress__notification__parameter3 = { - "customButtonID", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - Buttons__OnButtonPress__notification__parameter4 = { - "appID", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription* - Buttons__OnButtonPress__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Buttons__OnButtonPress__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Buttons__OnButtonPress__notification__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Buttons__OnButtonPress__notification__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Buttons__OnButtonPress__notification__parameter4, - NULL}; -const ford_message_descriptions::MessageDescription - Buttons__OnButtonPress__notification = { - "Buttons", - "OnButtonPress", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::Buttons_OnButtonPress, - Buttons__OnButtonPress__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - Buttons__OnButtonSubscription__notification__parameter1 = { - "name", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Buttons__OnButtonSubscription__notification__parameter2 = { - "isSubscribed", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription - Buttons__OnButtonSubscription__notification__parameter3 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - Buttons__OnButtonSubscription__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Buttons__OnButtonSubscription__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Buttons__OnButtonSubscription__notification__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Buttons__OnButtonSubscription__notification__parameter3, - NULL}; -const ford_message_descriptions::MessageDescription - Buttons__OnButtonSubscription__notification = { - "Buttons", - "OnButtonSubscription", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::Buttons_OnButtonSubscription, - Buttons__OnButtonSubscription__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnReady__notification__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnReady__notification = { - "BasicCommunication", - "OnReady", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnReady, - BasicCommunication__OnReady__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnStartDeviceDiscovery__notification__parameters[] = { - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnStartDeviceDiscovery__notification = { - "BasicCommunication", - "OnStartDeviceDiscovery", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnStartDeviceDiscovery, - BasicCommunication__OnStartDeviceDiscovery__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnUpdateDeviceList__notification__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnUpdateDeviceList__notification = { - "BasicCommunication", - "OnUpdateDeviceList", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnUpdateDeviceList, - BasicCommunication__OnUpdateDeviceList__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnPhoneCall__notification__parameter1 = { - "isActive", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnPhoneCall__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnPhoneCall__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnPhoneCall__notification = { - "BasicCommunication", - "OnPhoneCall", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnPhoneCall, - BasicCommunication__OnPhoneCall__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnEmergencyEvent__notification__parameter1 = { - "enabled", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnEmergencyEvent__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnEmergencyEvent__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnEmergencyEvent__notification = { - "BasicCommunication", - "OnEmergencyEvent", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnEmergencyEvent, - BasicCommunication__OnEmergencyEvent__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnResumeAudioSource__notification__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnResumeAudioSource__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnResumeAudioSource__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnResumeAudioSource__notification = { - "BasicCommunication", - "OnResumeAudioSource", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnResumeAudioSource, - BasicCommunication__OnResumeAudioSource__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnSDLPersistenceComplete__notification__parameters[] = { - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnSDLPersistenceComplete__notification = { - "BasicCommunication", - "OnSDLPersistenceComplete", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnSDLPersistenceComplete, - BasicCommunication__OnSDLPersistenceComplete__notification__parameters}; - -const ford_message_descriptions::StructDescription - BasicCommunication__UpdateAppList__request__parameter1_array = { - {"applications", ford_message_descriptions::Struct, true}, - Structs::Common__HMIApplication__parameters}; -const ford_message_descriptions::ArrayDescription - BasicCommunication__UpdateAppList__request__parameter1 = { - {"applications", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__UpdateAppList__request__parameter1_array, - "(s(bs)(bs)(ss(bi)(bb))s(ba(si))(bas)iib(bai)(bb)(bai))"}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__UpdateAppList__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__UpdateAppList__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__UpdateAppList__request = { - "BasicCommunication", - "UpdateAppList", - hmi_apis::messageType::request, - hmi_apis::FunctionID::BasicCommunication_UpdateAppList, - BasicCommunication__UpdateAppList__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - BasicCommunication__UpdateAppList__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__UpdateAppList__response = { - "BasicCommunication", - "UpdateAppList", - hmi_apis::messageType::response, - hmi_apis::FunctionID::BasicCommunication_UpdateAppList, - BasicCommunication__UpdateAppList__response__parameters}; - -const ford_message_descriptions::StructDescription - BasicCommunication__UpdateDeviceList__request__parameter1_array = { - {"deviceList", ford_message_descriptions::Struct, true}, - Structs::Common__DeviceInfo__parameters}; -const ford_message_descriptions::ArrayDescription - BasicCommunication__UpdateDeviceList__request__parameter1 = { - {"deviceList", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__UpdateDeviceList__request__parameter1_array, - "(ss(bi)(bb))"}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__UpdateDeviceList__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__UpdateDeviceList__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__UpdateDeviceList__request = { - "BasicCommunication", - "UpdateDeviceList", - hmi_apis::messageType::request, - hmi_apis::FunctionID::BasicCommunication_UpdateDeviceList, - BasicCommunication__UpdateDeviceList__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - BasicCommunication__UpdateDeviceList__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__UpdateDeviceList__response = { - "BasicCommunication", - "UpdateDeviceList", - hmi_apis::messageType::response, - hmi_apis::FunctionID::BasicCommunication_UpdateDeviceList, - BasicCommunication__UpdateDeviceList__response__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnFileRemoved__notification__parameter1 = { - "fileName", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnFileRemoved__notification__parameter2 = { - "fileType", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnFileRemoved__notification__parameter3 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnFileRemoved__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnFileRemoved__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnFileRemoved__notification__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnFileRemoved__notification__parameter3, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnFileRemoved__notification = { - "BasicCommunication", - "OnFileRemoved", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnFileRemoved, - BasicCommunication__OnFileRemoved__notification__parameters}; - -const ford_message_descriptions::StructDescription - BasicCommunication__AllowDeviceToConnect__request__parameter1 = { - {"device", ford_message_descriptions::Struct, true}, - Structs::Common__DeviceInfo__parameters}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__AllowDeviceToConnect__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__AllowDeviceToConnect__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__AllowDeviceToConnect__request = { - "BasicCommunication", - "AllowDeviceToConnect", - hmi_apis::messageType::request, - hmi_apis::FunctionID::BasicCommunication_AllowDeviceToConnect, - BasicCommunication__AllowDeviceToConnect__request__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__AllowDeviceToConnect__response__parameter1 = { - "allow", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__AllowDeviceToConnect__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__AllowDeviceToConnect__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__AllowDeviceToConnect__response = { - "BasicCommunication", - "AllowDeviceToConnect", - hmi_apis::messageType::response, - hmi_apis::FunctionID::BasicCommunication_AllowDeviceToConnect, - BasicCommunication__AllowDeviceToConnect__response__parameters}; - -const ford_message_descriptions::StructDescription - BasicCommunication__OnDeviceChosen__notification__parameter1 = { - {"deviceInfo", ford_message_descriptions::Struct, true}, - Structs::Common__DeviceInfo__parameters}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnDeviceChosen__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnDeviceChosen__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnDeviceChosen__notification = { - "BasicCommunication", - "OnDeviceChosen", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnDeviceChosen, - BasicCommunication__OnDeviceChosen__notification__parameters}; - -const ford_message_descriptions::StructDescription - BasicCommunication__OnFindApplications__notification__parameter1 = { - {"deviceInfo", ford_message_descriptions::Struct, false}, - Structs::Common__DeviceInfo__parameters}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnFindApplications__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnFindApplications__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnFindApplications__notification = { - "BasicCommunication", - "OnFindApplications", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnFindApplications, - BasicCommunication__OnFindApplications__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__ActivateApp__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__ActivateApp__request__parameter2 = { - "priority", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__ActivateApp__request__parameter3 = { - "level", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__ActivateApp__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__ActivateApp__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__ActivateApp__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__ActivateApp__request__parameter3, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__ActivateApp__request = { - "BasicCommunication", - "ActivateApp", - hmi_apis::messageType::request, - hmi_apis::FunctionID::BasicCommunication_ActivateApp, - BasicCommunication__ActivateApp__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - BasicCommunication__ActivateApp__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__ActivateApp__response = { - "BasicCommunication", - "ActivateApp", - hmi_apis::messageType::response, - hmi_apis::FunctionID::BasicCommunication_ActivateApp, - BasicCommunication__ActivateApp__response__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnAppActivated__notification__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnAppActivated__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnAppActivated__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnAppActivated__notification = { - "BasicCommunication", - "OnAppActivated", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnAppActivated, - BasicCommunication__OnAppActivated__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnAppDeactivated__notification__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnAppDeactivated__notification__parameter2 = { - "reason", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnAppDeactivated__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnAppDeactivated__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnAppDeactivated__notification__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnAppDeactivated__notification = { - "BasicCommunication", - "OnAppDeactivated", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnAppDeactivated, - BasicCommunication__OnAppDeactivated__notification__parameters}; - -const ford_message_descriptions::StructDescription - BasicCommunication__OnAppRegistered__notification__parameter1 = { - {"application", ford_message_descriptions::Struct, true}, - Structs::Common__HMIApplication__parameters}; -const ford_message_descriptions::StructDescription - BasicCommunication__OnAppRegistered__notification__parameter2_array = { - {"ttsName", ford_message_descriptions::Struct, true}, - Structs::Common__TTSChunk__parameters}; -const ford_message_descriptions::ArrayDescription - BasicCommunication__OnAppRegistered__notification__parameter2 = { - {"ttsName", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnAppRegistered__notification__parameter2_array, - "(si)"}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnAppRegistered__notification__parameter3_array = { - "vrSynonyms", ford_message_descriptions::String, true}; -const ford_message_descriptions::ArrayDescription - BasicCommunication__OnAppRegistered__notification__parameter3 = { - {"vrSynonyms", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnAppRegistered__notification__parameter3_array, - "s"}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnAppRegistered__notification__parameter4 = { - "resumeVrGrammars", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnAppRegistered__notification__parameter5 = { - "priority", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnAppRegistered__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnAppRegistered__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnAppRegistered__notification__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnAppRegistered__notification__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnAppRegistered__notification__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnAppRegistered__notification__parameter5, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnAppRegistered__notification = { - "BasicCommunication", - "OnAppRegistered", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnAppRegistered, - BasicCommunication__OnAppRegistered__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnAppUnregistered__notification__parameter1 = { - "unexpectedDisconnect", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnAppUnregistered__notification__parameter2 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnAppUnregistered__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnAppUnregistered__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnAppUnregistered__notification__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnAppUnregistered__notification = { - "BasicCommunication", - "OnAppUnregistered", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnAppUnregistered, - BasicCommunication__OnAppUnregistered__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnExitApplication__notification__parameter1 = { - "reason", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnExitApplication__notification__parameter2 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnExitApplication__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnExitApplication__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnExitApplication__notification__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnExitApplication__notification = { - "BasicCommunication", - "OnExitApplication", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnExitApplication, - BasicCommunication__OnExitApplication__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnExitAllApplications__notification__parameter1 = { - "reason", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnExitAllApplications__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnExitAllApplications__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnExitAllApplications__notification = { - "BasicCommunication", - "OnExitAllApplications", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnExitAllApplications, - BasicCommunication__OnExitAllApplications__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnAwakeSDL__notification__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnAwakeSDL__notification = { - "BasicCommunication", - "OnAwakeSDL", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnAwakeSDL, - BasicCommunication__OnAwakeSDL__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - BasicCommunication__MixingAudioSupported__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__MixingAudioSupported__request = { - "BasicCommunication", - "MixingAudioSupported", - hmi_apis::messageType::request, - hmi_apis::FunctionID::BasicCommunication_MixingAudioSupported, - BasicCommunication__MixingAudioSupported__request__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__MixingAudioSupported__response__parameter1 = { - "attenuatedSupported", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__MixingAudioSupported__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__MixingAudioSupported__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__MixingAudioSupported__response = { - "BasicCommunication", - "MixingAudioSupported", - hmi_apis::messageType::response, - hmi_apis::FunctionID::BasicCommunication_MixingAudioSupported, - BasicCommunication__MixingAudioSupported__response__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__PlayTone__notification__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__PlayTone__notification__parameter2 = { - "methodName", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__PlayTone__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__PlayTone__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__PlayTone__notification__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__PlayTone__notification = { - "BasicCommunication", - "PlayTone", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_PlayTone, - BasicCommunication__PlayTone__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__DialNumber__request__parameter1 = { - "number", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__DialNumber__request__parameter2 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__DialNumber__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__DialNumber__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__DialNumber__request__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__DialNumber__request = { - "BasicCommunication", - "DialNumber", - hmi_apis::messageType::request, - hmi_apis::FunctionID::BasicCommunication_DialNumber, - BasicCommunication__DialNumber__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - BasicCommunication__DialNumber__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__DialNumber__response = { - "BasicCommunication", - "DialNumber", - hmi_apis::messageType::response, - hmi_apis::FunctionID::BasicCommunication_DialNumber, - BasicCommunication__DialNumber__response__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnSystemRequest__notification__parameter1 = { - "requestType", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnSystemRequest__notification__parameter2 = { - "url", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnSystemRequest__notification__parameter3 = { - "fileType", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnSystemRequest__notification__parameter4 = { - "offset", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnSystemRequest__notification__parameter5 = { - "length", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnSystemRequest__notification__parameter6 = { - "timeout", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnSystemRequest__notification__parameter7 = { - "fileName", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnSystemRequest__notification__parameter8 = { - "appID", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnSystemRequest__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnSystemRequest__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnSystemRequest__notification__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnSystemRequest__notification__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnSystemRequest__notification__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnSystemRequest__notification__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnSystemRequest__notification__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnSystemRequest__notification__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnSystemRequest__notification__parameter8, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnSystemRequest__notification = { - "BasicCommunication", - "OnSystemRequest", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnSystemRequest, - BasicCommunication__OnSystemRequest__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__SystemRequest__request__parameter1 = { - "requestType", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__SystemRequest__request__parameter2 = { - "fileName", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__SystemRequest__request__parameter3 = { - "appID", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__SystemRequest__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__SystemRequest__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__SystemRequest__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__SystemRequest__request__parameter3, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__SystemRequest__request = { - "BasicCommunication", - "SystemRequest", - hmi_apis::messageType::request, - hmi_apis::FunctionID::BasicCommunication_SystemRequest, - BasicCommunication__SystemRequest__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - BasicCommunication__SystemRequest__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__SystemRequest__response = { - "BasicCommunication", - "SystemRequest", - hmi_apis::messageType::response, - hmi_apis::FunctionID::BasicCommunication_SystemRequest, - BasicCommunication__SystemRequest__response__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__PolicyUpdate__request__parameter1 = { - "file", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__PolicyUpdate__request__parameter2 = { - "timeout", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__PolicyUpdate__request__parameter3_array = { - "retry", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ArrayDescription - BasicCommunication__PolicyUpdate__request__parameter3 = { - {"retry", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__PolicyUpdate__request__parameter3_array, - "i"}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__PolicyUpdate__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__PolicyUpdate__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__PolicyUpdate__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__PolicyUpdate__request__parameter3, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__PolicyUpdate__request = { - "BasicCommunication", - "PolicyUpdate", - hmi_apis::messageType::request, - hmi_apis::FunctionID::BasicCommunication_PolicyUpdate, - BasicCommunication__PolicyUpdate__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - BasicCommunication__PolicyUpdate__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__PolicyUpdate__response = { - "BasicCommunication", - "PolicyUpdate", - hmi_apis::messageType::response, - hmi_apis::FunctionID::BasicCommunication_PolicyUpdate, - BasicCommunication__PolicyUpdate__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnSDLClose__notification__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnSDLClose__notification = { - "BasicCommunication", - "OnSDLClose", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnSDLClose, - BasicCommunication__OnSDLClose__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnPutFile__notification__parameter1 = { - "offset", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnPutFile__notification__parameter2 = { - "length", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnPutFile__notification__parameter3 = { - "fileSize", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnPutFile__notification__parameter4 = { - "FileName", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnPutFile__notification__parameter5 = { - "syncFileName", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnPutFile__notification__parameter6 = { - "fileType", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnPutFile__notification__parameter7 = { - "persistentFile", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnPutFile__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnPutFile__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnPutFile__notification__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnPutFile__notification__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnPutFile__notification__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnPutFile__notification__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnPutFile__notification__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnPutFile__notification__parameter7, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnPutFile__notification = { - "BasicCommunication", - "OnPutFile", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnPutFile, - BasicCommunication__OnPutFile__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - BasicCommunication__GetSystemInfo__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__GetSystemInfo__request = { - "BasicCommunication", - "GetSystemInfo", - hmi_apis::messageType::request, - hmi_apis::FunctionID::BasicCommunication_GetSystemInfo, - BasicCommunication__GetSystemInfo__request__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__GetSystemInfo__response__parameter1 = { - "ccpu_version", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__GetSystemInfo__response__parameter2 = { - "language", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__GetSystemInfo__response__parameter3 = { - "wersCountryCode", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__GetSystemInfo__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__GetSystemInfo__response__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__GetSystemInfo__response__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__GetSystemInfo__response__parameter3, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__GetSystemInfo__response = { - "BasicCommunication", - "GetSystemInfo", - hmi_apis::messageType::response, - hmi_apis::FunctionID::BasicCommunication_GetSystemInfo, - BasicCommunication__GetSystemInfo__response__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnSystemInfoChanged__notification__parameter1 = { - "language", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnSystemInfoChanged__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnSystemInfoChanged__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnSystemInfoChanged__notification = { - "BasicCommunication", - "OnSystemInfoChanged", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnSystemInfoChanged, - BasicCommunication__OnSystemInfoChanged__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnIgnitionCycleOver__notification__parameters[] = { - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnIgnitionCycleOver__notification = { - "BasicCommunication", - "OnIgnitionCycleOver", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnIgnitionCycleOver, - BasicCommunication__OnIgnitionCycleOver__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__DecryptCertificate__request__parameter1 = { - "fileName", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__DecryptCertificate__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__DecryptCertificate__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__DecryptCertificate__request = { - "BasicCommunication", - "DecryptCertificate", - hmi_apis::messageType::request, - hmi_apis::FunctionID::BasicCommunication_DecryptCertificate, - BasicCommunication__DecryptCertificate__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - BasicCommunication__DecryptCertificate__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__DecryptCertificate__response = { - "BasicCommunication", - "DecryptCertificate", - hmi_apis::messageType::response, - hmi_apis::FunctionID::BasicCommunication_DecryptCertificate, - BasicCommunication__DecryptCertificate__response__parameters}; - -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnEventChanged__notification__parameter1 = { - "eventName", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - BasicCommunication__OnEventChanged__notification__parameter2 = { - "isActive", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription* - BasicCommunication__OnEventChanged__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnEventChanged__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&BasicCommunication__OnEventChanged__notification__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - BasicCommunication__OnEventChanged__notification = { - "BasicCommunication", - "OnEventChanged", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::BasicCommunication_OnEventChanged, - BasicCommunication__OnEventChanged__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - VR__IsReady__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription VR__IsReady__request = { - "VR", - "IsReady", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VR_IsReady, - VR__IsReady__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VR__IsReady__response__parameter1 = { - "available", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription* - VR__IsReady__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VR__IsReady__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription VR__IsReady__response = { - "VR", - "IsReady", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VR_IsReady, - VR__IsReady__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VR__Started__notification__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription VR__Started__notification = - {"VR", - "Started", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VR_Started, - VR__Started__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - VR__Stopped__notification__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription VR__Stopped__notification = - {"VR", - "Stopped", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VR_Stopped, - VR__Stopped__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - VR__AddCommand__request__parameter1 = { - "cmdID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - VR__AddCommand__request__parameter2_array = { - "vrCommands", ford_message_descriptions::String, true}; -const ford_message_descriptions::ArrayDescription - VR__AddCommand__request__parameter2 = { - {"vrCommands", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&VR__AddCommand__request__parameter2_array, - "s"}; -const ford_message_descriptions::ParameterDescription - VR__AddCommand__request__parameter3 = { - "type", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - VR__AddCommand__request__parameter4 = { - "grammarID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - VR__AddCommand__request__parameter5 = { - "appID", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription* - VR__AddCommand__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VR__AddCommand__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&VR__AddCommand__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&VR__AddCommand__request__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&VR__AddCommand__request__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&VR__AddCommand__request__parameter5, - NULL}; -const ford_message_descriptions::MessageDescription VR__AddCommand__request = { - "VR", - "AddCommand", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VR_AddCommand, - VR__AddCommand__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - VR__AddCommand__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription VR__AddCommand__response = { - "VR", - "AddCommand", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VR_AddCommand, - VR__AddCommand__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VR__DeleteCommand__request__parameter1 = { - "cmdID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - VR__DeleteCommand__request__parameter2 = { - "type", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - VR__DeleteCommand__request__parameter3 = { - "grammarID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - VR__DeleteCommand__request__parameter4 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VR__DeleteCommand__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VR__DeleteCommand__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&VR__DeleteCommand__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&VR__DeleteCommand__request__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&VR__DeleteCommand__request__parameter4, - NULL}; -const ford_message_descriptions::MessageDescription VR__DeleteCommand__request = - {"VR", - "DeleteCommand", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VR_DeleteCommand, - VR__DeleteCommand__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - VR__DeleteCommand__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VR__DeleteCommand__response = {"VR", - "DeleteCommand", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VR_DeleteCommand, - VR__DeleteCommand__response__parameters}; - -const ford_message_descriptions::StructDescription - VR__PerformInteraction__request__parameter1_array = { - {"helpPrompt", ford_message_descriptions::Struct, true}, - Structs::Common__TTSChunk__parameters}; -const ford_message_descriptions::ArrayDescription - VR__PerformInteraction__request__parameter1 = { - {"helpPrompt", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&VR__PerformInteraction__request__parameter1_array, - "(si)"}; -const ford_message_descriptions::StructDescription - VR__PerformInteraction__request__parameter2_array = { - {"initialPrompt", ford_message_descriptions::Struct, true}, - Structs::Common__TTSChunk__parameters}; -const ford_message_descriptions::ArrayDescription - VR__PerformInteraction__request__parameter2 = { - {"initialPrompt", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&VR__PerformInteraction__request__parameter2_array, - "(si)"}; -const ford_message_descriptions::StructDescription - VR__PerformInteraction__request__parameter3_array = { - {"timeoutPrompt", ford_message_descriptions::Struct, true}, - Structs::Common__TTSChunk__parameters}; -const ford_message_descriptions::ArrayDescription - VR__PerformInteraction__request__parameter3 = { - {"timeoutPrompt", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&VR__PerformInteraction__request__parameter3_array, - "(si)"}; -const ford_message_descriptions::ParameterDescription - VR__PerformInteraction__request__parameter4 = { - "timeout", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - VR__PerformInteraction__request__parameter5_array = { - "grammarID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ArrayDescription - VR__PerformInteraction__request__parameter5 = { - {"grammarID", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&VR__PerformInteraction__request__parameter5_array, - "i"}; -const ford_message_descriptions::ParameterDescription* - VR__PerformInteraction__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VR__PerformInteraction__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&VR__PerformInteraction__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&VR__PerformInteraction__request__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&VR__PerformInteraction__request__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&VR__PerformInteraction__request__parameter5, - NULL}; -const ford_message_descriptions::MessageDescription - VR__PerformInteraction__request = { - "VR", - "PerformInteraction", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VR_PerformInteraction, - VR__PerformInteraction__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VR__PerformInteraction__response__parameter1 = { - "choiceID", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription* - VR__PerformInteraction__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VR__PerformInteraction__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VR__PerformInteraction__response = { - "VR", - "PerformInteraction", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VR_PerformInteraction, - VR__PerformInteraction__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VR__OnCommand__notification__parameter1 = { - "cmdID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - VR__OnCommand__notification__parameter2 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VR__OnCommand__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VR__OnCommand__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&VR__OnCommand__notification__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - VR__OnCommand__notification = {"VR", - "OnCommand", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VR_OnCommand, - VR__OnCommand__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - VR__ChangeRegistration__request__parameter1_array = { - "vrSynonyms", ford_message_descriptions::String, true}; -const ford_message_descriptions::ArrayDescription - VR__ChangeRegistration__request__parameter1 = { - {"vrSynonyms", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&VR__ChangeRegistration__request__parameter1_array, - "s"}; -const ford_message_descriptions::ParameterDescription - VR__ChangeRegistration__request__parameter2 = { - "language", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - VR__ChangeRegistration__request__parameter3 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VR__ChangeRegistration__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VR__ChangeRegistration__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&VR__ChangeRegistration__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&VR__ChangeRegistration__request__parameter3, - NULL}; -const ford_message_descriptions::MessageDescription - VR__ChangeRegistration__request = { - "VR", - "ChangeRegistration", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VR_ChangeRegistration, - VR__ChangeRegistration__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - VR__ChangeRegistration__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VR__ChangeRegistration__response = { - "VR", - "ChangeRegistration", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VR_ChangeRegistration, - VR__ChangeRegistration__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VR__OnLanguageChange__notification__parameter1 = { - "language", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - VR__OnLanguageChange__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VR__OnLanguageChange__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VR__OnLanguageChange__notification = { - "VR", - "OnLanguageChange", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VR_OnLanguageChange, - VR__OnLanguageChange__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - VR__GetSupportedLanguages__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VR__GetSupportedLanguages__request = { - "VR", - "GetSupportedLanguages", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VR_GetSupportedLanguages, - VR__GetSupportedLanguages__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VR__GetSupportedLanguages__response__parameter1_array = { - "languages", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ArrayDescription - VR__GetSupportedLanguages__response__parameter1 = { - {"languages", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&VR__GetSupportedLanguages__response__parameter1_array, - "i"}; -const ford_message_descriptions::ParameterDescription* - VR__GetSupportedLanguages__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VR__GetSupportedLanguages__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VR__GetSupportedLanguages__response = { - "VR", - "GetSupportedLanguages", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VR_GetSupportedLanguages, - VR__GetSupportedLanguages__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VR__GetLanguage__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription VR__GetLanguage__request = { - "VR", - "GetLanguage", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VR_GetLanguage, - VR__GetLanguage__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VR__GetLanguage__response__parameter1 = { - "language", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - VR__GetLanguage__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VR__GetLanguage__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription VR__GetLanguage__response = - {"VR", - "GetLanguage", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VR_GetLanguage, - VR__GetLanguage__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VR__GetCapabilities__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VR__GetCapabilities__request = {"VR", - "GetCapabilities", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VR_GetCapabilities, - VR__GetCapabilities__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VR__GetCapabilities__response__parameter1_array = { - "vrCapabilities", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ArrayDescription - VR__GetCapabilities__response__parameter1 = { - {"vrCapabilities", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&VR__GetCapabilities__response__parameter1_array, - "i"}; -const ford_message_descriptions::ParameterDescription* - VR__GetCapabilities__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VR__GetCapabilities__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VR__GetCapabilities__response = {"VR", - "GetCapabilities", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VR_GetCapabilities, - VR__GetCapabilities__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - TTS__GetCapabilities__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - TTS__GetCapabilities__request = {"TTS", - "GetCapabilities", - hmi_apis::messageType::request, - hmi_apis::FunctionID::TTS_GetCapabilities, - TTS__GetCapabilities__request__parameters}; - -const ford_message_descriptions::ParameterDescription - TTS__GetCapabilities__response__parameter1_array = { - "speechCapabilities", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ArrayDescription - TTS__GetCapabilities__response__parameter1 = { - {"speechCapabilities", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&TTS__GetCapabilities__response__parameter1_array, - "i"}; -const ford_message_descriptions::ParameterDescription - TTS__GetCapabilities__response__parameter2_array = { - "prerecordedSpeechCapabilities", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ArrayDescription - TTS__GetCapabilities__response__parameter2 = { - {"prerecordedSpeechCapabilities", - ford_message_descriptions::Array, - true}, - (const ford_message_descriptions:: - ParameterDescription*)&TTS__GetCapabilities__response__parameter2_array, - "i"}; -const ford_message_descriptions::ParameterDescription* - TTS__GetCapabilities__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&TTS__GetCapabilities__response__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&TTS__GetCapabilities__response__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - TTS__GetCapabilities__response = { - "TTS", - "GetCapabilities", - hmi_apis::messageType::response, - hmi_apis::FunctionID::TTS_GetCapabilities, - TTS__GetCapabilities__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - TTS__Started__notification__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription TTS__Started__notification = - {"TTS", - "Started", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::TTS_Started, - TTS__Started__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - TTS__Stopped__notification__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription TTS__Stopped__notification = - {"TTS", - "Stopped", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::TTS_Stopped, - TTS__Stopped__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - TTS__IsReady__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription TTS__IsReady__request = { - "TTS", - "IsReady", - hmi_apis::messageType::request, - hmi_apis::FunctionID::TTS_IsReady, - TTS__IsReady__request__parameters}; - -const ford_message_descriptions::ParameterDescription - TTS__IsReady__response__parameter1 = { - "available", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription* - TTS__IsReady__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&TTS__IsReady__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription TTS__IsReady__response = { - "TTS", - "IsReady", - hmi_apis::messageType::response, - hmi_apis::FunctionID::TTS_IsReady, - TTS__IsReady__response__parameters}; - -const ford_message_descriptions::StructDescription - TTS__Speak__request__parameter1_array = { - {"ttsChunks", ford_message_descriptions::Struct, true}, - Structs::Common__TTSChunk__parameters}; -const ford_message_descriptions::ArrayDescription - TTS__Speak__request__parameter1 = { - {"ttsChunks", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&TTS__Speak__request__parameter1_array, - "(si)"}; -const ford_message_descriptions::ParameterDescription - TTS__Speak__request__parameter2 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - TTS__Speak__request__parameter3 = { - "speakType", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription* - TTS__Speak__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&TTS__Speak__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&TTS__Speak__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&TTS__Speak__request__parameter3, - NULL}; -const ford_message_descriptions::MessageDescription TTS__Speak__request = { - "TTS", - "Speak", - hmi_apis::messageType::request, - hmi_apis::FunctionID::TTS_Speak, - TTS__Speak__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - TTS__Speak__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription TTS__Speak__response = { - "TTS", - "Speak", - hmi_apis::messageType::response, - hmi_apis::FunctionID::TTS_Speak, - TTS__Speak__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - TTS__StopSpeaking__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription TTS__StopSpeaking__request = - {"TTS", - "StopSpeaking", - hmi_apis::messageType::request, - hmi_apis::FunctionID::TTS_StopSpeaking, - TTS__StopSpeaking__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - TTS__StopSpeaking__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - TTS__StopSpeaking__response = {"TTS", - "StopSpeaking", - hmi_apis::messageType::response, - hmi_apis::FunctionID::TTS_StopSpeaking, - TTS__StopSpeaking__response__parameters}; - -const ford_message_descriptions::StructDescription - TTS__ChangeRegistration__request__parameter1_array = { - {"ttsName", ford_message_descriptions::Struct, true}, - Structs::Common__TTSChunk__parameters}; -const ford_message_descriptions::ArrayDescription - TTS__ChangeRegistration__request__parameter1 = { - {"ttsName", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&TTS__ChangeRegistration__request__parameter1_array, - "(si)"}; -const ford_message_descriptions::ParameterDescription - TTS__ChangeRegistration__request__parameter2 = { - "language", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - TTS__ChangeRegistration__request__parameter3 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - TTS__ChangeRegistration__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&TTS__ChangeRegistration__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&TTS__ChangeRegistration__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&TTS__ChangeRegistration__request__parameter3, - NULL}; -const ford_message_descriptions::MessageDescription - TTS__ChangeRegistration__request = { - "TTS", - "ChangeRegistration", - hmi_apis::messageType::request, - hmi_apis::FunctionID::TTS_ChangeRegistration, - TTS__ChangeRegistration__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - TTS__ChangeRegistration__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - TTS__ChangeRegistration__response = { - "TTS", - "ChangeRegistration", - hmi_apis::messageType::response, - hmi_apis::FunctionID::TTS_ChangeRegistration, - TTS__ChangeRegistration__response__parameters}; - -const ford_message_descriptions::ParameterDescription - TTS__OnLanguageChange__notification__parameter1 = { - "language", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - TTS__OnLanguageChange__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&TTS__OnLanguageChange__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - TTS__OnLanguageChange__notification = { - "TTS", - "OnLanguageChange", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::TTS_OnLanguageChange, - TTS__OnLanguageChange__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - TTS__GetSupportedLanguages__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - TTS__GetSupportedLanguages__request = { - "TTS", - "GetSupportedLanguages", - hmi_apis::messageType::request, - hmi_apis::FunctionID::TTS_GetSupportedLanguages, - TTS__GetSupportedLanguages__request__parameters}; - -const ford_message_descriptions::ParameterDescription - TTS__GetSupportedLanguages__response__parameter1_array = { - "languages", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ArrayDescription - TTS__GetSupportedLanguages__response__parameter1 = { - {"languages", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&TTS__GetSupportedLanguages__response__parameter1_array, - "i"}; -const ford_message_descriptions::ParameterDescription* - TTS__GetSupportedLanguages__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&TTS__GetSupportedLanguages__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - TTS__GetSupportedLanguages__response = { - "TTS", - "GetSupportedLanguages", - hmi_apis::messageType::response, - hmi_apis::FunctionID::TTS_GetSupportedLanguages, - TTS__GetSupportedLanguages__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - TTS__GetLanguage__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription TTS__GetLanguage__request = - {"TTS", - "GetLanguage", - hmi_apis::messageType::request, - hmi_apis::FunctionID::TTS_GetLanguage, - TTS__GetLanguage__request__parameters}; - -const ford_message_descriptions::ParameterDescription - TTS__GetLanguage__response__parameter1 = { - "language", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - TTS__GetLanguage__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&TTS__GetLanguage__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription TTS__GetLanguage__response = - {"TTS", - "GetLanguage", - hmi_apis::messageType::response, - hmi_apis::FunctionID::TTS_GetLanguage, - TTS__GetLanguage__response__parameters}; - -const ford_message_descriptions::StructDescription - TTS__SetGlobalProperties__request__parameter1_array = { - {"helpPrompt", ford_message_descriptions::Struct, true}, - Structs::Common__TTSChunk__parameters}; -const ford_message_descriptions::ArrayDescription - TTS__SetGlobalProperties__request__parameter1 = { - {"helpPrompt", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&TTS__SetGlobalProperties__request__parameter1_array, - "(si)"}; -const ford_message_descriptions::StructDescription - TTS__SetGlobalProperties__request__parameter2_array = { - {"timeoutPrompt", ford_message_descriptions::Struct, true}, - Structs::Common__TTSChunk__parameters}; -const ford_message_descriptions::ArrayDescription - TTS__SetGlobalProperties__request__parameter2 = { - {"timeoutPrompt", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&TTS__SetGlobalProperties__request__parameter2_array, - "(si)"}; -const ford_message_descriptions::ParameterDescription - TTS__SetGlobalProperties__request__parameter3 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - TTS__SetGlobalProperties__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&TTS__SetGlobalProperties__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&TTS__SetGlobalProperties__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&TTS__SetGlobalProperties__request__parameter3, - NULL}; -const ford_message_descriptions::MessageDescription - TTS__SetGlobalProperties__request = { - "TTS", - "SetGlobalProperties", - hmi_apis::messageType::request, - hmi_apis::FunctionID::TTS_SetGlobalProperties, - TTS__SetGlobalProperties__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - TTS__SetGlobalProperties__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - TTS__SetGlobalProperties__response = { - "TTS", - "SetGlobalProperties", - hmi_apis::messageType::response, - hmi_apis::FunctionID::TTS_SetGlobalProperties, - TTS__SetGlobalProperties__response__parameters}; - -const ford_message_descriptions::ParameterDescription - TTS__OnResetTimeout__notification__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - TTS__OnResetTimeout__notification__parameter2 = { - "methodName", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription* - TTS__OnResetTimeout__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&TTS__OnResetTimeout__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&TTS__OnResetTimeout__notification__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - TTS__OnResetTimeout__notification = { - "TTS", - "OnResetTimeout", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::TTS_OnResetTimeout, - TTS__OnResetTimeout__notification__parameters}; - -const ford_message_descriptions::StructDescription - UI__Alert__request__parameter1_array = { - {"alertStrings", ford_message_descriptions::Struct, true}, - Structs::Common__TextFieldStruct__parameters}; -const ford_message_descriptions::ArrayDescription - UI__Alert__request__parameter1 = { - {"alertStrings", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Alert__request__parameter1_array, - "(is)"}; -const ford_message_descriptions::ParameterDescription - UI__Alert__request__parameter2 = { - "duration", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::StructDescription - UI__Alert__request__parameter3_array = { - {"softButtons", ford_message_descriptions::Struct, true}, - Structs::Common__SoftButton__parameters}; -const ford_message_descriptions::ArrayDescription - UI__Alert__request__parameter3 = { - {"softButtons", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Alert__request__parameter3_array, - "(i(bs)(b(si))(bb)ii)"}; -const ford_message_descriptions::ParameterDescription - UI__Alert__request__parameter4 = { - "progressIndicator", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - UI__Alert__request__parameter5 = { - "alertType", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - UI__Alert__request__parameter6 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - UI__Alert__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__Alert__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Alert__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Alert__request__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Alert__request__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Alert__request__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Alert__request__parameter6, - NULL}; -const ford_message_descriptions::MessageDescription UI__Alert__request = { - "UI", - "Alert", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_Alert, - UI__Alert__request__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__Alert__response__parameter1 = { - "tryAgainTime", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription* - UI__Alert__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__Alert__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription UI__Alert__response = { - "UI", - "Alert", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_Alert, - UI__Alert__response__parameters}; - -const ford_message_descriptions::StructDescription - UI__Show__request__parameter1_array = { - {"showStrings", ford_message_descriptions::Struct, true}, - Structs::Common__TextFieldStruct__parameters}; -const ford_message_descriptions::ArrayDescription - UI__Show__request__parameter1 = { - {"showStrings", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Show__request__parameter1_array, - "(is)"}; -const ford_message_descriptions::ParameterDescription - UI__Show__request__parameter2 = { - "alignment", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::StructDescription - UI__Show__request__parameter3 = { - {"graphic", ford_message_descriptions::Struct, false}, - Structs::Common__Image__parameters}; -const ford_message_descriptions::StructDescription - UI__Show__request__parameter4 = { - {"secondaryGraphic", ford_message_descriptions::Struct, false}, - Structs::Common__Image__parameters}; -const ford_message_descriptions::StructDescription - UI__Show__request__parameter5_array = { - {"softButtons", ford_message_descriptions::Struct, true}, - Structs::Common__SoftButton__parameters}; -const ford_message_descriptions::ArrayDescription - UI__Show__request__parameter5 = { - {"softButtons", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Show__request__parameter5_array, - "(i(bs)(b(si))(bb)ii)"}; -const ford_message_descriptions::ParameterDescription - UI__Show__request__parameter6_array = { - "customPresets", ford_message_descriptions::String, true}; -const ford_message_descriptions::ArrayDescription - UI__Show__request__parameter6 = { - {"customPresets", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Show__request__parameter6_array, - "s"}; -const ford_message_descriptions::ParameterDescription - UI__Show__request__parameter7 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - UI__Show__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__Show__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Show__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Show__request__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Show__request__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Show__request__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Show__request__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Show__request__parameter7, - NULL}; -const ford_message_descriptions::MessageDescription UI__Show__request = { - "UI", - "Show", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_Show, - UI__Show__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - UI__Show__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription UI__Show__response = { - "UI", - "Show", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_Show, - UI__Show__response__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__AddCommand__request__parameter1 = { - "cmdID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::StructDescription - UI__AddCommand__request__parameter2 = { - {"menuParams", ford_message_descriptions::Struct, false}, - Structs::Common__MenuParams__parameters}; -const ford_message_descriptions::StructDescription - UI__AddCommand__request__parameter3 = { - {"cmdIcon", ford_message_descriptions::Struct, false}, - Structs::Common__Image__parameters}; -const ford_message_descriptions::ParameterDescription - UI__AddCommand__request__parameter4 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - UI__AddCommand__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__AddCommand__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__AddCommand__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&UI__AddCommand__request__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&UI__AddCommand__request__parameter4, - NULL}; -const ford_message_descriptions::MessageDescription UI__AddCommand__request = { - "UI", - "AddCommand", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_AddCommand, - UI__AddCommand__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - UI__AddCommand__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription UI__AddCommand__response = { - "UI", - "AddCommand", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_AddCommand, - UI__AddCommand__response__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__DeleteCommand__request__parameter1 = { - "cmdID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - UI__DeleteCommand__request__parameter2 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - UI__DeleteCommand__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__DeleteCommand__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__DeleteCommand__request__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription UI__DeleteCommand__request = - {"UI", - "DeleteCommand", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_DeleteCommand, - UI__DeleteCommand__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - UI__DeleteCommand__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - UI__DeleteCommand__response = {"UI", - "DeleteCommand", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_DeleteCommand, - UI__DeleteCommand__response__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__AddSubMenu__request__parameter1 = { - "menuID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::StructDescription - UI__AddSubMenu__request__parameter2 = { - {"menuParams", ford_message_descriptions::Struct, true}, - Structs::Common__MenuParams__parameters}; -const ford_message_descriptions::ParameterDescription - UI__AddSubMenu__request__parameter3 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - UI__AddSubMenu__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__AddSubMenu__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__AddSubMenu__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&UI__AddSubMenu__request__parameter3, - NULL}; -const ford_message_descriptions::MessageDescription UI__AddSubMenu__request = { - "UI", - "AddSubMenu", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_AddSubMenu, - UI__AddSubMenu__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - UI__AddSubMenu__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription UI__AddSubMenu__response = { - "UI", - "AddSubMenu", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_AddSubMenu, - UI__AddSubMenu__response__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__DeleteSubMenu__request__parameter1 = { - "menuID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - UI__DeleteSubMenu__request__parameter2 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - UI__DeleteSubMenu__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__DeleteSubMenu__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__DeleteSubMenu__request__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription UI__DeleteSubMenu__request = - {"UI", - "DeleteSubMenu", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_DeleteSubMenu, - UI__DeleteSubMenu__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - UI__DeleteSubMenu__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - UI__DeleteSubMenu__response = {"UI", - "DeleteSubMenu", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_DeleteSubMenu, - UI__DeleteSubMenu__response__parameters}; - -const ford_message_descriptions::StructDescription - UI__PerformInteraction__request__parameter1 = { - {"initialText", ford_message_descriptions::Struct, false}, - Structs::Common__TextFieldStruct__parameters}; -const ford_message_descriptions::StructDescription - UI__PerformInteraction__request__parameter2_array = { - {"choiceSet", ford_message_descriptions::Struct, true}, - Structs::Common__Choice__parameters}; -const ford_message_descriptions::ArrayDescription - UI__PerformInteraction__request__parameter2 = { - {"choiceSet", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&UI__PerformInteraction__request__parameter2_array, - "(i(bs)(b(si))(bs)(bs)(b(si)))"}; -const ford_message_descriptions::ParameterDescription - UI__PerformInteraction__request__parameter3 = { - "vrHelpTitle", ford_message_descriptions::String, false}; -const ford_message_descriptions::StructDescription - UI__PerformInteraction__request__parameter4_array = { - {"vrHelp", ford_message_descriptions::Struct, true}, - Structs::Common__VrHelpItem__parameters}; -const ford_message_descriptions::ArrayDescription - UI__PerformInteraction__request__parameter4 = { - {"vrHelp", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&UI__PerformInteraction__request__parameter4_array, - "(s(b(si))i)"}; -const ford_message_descriptions::ParameterDescription - UI__PerformInteraction__request__parameter5 = { - "timeout", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - UI__PerformInteraction__request__parameter6 = { - "interactionLayout", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - UI__PerformInteraction__request__parameter7 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - UI__PerformInteraction__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__PerformInteraction__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__PerformInteraction__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&UI__PerformInteraction__request__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&UI__PerformInteraction__request__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&UI__PerformInteraction__request__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&UI__PerformInteraction__request__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&UI__PerformInteraction__request__parameter7, - NULL}; -const ford_message_descriptions::MessageDescription - UI__PerformInteraction__request = { - "UI", - "PerformInteraction", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_PerformInteraction, - UI__PerformInteraction__request__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__PerformInteraction__response__parameter1 = { - "choiceID", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - UI__PerformInteraction__response__parameter2 = { - "manualTextEntry", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription* - UI__PerformInteraction__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__PerformInteraction__response__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__PerformInteraction__response__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - UI__PerformInteraction__response = { - "UI", - "PerformInteraction", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_PerformInteraction, - UI__PerformInteraction__response__parameters}; - -const ford_message_descriptions::StructDescription - UI__SetMediaClockTimer__request__parameter1 = { - {"startTime", ford_message_descriptions::Struct, false}, - Structs::Common__TimeFormat__parameters}; -const ford_message_descriptions::StructDescription - UI__SetMediaClockTimer__request__parameter2 = { - {"endTime", ford_message_descriptions::Struct, false}, - Structs::Common__TimeFormat__parameters}; -const ford_message_descriptions::ParameterDescription - UI__SetMediaClockTimer__request__parameter3 = { - "updateMode", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - UI__SetMediaClockTimer__request__parameter4 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - UI__SetMediaClockTimer__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetMediaClockTimer__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetMediaClockTimer__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetMediaClockTimer__request__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetMediaClockTimer__request__parameter4, - NULL}; -const ford_message_descriptions::MessageDescription - UI__SetMediaClockTimer__request = { - "UI", - "SetMediaClockTimer", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_SetMediaClockTimer, - UI__SetMediaClockTimer__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - UI__SetMediaClockTimer__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - UI__SetMediaClockTimer__response = { - "UI", - "SetMediaClockTimer", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_SetMediaClockTimer, - UI__SetMediaClockTimer__response__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__SetGlobalProperties__request__parameter1 = { - "vrHelpTitle", ford_message_descriptions::String, false}; -const ford_message_descriptions::StructDescription - UI__SetGlobalProperties__request__parameter2_array = { - {"vrHelp", ford_message_descriptions::Struct, true}, - Structs::Common__VrHelpItem__parameters}; -const ford_message_descriptions::ArrayDescription - UI__SetGlobalProperties__request__parameter2 = { - {"vrHelp", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetGlobalProperties__request__parameter2_array, - "(s(b(si))i)"}; -const ford_message_descriptions::ParameterDescription - UI__SetGlobalProperties__request__parameter3 = { - "menuTitle", ford_message_descriptions::String, false}; -const ford_message_descriptions::StructDescription - UI__SetGlobalProperties__request__parameter4 = { - {"menuIcon", ford_message_descriptions::Struct, false}, - Structs::Common__Image__parameters}; -const ford_message_descriptions::StructDescription - UI__SetGlobalProperties__request__parameter5 = { - {"keyboardProperties", ford_message_descriptions::Struct, false}, - Structs::Common__KeyboardProperties__parameters}; -const ford_message_descriptions::ParameterDescription - UI__SetGlobalProperties__request__parameter6 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - UI__SetGlobalProperties__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetGlobalProperties__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetGlobalProperties__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetGlobalProperties__request__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetGlobalProperties__request__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetGlobalProperties__request__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetGlobalProperties__request__parameter6, - NULL}; -const ford_message_descriptions::MessageDescription - UI__SetGlobalProperties__request = { - "UI", - "SetGlobalProperties", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_SetGlobalProperties, - UI__SetGlobalProperties__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - UI__SetGlobalProperties__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - UI__SetGlobalProperties__response = { - "UI", - "SetGlobalProperties", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_SetGlobalProperties, - UI__SetGlobalProperties__response__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__OnCommand__notification__parameter1 = { - "cmdID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - UI__OnCommand__notification__parameter2 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - UI__OnCommand__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__OnCommand__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__OnCommand__notification__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - UI__OnCommand__notification = {"UI", - "OnCommand", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::UI_OnCommand, - UI__OnCommand__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__OnSystemContext__notification__parameter1 = { - "systemContext", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - UI__OnSystemContext__notification__parameter2 = { - "appID", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription* - UI__OnSystemContext__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__OnSystemContext__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__OnSystemContext__notification__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - UI__OnSystemContext__notification = { - "UI", - "OnSystemContext", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::UI_OnSystemContext, - UI__OnSystemContext__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - UI__GetCapabilities__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - UI__GetCapabilities__request = {"UI", - "GetCapabilities", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_GetCapabilities, - UI__GetCapabilities__request__parameters}; - -const ford_message_descriptions::StructDescription - UI__GetCapabilities__response__parameter1 = { - {"displayCapabilities", ford_message_descriptions::Struct, true}, - Structs::Common__DisplayCapabilities__parameters}; -const ford_message_descriptions::StructDescription - UI__GetCapabilities__response__parameter2 = { - {"audioPassThruCapabilities", ford_message_descriptions::Struct, true}, - Structs::Common__AudioPassThruCapabilities__parameters}; -const ford_message_descriptions::ParameterDescription - UI__GetCapabilities__response__parameter3 = { - "hmiZoneCapabilities", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::StructDescription - UI__GetCapabilities__response__parameter4_array = { - {"softButtonCapabilities", ford_message_descriptions::Struct, true}, - Structs::Common__SoftButtonCapabilities__parameters}; -const ford_message_descriptions::ArrayDescription - UI__GetCapabilities__response__parameter4 = { - {"softButtonCapabilities", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&UI__GetCapabilities__response__parameter4_array, - "(bbbb)"}; -const ford_message_descriptions::StructDescription - UI__GetCapabilities__response__parameter5 = { - {"hmiCapabilities", ford_message_descriptions::Struct, false}, - Structs::Common__HMICapabilities__parameters}; -const ford_message_descriptions::ParameterDescription* - UI__GetCapabilities__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__GetCapabilities__response__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__GetCapabilities__response__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&UI__GetCapabilities__response__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&UI__GetCapabilities__response__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&UI__GetCapabilities__response__parameter5, - NULL}; -const ford_message_descriptions::MessageDescription - UI__GetCapabilities__response = {"UI", - "GetCapabilities", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_GetCapabilities, - UI__GetCapabilities__response__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__ChangeRegistration__request__parameter1 = { - "appName", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - UI__ChangeRegistration__request__parameter2 = { - "ngnMediaScreenAppName", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - UI__ChangeRegistration__request__parameter3 = { - "language", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - UI__ChangeRegistration__request__parameter4_array = { - "appHMIType", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ArrayDescription - UI__ChangeRegistration__request__parameter4 = { - {"appHMIType", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&UI__ChangeRegistration__request__parameter4_array, - "i"}; -const ford_message_descriptions::ParameterDescription - UI__ChangeRegistration__request__parameter5 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - UI__ChangeRegistration__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__ChangeRegistration__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__ChangeRegistration__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&UI__ChangeRegistration__request__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&UI__ChangeRegistration__request__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&UI__ChangeRegistration__request__parameter5, - NULL}; -const ford_message_descriptions::MessageDescription - UI__ChangeRegistration__request = { - "UI", - "ChangeRegistration", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_ChangeRegistration, - UI__ChangeRegistration__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - UI__ChangeRegistration__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - UI__ChangeRegistration__response = { - "UI", - "ChangeRegistration", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_ChangeRegistration, - UI__ChangeRegistration__response__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__OnLanguageChange__notification__parameter1 = { - "language", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - UI__OnLanguageChange__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__OnLanguageChange__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - UI__OnLanguageChange__notification = { - "UI", - "OnLanguageChange", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::UI_OnLanguageChange, - UI__OnLanguageChange__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - UI__GetSupportedLanguages__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - UI__GetSupportedLanguages__request = { - "UI", - "GetSupportedLanguages", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_GetSupportedLanguages, - UI__GetSupportedLanguages__request__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__GetSupportedLanguages__response__parameter1_array = { - "languages", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ArrayDescription - UI__GetSupportedLanguages__response__parameter1 = { - {"languages", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&UI__GetSupportedLanguages__response__parameter1_array, - "i"}; -const ford_message_descriptions::ParameterDescription* - UI__GetSupportedLanguages__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__GetSupportedLanguages__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - UI__GetSupportedLanguages__response = { - "UI", - "GetSupportedLanguages", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_GetSupportedLanguages, - UI__GetSupportedLanguages__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - UI__GetLanguage__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription UI__GetLanguage__request = { - "UI", - "GetLanguage", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_GetLanguage, - UI__GetLanguage__request__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__GetLanguage__response__parameter1 = { - "language", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - UI__GetLanguage__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__GetLanguage__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription UI__GetLanguage__response = - {"UI", - "GetLanguage", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_GetLanguage, - UI__GetLanguage__response__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__OnDriverDistraction__notification__parameter1 = { - "state", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - UI__OnDriverDistraction__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__OnDriverDistraction__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - UI__OnDriverDistraction__notification = { - "UI", - "OnDriverDistraction", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::UI_OnDriverDistraction, - UI__OnDriverDistraction__notification__parameters}; - -const ford_message_descriptions::StructDescription - UI__SetAppIcon__request__parameter1 = { - {"syncFileName", ford_message_descriptions::Struct, true}, - Structs::Common__Image__parameters}; -const ford_message_descriptions::ParameterDescription - UI__SetAppIcon__request__parameter2 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - UI__SetAppIcon__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetAppIcon__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetAppIcon__request__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription UI__SetAppIcon__request = { - "UI", - "SetAppIcon", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_SetAppIcon, - UI__SetAppIcon__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - UI__SetAppIcon__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription UI__SetAppIcon__response = { - "UI", - "SetAppIcon", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_SetAppIcon, - UI__SetAppIcon__response__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__SetDisplayLayout__request__parameter1 = { - "displayLayout", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - UI__SetDisplayLayout__request__parameter2 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - UI__SetDisplayLayout__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetDisplayLayout__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetDisplayLayout__request__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - UI__SetDisplayLayout__request = {"UI", - "SetDisplayLayout", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_SetDisplayLayout, - UI__SetDisplayLayout__request__parameters}; - -const ford_message_descriptions::StructDescription - UI__SetDisplayLayout__response__parameter1 = { - {"displayCapabilities", ford_message_descriptions::Struct, false}, - Structs::Common__DisplayCapabilities__parameters}; -const ford_message_descriptions::StructDescription - UI__SetDisplayLayout__response__parameter2_array = { - {"buttonCapabilities", ford_message_descriptions::Struct, true}, - Structs::Common__ButtonCapabilities__parameters}; -const ford_message_descriptions::ArrayDescription - UI__SetDisplayLayout__response__parameter2 = { - {"buttonCapabilities", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetDisplayLayout__response__parameter2_array, - "(ibbb)"}; -const ford_message_descriptions::StructDescription - UI__SetDisplayLayout__response__parameter3_array = { - {"softButtonCapabilities", ford_message_descriptions::Struct, true}, - Structs::Common__SoftButtonCapabilities__parameters}; -const ford_message_descriptions::ArrayDescription - UI__SetDisplayLayout__response__parameter3 = { - {"softButtonCapabilities", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetDisplayLayout__response__parameter3_array, - "(bbbb)"}; -const ford_message_descriptions::StructDescription - UI__SetDisplayLayout__response__parameter4 = { - {"presetBankCapabilities", ford_message_descriptions::Struct, false}, - Structs::Common__PresetBankCapabilities__parameters}; -const ford_message_descriptions::ParameterDescription* - UI__SetDisplayLayout__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetDisplayLayout__response__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetDisplayLayout__response__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetDisplayLayout__response__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&UI__SetDisplayLayout__response__parameter4, - NULL}; -const ford_message_descriptions::MessageDescription - UI__SetDisplayLayout__response = { - "UI", - "SetDisplayLayout", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_SetDisplayLayout, - UI__SetDisplayLayout__response__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__ShowCustomForm__request__parameter1 = { - "customFormID", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - UI__ShowCustomForm__request__parameter2 = { - "parentFormID", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription* - UI__ShowCustomForm__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__ShowCustomForm__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__ShowCustomForm__request__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - UI__ShowCustomForm__request = {"UI", - "ShowCustomForm", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_ShowCustomForm, - UI__ShowCustomForm__request__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__ShowCustomForm__response__parameter1 = { - "info", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription* - UI__ShowCustomForm__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__ShowCustomForm__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - UI__ShowCustomForm__response = {"UI", - "ShowCustomForm", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_ShowCustomForm, - UI__ShowCustomForm__response__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__OnKeyboardInput__notification__parameter1 = { - "event", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - UI__OnKeyboardInput__notification__parameter2 = { - "data", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription* - UI__OnKeyboardInput__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__OnKeyboardInput__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__OnKeyboardInput__notification__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - UI__OnKeyboardInput__notification = { - "UI", - "OnKeyboardInput", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::UI_OnKeyboardInput, - UI__OnKeyboardInput__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__OnTouchEvent__notification__parameter1 = { - "type", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::StructDescription - UI__OnTouchEvent__notification__parameter2_array = { - {"event", ford_message_descriptions::Struct, true}, - Structs::Common__TouchEvent__parameters}; -const ford_message_descriptions::ArrayDescription - UI__OnTouchEvent__notification__parameter2 = { - {"event", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&UI__OnTouchEvent__notification__parameter2_array, - "(iaia(ii))"}; -const ford_message_descriptions::ParameterDescription* - UI__OnTouchEvent__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__OnTouchEvent__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__OnTouchEvent__notification__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - UI__OnTouchEvent__notification = { - "UI", - "OnTouchEvent", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::UI_OnTouchEvent, - UI__OnTouchEvent__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__Slider__request__parameter1 = { - "numTicks", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - UI__Slider__request__parameter2 = { - "position", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - UI__Slider__request__parameter3 = { - "sliderHeader", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - UI__Slider__request__parameter4_array = { - "sliderFooter", ford_message_descriptions::String, true}; -const ford_message_descriptions::ArrayDescription - UI__Slider__request__parameter4 = { - {"sliderFooter", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Slider__request__parameter4_array, - "s"}; -const ford_message_descriptions::ParameterDescription - UI__Slider__request__parameter5 = { - "timeout", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - UI__Slider__request__parameter6 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - UI__Slider__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__Slider__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Slider__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Slider__request__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Slider__request__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Slider__request__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&UI__Slider__request__parameter6, - NULL}; -const ford_message_descriptions::MessageDescription UI__Slider__request = { - "UI", - "Slider", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_Slider, - UI__Slider__request__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__Slider__response__parameter1 = { - "sliderPosition", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription* - UI__Slider__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__Slider__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription UI__Slider__response = { - "UI", - "Slider", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_Slider, - UI__Slider__response__parameters}; - -const ford_message_descriptions::StructDescription - UI__ScrollableMessage__request__parameter1 = { - {"messageText", ford_message_descriptions::Struct, true}, - Structs::Common__TextFieldStruct__parameters}; -const ford_message_descriptions::ParameterDescription - UI__ScrollableMessage__request__parameter2 = { - "timeout", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::StructDescription - UI__ScrollableMessage__request__parameter3_array = { - {"softButtons", ford_message_descriptions::Struct, true}, - Structs::Common__SoftButton__parameters}; -const ford_message_descriptions::ArrayDescription - UI__ScrollableMessage__request__parameter3 = { - {"softButtons", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&UI__ScrollableMessage__request__parameter3_array, - "(i(bs)(b(si))(bb)ii)"}; -const ford_message_descriptions::ParameterDescription - UI__ScrollableMessage__request__parameter4 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - UI__ScrollableMessage__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__ScrollableMessage__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__ScrollableMessage__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&UI__ScrollableMessage__request__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&UI__ScrollableMessage__request__parameter4, - NULL}; -const ford_message_descriptions::MessageDescription - UI__ScrollableMessage__request = { - "UI", - "ScrollableMessage", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_ScrollableMessage, - UI__ScrollableMessage__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - UI__ScrollableMessage__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - UI__ScrollableMessage__response = { - "UI", - "ScrollableMessage", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_ScrollableMessage, - UI__ScrollableMessage__response__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__PerformAudioPassThru__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::StructDescription - UI__PerformAudioPassThru__request__parameter2_array = { - {"audioPassThruDisplayTexts", ford_message_descriptions::Struct, true}, - Structs::Common__TextFieldStruct__parameters}; -const ford_message_descriptions::ArrayDescription - UI__PerformAudioPassThru__request__parameter2 = { - {"audioPassThruDisplayTexts", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&UI__PerformAudioPassThru__request__parameter2_array, - "(is)"}; -const ford_message_descriptions::ParameterDescription - UI__PerformAudioPassThru__request__parameter3 = { - "maxDuration", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - UI__PerformAudioPassThru__request__parameter4 = { - "muteAudio", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription* - UI__PerformAudioPassThru__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__PerformAudioPassThru__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__PerformAudioPassThru__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&UI__PerformAudioPassThru__request__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&UI__PerformAudioPassThru__request__parameter4, - NULL}; -const ford_message_descriptions::MessageDescription - UI__PerformAudioPassThru__request = { - "UI", - "PerformAudioPassThru", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_PerformAudioPassThru, - UI__PerformAudioPassThru__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - UI__PerformAudioPassThru__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - UI__PerformAudioPassThru__response = { - "UI", - "PerformAudioPassThru", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_PerformAudioPassThru, - UI__PerformAudioPassThru__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - UI__EndAudioPassThru__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - UI__EndAudioPassThru__request = {"UI", - "EndAudioPassThru", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_EndAudioPassThru, - UI__EndAudioPassThru__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - UI__EndAudioPassThru__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - UI__EndAudioPassThru__response = { - "UI", - "EndAudioPassThru", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_EndAudioPassThru, - UI__EndAudioPassThru__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - UI__IsReady__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription UI__IsReady__request = { - "UI", - "IsReady", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_IsReady, - UI__IsReady__request__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__IsReady__response__parameter1 = { - "available", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription* - UI__IsReady__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__IsReady__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription UI__IsReady__response = { - "UI", - "IsReady", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_IsReady, - UI__IsReady__response__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__ClosePopUp__request__parameter1 = { - "methodName", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription* - UI__ClosePopUp__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__ClosePopUp__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription UI__ClosePopUp__request = { - "UI", - "ClosePopUp", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_ClosePopUp, - UI__ClosePopUp__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - UI__ClosePopUp__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription UI__ClosePopUp__response = { - "UI", - "ClosePopUp", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_ClosePopUp, - UI__ClosePopUp__response__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__OnResetTimeout__notification__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - UI__OnResetTimeout__notification__parameter2 = { - "methodName", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription* - UI__OnResetTimeout__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__OnResetTimeout__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__OnResetTimeout__notification__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - UI__OnResetTimeout__notification = { - "UI", - "OnResetTimeout", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::UI_OnResetTimeout, - UI__OnResetTimeout__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__OnRecordStart__notification__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - UI__OnRecordStart__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__OnRecordStart__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - UI__OnRecordStart__notification = { - "UI", - "OnRecordStart", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::UI_OnRecordStart, - UI__OnRecordStart__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - UI__SendHapticData__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::StructDescription - UI__SendHapticData__request__parameter2_array = { - {"hapticRectData", ford_message_descriptions::Struct, true}, - Structs::Common__HapticRect__parameters}; -const ford_message_descriptions::ArrayDescription - UI__SendHapticData__request__parameter2 = { - {"hapticRectData", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&UI__SendHapticData__request__parameter2_array, - "(i(dddd))"}; -const ford_message_descriptions::ParameterDescription* - UI__SendHapticData__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&UI__SendHapticData__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&UI__SendHapticData__request__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - UI__SendHapticData__request = {"UI", - "SendHapticData", - hmi_apis::messageType::request, - hmi_apis::FunctionID::UI_SendHapticData, - UI__SendHapticData__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - UI__SendHapticData__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - UI__SendHapticData__response = {"UI", - "SendHapticData", - hmi_apis::messageType::response, - hmi_apis::FunctionID::UI_SendHapticData, - UI__SendHapticData__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - Navigation__IsReady__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - Navigation__IsReady__request = {"Navigation", - "IsReady", - hmi_apis::messageType::request, - hmi_apis::FunctionID::Navigation_IsReady, - Navigation__IsReady__request__parameters}; - -const ford_message_descriptions::ParameterDescription - Navigation__IsReady__response__parameter1 = { - "available", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription* - Navigation__IsReady__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__IsReady__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - Navigation__IsReady__response = {"Navigation", - "IsReady", - hmi_apis::messageType::response, - hmi_apis::FunctionID::Navigation_IsReady, - Navigation__IsReady__response__parameters}; - -const ford_message_descriptions::ParameterDescription - Navigation__SendLocation__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - Navigation__SendLocation__request__parameter2 = { - "longitudeDegrees", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription - Navigation__SendLocation__request__parameter3 = { - "latitudeDegrees", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription - Navigation__SendLocation__request__parameter4 = { - "locationName", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Navigation__SendLocation__request__parameter5 = { - "locationDescription", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - Navigation__SendLocation__request__parameter6_array = { - "addressLines", ford_message_descriptions::String, true}; -const ford_message_descriptions::ArrayDescription - Navigation__SendLocation__request__parameter6 = { - {"addressLines", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__SendLocation__request__parameter6_array, - "s"}; -const ford_message_descriptions::ParameterDescription - Navigation__SendLocation__request__parameter7 = { - "phoneNumber", ford_message_descriptions::String, false}; -const ford_message_descriptions::StructDescription - Navigation__SendLocation__request__parameter8 = { - {"locationImage", ford_message_descriptions::Struct, false}, - Structs::Common__Image__parameters}; -const ford_message_descriptions::ParameterDescription* - Navigation__SendLocation__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__SendLocation__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__SendLocation__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__SendLocation__request__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__SendLocation__request__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__SendLocation__request__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__SendLocation__request__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__SendLocation__request__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__SendLocation__request__parameter8, - NULL}; -const ford_message_descriptions::MessageDescription - Navigation__SendLocation__request = { - "Navigation", - "SendLocation", - hmi_apis::messageType::request, - hmi_apis::FunctionID::Navigation_SendLocation, - Navigation__SendLocation__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - Navigation__SendLocation__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - Navigation__SendLocation__response = { - "Navigation", - "SendLocation", - hmi_apis::messageType::response, - hmi_apis::FunctionID::Navigation_SendLocation, - Navigation__SendLocation__response__parameters}; - -const ford_message_descriptions::ParameterDescription - Navigation__DialNumber__request__parameter1 = { - "number", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription* - Navigation__DialNumber__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__DialNumber__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - Navigation__DialNumber__request = { - "Navigation", - "DialNumber", - hmi_apis::messageType::request, - hmi_apis::FunctionID::Navigation_DialNumber, - Navigation__DialNumber__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - Navigation__DialNumber__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - Navigation__DialNumber__response = { - "Navigation", - "DialNumber", - hmi_apis::messageType::response, - hmi_apis::FunctionID::Navigation_DialNumber, - Navigation__DialNumber__response__parameters}; - -const ford_message_descriptions::StructDescription - Navigation__ShowConstantTBT__request__parameter1_array = { - {"navigationTexts", ford_message_descriptions::Struct, true}, - Structs::Common__TextFieldStruct__parameters}; -const ford_message_descriptions::ArrayDescription - Navigation__ShowConstantTBT__request__parameter1 = { - {"navigationTexts", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__ShowConstantTBT__request__parameter1_array, - "(is)"}; -const ford_message_descriptions::StructDescription - Navigation__ShowConstantTBT__request__parameter2 = { - {"turnIcon", ford_message_descriptions::Struct, false}, - Structs::Common__Image__parameters}; -const ford_message_descriptions::StructDescription - Navigation__ShowConstantTBT__request__parameter3 = { - {"nextTurnIcon", ford_message_descriptions::Struct, false}, - Structs::Common__Image__parameters}; -const ford_message_descriptions::ParameterDescription - Navigation__ShowConstantTBT__request__parameter4 = { - "distanceToManeuver", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription - Navigation__ShowConstantTBT__request__parameter5 = { - "distanceToManeuverScale", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription - Navigation__ShowConstantTBT__request__parameter6 = { - "maneuverComplete", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::StructDescription - Navigation__ShowConstantTBT__request__parameter7_array = { - {"softButtons", ford_message_descriptions::Struct, true}, - Structs::Common__SoftButton__parameters}; -const ford_message_descriptions::ArrayDescription - Navigation__ShowConstantTBT__request__parameter7 = { - {"softButtons", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__ShowConstantTBT__request__parameter7_array, - "(i(bs)(b(si))(bb)ii)"}; -const ford_message_descriptions::ParameterDescription - Navigation__ShowConstantTBT__request__parameter8 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - Navigation__ShowConstantTBT__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__ShowConstantTBT__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__ShowConstantTBT__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__ShowConstantTBT__request__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__ShowConstantTBT__request__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__ShowConstantTBT__request__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__ShowConstantTBT__request__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__ShowConstantTBT__request__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__ShowConstantTBT__request__parameter8, - NULL}; -const ford_message_descriptions::MessageDescription - Navigation__ShowConstantTBT__request = { - "Navigation", - "ShowConstantTBT", - hmi_apis::messageType::request, - hmi_apis::FunctionID::Navigation_ShowConstantTBT, - Navigation__ShowConstantTBT__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - Navigation__ShowConstantTBT__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - Navigation__ShowConstantTBT__response = { - "Navigation", - "ShowConstantTBT", - hmi_apis::messageType::response, - hmi_apis::FunctionID::Navigation_ShowConstantTBT, - Navigation__ShowConstantTBT__response__parameters}; - -const ford_message_descriptions::StructDescription - Navigation__AlertManeuver__request__parameter1_array = { - {"softButtons", ford_message_descriptions::Struct, true}, - Structs::Common__SoftButton__parameters}; -const ford_message_descriptions::ArrayDescription - Navigation__AlertManeuver__request__parameter1 = { - {"softButtons", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__AlertManeuver__request__parameter1_array, - "(i(bs)(b(si))(bb)ii)"}; -const ford_message_descriptions::ParameterDescription - Navigation__AlertManeuver__request__parameter2 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - Navigation__AlertManeuver__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__AlertManeuver__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__AlertManeuver__request__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - Navigation__AlertManeuver__request = { - "Navigation", - "AlertManeuver", - hmi_apis::messageType::request, - hmi_apis::FunctionID::Navigation_AlertManeuver, - Navigation__AlertManeuver__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - Navigation__AlertManeuver__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - Navigation__AlertManeuver__response = { - "Navigation", - "AlertManeuver", - hmi_apis::messageType::response, - hmi_apis::FunctionID::Navigation_AlertManeuver, - Navigation__AlertManeuver__response__parameters}; - -const ford_message_descriptions::StructDescription - Navigation__UpdateTurnList__request__parameter1_array = { - {"turnList", ford_message_descriptions::Struct, true}, - Structs::Common__Turn__parameters}; -const ford_message_descriptions::ArrayDescription - Navigation__UpdateTurnList__request__parameter1 = { - {"turnList", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__UpdateTurnList__request__parameter1_array, - "((b(is))(b(si)))"}; -const ford_message_descriptions::StructDescription - Navigation__UpdateTurnList__request__parameter2_array = { - {"softButtons", ford_message_descriptions::Struct, true}, - Structs::Common__SoftButton__parameters}; -const ford_message_descriptions::ArrayDescription - Navigation__UpdateTurnList__request__parameter2 = { - {"softButtons", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__UpdateTurnList__request__parameter2_array, - "(i(bs)(b(si))(bb)ii)"}; -const ford_message_descriptions::ParameterDescription - Navigation__UpdateTurnList__request__parameter3 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - Navigation__UpdateTurnList__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__UpdateTurnList__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__UpdateTurnList__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__UpdateTurnList__request__parameter3, - NULL}; -const ford_message_descriptions::MessageDescription - Navigation__UpdateTurnList__request = { - "Navigation", - "UpdateTurnList", - hmi_apis::messageType::request, - hmi_apis::FunctionID::Navigation_UpdateTurnList, - Navigation__UpdateTurnList__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - Navigation__UpdateTurnList__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - Navigation__UpdateTurnList__response = { - "Navigation", - "UpdateTurnList", - hmi_apis::messageType::response, - hmi_apis::FunctionID::Navigation_UpdateTurnList, - Navigation__UpdateTurnList__response__parameters}; - -const ford_message_descriptions::ParameterDescription - Navigation__OnTBTClientState__notification__parameter1 = { - "state", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - Navigation__OnTBTClientState__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__OnTBTClientState__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - Navigation__OnTBTClientState__notification = { - "Navigation", - "OnTBTClientState", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::Navigation_OnTBTClientState, - Navigation__OnTBTClientState__notification__parameters}; - -const ford_message_descriptions::StructDescription - Navigation__SetVideoConfig__request__parameter1 = { - {"config", ford_message_descriptions::Struct, true}, - Structs::Common__VideoConfig__parameters}; -const ford_message_descriptions::ParameterDescription - Navigation__SetVideoConfig__request__parameter2 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - Navigation__SetVideoConfig__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__SetVideoConfig__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__SetVideoConfig__request__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - Navigation__SetVideoConfig__request = { - "Navigation", - "SetVideoConfig", - hmi_apis::messageType::request, - hmi_apis::FunctionID::Navigation_SetVideoConfig, - Navigation__SetVideoConfig__request__parameters}; - -const ford_message_descriptions::ParameterDescription - Navigation__SetVideoConfig__response__parameter1_array = { - "rejectedParams", ford_message_descriptions::String, true}; -const ford_message_descriptions::ArrayDescription - Navigation__SetVideoConfig__response__parameter1 = { - {"rejectedParams", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__SetVideoConfig__response__parameter1_array, - "s"}; -const ford_message_descriptions::ParameterDescription* - Navigation__SetVideoConfig__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__SetVideoConfig__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - Navigation__SetVideoConfig__response = { - "Navigation", - "SetVideoConfig", - hmi_apis::messageType::response, - hmi_apis::FunctionID::Navigation_SetVideoConfig, - Navigation__SetVideoConfig__response__parameters}; - -const ford_message_descriptions::ParameterDescription - Navigation__StartStream__request__parameter1 = { - "url", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - Navigation__StartStream__request__parameter2 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - Navigation__StartStream__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__StartStream__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__StartStream__request__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - Navigation__StartStream__request = { - "Navigation", - "StartStream", - hmi_apis::messageType::request, - hmi_apis::FunctionID::Navigation_StartStream, - Navigation__StartStream__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - Navigation__StartStream__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - Navigation__StartStream__response = { - "Navigation", - "StartStream", - hmi_apis::messageType::response, - hmi_apis::FunctionID::Navigation_StartStream, - Navigation__StartStream__response__parameters}; - -const ford_message_descriptions::ParameterDescription - Navigation__StopStream__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - Navigation__StopStream__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__StopStream__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - Navigation__StopStream__request = { - "Navigation", - "StopStream", - hmi_apis::messageType::request, - hmi_apis::FunctionID::Navigation_StopStream, - Navigation__StopStream__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - Navigation__StopStream__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - Navigation__StopStream__response = { - "Navigation", - "StopStream", - hmi_apis::messageType::response, - hmi_apis::FunctionID::Navigation_StopStream, - Navigation__StopStream__response__parameters}; - -const ford_message_descriptions::ParameterDescription - Navigation__StartAudioStream__request__parameter1 = { - "url", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription - Navigation__StartAudioStream__request__parameter2 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - Navigation__StartAudioStream__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__StartAudioStream__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__StartAudioStream__request__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - Navigation__StartAudioStream__request = { - "Navigation", - "StartAudioStream", - hmi_apis::messageType::request, - hmi_apis::FunctionID::Navigation_StartAudioStream, - Navigation__StartAudioStream__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - Navigation__StartAudioStream__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - Navigation__StartAudioStream__response = { - "Navigation", - "StartAudioStream", - hmi_apis::messageType::response, - hmi_apis::FunctionID::Navigation_StartAudioStream, - Navigation__StartAudioStream__response__parameters}; - -const ford_message_descriptions::ParameterDescription - Navigation__StopAudioStream__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - Navigation__StopAudioStream__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__StopAudioStream__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - Navigation__StopAudioStream__request = { - "Navigation", - "StopAudioStream", - hmi_apis::messageType::request, - hmi_apis::FunctionID::Navigation_StopAudioStream, - Navigation__StopAudioStream__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - Navigation__StopAudioStream__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - Navigation__StopAudioStream__response = { - "Navigation", - "StopAudioStream", - hmi_apis::messageType::response, - hmi_apis::FunctionID::Navigation_StopAudioStream, - Navigation__StopAudioStream__response__parameters}; - -const ford_message_descriptions::ParameterDescription - Navigation__OnAudioDataStreaming__notification__parameter1 = { - "available", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription* - Navigation__OnAudioDataStreaming__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__OnAudioDataStreaming__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - Navigation__OnAudioDataStreaming__notification = { - "Navigation", - "OnAudioDataStreaming", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::Navigation_OnAudioDataStreaming, - Navigation__OnAudioDataStreaming__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - Navigation__OnVideoDataStreaming__notification__parameter1 = { - "available", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription* - Navigation__OnVideoDataStreaming__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__OnVideoDataStreaming__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - Navigation__OnVideoDataStreaming__notification = { - "Navigation", - "OnVideoDataStreaming", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::Navigation_OnVideoDataStreaming, - Navigation__OnVideoDataStreaming__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - Navigation__GetWayPoints__request__parameter1 = { - "wayPointType", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - Navigation__GetWayPoints__request__parameter2 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - Navigation__GetWayPoints__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__GetWayPoints__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__GetWayPoints__request__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - Navigation__GetWayPoints__request = { - "Navigation", - "GetWayPoints", - hmi_apis::messageType::request, - hmi_apis::FunctionID::Navigation_GetWayPoints, - Navigation__GetWayPoints__request__parameters}; - -const ford_message_descriptions::ParameterDescription - Navigation__GetWayPoints__response__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::StructDescription - Navigation__GetWayPoints__response__parameter2_array = { - {"wayPoints", ford_message_descriptions::Struct, true}, - Structs::Common__LocationDetails__parameters}; -const ford_message_descriptions::ArrayDescription - Navigation__GetWayPoints__response__parameter2 = { - {"wayPoints", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__GetWayPoints__response__parameter2_array, - "((b(dd))(bs)(bas)(bs)(bs)(b(si))(b((bs)(bs)(bs)(bs)(bs)(bs)(bs)(bs)(" - "bs))))"}; -const ford_message_descriptions::ParameterDescription* - Navigation__GetWayPoints__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__GetWayPoints__response__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__GetWayPoints__response__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - Navigation__GetWayPoints__response = { - "Navigation", - "GetWayPoints", - hmi_apis::messageType::response, - hmi_apis::FunctionID::Navigation_GetWayPoints, - Navigation__GetWayPoints__response__parameters}; - -const ford_message_descriptions::StructDescription - Navigation__OnWayPointChange__notification__parameter1_array = { - {"wayPoints", ford_message_descriptions::Struct, true}, - Structs::Common__LocationDetails__parameters}; -const ford_message_descriptions::ArrayDescription - Navigation__OnWayPointChange__notification__parameter1 = { - {"wayPoints", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__OnWayPointChange__notification__parameter1_array, - "((b(dd))(bs)(bas)(bs)(bs)(b(si))(b((bs)(bs)(bs)(bs)(bs)(bs)(bs)(bs)(" - "bs))))"}; -const ford_message_descriptions::ParameterDescription* - Navigation__OnWayPointChange__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&Navigation__OnWayPointChange__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - Navigation__OnWayPointChange__notification = { - "Navigation", - "OnWayPointChange", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::Navigation_OnWayPointChange, - Navigation__OnWayPointChange__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - Navigation__SubscribeWayPoints__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - Navigation__SubscribeWayPoints__request = { - "Navigation", - "SubscribeWayPoints", - hmi_apis::messageType::request, - hmi_apis::FunctionID::Navigation_SubscribeWayPoints, - Navigation__SubscribeWayPoints__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - Navigation__SubscribeWayPoints__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - Navigation__SubscribeWayPoints__response = { - "Navigation", - "SubscribeWayPoints", - hmi_apis::messageType::response, - hmi_apis::FunctionID::Navigation_SubscribeWayPoints, - Navigation__SubscribeWayPoints__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - Navigation__UnsubscribeWayPoints__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - Navigation__UnsubscribeWayPoints__request = { - "Navigation", - "UnsubscribeWayPoints", - hmi_apis::messageType::request, - hmi_apis::FunctionID::Navigation_UnsubscribeWayPoints, - Navigation__UnsubscribeWayPoints__request__parameters}; - -const ford_message_descriptions::ParameterDescription* - Navigation__UnsubscribeWayPoints__response__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - Navigation__UnsubscribeWayPoints__response = { - "Navigation", - "UnsubscribeWayPoints", - hmi_apis::messageType::response, - hmi_apis::FunctionID::Navigation_UnsubscribeWayPoints, - Navigation__UnsubscribeWayPoints__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__IsReady__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__IsReady__request = {"VehicleInfo", - "IsReady", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_IsReady, - VehicleInfo__IsReady__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__IsReady__response__parameter1 = { - "available", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__IsReady__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__IsReady__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__IsReady__response = { - "VehicleInfo", - "IsReady", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_IsReady, - VehicleInfo__IsReady__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetVehicleType__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetVehicleType__request = { - "VehicleInfo", - "GetVehicleType", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetVehicleType, - VehicleInfo__GetVehicleType__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__GetVehicleType__response__parameter1 = { - {"vehicleType", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleType__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetVehicleType__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleType__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetVehicleType__response = { - "VehicleInfo", - "GetVehicleType", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetVehicleType, - VehicleInfo__GetVehicleType__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__ReadDID__request__parameter1 = { - "ecuName", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__ReadDID__request__parameter2_array = { - "didLocation", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ArrayDescription - VehicleInfo__ReadDID__request__parameter2 = { - {"didLocation", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__ReadDID__request__parameter2_array, - "i"}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__ReadDID__request__parameter3 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__ReadDID__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__ReadDID__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__ReadDID__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__ReadDID__request__parameter3, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__ReadDID__request = {"VehicleInfo", - "ReadDID", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_ReadDID, - VehicleInfo__ReadDID__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__ReadDID__response__parameter1_array = { - {"didResult", ford_message_descriptions::Struct, true}, - Structs::Common__DIDResult__parameters}; -const ford_message_descriptions::ArrayDescription - VehicleInfo__ReadDID__response__parameter1 = { - {"didResult", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__ReadDID__response__parameter1_array, - "(ii(bs))"}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__ReadDID__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__ReadDID__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__ReadDID__response = { - "VehicleInfo", - "ReadDID", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_ReadDID, - VehicleInfo__ReadDID__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetDTCs__request__parameter1 = { - "ecuName", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetDTCs__request__parameter2 = { - "dtcMask", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetDTCs__request__parameter3 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetDTCs__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetDTCs__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetDTCs__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetDTCs__request__parameter3, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetDTCs__request = {"VehicleInfo", - "GetDTCs", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetDTCs, - VehicleInfo__GetDTCs__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetDTCs__response__parameter1 = { - "ecuHeader", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetDTCs__response__parameter2_array = { - "dtc", ford_message_descriptions::String, true}; -const ford_message_descriptions::ArrayDescription - VehicleInfo__GetDTCs__response__parameter2 = { - {"dtc", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetDTCs__response__parameter2_array, - "s"}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetDTCs__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetDTCs__response__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetDTCs__response__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetDTCs__response = { - "VehicleInfo", - "GetDTCs", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetDTCs, - VehicleInfo__GetDTCs__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__DiagnosticMessage__request__parameter1 = { - "targetID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__DiagnosticMessage__request__parameter2 = { - "messageLength", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__DiagnosticMessage__request__parameter3_array = { - "messageData", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ArrayDescription - VehicleInfo__DiagnosticMessage__request__parameter3 = { - {"messageData", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__DiagnosticMessage__request__parameter3_array, - "i"}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__DiagnosticMessage__request__parameter4 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__DiagnosticMessage__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__DiagnosticMessage__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__DiagnosticMessage__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__DiagnosticMessage__request__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__DiagnosticMessage__request__parameter4, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__DiagnosticMessage__request = { - "VehicleInfo", - "DiagnosticMessage", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_DiagnosticMessage, - VehicleInfo__DiagnosticMessage__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__DiagnosticMessage__response__parameter1_array = { - "messageDataResult", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ArrayDescription - VehicleInfo__DiagnosticMessage__response__parameter1 = { - {"messageDataResult", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__DiagnosticMessage__response__parameter1_array, - "i"}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__DiagnosticMessage__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__DiagnosticMessage__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__DiagnosticMessage__response = { - "VehicleInfo", - "DiagnosticMessage", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_DiagnosticMessage, - VehicleInfo__DiagnosticMessage__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter1 = { - "gps", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter2 = { - "speed", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter3 = { - "rpm", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter4 = { - "fuelLevel", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter5 = { - "fuelLevel_State", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter6 = { - "instantFuelConsumption", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter7 = { - "externalTemperature", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter8 = { - "prndl", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter9 = { - "tirePressure", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter10 = { - "odometer", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter11 = { - "beltStatus", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter12 = { - "bodyInformation", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter13 = { - "deviceStatus", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter14 = { - "driverBraking", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter15 = { - "wiperStatus", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter16 = { - "headLampStatus", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter17 = { - "engineTorque", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter18 = { - "accPedalPosition", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter19 = { - "steeringWheelAngle", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter20 = { - "eCallInfo", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter21 = { - "airbagStatus", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter22 = { - "emergencyEvent", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter23 = { - "clusterModeStatus", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVehicleData__request__parameter24 = { - "myKey", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription* VehicleInfo__SubscribeVehicleData__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter8, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter9, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter10, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter11, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter12, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter13, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter14, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter15, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter16, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter17, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter18, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter19, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter20, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter21, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter22, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter23, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__request__parameter24, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeVehicleData__request = { - "VehicleInfo", - "SubscribeVehicleData", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeVehicleData, - VehicleInfo__SubscribeVehicleData__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter1 = { - {"gps", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter2 = { - {"speed", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter3 = { - {"rpm", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter4 = { - {"fuelLevel", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter5 = { - {"fuelLevel_State", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter6 = { - {"instantFuelConsumption", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter7 = { - {"externalTemperature", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter8 = { - {"prndl", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter9 = { - {"tirePressure", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter10 = { - {"odometer", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter11 = { - {"beltStatus", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter12 = { - {"bodyInformation", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter13 = { - {"deviceStatus", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter14 = { - {"driverBraking", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter15 = { - {"wiperStatus", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter16 = { - {"headLampStatus", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter17 = { - {"engineTorque", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter18 = { - {"accPedalPosition", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter19 = { - {"steeringWheelAngle", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter20 = { - {"eCallInfo", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter21 = { - {"airbagStatus", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter22 = { - {"emergencyEvent", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter23 = { - {"clusterModes", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeVehicleData__response__parameter24 = { - {"myKey", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* VehicleInfo__SubscribeVehicleData__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter8, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter9, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter10, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter11, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter12, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter13, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter14, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter15, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter16, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter17, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter18, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter19, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter20, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter21, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter22, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter23, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVehicleData__response__parameter24, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeVehicleData__response = { - "VehicleInfo", - "SubscribeVehicleData", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeVehicleData, - VehicleInfo__SubscribeVehicleData__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter2 = { - "gps", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter3 = { - "speed", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter4 = { - "rpm", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter5 = { - "fuelLevel", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter6 = { - "fuelLevel_State", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter7 = { - "instantFuelConsumption", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter8 = { - "externalTemperature", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter9 = { - "prndl", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter10 = { - "tirePressure", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter11 = { - "odometer", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter12 = { - "beltStatus", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter13 = { - "bodyInformation", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter14 = { - "deviceStatus", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter15 = { - "driverBraking", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter16 = { - "wiperStatus", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter17 = { - "headLampStatus", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter18 = { - "engineTorque", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter19 = { - "accPedalPosition", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter20 = { - "steeringWheelAngle", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter21 = { - "eCallInfo", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter22 = { - "airbagStatus", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter23 = { - "emergencyEvent", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter24 = { - "clusterModeStatus", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVehicleData__request__parameter25 = { - "myKey", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription* VehicleInfo__UnsubscribeVehicleData__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter8, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter9, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter10, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter11, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter12, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter13, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter14, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter15, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter16, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter17, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter18, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter19, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter20, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter21, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter22, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter23, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter24, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__request__parameter25, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeVehicleData__request = { - "VehicleInfo", - "UnsubscribeVehicleData", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeVehicleData, - VehicleInfo__UnsubscribeVehicleData__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter1 = { - {"gps", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter2 = { - {"speed", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter3 = { - {"rpm", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter4 = { - {"fuelLevel", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter5 = { - {"fuelLevel_State", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter6 = { - {"instantFuelConsumption", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter7 = { - {"externalTemperature", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter8 = { - {"prndl", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter9 = { - {"tirePressure", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter10 = { - {"odometer", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter11 = { - {"beltStatus", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter12 = { - {"bodyInformation", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter13 = { - {"deviceStatus", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter14 = { - {"driverBraking", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter15 = { - {"wiperStatus", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter16 = { - {"headLampStatus", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter17 = { - {"engineTorque", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter18 = { - {"accPedalPosition", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter19 = { - {"steeringWheelAngle", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter20 = { - {"eCallInfo", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter21 = { - {"airbagStatus", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter22 = { - {"emergencyEvent", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter23 = { - {"clusterModes", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeVehicleData__response__parameter24 = { - {"myKey", ford_message_descriptions::Struct, false}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* VehicleInfo__UnsubscribeVehicleData__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter8, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter9, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter10, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter11, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter12, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter13, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter14, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter15, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter16, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter17, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter18, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter19, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter20, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter21, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter22, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter23, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVehicleData__response__parameter24, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeVehicleData__response = { - "VehicleInfo", - "UnsubscribeVehicleData", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeVehicleData, - VehicleInfo__UnsubscribeVehicleData__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter1 = { - "gps", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter2 = { - "speed", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter3 = { - "rpm", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter4 = { - "fuelLevel", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter5 = { - "fuelLevel_State", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter6 = { - "instantFuelConsumption", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter7 = { - "externalTemperature", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter8 = { - "vin", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter9 = { - "prndl", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter10 = { - "tirePressure", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter11 = { - "odometer", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter12 = { - "beltStatus", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter13 = { - "bodyInformation", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter14 = { - "deviceStatus", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter15 = { - "driverBraking", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter16 = { - "wiperStatus", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter17 = { - "headLampStatus", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter18 = { - "engineTorque", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter19 = { - "accPedalPosition", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter20 = { - "steeringWheelAngle", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter21 = { - "eCallInfo", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter22 = { - "airbagStatus", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter23 = { - "emergencyEvent", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter24 = { - "clusterModeStatus", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__request__parameter25 = { - "myKey", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription* VehicleInfo__GetVehicleData__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter8, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter9, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter10, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter11, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter12, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter13, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter14, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter15, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter16, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter17, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter18, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter19, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter20, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter21, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter22, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter23, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter24, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__request__parameter25, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetVehicleData__request = { - "VehicleInfo", - "GetVehicleData", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetVehicleData, - VehicleInfo__GetVehicleData__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__GetVehicleData__response__parameter1 = { - {"gps", ford_message_descriptions::Struct, false}, - Structs::Common__GPSData__parameters}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__response__parameter2 = { - "speed", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__response__parameter3 = { - "rpm", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__response__parameter4 = { - "fuelLevel", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__response__parameter5 = { - "fuelLevel_State", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__response__parameter6 = { - "instantFuelConsumption", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__response__parameter7 = { - "externalTemperature", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__response__parameter8 = { - "vin", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__response__parameter9 = { - "prndl", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::StructDescription - VehicleInfo__GetVehicleData__response__parameter10 = { - {"tirePressure", ford_message_descriptions::Struct, false}, - Structs::Common__TireStatus__parameters}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__response__parameter11 = { - "odometer", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::StructDescription - VehicleInfo__GetVehicleData__response__parameter12 = { - {"beltStatus", ford_message_descriptions::Struct, false}, - Structs::Common__BeltStatus__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__GetVehicleData__response__parameter13 = { - {"bodyInformation", ford_message_descriptions::Struct, false}, - Structs::Common__BodyInformation__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__GetVehicleData__response__parameter14 = { - {"deviceStatus", ford_message_descriptions::Struct, false}, - Structs::Common__DeviceStatus__parameters}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__response__parameter15 = { - "driverBraking", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__response__parameter16 = { - "wiperStatus", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::StructDescription - VehicleInfo__GetVehicleData__response__parameter17 = { - {"headLampStatus", ford_message_descriptions::Struct, false}, - Structs::Common__HeadLampStatus__parameters}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__response__parameter18 = { - "engineTorque", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__response__parameter19 = { - "accPedalPosition", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVehicleData__response__parameter20 = { - "steeringWheelAngle", ford_message_descriptions::Float, false}; -const ford_message_descriptions::StructDescription - VehicleInfo__GetVehicleData__response__parameter21 = { - {"eCallInfo", ford_message_descriptions::Struct, false}, - Structs::Common__ECallInfo__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__GetVehicleData__response__parameter22 = { - {"airbagStatus", ford_message_descriptions::Struct, false}, - Structs::Common__AirbagStatus__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__GetVehicleData__response__parameter23 = { - {"emergencyEvent", ford_message_descriptions::Struct, false}, - Structs::Common__EmergencyEvent__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__GetVehicleData__response__parameter24 = { - {"clusterModeStatus", ford_message_descriptions::Struct, false}, - Structs::Common__ClusterModeStatus__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__GetVehicleData__response__parameter25 = { - {"myKey", ford_message_descriptions::Struct, false}, - Structs::Common__MyKey__parameters}; -const ford_message_descriptions::ParameterDescription* VehicleInfo__GetVehicleData__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter8, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter9, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter10, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter11, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter12, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter13, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter14, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter15, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter16, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter17, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter18, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter19, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter20, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter21, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter22, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter23, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter24, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVehicleData__response__parameter25, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetVehicleData__response = { - "VehicleInfo", - "GetVehicleData", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetVehicleData, - VehicleInfo__GetVehicleData__response__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__OnVehicleData__notification__parameter1 = { - {"gps", ford_message_descriptions::Struct, false}, - Structs::Common__GPSData__parameters}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnVehicleData__notification__parameter2 = { - "speed", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnVehicleData__notification__parameter3 = { - "rpm", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnVehicleData__notification__parameter4 = { - "fuelLevel", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnVehicleData__notification__parameter5 = { - "fuelLevel_State", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnVehicleData__notification__parameter6 = { - "instantFuelConsumption", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnVehicleData__notification__parameter7 = { - "externalTemperature", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnVehicleData__notification__parameter8 = { - "vin", ford_message_descriptions::String, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnVehicleData__notification__parameter9 = { - "prndl", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::StructDescription - VehicleInfo__OnVehicleData__notification__parameter10 = { - {"tirePressure", ford_message_descriptions::Struct, false}, - Structs::Common__TireStatus__parameters}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnVehicleData__notification__parameter11 = { - "odometer", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::StructDescription - VehicleInfo__OnVehicleData__notification__parameter12 = { - {"beltStatus", ford_message_descriptions::Struct, false}, - Structs::Common__BeltStatus__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__OnVehicleData__notification__parameter13 = { - {"bodyInformation", ford_message_descriptions::Struct, false}, - Structs::Common__BodyInformation__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__OnVehicleData__notification__parameter14 = { - {"deviceStatus", ford_message_descriptions::Struct, false}, - Structs::Common__DeviceStatus__parameters}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnVehicleData__notification__parameter15 = { - "driverBraking", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnVehicleData__notification__parameter16 = { - "wiperStatus", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::StructDescription - VehicleInfo__OnVehicleData__notification__parameter17 = { - {"headLampStatus", ford_message_descriptions::Struct, false}, - Structs::Common__HeadLampStatus__parameters}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnVehicleData__notification__parameter18 = { - "engineTorque", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnVehicleData__notification__parameter19 = { - "accPedalPosition", ford_message_descriptions::Float, false}; -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnVehicleData__notification__parameter20 = { - "steeringWheelAngle", ford_message_descriptions::Float, false}; -const ford_message_descriptions::StructDescription - VehicleInfo__OnVehicleData__notification__parameter21 = { - {"eCallInfo", ford_message_descriptions::Struct, false}, - Structs::Common__ECallInfo__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__OnVehicleData__notification__parameter22 = { - {"airbagStatus", ford_message_descriptions::Struct, false}, - Structs::Common__AirbagStatus__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__OnVehicleData__notification__parameter23 = { - {"emergencyEvent", ford_message_descriptions::Struct, false}, - Structs::Common__EmergencyEvent__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__OnVehicleData__notification__parameter24 = { - {"clusterModeStatus", ford_message_descriptions::Struct, false}, - Structs::Common__ClusterModeStatus__parameters}; -const ford_message_descriptions::StructDescription - VehicleInfo__OnVehicleData__notification__parameter25 = { - {"myKey", ford_message_descriptions::Struct, false}, - Structs::Common__MyKey__parameters}; -const ford_message_descriptions::ParameterDescription* VehicleInfo__OnVehicleData__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter8, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter9, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter10, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter11, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter12, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter13, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter14, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter15, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter16, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter17, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter18, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter19, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter20, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter21, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter22, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter23, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter24, - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVehicleData__notification__parameter25, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnVehicleData__notification = { - "VehicleInfo", - "OnVehicleData", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnVehicleData, - VehicleInfo__OnVehicleData__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetGpsData__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetGpsData__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetGpsData__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetGpsData__request = { - "VehicleInfo", - "GetGpsData", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetGpsData, - VehicleInfo__GetGpsData__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__GetGpsData__response__parameter1 = { - {"gps", ford_message_descriptions::Struct, true}, - Structs::Common__GPSData__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetGpsData__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetGpsData__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetGpsData__response = { - "VehicleInfo", - "GetGpsData", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetGpsData, - VehicleInfo__GetGpsData__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetSpeed__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetSpeed__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetSpeed__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetSpeed__request = { - "VehicleInfo", - "GetSpeed", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetSpeed, - VehicleInfo__GetSpeed__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetSpeed__response__parameter1 = { - "speed", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetSpeed__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetSpeed__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetSpeed__response = { - "VehicleInfo", - "GetSpeed", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetSpeed, - VehicleInfo__GetSpeed__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetRpm__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetRpm__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetRpm__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetRpm__request = {"VehicleInfo", - "GetRpm", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetRpm, - VehicleInfo__GetRpm__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetRpm__response__parameter1 = { - "rpm", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetRpm__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetRpm__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetRpm__response = {"VehicleInfo", - "GetRpm", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetRpm, - VehicleInfo__GetRpm__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetFuelLevel__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetFuelLevel__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetFuelLevel__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetFuelLevel__request = { - "VehicleInfo", - "GetFuelLevel", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetFuelLevel, - VehicleInfo__GetFuelLevel__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetFuelLevel__response__parameter1 = { - "fuelLevel", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetFuelLevel__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetFuelLevel__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetFuelLevel__response = { - "VehicleInfo", - "GetFuelLevel", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetFuelLevel, - VehicleInfo__GetFuelLevel__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetFuelLevelState__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetFuelLevelState__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetFuelLevelState__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetFuelLevelState__request = { - "VehicleInfo", - "GetFuelLevelState", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetFuelLevelState, - VehicleInfo__GetFuelLevelState__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetFuelLevelState__response__parameter1 = { - "fuelLevel_State", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetFuelLevelState__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetFuelLevelState__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetFuelLevelState__response = { - "VehicleInfo", - "GetFuelLevelState", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetFuelLevelState, - VehicleInfo__GetFuelLevelState__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetInstantFuelConsumption__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetInstantFuelConsumption__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetInstantFuelConsumption__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetInstantFuelConsumption__request = { - "VehicleInfo", - "GetInstantFuelConsumption", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetInstantFuelConsumption, - VehicleInfo__GetInstantFuelConsumption__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetInstantFuelConsumption__response__parameter1 = { - "instantFuelConsumption", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetInstantFuelConsumption__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetInstantFuelConsumption__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetInstantFuelConsumption__response = { - "VehicleInfo", - "GetInstantFuelConsumption", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetInstantFuelConsumption, - VehicleInfo__GetInstantFuelConsumption__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetExternalTemperature__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetExternalTemperature__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetExternalTemperature__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetExternalTemperature__request = { - "VehicleInfo", - "GetExternalTemperature", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetExternalTemperature, - VehicleInfo__GetExternalTemperature__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetExternalTemperature__response__parameter1 = { - "externalTemperature", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetExternalTemperature__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetExternalTemperature__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetExternalTemperature__response = { - "VehicleInfo", - "GetExternalTemperature", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetExternalTemperature, - VehicleInfo__GetExternalTemperature__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVin__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetVin__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVin__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetVin__request = {"VehicleInfo", - "GetVin", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetVin, - VehicleInfo__GetVin__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetVin__response__parameter1 = { - "vin", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetVin__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetVin__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetVin__response = {"VehicleInfo", - "GetVin", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetVin, - VehicleInfo__GetVin__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetPrndl__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetPrndl__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetPrndl__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetPrndl__request = { - "VehicleInfo", - "GetPrndl", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetPrndl, - VehicleInfo__GetPrndl__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetPrndl__response__parameter1 = { - "prndl", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetPrndl__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetPrndl__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetPrndl__response = { - "VehicleInfo", - "GetPrndl", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetPrndl, - VehicleInfo__GetPrndl__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetTirePressure__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetTirePressure__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetTirePressure__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetTirePressure__request = { - "VehicleInfo", - "GetTirePressure", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetTirePressure, - VehicleInfo__GetTirePressure__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__GetTirePressure__response__parameter1 = { - {"tirePressure", ford_message_descriptions::Struct, true}, - Structs::Common__TireStatus__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetTirePressure__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetTirePressure__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetTirePressure__response = { - "VehicleInfo", - "GetTirePressure", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetTirePressure, - VehicleInfo__GetTirePressure__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetOdometer__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetOdometer__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetOdometer__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetOdometer__request = { - "VehicleInfo", - "GetOdometer", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetOdometer, - VehicleInfo__GetOdometer__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetOdometer__response__parameter1 = { - "odometer", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetOdometer__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetOdometer__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetOdometer__response = { - "VehicleInfo", - "GetOdometer", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetOdometer, - VehicleInfo__GetOdometer__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetBeltStatus__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetBeltStatus__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetBeltStatus__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetBeltStatus__request = { - "VehicleInfo", - "GetBeltStatus", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetBeltStatus, - VehicleInfo__GetBeltStatus__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__GetBeltStatus__response__parameter1 = { - {"beltStatus", ford_message_descriptions::Struct, true}, - Structs::Common__BeltStatus__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetBeltStatus__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetBeltStatus__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetBeltStatus__response = { - "VehicleInfo", - "GetBeltStatus", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetBeltStatus, - VehicleInfo__GetBeltStatus__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetBodyInformation__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetBodyInformation__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetBodyInformation__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetBodyInformation__request = { - "VehicleInfo", - "GetBodyInformation", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetBodyInformation, - VehicleInfo__GetBodyInformation__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__GetBodyInformation__response__parameter1 = { - {"bodyInformation", ford_message_descriptions::Struct, true}, - Structs::Common__BodyInformation__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetBodyInformation__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetBodyInformation__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetBodyInformation__response = { - "VehicleInfo", - "GetBodyInformation", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetBodyInformation, - VehicleInfo__GetBodyInformation__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetDeviceStatus__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetDeviceStatus__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetDeviceStatus__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetDeviceStatus__request = { - "VehicleInfo", - "GetDeviceStatus", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetDeviceStatus, - VehicleInfo__GetDeviceStatus__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__GetDeviceStatus__response__parameter1 = { - {"deviceStatus", ford_message_descriptions::Struct, true}, - Structs::Common__DeviceStatus__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetDeviceStatus__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetDeviceStatus__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetDeviceStatus__response = { - "VehicleInfo", - "GetDeviceStatus", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetDeviceStatus, - VehicleInfo__GetDeviceStatus__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetDriverBraking__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetDriverBraking__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetDriverBraking__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetDriverBraking__request = { - "VehicleInfo", - "GetDriverBraking", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetDriverBraking, - VehicleInfo__GetDriverBraking__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetDriverBraking__response__parameter1 = { - "driverBraking", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetDriverBraking__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetDriverBraking__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetDriverBraking__response = { - "VehicleInfo", - "GetDriverBraking", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetDriverBraking, - VehicleInfo__GetDriverBraking__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetWiperStatus__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetWiperStatus__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetWiperStatus__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetWiperStatus__request = { - "VehicleInfo", - "GetWiperStatus", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetWiperStatus, - VehicleInfo__GetWiperStatus__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetWiperStatus__response__parameter1 = { - "wiperStatus", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetWiperStatus__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetWiperStatus__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetWiperStatus__response = { - "VehicleInfo", - "GetWiperStatus", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetWiperStatus, - VehicleInfo__GetWiperStatus__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetHeadLampStatus__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetHeadLampStatus__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetHeadLampStatus__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetHeadLampStatus__request = { - "VehicleInfo", - "GetHeadLampStatus", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetHeadLampStatus, - VehicleInfo__GetHeadLampStatus__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__GetHeadLampStatus__response__parameter1 = { - {"headLampStatus", ford_message_descriptions::Struct, true}, - Structs::Common__HeadLampStatus__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetHeadLampStatus__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetHeadLampStatus__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetHeadLampStatus__response = { - "VehicleInfo", - "GetHeadLampStatus", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetHeadLampStatus, - VehicleInfo__GetHeadLampStatus__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetEngineTorque__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetEngineTorque__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetEngineTorque__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetEngineTorque__request = { - "VehicleInfo", - "GetEngineTorque", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetEngineTorque, - VehicleInfo__GetEngineTorque__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetEngineTorque__response__parameter1 = { - "engineTorque", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetEngineTorque__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetEngineTorque__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetEngineTorque__response = { - "VehicleInfo", - "GetEngineTorque", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetEngineTorque, - VehicleInfo__GetEngineTorque__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetAccPedalPosition__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetAccPedalPosition__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetAccPedalPosition__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetAccPedalPosition__request = { - "VehicleInfo", - "GetAccPedalPosition", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetAccPedalPosition, - VehicleInfo__GetAccPedalPosition__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetAccPedalPosition__response__parameter1 = { - "accPedalPosition", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetAccPedalPosition__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetAccPedalPosition__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetAccPedalPosition__response = { - "VehicleInfo", - "GetAccPedalPosition", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetAccPedalPosition, - VehicleInfo__GetAccPedalPosition__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetSteeringWheelAngle__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetSteeringWheelAngle__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetSteeringWheelAngle__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetSteeringWheelAngle__request = { - "VehicleInfo", - "GetSteeringWheelAngle", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetSteeringWheelAngle, - VehicleInfo__GetSteeringWheelAngle__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetSteeringWheelAngle__response__parameter1 = { - "steeringWheelAngle", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetSteeringWheelAngle__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetSteeringWheelAngle__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetSteeringWheelAngle__response = { - "VehicleInfo", - "GetSteeringWheelAngle", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetSteeringWheelAngle, - VehicleInfo__GetSteeringWheelAngle__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetECallInfo__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetECallInfo__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetECallInfo__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetECallInfo__request = { - "VehicleInfo", - "GetECallInfo", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetECallInfo, - VehicleInfo__GetECallInfo__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__GetECallInfo__response__parameter1 = { - {"eCallInfo", ford_message_descriptions::Struct, true}, - Structs::Common__ECallInfo__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetECallInfo__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetECallInfo__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetECallInfo__response = { - "VehicleInfo", - "GetECallInfo", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetECallInfo, - VehicleInfo__GetECallInfo__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetAirbagStatus__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetAirbagStatus__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetAirbagStatus__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetAirbagStatus__request = { - "VehicleInfo", - "GetAirbagStatus", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetAirbagStatus, - VehicleInfo__GetAirbagStatus__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__GetAirbagStatus__response__parameter1 = { - {"airbagStatus", ford_message_descriptions::Struct, true}, - Structs::Common__AirbagStatus__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetAirbagStatus__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetAirbagStatus__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetAirbagStatus__response = { - "VehicleInfo", - "GetAirbagStatus", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetAirbagStatus, - VehicleInfo__GetAirbagStatus__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetEmergencyEvent__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetEmergencyEvent__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetEmergencyEvent__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetEmergencyEvent__request = { - "VehicleInfo", - "GetEmergencyEvent", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetEmergencyEvent, - VehicleInfo__GetEmergencyEvent__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__GetEmergencyEvent__response__parameter1 = { - {"emergencyEvent", ford_message_descriptions::Struct, true}, - Structs::Common__EmergencyEvent__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetEmergencyEvent__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetEmergencyEvent__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetEmergencyEvent__response = { - "VehicleInfo", - "GetEmergencyEvent", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetEmergencyEvent, - VehicleInfo__GetEmergencyEvent__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetClusterModeStatus__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetClusterModeStatus__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetClusterModeStatus__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetClusterModeStatus__request = { - "VehicleInfo", - "GetClusterModeStatus", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetClusterModeStatus, - VehicleInfo__GetClusterModeStatus__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__GetClusterModeStatus__response__parameter1 = { - {"clusterModeStatus", ford_message_descriptions::Struct, true}, - Structs::Common__ClusterModeStatus__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetClusterModeStatus__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetClusterModeStatus__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetClusterModeStatus__response = { - "VehicleInfo", - "GetClusterModeStatus", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetClusterModeStatus, - VehicleInfo__GetClusterModeStatus__response__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__GetMyKey__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetMyKey__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetMyKey__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetMyKey__request = { - "VehicleInfo", - "GetMyKey", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_GetMyKey, - VehicleInfo__GetMyKey__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__GetMyKey__response__parameter1 = { - {"myKey", ford_message_descriptions::Struct, true}, - Structs::Common__MyKey__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__GetMyKey__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__GetMyKey__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__GetMyKey__response = { - "VehicleInfo", - "GetMyKey", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_GetMyKey, - VehicleInfo__GetMyKey__response__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__OnGpsData__notification__parameter1 = { - {"gps", ford_message_descriptions::Struct, true}, - Structs::Common__GPSData__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnGpsData__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnGpsData__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnGpsData__notification = { - "VehicleInfo", - "OnGpsData", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnGpsData, - VehicleInfo__OnGpsData__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnSpeed__notification__parameter1 = { - "speed", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnSpeed__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnSpeed__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnSpeed__notification = { - "VehicleInfo", - "OnSpeed", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnSpeed, - VehicleInfo__OnSpeed__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnRpm__notification__parameter1 = { - "rpm", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnRpm__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnRpm__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnRpm__notification = { - "VehicleInfo", - "OnRpm", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnRpm, - VehicleInfo__OnRpm__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnFuelLevel__notification__parameter1 = { - "fuelLevel", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnFuelLevel__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnFuelLevel__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnFuelLevel__notification = { - "VehicleInfo", - "OnFuelLevel", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnFuelLevel, - VehicleInfo__OnFuelLevel__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnFuelLevelState__notification__parameter1 = { - "fuelLevel_State", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnFuelLevelState__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnFuelLevelState__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnFuelLevelState__notification = { - "VehicleInfo", - "OnFuelLevelState", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnFuelLevelState, - VehicleInfo__OnFuelLevelState__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnInstantFuelConsumption__notification__parameter1 = { - "instantFuelConsumption", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnInstantFuelConsumption__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnInstantFuelConsumption__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnInstantFuelConsumption__notification = { - "VehicleInfo", - "OnInstantFuelConsumption", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnInstantFuelConsumption, - VehicleInfo__OnInstantFuelConsumption__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnExternalTemperature__notification__parameter1 = { - "externalTemperature", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnExternalTemperature__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnExternalTemperature__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnExternalTemperature__notification = { - "VehicleInfo", - "OnExternalTemperature", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnExternalTemperature, - VehicleInfo__OnExternalTemperature__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnVin__notification__parameter1 = { - "vin", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnVin__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnVin__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnVin__notification = { - "VehicleInfo", - "OnVin", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnVin, - VehicleInfo__OnVin__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnPrndl__notification__parameter1 = { - "prndl", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnPrndl__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnPrndl__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnPrndl__notification = { - "VehicleInfo", - "OnPrndl", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnPrndl, - VehicleInfo__OnPrndl__notification__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__OnTirePressure__notification__parameter1 = { - {"tirePressure", ford_message_descriptions::Struct, true}, - Structs::Common__TireStatus__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnTirePressure__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnTirePressure__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnTirePressure__notification = { - "VehicleInfo", - "OnTirePressure", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnTirePressure, - VehicleInfo__OnTirePressure__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnOdometer__notification__parameter1 = { - "odometer", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnOdometer__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnOdometer__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnOdometer__notification = { - "VehicleInfo", - "OnOdometer", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnOdometer, - VehicleInfo__OnOdometer__notification__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__OnBeltStatus__notification__parameter1 = { - {"beltStatus", ford_message_descriptions::Struct, true}, - Structs::Common__BeltStatus__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnBeltStatus__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnBeltStatus__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnBeltStatus__notification = { - "VehicleInfo", - "OnBeltStatus", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnBeltStatus, - VehicleInfo__OnBeltStatus__notification__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__OnBodyInformation__notification__parameter1 = { - {"bodyInformation", ford_message_descriptions::Struct, true}, - Structs::Common__BodyInformation__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnBodyInformation__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnBodyInformation__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnBodyInformation__notification = { - "VehicleInfo", - "OnBodyInformation", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnBodyInformation, - VehicleInfo__OnBodyInformation__notification__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__OnDeviceStatus__notification__parameter1 = { - {"deviceStatus", ford_message_descriptions::Struct, true}, - Structs::Common__DeviceStatus__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnDeviceStatus__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnDeviceStatus__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnDeviceStatus__notification = { - "VehicleInfo", - "OnDeviceStatus", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnDeviceStatus, - VehicleInfo__OnDeviceStatus__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnDriverBraking__notification__parameter1 = { - "driverBraking", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnDriverBraking__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnDriverBraking__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnDriverBraking__notification = { - "VehicleInfo", - "OnDriverBraking", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnDriverBraking, - VehicleInfo__OnDriverBraking__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnWiperStatus__notification__parameter1 = { - "wiperStatus", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnWiperStatus__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnWiperStatus__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnWiperStatus__notification = { - "VehicleInfo", - "OnWiperStatus", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnWiperStatus, - VehicleInfo__OnWiperStatus__notification__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__OnHeadLampStatus__notification__parameter1 = { - {"headLampStatus", ford_message_descriptions::Struct, true}, - Structs::Common__HeadLampStatus__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnHeadLampStatus__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnHeadLampStatus__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnHeadLampStatus__notification = { - "VehicleInfo", - "OnHeadLampStatus", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnHeadLampStatus, - VehicleInfo__OnHeadLampStatus__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnEngineTorque__notification__parameter1 = { - "engineTorque", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnEngineTorque__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnEngineTorque__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnEngineTorque__notification = { - "VehicleInfo", - "OnEngineTorque", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnEngineTorque, - VehicleInfo__OnEngineTorque__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnAccPedalPosition__notification__parameter1 = { - "accPedalPosition", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnAccPedalPosition__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnAccPedalPosition__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnAccPedalPosition__notification = { - "VehicleInfo", - "OnAccPedalPosition", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnAccPedalPosition, - VehicleInfo__OnAccPedalPosition__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__OnSteeringWheelAngle__notification__parameter1 = { - "steeringWheelAngle", ford_message_descriptions::Float, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnSteeringWheelAngle__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnSteeringWheelAngle__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnSteeringWheelAngle__notification = { - "VehicleInfo", - "OnSteeringWheelAngle", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnSteeringWheelAngle, - VehicleInfo__OnSteeringWheelAngle__notification__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__OnECallInfo__notification__parameter1 = { - {"eCallInfo", ford_message_descriptions::Struct, true}, - Structs::Common__ECallInfo__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnECallInfo__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnECallInfo__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnECallInfo__notification = { - "VehicleInfo", - "OnECallInfo", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnECallInfo, - VehicleInfo__OnECallInfo__notification__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__OnAirbagStatus__notification__parameter1 = { - {"airbagStatus", ford_message_descriptions::Struct, true}, - Structs::Common__AirbagStatus__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnAirbagStatus__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnAirbagStatus__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnAirbagStatus__notification = { - "VehicleInfo", - "OnAirbagStatus", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnAirbagStatus, - VehicleInfo__OnAirbagStatus__notification__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__OnEmergencyEvent__notification__parameter1 = { - {"emergencyEvent", ford_message_descriptions::Struct, true}, - Structs::Common__EmergencyEvent__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnEmergencyEvent__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnEmergencyEvent__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnEmergencyEvent__notification = { - "VehicleInfo", - "OnEmergencyEvent", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnEmergencyEvent, - VehicleInfo__OnEmergencyEvent__notification__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__OnClusterModeStatus__notification__parameter1 = { - {"clusterModeStatus", ford_message_descriptions::Struct, true}, - Structs::Common__ClusterModeStatus__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnClusterModeStatus__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnClusterModeStatus__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnClusterModeStatus__notification = { - "VehicleInfo", - "OnClusterModeStatus", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnClusterModeStatus, - VehicleInfo__OnClusterModeStatus__notification__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__OnMyKey__notification__parameter1 = { - {"myKey", ford_message_descriptions::Struct, true}, - Structs::Common__MyKey__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__OnMyKey__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__OnMyKey__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__OnMyKey__notification = { - "VehicleInfo", - "OnMyKey", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::VehicleInfo_OnMyKey, - VehicleInfo__OnMyKey__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeGps__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeGps__request = { - "VehicleInfo", - "SubscribeGps", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeGps, - VehicleInfo__SubscribeGps__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeGps__response__parameter1 = { - {"gps", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeGps__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeGps__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeGps__response = { - "VehicleInfo", - "SubscribeGps", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeGps, - VehicleInfo__SubscribeGps__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeGps__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeGps__request = { - "VehicleInfo", - "UnsubscribeGps", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeGps, - VehicleInfo__UnsubscribeGps__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeGps__response__parameter1 = { - {"gps", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeGps__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeGps__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeGps__response = { - "VehicleInfo", - "UnsubscribeGps", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeGps, - VehicleInfo__UnsubscribeGps__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeSpeed__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeSpeed__request = { - "VehicleInfo", - "SubscribeSpeed", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeSpeed, - VehicleInfo__SubscribeSpeed__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeSpeed__response__parameter1 = { - {"speed", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeSpeed__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeSpeed__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeSpeed__response = { - "VehicleInfo", - "SubscribeSpeed", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeSpeed, - VehicleInfo__SubscribeSpeed__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeSpeed__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeSpeed__request = { - "VehicleInfo", - "UnsubscribeSpeed", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeSpeed, - VehicleInfo__UnsubscribeSpeed__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeSpeed__response__parameter1 = { - {"speed", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeSpeed__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeSpeed__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeSpeed__response = { - "VehicleInfo", - "UnsubscribeSpeed", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeSpeed, - VehicleInfo__UnsubscribeSpeed__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeRpm__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeRpm__request = { - "VehicleInfo", - "SubscribeRpm", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeRpm, - VehicleInfo__SubscribeRpm__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeRpm__response__parameter1 = { - {"rpm", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeRpm__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeRpm__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeRpm__response = { - "VehicleInfo", - "SubscribeRpm", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeRpm, - VehicleInfo__SubscribeRpm__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeRpm__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeRpm__request = { - "VehicleInfo", - "UnsubscribeRpm", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeRpm, - VehicleInfo__UnsubscribeRpm__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeRpm__response__parameter1 = { - {"rpm", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeRpm__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeRpm__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeRpm__response = { - "VehicleInfo", - "UnsubscribeRpm", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeRpm, - VehicleInfo__UnsubscribeRpm__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeFuelLevel__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeFuelLevel__request = { - "VehicleInfo", - "SubscribeFuelLevel", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel, - VehicleInfo__SubscribeFuelLevel__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeFuelLevel__response__parameter1 = { - {"fuelLevel", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeFuelLevel__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeFuelLevel__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeFuelLevel__response = { - "VehicleInfo", - "SubscribeFuelLevel", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel, - VehicleInfo__SubscribeFuelLevel__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeFuelLevel__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeFuelLevel__request = { - "VehicleInfo", - "UnsubscribeFuelLevel", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel, - VehicleInfo__UnsubscribeFuelLevel__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeFuelLevel__response__parameter1 = { - {"fuelLevel", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeFuelLevel__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeFuelLevel__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeFuelLevel__response = { - "VehicleInfo", - "UnsubscribeFuelLevel", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel, - VehicleInfo__UnsubscribeFuelLevel__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeFuelLevel_State__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeFuelLevel_State__request = { - "VehicleInfo", - "SubscribeFuelLevel_State", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel_State, - VehicleInfo__SubscribeFuelLevel_State__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeFuelLevel_State__response__parameter1 = { - {"fuelLevel_State", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeFuelLevel_State__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeFuelLevel_State__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeFuelLevel_State__response = { - "VehicleInfo", - "SubscribeFuelLevel_State", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel_State, - VehicleInfo__SubscribeFuelLevel_State__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeFuelLevel_State__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeFuelLevel_State__request = { - "VehicleInfo", - "UnsubscribeFuelLevel_State", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel_State, - VehicleInfo__UnsubscribeFuelLevel_State__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeFuelLevel_State__response__parameter1 = { - {"fuelLevel_State", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeFuelLevel_State__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeFuelLevel_State__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeFuelLevel_State__response = { - "VehicleInfo", - "UnsubscribeFuelLevel_State", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel_State, - VehicleInfo__UnsubscribeFuelLevel_State__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeInstantFuelConsumption__request__parameters[] = { - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeInstantFuelConsumption__request = { - "VehicleInfo", - "SubscribeInstantFuelConsumption", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeInstantFuelConsumption, - VehicleInfo__SubscribeInstantFuelConsumption__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeInstantFuelConsumption__response__parameter1 = { - {"instantFuelConsumption", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeInstantFuelConsumption__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeInstantFuelConsumption__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeInstantFuelConsumption__response = { - "VehicleInfo", - "SubscribeInstantFuelConsumption", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeInstantFuelConsumption, - VehicleInfo__SubscribeInstantFuelConsumption__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeInstantFuelConsumption__request__parameters[] = { - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeInstantFuelConsumption__request = { - "VehicleInfo", - "UnsubscribeInstantFuelConsumption", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeInstantFuelConsumption, - VehicleInfo__UnsubscribeInstantFuelConsumption__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeInstantFuelConsumption__response__parameter1 = { - {"instantFuelConsumption", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeInstantFuelConsumption__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeInstantFuelConsumption__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeInstantFuelConsumption__response = { - "VehicleInfo", - "UnsubscribeInstantFuelConsumption", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeInstantFuelConsumption, - VehicleInfo__UnsubscribeInstantFuelConsumption__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeExternalTemperature__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeExternalTemperature__request = { - "VehicleInfo", - "SubscribeExternalTemperature", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeExternalTemperature, - VehicleInfo__SubscribeExternalTemperature__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeExternalTemperature__response__parameter1 = { - {"externalTemperature", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeExternalTemperature__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeExternalTemperature__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeExternalTemperature__response = { - "VehicleInfo", - "SubscribeExternalTemperature", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeExternalTemperature, - VehicleInfo__SubscribeExternalTemperature__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeExternalTemperature__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeExternalTemperature__request = { - "VehicleInfo", - "UnsubscribeExternalTemperature", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeExternalTemperature, - VehicleInfo__UnsubscribeExternalTemperature__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeExternalTemperature__response__parameter1 = { - {"externalTemperature", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeExternalTemperature__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeExternalTemperature__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeExternalTemperature__response = { - "VehicleInfo", - "UnsubscribeExternalTemperature", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeExternalTemperature, - VehicleInfo__UnsubscribeExternalTemperature__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribePrndl__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribePrndl__request = { - "VehicleInfo", - "SubscribePrndl", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribePrndl, - VehicleInfo__SubscribePrndl__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribePrndl__response__parameter1 = { - {"prndl", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribePrndl__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribePrndl__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribePrndl__response = { - "VehicleInfo", - "SubscribePrndl", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribePrndl, - VehicleInfo__SubscribePrndl__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribePrndl__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribePrndl__request = { - "VehicleInfo", - "UnsubscribePrndl", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribePrndl, - VehicleInfo__UnsubscribePrndl__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribePrndl__response__parameter1 = { - {"prndl", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribePrndl__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribePrndl__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribePrndl__response = { - "VehicleInfo", - "UnsubscribePrndl", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribePrndl, - VehicleInfo__UnsubscribePrndl__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeVin__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeVin__request = { - "VehicleInfo", - "SubscribeVin", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeVin, - VehicleInfo__SubscribeVin__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__SubscribeVin__response__parameter1 = { - "vin", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeVin__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeVin__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeVin__response = { - "VehicleInfo", - "SubscribeVin", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeVin, - VehicleInfo__SubscribeVin__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeVin__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeVin__request = { - "VehicleInfo", - "UnsubscribeVin", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeVin, - VehicleInfo__UnsubscribeVin__request__parameters}; - -const ford_message_descriptions::ParameterDescription - VehicleInfo__UnsubscribeVin__response__parameter1 = { - "vin", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeVin__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeVin__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeVin__response = { - "VehicleInfo", - "UnsubscribeVin", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeVin, - VehicleInfo__UnsubscribeVin__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeTirePressure__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeTirePressure__request = { - "VehicleInfo", - "SubscribeTirePressure", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeTirePressure, - VehicleInfo__SubscribeTirePressure__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeTirePressure__response__parameter1 = { - {"tirePressure", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeTirePressure__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeTirePressure__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeTirePressure__response = { - "VehicleInfo", - "SubscribeTirePressure", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeTirePressure, - VehicleInfo__SubscribeTirePressure__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeTirePressure__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeTirePressure__request = { - "VehicleInfo", - "UnsubscribeTirePressure", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeTirePressure, - VehicleInfo__UnsubscribeTirePressure__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeTirePressure__response__parameter1 = { - {"tirePressure", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeTirePressure__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeTirePressure__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeTirePressure__response = { - "VehicleInfo", - "UnsubscribeTirePressure", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeTirePressure, - VehicleInfo__UnsubscribeTirePressure__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeOdometer__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeOdometer__request = { - "VehicleInfo", - "SubscribeOdometer", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeOdometer, - VehicleInfo__SubscribeOdometer__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeOdometer__response__parameter1 = { - {"odometer", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeOdometer__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeOdometer__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeOdometer__response = { - "VehicleInfo", - "SubscribeOdometer", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeOdometer, - VehicleInfo__SubscribeOdometer__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeOdometer__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeOdometer__request = { - "VehicleInfo", - "UnsubscribeOdometer", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeOdometer, - VehicleInfo__UnsubscribeOdometer__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeOdometer__response__parameter1 = { - {"odometer", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeOdometer__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeOdometer__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeOdometer__response = { - "VehicleInfo", - "UnsubscribeOdometer", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeOdometer, - VehicleInfo__UnsubscribeOdometer__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeBeltStatus__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeBeltStatus__request = { - "VehicleInfo", - "SubscribeBeltStatus", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeBeltStatus, - VehicleInfo__SubscribeBeltStatus__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeBeltStatus__response__parameter1 = { - {"beltStatus", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeBeltStatus__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeBeltStatus__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeBeltStatus__response = { - "VehicleInfo", - "SubscribeBeltStatus", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeBeltStatus, - VehicleInfo__SubscribeBeltStatus__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeBeltStatus__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeBeltStatus__request = { - "VehicleInfo", - "UnsubscribeBeltStatus", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeBeltStatus, - VehicleInfo__UnsubscribeBeltStatus__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeBeltStatus__response__parameter1 = { - {"beltStatus", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeBeltStatus__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeBeltStatus__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeBeltStatus__response = { - "VehicleInfo", - "UnsubscribeBeltStatus", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeBeltStatus, - VehicleInfo__UnsubscribeBeltStatus__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeBodyInformation__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeBodyInformation__request = { - "VehicleInfo", - "SubscribeBodyInformation", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeBodyInformation, - VehicleInfo__SubscribeBodyInformation__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeBodyInformation__response__parameter1 = { - {"bodyInformation", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeBodyInformation__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeBodyInformation__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeBodyInformation__response = { - "VehicleInfo", - "SubscribeBodyInformation", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeBodyInformation, - VehicleInfo__SubscribeBodyInformation__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeBodyInformation__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeBodyInformation__request = { - "VehicleInfo", - "UnsubscribeBodyInformation", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeBodyInformation, - VehicleInfo__UnsubscribeBodyInformation__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeBodyInformation__response__parameter1 = { - {"bodyInformation", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeBodyInformation__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeBodyInformation__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeBodyInformation__response = { - "VehicleInfo", - "UnsubscribeBodyInformation", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeBodyInformation, - VehicleInfo__UnsubscribeBodyInformation__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeDeviceStatus__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeDeviceStatus__request = { - "VehicleInfo", - "SubscribeDeviceStatus", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeDeviceStatus, - VehicleInfo__SubscribeDeviceStatus__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeDeviceStatus__response__parameter1 = { - {"deviceStatus", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeDeviceStatus__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeDeviceStatus__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeDeviceStatus__response = { - "VehicleInfo", - "SubscribeDeviceStatus", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeDeviceStatus, - VehicleInfo__SubscribeDeviceStatus__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeDeviceStatus__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeDeviceStatus__request = { - "VehicleInfo", - "UnsubscribeDeviceStatus", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeDeviceStatus, - VehicleInfo__UnsubscribeDeviceStatus__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeDeviceStatus__response__parameter1 = { - {"deviceStatus", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeDeviceStatus__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeDeviceStatus__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeDeviceStatus__response = { - "VehicleInfo", - "UnsubscribeDeviceStatus", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeDeviceStatus, - VehicleInfo__UnsubscribeDeviceStatus__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeDriverBraking__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeDriverBraking__request = { - "VehicleInfo", - "SubscribeDriverBraking", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeDriverBraking, - VehicleInfo__SubscribeDriverBraking__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeDriverBraking__response__parameter1 = { - {"driverBraking", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeDriverBraking__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeDriverBraking__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeDriverBraking__response = { - "VehicleInfo", - "SubscribeDriverBraking", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeDriverBraking, - VehicleInfo__SubscribeDriverBraking__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeDriverBraking__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeDriverBraking__request = { - "VehicleInfo", - "UnsubscribeDriverBraking", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeDriverBraking, - VehicleInfo__UnsubscribeDriverBraking__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeDriverBraking__response__parameter1 = { - {"driverBraking", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeDriverBraking__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeDriverBraking__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeDriverBraking__response = { - "VehicleInfo", - "UnsubscribeDriverBraking", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeDriverBraking, - VehicleInfo__UnsubscribeDriverBraking__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeWiperStatus__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeWiperStatus__request = { - "VehicleInfo", - "SubscribeWiperStatus", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeWiperStatus, - VehicleInfo__SubscribeWiperStatus__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeWiperStatus__response__parameter1 = { - {"wiperStatus", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeWiperStatus__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeWiperStatus__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeWiperStatus__response = { - "VehicleInfo", - "SubscribeWiperStatus", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeWiperStatus, - VehicleInfo__SubscribeWiperStatus__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeWiperStatus__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeWiperStatus__request = { - "VehicleInfo", - "UnsubscribeWiperStatus", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeWiperStatus, - VehicleInfo__UnsubscribeWiperStatus__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeWiperStatus__response__parameter1 = { - {"wiperStatus", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeWiperStatus__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeWiperStatus__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeWiperStatus__response = { - "VehicleInfo", - "UnsubscribeWiperStatus", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeWiperStatus, - VehicleInfo__UnsubscribeWiperStatus__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeHeadLampStatus__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeHeadLampStatus__request = { - "VehicleInfo", - "SubscribeHeadLampStatus", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeHeadLampStatus, - VehicleInfo__SubscribeHeadLampStatus__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeHeadLampStatus__response__parameter1 = { - {"headLampStatus", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeHeadLampStatus__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeHeadLampStatus__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeHeadLampStatus__response = { - "VehicleInfo", - "SubscribeHeadLampStatus", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeHeadLampStatus, - VehicleInfo__SubscribeHeadLampStatus__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeHeadLampStatus__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeHeadLampStatus__request = { - "VehicleInfo", - "UnsubscribeHeadLampStatus", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeHeadLampStatus, - VehicleInfo__UnsubscribeHeadLampStatus__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeHeadLampStatus__response__parameter1 = { - {"headLampStatus", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeHeadLampStatus__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeHeadLampStatus__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeHeadLampStatus__response = { - "VehicleInfo", - "UnsubscribeHeadLampStatus", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeHeadLampStatus, - VehicleInfo__UnsubscribeHeadLampStatus__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeEngineTorque__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeEngineTorque__request = { - "VehicleInfo", - "SubscribeEngineTorque", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeEngineTorque, - VehicleInfo__SubscribeEngineTorque__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeEngineTorque__response__parameter1 = { - {"engineTorque", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeEngineTorque__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeEngineTorque__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeEngineTorque__response = { - "VehicleInfo", - "SubscribeEngineTorque", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeEngineTorque, - VehicleInfo__SubscribeEngineTorque__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeEngineTorque__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeEngineTorque__request = { - "VehicleInfo", - "UnsubscribeEngineTorque", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeEngineTorque, - VehicleInfo__UnsubscribeEngineTorque__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeEngineTorque__response__parameter1 = { - {"engineTorque", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeEngineTorque__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeEngineTorque__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeEngineTorque__response = { - "VehicleInfo", - "UnsubscribeEngineTorque", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeEngineTorque, - VehicleInfo__UnsubscribeEngineTorque__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeAccPedalPosition__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeAccPedalPosition__request = { - "VehicleInfo", - "SubscribeAccPedalPosition", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeAccPedalPosition, - VehicleInfo__SubscribeAccPedalPosition__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeAccPedalPosition__response__parameter1 = { - {"accPedalPosition", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeAccPedalPosition__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeAccPedalPosition__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeAccPedalPosition__response = { - "VehicleInfo", - "SubscribeAccPedalPosition", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeAccPedalPosition, - VehicleInfo__SubscribeAccPedalPosition__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeAccPedalPosition__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeAccPedalPosition__request = { - "VehicleInfo", - "UnsubscribeAccPedalPosition", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeAccPedalPosition, - VehicleInfo__UnsubscribeAccPedalPosition__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeAccPedalPosition__response__parameter1 = { - {"accPedalPosition", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeAccPedalPosition__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeAccPedalPosition__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeAccPedalPosition__response = { - "VehicleInfo", - "UnsubscribeAccPedalPosition", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeAccPedalPosition, - VehicleInfo__UnsubscribeAccPedalPosition__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeSteeringWheelAngle__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeSteeringWheelAngle__request = { - "VehicleInfo", - "SubscribeSteeringWheelAngle", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeSteeringWheelAngle, - VehicleInfo__SubscribeSteeringWheelAngle__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeSteeringWheelAngle__response__parameter1 = { - {"steeringWheelAngle", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeSteeringWheelAngle__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeSteeringWheelAngle__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeSteeringWheelAngle__response = { - "VehicleInfo", - "SubscribeSteeringWheelAngle", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeSteeringWheelAngle, - VehicleInfo__SubscribeSteeringWheelAngle__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeSteeringWheelAngle__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeSteeringWheelAngle__request = { - "VehicleInfo", - "UnsubscribeSteeringWheelAngle", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeSteeringWheelAngle, - VehicleInfo__UnsubscribeSteeringWheelAngle__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeSteeringWheelAngle__response__parameter1 = { - {"steeringWheelAngle", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeSteeringWheelAngle__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeSteeringWheelAngle__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeSteeringWheelAngle__response = { - "VehicleInfo", - "UnsubscribeSteeringWheelAngle", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeSteeringWheelAngle, - VehicleInfo__UnsubscribeSteeringWheelAngle__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeECallInfo__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeECallInfo__request = { - "VehicleInfo", - "SubscribeECallInfo", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeECallInfo, - VehicleInfo__SubscribeECallInfo__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeECallInfo__response__parameter1 = { - {"eCallInfo", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeECallInfo__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeECallInfo__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeECallInfo__response = { - "VehicleInfo", - "SubscribeECallInfo", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeECallInfo, - VehicleInfo__SubscribeECallInfo__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeECallInfo__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeECallInfo__request = { - "VehicleInfo", - "UnsubscribeECallInfo", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeECallInfo, - VehicleInfo__UnsubscribeECallInfo__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeECallInfo__response__parameter1 = { - {"eCallInfo", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeECallInfo__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeECallInfo__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeECallInfo__response = { - "VehicleInfo", - "UnsubscribeECallInfo", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeECallInfo, - VehicleInfo__UnsubscribeECallInfo__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeAirbagStatus__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeAirbagStatus__request = { - "VehicleInfo", - "SubscribeAirbagStatus", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeAirbagStatus, - VehicleInfo__SubscribeAirbagStatus__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeAirbagStatus__response__parameter1 = { - {"airbagStatus", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeAirbagStatus__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeAirbagStatus__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeAirbagStatus__response = { - "VehicleInfo", - "SubscribeAirbagStatus", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeAirbagStatus, - VehicleInfo__SubscribeAirbagStatus__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeAirbagStatus__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeAirbagStatus__request = { - "VehicleInfo", - "UnsubscribeAirbagStatus", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeAirbagStatus, - VehicleInfo__UnsubscribeAirbagStatus__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeAirbagStatus__response__parameter1 = { - {"airbagStatus", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeAirbagStatus__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeAirbagStatus__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeAirbagStatus__response = { - "VehicleInfo", - "UnsubscribeAirbagStatus", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeAirbagStatus, - VehicleInfo__UnsubscribeAirbagStatus__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeEmergencyEvent__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeEmergencyEvent__request = { - "VehicleInfo", - "SubscribeEmergencyEvent", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeEmergencyEvent, - VehicleInfo__SubscribeEmergencyEvent__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeEmergencyEvent__response__parameter1 = { - {"emergencyEvent", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeEmergencyEvent__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeEmergencyEvent__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeEmergencyEvent__response = { - "VehicleInfo", - "SubscribeEmergencyEvent", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeEmergencyEvent, - VehicleInfo__SubscribeEmergencyEvent__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeEmergencyEvent__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeEmergencyEvent__request = { - "VehicleInfo", - "UnsubscribeEmergencyEvent", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeEmergencyEvent, - VehicleInfo__UnsubscribeEmergencyEvent__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeEmergencyEvent__response__parameter1 = { - {"emergencyEvent", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeEmergencyEvent__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeEmergencyEvent__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeEmergencyEvent__response = { - "VehicleInfo", - "UnsubscribeEmergencyEvent", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeEmergencyEvent, - VehicleInfo__UnsubscribeEmergencyEvent__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeClusterModeStatus__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeClusterModeStatus__request = { - "VehicleInfo", - "SubscribeClusterModeStatus", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeClusterModeStatus, - VehicleInfo__SubscribeClusterModeStatus__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeClusterModeStatus__response__parameter1 = { - {"clusterModeStatus", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeClusterModeStatus__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeClusterModeStatus__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeClusterModeStatus__response = { - "VehicleInfo", - "SubscribeClusterModeStatus", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeClusterModeStatus, - VehicleInfo__SubscribeClusterModeStatus__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeClusterModeStatus__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeClusterModeStatus__request = { - "VehicleInfo", - "UnsubscribeClusterModeStatus", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeClusterModeStatus, - VehicleInfo__UnsubscribeClusterModeStatus__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeClusterModeStatus__response__parameter1 = { - {"clusterModeStatus", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeClusterModeStatus__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeClusterModeStatus__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeClusterModeStatus__response = { - "VehicleInfo", - "UnsubscribeClusterModeStatus", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeClusterModeStatus, - VehicleInfo__UnsubscribeClusterModeStatus__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeMyKey__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeMyKey__request = { - "VehicleInfo", - "SubscribeMyKey", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_SubscribeMyKey, - VehicleInfo__SubscribeMyKey__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__SubscribeMyKey__response__parameter1 = { - {"myKey", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__SubscribeMyKey__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__SubscribeMyKey__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__SubscribeMyKey__response = { - "VehicleInfo", - "SubscribeMyKey", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_SubscribeMyKey, - VehicleInfo__SubscribeMyKey__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeMyKey__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeMyKey__request = { - "VehicleInfo", - "UnsubscribeMyKey", - hmi_apis::messageType::request, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeMyKey, - VehicleInfo__UnsubscribeMyKey__request__parameters}; - -const ford_message_descriptions::StructDescription - VehicleInfo__UnsubscribeMyKey__response__parameter1 = { - {"myKey", ford_message_descriptions::Struct, true}, - Structs::Common__VehicleDataResult__parameters}; -const ford_message_descriptions::ParameterDescription* - VehicleInfo__UnsubscribeMyKey__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&VehicleInfo__UnsubscribeMyKey__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - VehicleInfo__UnsubscribeMyKey__response = { - "VehicleInfo", - "UnsubscribeMyKey", - hmi_apis::messageType::response, - hmi_apis::FunctionID::VehicleInfo_UnsubscribeMyKey, - VehicleInfo__UnsubscribeMyKey__response__parameters}; - -const ford_message_descriptions::ParameterDescription - SDL__ActivateApp__request__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - SDL__ActivateApp__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&SDL__ActivateApp__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription SDL__ActivateApp__request = - {"SDL", - "ActivateApp", - hmi_apis::messageType::request, - hmi_apis::FunctionID::SDL_ActivateApp, - SDL__ActivateApp__request__parameters}; - -const ford_message_descriptions::ParameterDescription - SDL__ActivateApp__response__parameter1 = { - "isSDLAllowed", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::StructDescription - SDL__ActivateApp__response__parameter2 = { - {"device", ford_message_descriptions::Struct, false}, - Structs::Common__DeviceInfo__parameters}; -const ford_message_descriptions::ParameterDescription - SDL__ActivateApp__response__parameter3 = { - "isPermissionsConsentNeeded", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription - SDL__ActivateApp__response__parameter4 = { - "isAppPermissionsRevoked", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::StructDescription - SDL__ActivateApp__response__parameter5_array = { - {"appRevokedPermissions", ford_message_descriptions::Struct, true}, - Structs::Common__PermissionItem__parameters}; -const ford_message_descriptions::ArrayDescription - SDL__ActivateApp__response__parameter5 = { - {"appRevokedPermissions", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__ActivateApp__response__parameter5_array, - "(si(bb))"}; -const ford_message_descriptions::ParameterDescription - SDL__ActivateApp__response__parameter6 = { - "isAppRevoked", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription - SDL__ActivateApp__response__parameter7 = { - "priority", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription* - SDL__ActivateApp__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&SDL__ActivateApp__response__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__ActivateApp__response__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__ActivateApp__response__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__ActivateApp__response__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__ActivateApp__response__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__ActivateApp__response__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__ActivateApp__response__parameter7, - NULL}; -const ford_message_descriptions::MessageDescription SDL__ActivateApp__response = - {"SDL", - "ActivateApp", - hmi_apis::messageType::response, - hmi_apis::FunctionID::SDL_ActivateApp, - SDL__ActivateApp__response__parameters}; - -const ford_message_descriptions::ParameterDescription - SDL__GetUserFriendlyMessage__request__parameter1_array = { - "messageCodes", ford_message_descriptions::String, true}; -const ford_message_descriptions::ArrayDescription - SDL__GetUserFriendlyMessage__request__parameter1 = { - {"messageCodes", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__GetUserFriendlyMessage__request__parameter1_array, - "s"}; -const ford_message_descriptions::ParameterDescription - SDL__GetUserFriendlyMessage__request__parameter2 = { - "language", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription* - SDL__GetUserFriendlyMessage__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&SDL__GetUserFriendlyMessage__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__GetUserFriendlyMessage__request__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - SDL__GetUserFriendlyMessage__request = { - "SDL", - "GetUserFriendlyMessage", - hmi_apis::messageType::request, - hmi_apis::FunctionID::SDL_GetUserFriendlyMessage, - SDL__GetUserFriendlyMessage__request__parameters}; - -const ford_message_descriptions::StructDescription - SDL__GetUserFriendlyMessage__response__parameter1_array = { - {"messages", ford_message_descriptions::Struct, true}, - Structs::Common__UserFriendlyMessage__parameters}; -const ford_message_descriptions::ArrayDescription - SDL__GetUserFriendlyMessage__response__parameter1 = { - {"messages", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__GetUserFriendlyMessage__response__parameter1_array, - "(s(bs)(bs)(bs)(bs)(bs))"}; -const ford_message_descriptions::ParameterDescription* - SDL__GetUserFriendlyMessage__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&SDL__GetUserFriendlyMessage__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - SDL__GetUserFriendlyMessage__response = { - "SDL", - "GetUserFriendlyMessage", - hmi_apis::messageType::response, - hmi_apis::FunctionID::SDL_GetUserFriendlyMessage, - SDL__GetUserFriendlyMessage__response__parameters}; - -const ford_message_descriptions::StructDescription - SDL__OnAllowSDLFunctionality__notification__parameter1 = { - {"device", ford_message_descriptions::Struct, false}, - Structs::Common__DeviceInfo__parameters}; -const ford_message_descriptions::ParameterDescription - SDL__OnAllowSDLFunctionality__notification__parameter2 = { - "allowed", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription - SDL__OnAllowSDLFunctionality__notification__parameter3 = { - "source", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - SDL__OnAllowSDLFunctionality__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnAllowSDLFunctionality__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnAllowSDLFunctionality__notification__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnAllowSDLFunctionality__notification__parameter3, - NULL}; -const ford_message_descriptions::MessageDescription - SDL__OnAllowSDLFunctionality__notification = { - "SDL", - "OnAllowSDLFunctionality", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::SDL_OnAllowSDLFunctionality, - SDL__OnAllowSDLFunctionality__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - SDL__OnReceivedPolicyUpdate__notification__parameter1 = { - "policyfile", ford_message_descriptions::String, true}; -const ford_message_descriptions::ParameterDescription* - SDL__OnReceivedPolicyUpdate__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnReceivedPolicyUpdate__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - SDL__OnReceivedPolicyUpdate__notification = { - "SDL", - "OnReceivedPolicyUpdate", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::SDL_OnReceivedPolicyUpdate, - SDL__OnReceivedPolicyUpdate__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - SDL__OnPolicyUpdate__notification__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - SDL__OnPolicyUpdate__notification = { - "SDL", - "OnPolicyUpdate", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::SDL_OnPolicyUpdate, - SDL__OnPolicyUpdate__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - SDL__GetListOfPermissions__request__parameter1 = { - "appID", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::ParameterDescription* - SDL__GetListOfPermissions__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&SDL__GetListOfPermissions__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - SDL__GetListOfPermissions__request = { - "SDL", - "GetListOfPermissions", - hmi_apis::messageType::request, - hmi_apis::FunctionID::SDL_GetListOfPermissions, - SDL__GetListOfPermissions__request__parameters}; - -const ford_message_descriptions::StructDescription - SDL__GetListOfPermissions__response__parameter1_array = { - {"allowedFunctions", ford_message_descriptions::Struct, true}, - Structs::Common__PermissionItem__parameters}; -const ford_message_descriptions::ArrayDescription - SDL__GetListOfPermissions__response__parameter1 = { - {"allowedFunctions", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__GetListOfPermissions__response__parameter1_array, - "(si(bb))"}; -const ford_message_descriptions::ParameterDescription* - SDL__GetListOfPermissions__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&SDL__GetListOfPermissions__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - SDL__GetListOfPermissions__response = { - "SDL", - "GetListOfPermissions", - hmi_apis::messageType::response, - hmi_apis::FunctionID::SDL_GetListOfPermissions, - SDL__GetListOfPermissions__response__parameters}; - -const ford_message_descriptions::ParameterDescription - SDL__OnAppPermissionConsent__notification__parameter1 = { - "appID", ford_message_descriptions::Integer, false}; -const ford_message_descriptions::StructDescription - SDL__OnAppPermissionConsent__notification__parameter2_array = { - {"consentedFunctions", ford_message_descriptions::Struct, true}, - Structs::Common__PermissionItem__parameters}; -const ford_message_descriptions::ArrayDescription - SDL__OnAppPermissionConsent__notification__parameter2 = { - {"consentedFunctions", ford_message_descriptions::Array, true}, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnAppPermissionConsent__notification__parameter2_array, - "(si(bb))"}; -const ford_message_descriptions::ParameterDescription - SDL__OnAppPermissionConsent__notification__parameter3 = { - "source", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - SDL__OnAppPermissionConsent__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnAppPermissionConsent__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnAppPermissionConsent__notification__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnAppPermissionConsent__notification__parameter3, - NULL}; -const ford_message_descriptions::MessageDescription - SDL__OnAppPermissionConsent__notification = { - "SDL", - "OnAppPermissionConsent", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::SDL_OnAppPermissionConsent, - SDL__OnAppPermissionConsent__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - SDL__OnAppPermissionChanged__notification__parameter1 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription - SDL__OnAppPermissionChanged__notification__parameter2 = { - "isAppPermissionsRevoked", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::StructDescription - SDL__OnAppPermissionChanged__notification__parameter3_array = { - {"appRevokedPermissions", ford_message_descriptions::Struct, true}, - Structs::Common__PermissionItem__parameters}; -const ford_message_descriptions::ArrayDescription - SDL__OnAppPermissionChanged__notification__parameter3 = { - {"appRevokedPermissions", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnAppPermissionChanged__notification__parameter3_array, - "(si(bb))"}; -const ford_message_descriptions::ParameterDescription - SDL__OnAppPermissionChanged__notification__parameter4 = { - "appRevoked", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - SDL__OnAppPermissionChanged__notification__parameter5 = { - "appPermissionsConsentNeeded", - ford_message_descriptions::Boolean, - false}; -const ford_message_descriptions::ParameterDescription - SDL__OnAppPermissionChanged__notification__parameter6 = { - "appUnauthorized", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - SDL__OnAppPermissionChanged__notification__parameter7 = { - "priority", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription - SDL__OnAppPermissionChanged__notification__parameter8_array = { - "requestType", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ArrayDescription - SDL__OnAppPermissionChanged__notification__parameter8 = { - {"requestType", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnAppPermissionChanged__notification__parameter8_array, - "i"}; -const ford_message_descriptions::ParameterDescription* - SDL__OnAppPermissionChanged__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnAppPermissionChanged__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnAppPermissionChanged__notification__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnAppPermissionChanged__notification__parameter3, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnAppPermissionChanged__notification__parameter4, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnAppPermissionChanged__notification__parameter5, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnAppPermissionChanged__notification__parameter6, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnAppPermissionChanged__notification__parameter7, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnAppPermissionChanged__notification__parameter8, - NULL}; -const ford_message_descriptions::MessageDescription - SDL__OnAppPermissionChanged__notification = { - "SDL", - "OnAppPermissionChanged", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::SDL_OnAppPermissionChanged, - SDL__OnAppPermissionChanged__notification__parameters}; - -const ford_message_descriptions::StructDescription - SDL__OnSDLConsentNeeded__notification__parameter1 = { - {"device", ford_message_descriptions::Struct, true}, - Structs::Common__DeviceInfo__parameters}; -const ford_message_descriptions::ParameterDescription* - SDL__OnSDLConsentNeeded__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnSDLConsentNeeded__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - SDL__OnSDLConsentNeeded__notification = { - "SDL", - "OnSDLConsentNeeded", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::SDL_OnSDLConsentNeeded, - SDL__OnSDLConsentNeeded__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - SDL__UpdateSDL__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription SDL__UpdateSDL__request = { - "SDL", - "UpdateSDL", - hmi_apis::messageType::request, - hmi_apis::FunctionID::SDL_UpdateSDL, - SDL__UpdateSDL__request__parameters}; - -const ford_message_descriptions::ParameterDescription - SDL__UpdateSDL__response__parameter1 = { - "result", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - SDL__UpdateSDL__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&SDL__UpdateSDL__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription SDL__UpdateSDL__response = { - "SDL", - "UpdateSDL", - hmi_apis::messageType::response, - hmi_apis::FunctionID::SDL_UpdateSDL, - SDL__UpdateSDL__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - SDL__GetStatusUpdate__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - SDL__GetStatusUpdate__request = {"SDL", - "GetStatusUpdate", - hmi_apis::messageType::request, - hmi_apis::FunctionID::SDL_GetStatusUpdate, - SDL__GetStatusUpdate__request__parameters}; - -const ford_message_descriptions::ParameterDescription - SDL__GetStatusUpdate__response__parameter1 = { - "status", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - SDL__GetStatusUpdate__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&SDL__GetStatusUpdate__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - SDL__GetStatusUpdate__response = { - "SDL", - "GetStatusUpdate", - hmi_apis::messageType::response, - hmi_apis::FunctionID::SDL_GetStatusUpdate, - SDL__GetStatusUpdate__response__parameters}; - -const ford_message_descriptions::ParameterDescription - SDL__OnStatusUpdate__notification__parameter1 = { - "status", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - SDL__OnStatusUpdate__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnStatusUpdate__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - SDL__OnStatusUpdate__notification = { - "SDL", - "OnStatusUpdate", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::SDL_OnStatusUpdate, - SDL__OnStatusUpdate__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - SDL__OnSystemError__notification__parameter1 = { - "error", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - SDL__OnSystemError__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnSystemError__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - SDL__OnSystemError__notification = { - "SDL", - "OnSystemError", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::SDL_OnSystemError, - SDL__OnSystemError__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - SDL__AddStatisticsInfo__notification__parameter1 = { - "statisticType", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription* - SDL__AddStatisticsInfo__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&SDL__AddStatisticsInfo__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - SDL__AddStatisticsInfo__notification = { - "SDL", - "AddStatisticsInfo", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::SDL_AddStatisticsInfo, - SDL__AddStatisticsInfo__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - SDL__GetURLS__request__parameter1 = { - "service", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - SDL__GetURLS__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&SDL__GetURLS__request__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription SDL__GetURLS__request = { - "SDL", - "GetURLS", - hmi_apis::messageType::request, - hmi_apis::FunctionID::SDL_GetURLS, - SDL__GetURLS__request__parameters}; - -const ford_message_descriptions::StructDescription - SDL__GetURLS__response__parameter1_array = { - {"urls", ford_message_descriptions::Struct, true}, - Structs::Common__ServiceInfo__parameters}; -const ford_message_descriptions::ArrayDescription - SDL__GetURLS__response__parameter1 = { - {"urls", ford_message_descriptions::Array, false}, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__GetURLS__response__parameter1_array, - "(s(bs))"}; -const ford_message_descriptions::ParameterDescription* - SDL__GetURLS__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&SDL__GetURLS__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription SDL__GetURLS__response = { - "SDL", - "GetURLS", - hmi_apis::messageType::response, - hmi_apis::FunctionID::SDL_GetURLS, - SDL__GetURLS__response__parameters}; - -const ford_message_descriptions::ParameterDescription - SDL__OnDeviceStateChanged__notification__parameter1 = { - "deviceState", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - SDL__OnDeviceStateChanged__notification__parameter2 = { - "deviceInternalId", ford_message_descriptions::String, true}; -const ford_message_descriptions::StructDescription - SDL__OnDeviceStateChanged__notification__parameter3 = { - {"deviceId", ford_message_descriptions::Struct, false}, - Structs::Common__DeviceInfo__parameters}; -const ford_message_descriptions::ParameterDescription* - SDL__OnDeviceStateChanged__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnDeviceStateChanged__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnDeviceStateChanged__notification__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&SDL__OnDeviceStateChanged__notification__parameter3, - NULL}; -const ford_message_descriptions::MessageDescription - SDL__OnDeviceStateChanged__notification = { - "SDL", - "OnDeviceStateChanged", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::SDL_OnDeviceStateChanged, - SDL__OnDeviceStateChanged__notification__parameters}; - -const ford_message_descriptions::ParameterDescription* - RC__IsReady__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription RC__IsReady__request = { - "RC", - "IsReady", - hmi_apis::messageType::request, - hmi_apis::FunctionID::RC_IsReady, - RC__IsReady__request__parameters}; - -const ford_message_descriptions::ParameterDescription - RC__IsReady__response__parameter1 = { - "available", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription* - RC__IsReady__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&RC__IsReady__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription RC__IsReady__response = { - "RC", - "IsReady", - hmi_apis::messageType::response, - hmi_apis::FunctionID::RC_IsReady, - RC__IsReady__response__parameters}; - -const ford_message_descriptions::ParameterDescription* - RC__GetCapabilities__request__parameters[] = {NULL}; -const ford_message_descriptions::MessageDescription - RC__GetCapabilities__request = {"RC", - "GetCapabilities", - hmi_apis::messageType::request, - hmi_apis::FunctionID::RC_GetCapabilities, - RC__GetCapabilities__request__parameters}; - -const ford_message_descriptions::StructDescription - RC__GetCapabilities__response__parameter1 = { - {"remoteControlCapability", ford_message_descriptions::Struct, false}, - Structs::Common__RemoteControlCapabilities__parameters}; -const ford_message_descriptions::ParameterDescription* - RC__GetCapabilities__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&RC__GetCapabilities__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - RC__GetCapabilities__response = {"RC", - "GetCapabilities", - hmi_apis::messageType::response, - hmi_apis::FunctionID::RC_GetCapabilities, - RC__GetCapabilities__response__parameters}; - -const ford_message_descriptions::StructDescription - RC__SetInteriorVehicleData__request__parameter1 = { - {"moduleData", ford_message_descriptions::Struct, true}, - Structs::Common__ModuleData__parameters}; -const ford_message_descriptions::ParameterDescription - RC__SetInteriorVehicleData__request__parameter2 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - RC__SetInteriorVehicleData__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&RC__SetInteriorVehicleData__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&RC__SetInteriorVehicleData__request__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - RC__SetInteriorVehicleData__request = { - "RC", - "SetInteriorVehicleData", - hmi_apis::messageType::request, - hmi_apis::FunctionID::RC_SetInteriorVehicleData, - RC__SetInteriorVehicleData__request__parameters}; - -const ford_message_descriptions::StructDescription - RC__SetInteriorVehicleData__response__parameter1 = { - {"moduleData", ford_message_descriptions::Struct, true}, - Structs::Common__ModuleData__parameters}; -const ford_message_descriptions::ParameterDescription* - RC__SetInteriorVehicleData__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&RC__SetInteriorVehicleData__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - RC__SetInteriorVehicleData__response = { - "RC", - "SetInteriorVehicleData", - hmi_apis::messageType::response, - hmi_apis::FunctionID::RC_SetInteriorVehicleData, - RC__SetInteriorVehicleData__response__parameters}; - -const ford_message_descriptions::ParameterDescription - RC__GetInteriorVehicleData__request__parameter1 = { - "moduleType", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - RC__GetInteriorVehicleData__request__parameter2 = { - "subscribe", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - RC__GetInteriorVehicleData__request__parameter3 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - RC__GetInteriorVehicleData__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&RC__GetInteriorVehicleData__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&RC__GetInteriorVehicleData__request__parameter2, - (const ford_message_descriptions:: - ParameterDescription*)&RC__GetInteriorVehicleData__request__parameter3, - NULL}; -const ford_message_descriptions::MessageDescription - RC__GetInteriorVehicleData__request = { - "RC", - "GetInteriorVehicleData", - hmi_apis::messageType::request, - hmi_apis::FunctionID::RC_GetInteriorVehicleData, - RC__GetInteriorVehicleData__request__parameters}; - -const ford_message_descriptions::StructDescription - RC__GetInteriorVehicleData__response__parameter1 = { - {"moduleData", ford_message_descriptions::Struct, true}, - Structs::Common__ModuleData__parameters}; -const ford_message_descriptions::ParameterDescription - RC__GetInteriorVehicleData__response__parameter2 = { - "isSubscribed", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription* - RC__GetInteriorVehicleData__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&RC__GetInteriorVehicleData__response__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&RC__GetInteriorVehicleData__response__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - RC__GetInteriorVehicleData__response = { - "RC", - "GetInteriorVehicleData", - hmi_apis::messageType::response, - hmi_apis::FunctionID::RC_GetInteriorVehicleData, - RC__GetInteriorVehicleData__response__parameters}; - -const ford_message_descriptions::ParameterDescription - RC__GetInteriorVehicleDataConsent__request__parameter1 = { - "moduleType", ford_message_descriptions::Enum, true}; -const ford_message_descriptions::ParameterDescription - RC__GetInteriorVehicleDataConsent__request__parameter2 = { - "appID", ford_message_descriptions::Integer, true}; -const ford_message_descriptions::ParameterDescription* - RC__GetInteriorVehicleDataConsent__request__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&RC__GetInteriorVehicleDataConsent__request__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&RC__GetInteriorVehicleDataConsent__request__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - RC__GetInteriorVehicleDataConsent__request = { - "RC", - "GetInteriorVehicleDataConsent", - hmi_apis::messageType::request, - hmi_apis::FunctionID::RC_GetInteriorVehicleDataConsent, - RC__GetInteriorVehicleDataConsent__request__parameters}; - -const ford_message_descriptions::ParameterDescription - RC__GetInteriorVehicleDataConsent__response__parameter1 = { - "allowed", ford_message_descriptions::Boolean, true}; -const ford_message_descriptions::ParameterDescription* - RC__GetInteriorVehicleDataConsent__response__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&RC__GetInteriorVehicleDataConsent__response__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - RC__GetInteriorVehicleDataConsent__response = { - "RC", - "GetInteriorVehicleDataConsent", - hmi_apis::messageType::response, - hmi_apis::FunctionID::RC_GetInteriorVehicleDataConsent, - RC__GetInteriorVehicleDataConsent__response__parameters}; - -const ford_message_descriptions::StructDescription - RC__OnInteriorVehicleData__notification__parameter1 = { - {"moduleData", ford_message_descriptions::Struct, true}, - Structs::Common__ModuleData__parameters}; -const ford_message_descriptions::ParameterDescription* - RC__OnInteriorVehicleData__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&RC__OnInteriorVehicleData__notification__parameter1, - NULL}; -const ford_message_descriptions::MessageDescription - RC__OnInteriorVehicleData__notification = { - "RC", - "OnInteriorVehicleData", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::RC_OnInteriorVehicleData, - RC__OnInteriorVehicleData__notification__parameters}; - -const ford_message_descriptions::ParameterDescription - RC__OnRemoteControlSettings__notification__parameter1 = { - "allowed", ford_message_descriptions::Boolean, false}; -const ford_message_descriptions::ParameterDescription - RC__OnRemoteControlSettings__notification__parameter2 = { - "accessMode", ford_message_descriptions::Enum, false}; -const ford_message_descriptions::ParameterDescription* - RC__OnRemoteControlSettings__notification__parameters[] = { - (const ford_message_descriptions:: - ParameterDescription*)&RC__OnRemoteControlSettings__notification__parameter1, - (const ford_message_descriptions:: - ParameterDescription*)&RC__OnRemoteControlSettings__notification__parameter2, - NULL}; -const ford_message_descriptions::MessageDescription - RC__OnRemoteControlSettings__notification = { - "RC", - "OnRemoteControlSettings", - hmi_apis::messageType::notification, - hmi_apis::FunctionID::RC_OnRemoteControlSettings, - RC__OnRemoteControlSettings__notification__parameters}; -} - -namespace ford_message_descriptions { - -const MessageDescription* message_descriptions[] = { - &Buttons__GetCapabilities__request, - &Buttons__GetCapabilities__response, - &Buttons__OnButtonEvent__notification, - &Buttons__OnButtonPress__notification, - &Buttons__OnButtonSubscription__notification, - &BasicCommunication__OnReady__notification, - &BasicCommunication__OnStartDeviceDiscovery__notification, - &BasicCommunication__OnUpdateDeviceList__notification, - &BasicCommunication__OnPhoneCall__notification, - &BasicCommunication__OnEmergencyEvent__notification, - &BasicCommunication__OnResumeAudioSource__notification, - &BasicCommunication__OnSDLPersistenceComplete__notification, - &BasicCommunication__UpdateAppList__request, - &BasicCommunication__UpdateAppList__response, - &BasicCommunication__UpdateDeviceList__request, - &BasicCommunication__UpdateDeviceList__response, - &BasicCommunication__OnFileRemoved__notification, - &BasicCommunication__AllowDeviceToConnect__request, - &BasicCommunication__AllowDeviceToConnect__response, - &BasicCommunication__OnDeviceChosen__notification, - &BasicCommunication__OnFindApplications__notification, - &BasicCommunication__ActivateApp__request, - &BasicCommunication__ActivateApp__response, - &BasicCommunication__OnAppActivated__notification, - &BasicCommunication__OnAppDeactivated__notification, - &BasicCommunication__OnAppRegistered__notification, - &BasicCommunication__OnAppUnregistered__notification, - &BasicCommunication__OnExitApplication__notification, - &BasicCommunication__OnExitAllApplications__notification, - &BasicCommunication__OnAwakeSDL__notification, - &BasicCommunication__MixingAudioSupported__request, - &BasicCommunication__MixingAudioSupported__response, - &BasicCommunication__PlayTone__notification, - &BasicCommunication__DialNumber__request, - &BasicCommunication__DialNumber__response, - &BasicCommunication__OnSystemRequest__notification, - &BasicCommunication__SystemRequest__request, - &BasicCommunication__SystemRequest__response, - &BasicCommunication__PolicyUpdate__request, - &BasicCommunication__PolicyUpdate__response, - &BasicCommunication__OnSDLClose__notification, - &BasicCommunication__OnPutFile__notification, - &BasicCommunication__GetSystemInfo__request, - &BasicCommunication__GetSystemInfo__response, - &BasicCommunication__OnSystemInfoChanged__notification, - &BasicCommunication__OnIgnitionCycleOver__notification, - &BasicCommunication__DecryptCertificate__request, - &BasicCommunication__DecryptCertificate__response, - &BasicCommunication__OnEventChanged__notification, - &VR__IsReady__request, - &VR__IsReady__response, - &VR__Started__notification, - &VR__Stopped__notification, - &VR__AddCommand__request, - &VR__AddCommand__response, - &VR__DeleteCommand__request, - &VR__DeleteCommand__response, - &VR__PerformInteraction__request, - &VR__PerformInteraction__response, - &VR__OnCommand__notification, - &VR__ChangeRegistration__request, - &VR__ChangeRegistration__response, - &VR__OnLanguageChange__notification, - &VR__GetSupportedLanguages__request, - &VR__GetSupportedLanguages__response, - &VR__GetLanguage__request, - &VR__GetLanguage__response, - &VR__GetCapabilities__request, - &VR__GetCapabilities__response, - &TTS__GetCapabilities__request, - &TTS__GetCapabilities__response, - &TTS__Started__notification, - &TTS__Stopped__notification, - &TTS__IsReady__request, - &TTS__IsReady__response, - &TTS__Speak__request, - &TTS__Speak__response, - &TTS__StopSpeaking__request, - &TTS__StopSpeaking__response, - &TTS__ChangeRegistration__request, - &TTS__ChangeRegistration__response, - &TTS__OnLanguageChange__notification, - &TTS__GetSupportedLanguages__request, - &TTS__GetSupportedLanguages__response, - &TTS__GetLanguage__request, - &TTS__GetLanguage__response, - &TTS__SetGlobalProperties__request, - &TTS__SetGlobalProperties__response, - &TTS__OnResetTimeout__notification, - &UI__Alert__request, - &UI__Alert__response, - &UI__Show__request, - &UI__Show__response, - &UI__AddCommand__request, - &UI__AddCommand__response, - &UI__DeleteCommand__request, - &UI__DeleteCommand__response, - &UI__AddSubMenu__request, - &UI__AddSubMenu__response, - &UI__DeleteSubMenu__request, - &UI__DeleteSubMenu__response, - &UI__PerformInteraction__request, - &UI__PerformInteraction__response, - &UI__SetMediaClockTimer__request, - &UI__SetMediaClockTimer__response, - &UI__SetGlobalProperties__request, - &UI__SetGlobalProperties__response, - &UI__OnCommand__notification, - &UI__OnSystemContext__notification, - &UI__GetCapabilities__request, - &UI__GetCapabilities__response, - &UI__ChangeRegistration__request, - &UI__ChangeRegistration__response, - &UI__OnLanguageChange__notification, - &UI__GetSupportedLanguages__request, - &UI__GetSupportedLanguages__response, - &UI__GetLanguage__request, - &UI__GetLanguage__response, - &UI__OnDriverDistraction__notification, - &UI__SetAppIcon__request, - &UI__SetAppIcon__response, - &UI__SetDisplayLayout__request, - &UI__SetDisplayLayout__response, - &UI__ShowCustomForm__request, - &UI__ShowCustomForm__response, - &UI__OnKeyboardInput__notification, - &UI__OnTouchEvent__notification, - &UI__Slider__request, - &UI__Slider__response, - &UI__ScrollableMessage__request, - &UI__ScrollableMessage__response, - &UI__PerformAudioPassThru__request, - &UI__PerformAudioPassThru__response, - &UI__EndAudioPassThru__request, - &UI__EndAudioPassThru__response, - &UI__IsReady__request, - &UI__IsReady__response, - &UI__ClosePopUp__request, - &UI__ClosePopUp__response, - &UI__OnResetTimeout__notification, - &UI__OnRecordStart__notification, - &UI__SendHapticData__request, - &UI__SendHapticData__response, - &Navigation__IsReady__request, - &Navigation__IsReady__response, - &Navigation__SendLocation__request, - &Navigation__SendLocation__response, - &Navigation__DialNumber__request, - &Navigation__DialNumber__response, - &Navigation__ShowConstantTBT__request, - &Navigation__ShowConstantTBT__response, - &Navigation__AlertManeuver__request, - &Navigation__AlertManeuver__response, - &Navigation__UpdateTurnList__request, - &Navigation__UpdateTurnList__response, - &Navigation__OnTBTClientState__notification, - &Navigation__SetVideoConfig__request, - &Navigation__SetVideoConfig__response, - &Navigation__StartStream__request, - &Navigation__StartStream__response, - &Navigation__StopStream__request, - &Navigation__StopStream__response, - &Navigation__StartAudioStream__request, - &Navigation__StartAudioStream__response, - &Navigation__StopAudioStream__request, - &Navigation__StopAudioStream__response, - &Navigation__OnAudioDataStreaming__notification, - &Navigation__OnVideoDataStreaming__notification, - &Navigation__GetWayPoints__request, - &Navigation__GetWayPoints__response, - &Navigation__OnWayPointChange__notification, - &Navigation__SubscribeWayPoints__request, - &Navigation__SubscribeWayPoints__response, - &Navigation__UnsubscribeWayPoints__request, - &Navigation__UnsubscribeWayPoints__response, - &VehicleInfo__IsReady__request, - &VehicleInfo__IsReady__response, - &VehicleInfo__GetVehicleType__request, - &VehicleInfo__GetVehicleType__response, - &VehicleInfo__ReadDID__request, - &VehicleInfo__ReadDID__response, - &VehicleInfo__GetDTCs__request, - &VehicleInfo__GetDTCs__response, - &VehicleInfo__DiagnosticMessage__request, - &VehicleInfo__DiagnosticMessage__response, - &VehicleInfo__SubscribeVehicleData__request, - &VehicleInfo__SubscribeVehicleData__response, - &VehicleInfo__UnsubscribeVehicleData__request, - &VehicleInfo__UnsubscribeVehicleData__response, - &VehicleInfo__GetVehicleData__request, - &VehicleInfo__GetVehicleData__response, - &VehicleInfo__OnVehicleData__notification, - &VehicleInfo__GetGpsData__request, - &VehicleInfo__GetGpsData__response, - &VehicleInfo__GetSpeed__request, - &VehicleInfo__GetSpeed__response, - &VehicleInfo__GetRpm__request, - &VehicleInfo__GetRpm__response, - &VehicleInfo__GetFuelLevel__request, - &VehicleInfo__GetFuelLevel__response, - &VehicleInfo__GetFuelLevelState__request, - &VehicleInfo__GetFuelLevelState__response, - &VehicleInfo__GetInstantFuelConsumption__request, - &VehicleInfo__GetInstantFuelConsumption__response, - &VehicleInfo__GetExternalTemperature__request, - &VehicleInfo__GetExternalTemperature__response, - &VehicleInfo__GetVin__request, - &VehicleInfo__GetVin__response, - &VehicleInfo__GetPrndl__request, - &VehicleInfo__GetPrndl__response, - &VehicleInfo__GetTirePressure__request, - &VehicleInfo__GetTirePressure__response, - &VehicleInfo__GetOdometer__request, - &VehicleInfo__GetOdometer__response, - &VehicleInfo__GetBeltStatus__request, - &VehicleInfo__GetBeltStatus__response, - &VehicleInfo__GetBodyInformation__request, - &VehicleInfo__GetBodyInformation__response, - &VehicleInfo__GetDeviceStatus__request, - &VehicleInfo__GetDeviceStatus__response, - &VehicleInfo__GetDriverBraking__request, - &VehicleInfo__GetDriverBraking__response, - &VehicleInfo__GetWiperStatus__request, - &VehicleInfo__GetWiperStatus__response, - &VehicleInfo__GetHeadLampStatus__request, - &VehicleInfo__GetHeadLampStatus__response, - &VehicleInfo__GetEngineTorque__request, - &VehicleInfo__GetEngineTorque__response, - &VehicleInfo__GetAccPedalPosition__request, - &VehicleInfo__GetAccPedalPosition__response, - &VehicleInfo__GetSteeringWheelAngle__request, - &VehicleInfo__GetSteeringWheelAngle__response, - &VehicleInfo__GetECallInfo__request, - &VehicleInfo__GetECallInfo__response, - &VehicleInfo__GetAirbagStatus__request, - &VehicleInfo__GetAirbagStatus__response, - &VehicleInfo__GetEmergencyEvent__request, - &VehicleInfo__GetEmergencyEvent__response, - &VehicleInfo__GetClusterModeStatus__request, - &VehicleInfo__GetClusterModeStatus__response, - &VehicleInfo__GetMyKey__request, - &VehicleInfo__GetMyKey__response, - &VehicleInfo__OnGpsData__notification, - &VehicleInfo__OnSpeed__notification, - &VehicleInfo__OnRpm__notification, - &VehicleInfo__OnFuelLevel__notification, - &VehicleInfo__OnFuelLevelState__notification, - &VehicleInfo__OnInstantFuelConsumption__notification, - &VehicleInfo__OnExternalTemperature__notification, - &VehicleInfo__OnVin__notification, - &VehicleInfo__OnPrndl__notification, - &VehicleInfo__OnTirePressure__notification, - &VehicleInfo__OnOdometer__notification, - &VehicleInfo__OnBeltStatus__notification, - &VehicleInfo__OnBodyInformation__notification, - &VehicleInfo__OnDeviceStatus__notification, - &VehicleInfo__OnDriverBraking__notification, - &VehicleInfo__OnWiperStatus__notification, - &VehicleInfo__OnHeadLampStatus__notification, - &VehicleInfo__OnEngineTorque__notification, - &VehicleInfo__OnAccPedalPosition__notification, - &VehicleInfo__OnSteeringWheelAngle__notification, - &VehicleInfo__OnECallInfo__notification, - &VehicleInfo__OnAirbagStatus__notification, - &VehicleInfo__OnEmergencyEvent__notification, - &VehicleInfo__OnClusterModeStatus__notification, - &VehicleInfo__OnMyKey__notification, - &VehicleInfo__SubscribeGps__request, - &VehicleInfo__SubscribeGps__response, - &VehicleInfo__UnsubscribeGps__request, - &VehicleInfo__UnsubscribeGps__response, - &VehicleInfo__SubscribeSpeed__request, - &VehicleInfo__SubscribeSpeed__response, - &VehicleInfo__UnsubscribeSpeed__request, - &VehicleInfo__UnsubscribeSpeed__response, - &VehicleInfo__SubscribeRpm__request, - &VehicleInfo__SubscribeRpm__response, - &VehicleInfo__UnsubscribeRpm__request, - &VehicleInfo__UnsubscribeRpm__response, - &VehicleInfo__SubscribeFuelLevel__request, - &VehicleInfo__SubscribeFuelLevel__response, - &VehicleInfo__UnsubscribeFuelLevel__request, - &VehicleInfo__UnsubscribeFuelLevel__response, - &VehicleInfo__SubscribeFuelLevel_State__request, - &VehicleInfo__SubscribeFuelLevel_State__response, - &VehicleInfo__UnsubscribeFuelLevel_State__request, - &VehicleInfo__UnsubscribeFuelLevel_State__response, - &VehicleInfo__SubscribeInstantFuelConsumption__request, - &VehicleInfo__SubscribeInstantFuelConsumption__response, - &VehicleInfo__UnsubscribeInstantFuelConsumption__request, - &VehicleInfo__UnsubscribeInstantFuelConsumption__response, - &VehicleInfo__SubscribeExternalTemperature__request, - &VehicleInfo__SubscribeExternalTemperature__response, - &VehicleInfo__UnsubscribeExternalTemperature__request, - &VehicleInfo__UnsubscribeExternalTemperature__response, - &VehicleInfo__SubscribePrndl__request, - &VehicleInfo__SubscribePrndl__response, - &VehicleInfo__UnsubscribePrndl__request, - &VehicleInfo__UnsubscribePrndl__response, - &VehicleInfo__SubscribeVin__request, - &VehicleInfo__SubscribeVin__response, - &VehicleInfo__UnsubscribeVin__request, - &VehicleInfo__UnsubscribeVin__response, - &VehicleInfo__SubscribeTirePressure__request, - &VehicleInfo__SubscribeTirePressure__response, - &VehicleInfo__UnsubscribeTirePressure__request, - &VehicleInfo__UnsubscribeTirePressure__response, - &VehicleInfo__SubscribeOdometer__request, - &VehicleInfo__SubscribeOdometer__response, - &VehicleInfo__UnsubscribeOdometer__request, - &VehicleInfo__UnsubscribeOdometer__response, - &VehicleInfo__SubscribeBeltStatus__request, - &VehicleInfo__SubscribeBeltStatus__response, - &VehicleInfo__UnsubscribeBeltStatus__request, - &VehicleInfo__UnsubscribeBeltStatus__response, - &VehicleInfo__SubscribeBodyInformation__request, - &VehicleInfo__SubscribeBodyInformation__response, - &VehicleInfo__UnsubscribeBodyInformation__request, - &VehicleInfo__UnsubscribeBodyInformation__response, - &VehicleInfo__SubscribeDeviceStatus__request, - &VehicleInfo__SubscribeDeviceStatus__response, - &VehicleInfo__UnsubscribeDeviceStatus__request, - &VehicleInfo__UnsubscribeDeviceStatus__response, - &VehicleInfo__SubscribeDriverBraking__request, - &VehicleInfo__SubscribeDriverBraking__response, - &VehicleInfo__UnsubscribeDriverBraking__request, - &VehicleInfo__UnsubscribeDriverBraking__response, - &VehicleInfo__SubscribeWiperStatus__request, - &VehicleInfo__SubscribeWiperStatus__response, - &VehicleInfo__UnsubscribeWiperStatus__request, - &VehicleInfo__UnsubscribeWiperStatus__response, - &VehicleInfo__SubscribeHeadLampStatus__request, - &VehicleInfo__SubscribeHeadLampStatus__response, - &VehicleInfo__UnsubscribeHeadLampStatus__request, - &VehicleInfo__UnsubscribeHeadLampStatus__response, - &VehicleInfo__SubscribeEngineTorque__request, - &VehicleInfo__SubscribeEngineTorque__response, - &VehicleInfo__UnsubscribeEngineTorque__request, - &VehicleInfo__UnsubscribeEngineTorque__response, - &VehicleInfo__SubscribeAccPedalPosition__request, - &VehicleInfo__SubscribeAccPedalPosition__response, - &VehicleInfo__UnsubscribeAccPedalPosition__request, - &VehicleInfo__UnsubscribeAccPedalPosition__response, - &VehicleInfo__SubscribeSteeringWheelAngle__request, - &VehicleInfo__SubscribeSteeringWheelAngle__response, - &VehicleInfo__UnsubscribeSteeringWheelAngle__request, - &VehicleInfo__UnsubscribeSteeringWheelAngle__response, - &VehicleInfo__SubscribeECallInfo__request, - &VehicleInfo__SubscribeECallInfo__response, - &VehicleInfo__UnsubscribeECallInfo__request, - &VehicleInfo__UnsubscribeECallInfo__response, - &VehicleInfo__SubscribeAirbagStatus__request, - &VehicleInfo__SubscribeAirbagStatus__response, - &VehicleInfo__UnsubscribeAirbagStatus__request, - &VehicleInfo__UnsubscribeAirbagStatus__response, - &VehicleInfo__SubscribeEmergencyEvent__request, - &VehicleInfo__SubscribeEmergencyEvent__response, - &VehicleInfo__UnsubscribeEmergencyEvent__request, - &VehicleInfo__UnsubscribeEmergencyEvent__response, - &VehicleInfo__SubscribeClusterModeStatus__request, - &VehicleInfo__SubscribeClusterModeStatus__response, - &VehicleInfo__UnsubscribeClusterModeStatus__request, - &VehicleInfo__UnsubscribeClusterModeStatus__response, - &VehicleInfo__SubscribeMyKey__request, - &VehicleInfo__SubscribeMyKey__response, - &VehicleInfo__UnsubscribeMyKey__request, - &VehicleInfo__UnsubscribeMyKey__response, - &SDL__ActivateApp__request, - &SDL__ActivateApp__response, - &SDL__GetUserFriendlyMessage__request, - &SDL__GetUserFriendlyMessage__response, - &SDL__OnAllowSDLFunctionality__notification, - &SDL__OnReceivedPolicyUpdate__notification, - &SDL__OnPolicyUpdate__notification, - &SDL__GetListOfPermissions__request, - &SDL__GetListOfPermissions__response, - &SDL__OnAppPermissionConsent__notification, - &SDL__OnAppPermissionChanged__notification, - &SDL__OnSDLConsentNeeded__notification, - &SDL__UpdateSDL__request, - &SDL__UpdateSDL__response, - &SDL__GetStatusUpdate__request, - &SDL__GetStatusUpdate__response, - &SDL__OnStatusUpdate__notification, - &SDL__OnSystemError__notification, - &SDL__AddStatisticsInfo__notification, - &SDL__GetURLS__request, - &SDL__GetURLS__response, - &SDL__OnDeviceStateChanged__notification, - &RC__IsReady__request, - &RC__IsReady__response, - &RC__GetCapabilities__request, - &RC__GetCapabilities__response, - &RC__SetInteriorVehicleData__request, - &RC__SetInteriorVehicleData__response, - &RC__GetInteriorVehicleData__request, - &RC__GetInteriorVehicleData__response, - &RC__GetInteriorVehicleDataConsent__request, - &RC__GetInteriorVehicleDataConsent__response, - &RC__OnInteriorVehicleData__notification, - &RC__OnRemoteControlSettings__notification, - NULL}; -} diff --git a/src/components/dbus/src/schema.cc b/src/components/dbus/src/schema.cc deleted file mode 100644 index 3107d9ce6ca..00000000000 --- a/src/components/dbus/src/schema.cc +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright (c) 2013, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#include "dbus/schema.h" - -#include -#include - -namespace dbus { - -struct Description { - MessageId id; - MessageName name; - MessageType type; - ListArgs args; -}; - -struct IsId : public std::unary_function { - explicit IsId(MessageId id) : id_(id) {} - bool operator()(const Description* desc) { - return desc->id == id_; - } - - private: - MessageId id_; -}; - -struct IsName : public std::unary_function { - explicit IsName(const MessageName& name) : name_(name) {} - bool operator()(const Description* desc) { - return desc->name == name_; - } - - private: - MessageName name_; -}; - -struct IsIdType : public std::unary_function { - explicit IsIdType(const MessageId& id, const MessageType& type) - : id_(id), type_(type) {} - bool operator()(const Description* desc) { - return desc->id == id_ && desc->type == type_; - } - - private: - MessageId id_; - MessageType type_; -}; - -struct IsNameType : public std::unary_function { - explicit IsNameType(const MessageName& name, const MessageType& type) - : name_(name), type_(type) {} - bool operator()(const Description* desc) { - return desc->name == name_ && desc->type == type_; - } - - private: - MessageName name_; - MessageType type_; -}; - -DBusSchema::DBusSchema(const MessageDescription** array) { - const MessageDescription** msg = array; - while (*msg != NULL) { - Description* desc = new Description(); - desc->id = (*msg)->function_id; - desc->name = std::make_pair((*msg)->interface, (*msg)->name); - desc->type = (*msg)->message_type; - const ParameterDescription** param; - param = (*msg)->parameters; - while (*param != NULL) { - desc->args.push_back(*param); - param++; - } - msgs_.push_back(desc); - msg++; - } -} - -MessageName DBusSchema::getMessageName(MessageId id) const { - Messages::const_iterator it = - std::find_if(msgs_.begin(), msgs_.end(), IsId(id)); - if (msgs_.end() != it) { - return (*it)->name; - } - return MessageName(); -} - -MessageId DBusSchema::getMessageId(const MessageName& name) const { - Messages::const_iterator it = - std::find_if(msgs_.begin(), msgs_.end(), IsName(name)); - if (msgs_.end() != it) { - return (*it)->id; - } - return hmi_apis::FunctionID::eType::INVALID_ENUM; -} - -ListArgs DBusSchema::getListArgs(MessageId id, MessageType type) const { - Messages::const_iterator it = - std::find_if(msgs_.begin(), msgs_.end(), IsIdType(id, type)); - if (msgs_.end() != it) { - return (*it)->args; - } - return ListArgs(); -} - -ListArgs DBusSchema::getListArgs(const MessageName& name, - MessageType type) const { - Messages::const_iterator it = - std::find_if(msgs_.begin(), msgs_.end(), IsNameType(name, type)); - if (msgs_.end() != it) { - return (*it)->args; - } - return ListArgs(); -} - -} // namespace dbus_schema diff --git a/src/components/dbus/test/CMakeLists.txt b/src/components/dbus/test/CMakeLists.txt deleted file mode 100644 index 914bd2ca840..00000000000 --- a/src/components/dbus/test/CMakeLists.txt +++ /dev/null @@ -1,53 +0,0 @@ -# Copyright (c) 2014, Ford Motor Company -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following -# disclaimer in the documentation and/or other materials provided with the -# distribution. -# -# Neither the name of the Ford Motor Company nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) - -include_directories ( - ${GMOCK_INCLUDE_DIRECTORY} - ${COMPONENTS_DIR}/dbus/include/ - ${COMPONENTS_DIR}/dbus/test/include/ -) - -#FIXME: exclude some tests -set (EXCLUDE_PATHS - dbus_message_controller_test.cc -) - -collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}" ${EXCLUDE_PATHS}) - -set (LIBRARIES - gmock - DBus - formatters - SmartObjects -) - -create_test(test_DBus_test "${SOURCES}" "${LIBRARIES}") diff --git a/src/components/dbus/test/dbus_adapter_test.cc b/src/components/dbus/test/dbus_adapter_test.cc deleted file mode 100644 index 74a6de1aa9f..00000000000 --- a/src/components/dbus/test/dbus_adapter_test.cc +++ /dev/null @@ -1,59 +0,0 @@ -/* - * \file test_dbus_adapter.cc - * \brief - * - * Copyright (c) 2013, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include "dbus/dbus_adapter.h" - -using ::dbus::DBusAdapter; - -namespace test { -namespace components { -namespace dbus { - -class DBusAdapterTest : public ::testing::Test {}; - -TEST_F(DBusAdapterTest, Initialization) { - const std::string kSdlServiceName = "test.ford.sdl.core"; - const std::string kSdlObjectPath = "/"; - const std::string kHmiServiceName = "test.ford.sdl.hmi"; - const std::string kHmiObjectPath = "/"; - ::dbus::DBusAdapter adapter( - kSdlServiceName, kSdlObjectPath, kHmiServiceName, kHmiObjectPath); - EXPECT_TRUE(adapter.Init()); -} - -} // namespace dbus -} // namespace components -} // namespace test diff --git a/src/components/dbus/test/dbus_message_controller_test.cc b/src/components/dbus/test/dbus_message_controller_test.cc deleted file mode 100644 index c06e144f9bd..00000000000 --- a/src/components/dbus/test/dbus_message_controller_test.cc +++ /dev/null @@ -1,116 +0,0 @@ -/* - * \file test_dbus_adapter.cc - * \brief - * - * Copyright (c) 2013, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include -#include "dbus/mock_dbus_message_controller.h" -#include "dbus/mock_subscriber.h" - -using ::testing::_; - -namespace test { -namespace components { -namespace dbus { - -ACTION_P(SignalTest, test) { - if (test->thread_id != pthread_self()) { - pthread_mutex_lock(&test->test_mutex); - pthread_cond_signal(&test->test_cond); - pthread_mutex_unlock(&test->test_mutex); - } else { - test->one_thread = true; - } -} - -class DBusMessageControllerTest : public ::testing::Test { - public: - volatile bool one_thread; - pthread_t thread_id; - static pthread_mutex_t test_mutex; - static pthread_cond_t test_cond; - - protected: - MockDBusMessageController* controller_; - MockSubscriber* subscriber_; - - static void SetUpTestCase() {} - - static void TearDownTestCase() {} - - virtual void SetUp() { - const std::string kService = "sdl.core.test_api"; - const std::string kPath = "/dbus_test"; - controller_ = new MockDBusMessageController(kService, kPath); - subscriber_ = new MockSubscriber(kService, kPath); - ASSERT_TRUE(controller_->Init()); - ASSERT_TRUE(subscriber_->Start()); - } - - void TearDown() OVERRIDE { - delete controller_; - delete subscriber_; - } - - bool waitCond(int seconds) { - if (one_thread) - return true; - timespec elapsed; - clock_gettime(CLOCK_REALTIME, &elapsed); - elapsed.tv_sec += seconds; - return pthread_cond_timedwait(&test_cond, &test_mutex, &elapsed) != - ETIMEDOUT; - } -}; - -pthread_mutex_t DBusMessageControllerTest::test_mutex; -pthread_cond_t DBusMessageControllerTest::test_cond; - -TEST_F(DBusMessageControllerTest, Receive) { - std::string text = "Test message for call method DBus"; - EXPECT_CALL(*controller_, Recv(text)).Times(1).WillOnce(SignalTest(this)); - subscriber_->Send(text); - EXPECT_TRUE(waitCond(1)); -} - -TEST_F(DBusMessageControllerTest, DISABLED_Send) { - const std::string kText = "Test message for signal DBus"; - // EXPECT_CALL(*subscriber_, Receive(kText)).Times(1); - controller_->Send(kText); -} - -} // namespace dbus -} // namespace components -} // namespace test diff --git a/src/components/dbus/test/include/dbus/mock_dbus_message_controller.h b/src/components/dbus/test/include/dbus/mock_dbus_message_controller.h deleted file mode 100644 index 30410a6c7e7..00000000000 --- a/src/components/dbus/test/include/dbus/mock_dbus_message_controller.h +++ /dev/null @@ -1,75 +0,0 @@ -/* -* Copyright (c) 2014, Ford Motor Company -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* -* Redistributions of source code must retain the above copyright notice, this -* list of conditions and the following disclaimer. -* -* Redistributions in binary form must reproduce the above copyright notice, -* this list of conditions and the following -* disclaimer in the documentation and/or other materials provided with the -* distribution. -* -* Neither the name of the Ford Motor Company nor the names of its contributors -* may be used to endorse or promote products derived from this software -* without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef SRC_COMPONENTS_DBUS_TEST_INCLUDE_DBUS_MOCK_DBUS_MESSAGE_CONTROLLER_H_ -#define SRC_COMPONENTS_DBUS_TEST_INCLUDE_DBUS_MOCK_DBUS_MESSAGE_CONTROLLER_H_ - -#include -#include "dbus/dbus_message_controller.h" - -namespace test { -namespace components { -namespace dbus_test { - -class MockDBusMessageController : public ::dbus::DBusMessageController { - public: - MOCK_METHOD1(Recv, void(std::string&)); - - MockDBusMessageController(const std::string& serviceName, - const std::string& path) - : DBusMessageController(serviceName, path), thread_() {} - - virtual void processResponse(std::string method, Json::Value& root) {} - virtual void processRequest(Json::Value& root) {} - virtual void processNotification(Json::Value& root) {} - - bool Init() { - return ::hmi_message_handler::DBusMessageController::Init() && - pthread_create(&thread_, 0, &Run, this) == 0; - } - - private: - pthread_t thread_; - static void* Run(void* data) { - if (NULL != data) { - static_cast(data) - ->MethodForReceiverThread(nullptr); - } - return 0; - } -}; - -} // namespace dbus_test -} // namespace components -} // namespace test - -#endif // SRC_COMPONENTS_DBUS_TEST_INCLUDE_DBUS_MOCK_DBUS_MESSAGE_CONTROLLER_H_ diff --git a/src/components/dbus/test/include/dbus/mock_subscriber.h b/src/components/dbus/test/include/dbus/mock_subscriber.h deleted file mode 100644 index b2a369e3711..00000000000 --- a/src/components/dbus/test/include/dbus/mock_subscriber.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -* Copyright (c) 2014, Ford Motor Company -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* -* Redistributions of source code must retain the above copyright notice, this -* list of conditions and the following disclaimer. -* -* Redistributions in binary form must reproduce the above copyright notice, -* this list of conditions and the following -* disclaimer in the documentation and/or other materials provided with the -* distribution. -* -* Neither the name of the Ford Motor Company nor the names of its contributors -* may be used to endorse or promote products derived from this software -* without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef SRC_COMPONENTS_DBUS_TEST_INCLUDE_DBUS_MOCK_SUBSCRIBER_H_ -#define SRC_COMPONENTS_DBUS_TEST_INCLUDE_DBUS_MOCK_SUBSCRIBER_H_ - -#include - -struct DBusConnection; - -namespace test { -namespace components { -namespace dbus { - -class MockSubscriber { - public: - MockSubscriber(const std::string nameService, const std::string path); - virtual ~MockSubscriber(); - virtual void Receive(); - bool Start(); - void Send(const std::string& message); - - private: - std::string nameService_; - std::string path_; - DBusConnection* conn_; -}; - -} // namespace dbus -} // namespace components -} // namespace test - -#endif // SRC_COMPONENTS_DBUS_TEST_INCLUDE_DBUS_MOCK_SUBSCRIBER_H_ diff --git a/src/components/dbus/test/mock_subscriber.cc b/src/components/dbus/test/mock_subscriber.cc deleted file mode 100644 index 2c5dccaa502..00000000000 --- a/src/components/dbus/test/mock_subscriber.cc +++ /dev/null @@ -1,71 +0,0 @@ -/** -* Copyright (c) 2014, Ford Motor Company -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* -* Redistributions of source code must retain the above copyright notice, this -* list of conditions and the following disclaimer. -* -* Redistributions in binary form must reproduce the above copyright notice, -* this list of conditions and the following -* disclaimer in the documentation and/or other materials provided with the -* distribution. -* -* Neither the name of the Ford Motor Company nor the names of its contributors -* may be used to endorse or promote products derived from this software -* without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -*/ - -#include "dbus/dbus.h" -#include "dbus/mock_subscriber.h" - -namespace test { -namespace components { -namespace dbus { - -MockSubscriber::MockSubscriber(const std::string nameService, - const std::string path) - : nameService_(nameService), path_(path), conn_(NULL) {} - -MockSubscriber::~MockSubscriber() {} - -void MockSubscriber::Receive() {} - -bool MockSubscriber::Start() { - DBusError err; - dbus_error_init(&err); - conn_ = dbus_bus_get(DBUS_BUS_SESSION, &err); - if (dbus_error_is_set(&err)) { - dbus_error_free(&err); - return false; - } - - std::string rule = "type='signal',interface='" + nameService_ + "'"; - dbus_bus_add_match(conn_, rule.c_str(), &err); - dbus_connection_flush(conn_); - if (dbus_error_is_set(&err)) { - dbus_error_free(&err); - return false; - } - return true; -} - -void MockSubscriber::Send(const std::string& message) {} - -} // namespace dbus -} // namespace components -} // namespace test diff --git a/src/components/dbus/test/schema_test.cc b/src/components/dbus/test/schema_test.cc deleted file mode 100644 index 37831279b96..00000000000 --- a/src/components/dbus/test/schema_test.cc +++ /dev/null @@ -1,118 +0,0 @@ -/* - * \file test_schema.cc - * \brief - * - * Copyright (c) 2013, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include "dbus/schema.h" - -using dbus::DBusSchema; -using dbus::MessageId; -using dbus::MessageName; -using dbus::MessageType; -using dbus::ListArgs; -using ford_message_descriptions::ParameterDescription; - -namespace test { -namespace components { -namespace dbus { - -class DBusSchemaTest : public ::testing::Test { - protected: - static void SetUpTestCase() { - schema_ = new DBusSchema(ford_message_descriptions::message_descriptions); - } - - static void TearDownTestCase() { - delete schema_; - } - - static const DBusSchema* schema_; - static const int test_negative_value = -3; -}; - -const DBusSchema* DBusSchemaTest::schema_ = 0; - -TEST_F(DBusSchemaTest, GetName) { - const MessageId kId = hmi_apis::FunctionID::Buttons_GetCapabilities; - const MessageName kExpName("Buttons", "GetCapabilities"); - MessageName name = schema_->getMessageName(kId); - EXPECT_EQ(kExpName, name); - - const MessageId kIdWrong = static_cast(test_negative_value); - const MessageName kExpNameWrong("", ""); - name = schema_->getMessageName(kIdWrong); - EXPECT_EQ(kExpNameWrong, name); -} - -TEST_F(DBusSchemaTest, GetId) { - const MessageName kName("Buttons", "GetCapabilities"); - const MessageId kExpId = hmi_apis::FunctionID::Buttons_GetCapabilities; - MessageId id = schema_->getMessageId(kName); - EXPECT_EQ(kExpId, id); - - const MessageName kNameWrong("TestInterface", "TestMessage"); - const MessageId kExpIdWrong = hmi_apis::FunctionID::INVALID_ENUM; - id = schema_->getMessageId(kNameWrong); - EXPECT_EQ(kExpIdWrong, id); -} - -TEST_F(DBusSchemaTest, GetListArg) { - const MessageName kName("Buttons", "GetCapabilities"); - const MessageType kType = hmi_apis::messageType::response; - const MessageId kId = hmi_apis::FunctionID::Buttons_GetCapabilities; - ListArgs argsName = schema_->getListArgs(kName, kType); - const ParameterDescription** params = - ford_message_descriptions::message_descriptions[1]->parameters; - EXPECT_EQ(params[0], argsName[0]); - EXPECT_EQ(params[1], argsName[1]); - - ListArgs argsId = schema_->getListArgs(kId, kType); - EXPECT_EQ(params[0], argsId[0]); - EXPECT_EQ(params[1], argsId[1]); - - const MessageId kIdWrong = static_cast(test_negative_value); - const MessageName kNameWrong("TestInterface", "TestMessage"); - const MessageType kTypeWrong = - static_cast(test_negative_value); - const ListArgs kExpListWrong; - argsName = schema_->getListArgs(kNameWrong, kTypeWrong); - EXPECT_EQ(kExpListWrong, argsName); - - argsId = schema_->getListArgs(kIdWrong, kTypeWrong); - EXPECT_EQ(kExpListWrong, argsId); -} - -} // namespace dbus -} // namespace components -} // namespace test diff --git a/src/components/hmi_message_handler/CMakeLists.txt b/src/components/hmi_message_handler/CMakeLists.txt index 9fb233b4462..8fafee1ac53 100644 --- a/src/components/hmi_message_handler/CMakeLists.txt +++ b/src/components/hmi_message_handler/CMakeLists.txt @@ -43,7 +43,6 @@ include_directories ( ${MESSAGE_BROKER_INCLUDE_DIRECTORY} ${COMPONENTS_DIR} ${CMAKE_BINARY_DIR}/src/components/ - ${COMPONENTS_DIR}/dbus/include/ ${CMAKE_SOURCE_DIR}/ ${LOG4CXX_INCLUDE_DIRECTORY} ${COMPONENTS_DIR}/hmi_message_handler/include @@ -56,14 +55,6 @@ set(PATHS ${CMAKE_CURRENT_SOURCE_DIR}/src ) -if (HMIADAPTER STREQUAL "dbus") - set(EXCLUDE_PATHS messagebroker_adapter.cc) - set(DBUS_ADAPTER DBus) -else() - set(EXCLUDE_PATHS dbus_message_adapter.cc) - set(DBUS_ADAPTER) -endif () - list(APPEND EXCLUDE_PATHS mqueue_adapter.cc ) @@ -72,7 +63,6 @@ collect_sources(SOURCES "${PATHS}" "${EXCLUDE_PATHS}") set(LIBRARIES Utils - ${DBUS_ADAPTER} ${RTLIB} ) diff --git a/src/components/hmi_message_handler/include/hmi_message_handler/dbus_message_adapter.h b/src/components/hmi_message_handler/include/hmi_message_handler/dbus_message_adapter.h deleted file mode 100644 index beb7a9ad1d0..00000000000 --- a/src/components/hmi_message_handler/include/hmi_message_handler/dbus_message_adapter.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (c) 2013, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_DBUS_MESSAGE_ADAPTER_H_ -#define SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_DBUS_MESSAGE_ADAPTER_H_ - -#include -#include "hmi_message_handler/hmi_message_adapter_impl.h" -#include "dbus/dbus_message_controller.h" -#include "smart_objects/smart_object.h" - -namespace hmi_message_handler { - -/** - * \brief adapter for DBus - */ -class DBusMessageAdapter : public HMIMessageAdapterImpl, - public dbus::DBusMessageController { - public: - typedef utils::SharedPtr MessageSharedPointer; - explicit DBusMessageAdapter(HMIMessageHandler* hmi_msg_handler); - ~DBusMessageAdapter(); - void SendMessageToHMI(MessageSharedPointer message); - - /** - * \brief subscribes to signals - */ - void SubscribeTo(); - - private: - static const std::string SDL_SERVICE_NAME; - static const std::string SDL_OBJECT_PATH; - static const std::string HMI_SERVICE_NAME; - static const std::string HMI_OBJECT_PATH; - - /** - * \brief sends request to HMI - * \param obj request - */ - void Request(const smart_objects::SmartObject& obj); - - /** - * \brief sends notification to HMI - * \param obj notification - */ - void Notification(const smart_objects::SmartObject& obj); - - /** - * \brief sends response to HMI - * \param obj response - */ - void Response(const smart_objects::SmartObject& obj); - - /** - * \brief sends error response to HMI - * \param obj error - */ - void ErrorResponse(const smart_objects::SmartObject& obj); - - /** - * \brief sends message to core - * \param obj - */ - void SendMessageToCore(const smart_objects::SmartObject& obj); -}; - -} // namespace hmi_message_handler - -#endif // SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_DBUS_MESSAGE_ADAPTER_H_ diff --git a/src/components/hmi_message_handler/src/dbus_message_adapter.cc b/src/components/hmi_message_handler/src/dbus_message_adapter.cc deleted file mode 100644 index 5b0b11e5578..00000000000 --- a/src/components/hmi_message_handler/src/dbus_message_adapter.cc +++ /dev/null @@ -1,223 +0,0 @@ -/* - * Copyright (c) 2013, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include "hmi_message_handler/dbus_message_adapter.h" -#include -#include "utils/logger.h" -#include "formatters/CSmartFactory.h" -#include "smart_objects/smart_object.h" - -namespace sos = NsSmartDeviceLink::NsJSONHandler::strings; - -namespace hmi_message_handler { - -CREATE_LOGGERPTR_GLOBAL(logger_, "HMIMessageHandler") - -const std::string DBusMessageAdapter::SDL_SERVICE_NAME = "com.ford.sdl.core"; -const std::string DBusMessageAdapter::SDL_OBJECT_PATH = "/"; -const std::string DBusMessageAdapter::HMI_SERVICE_NAME = "com.ford.sdl.hmi"; -const std::string DBusMessageAdapter::HMI_OBJECT_PATH = "/"; - -std::vector& split(const std::string& s, - char delim, - std::vector& elems) { - std::stringstream ss(s); - std::string item; - while (std::getline(ss, item, delim)) { - elems.push_back(item); - } - return elems; -} - -DBusMessageAdapter::DBusMessageAdapter(HMIMessageHandler* hmi_msg_handler) - : HMIMessageAdapterImpl(hmi_msg_handler) - , DBusMessageController(SDL_SERVICE_NAME, - SDL_OBJECT_PATH, - HMI_SERVICE_NAME, - HMI_OBJECT_PATH) { - LOG4CXX_INFO(logger_, "Created DBusMessageAdapter"); -} - -DBusMessageAdapter::~DBusMessageAdapter() {} - -void DBusMessageAdapter::SendMessageToHMI(MessageSharedPointer message) { - LOG4CXX_INFO(logger_, "DBusMessageAdapter::sendMessageToHMI"); - - const smart_objects::SmartObject& smart = message->smart_object(); - switch (smart[sos::S_PARAMS][sos::S_MESSAGE_TYPE].asInt()) { - case hmi_apis::messageType::request: - Request(smart); - break; - case hmi_apis::messageType::notification: - Notification(smart); - break; - case hmi_apis::messageType::response: - Response(smart); - break; - case hmi_apis::messageType::error_response: - ErrorResponse(smart); - break; - case hmi_apis::messageType::INVALID_ENUM: - default: - LOG4CXX_WARN(logger_, "Message type is invalid"); - } -} - -void DBusMessageAdapter::SubscribeTo() { - LOG4CXX_INFO(logger_, "DBusMessageAdapter::subscribeTo"); - DBusMessageController::SubscribeTo("Buttons", "OnButtonEvent"); - DBusMessageController::SubscribeTo("Buttons", "OnButtonPress"); - DBusMessageController::SubscribeTo("UI", "OnCommand"); - DBusMessageController::SubscribeTo("UI", "OnDriverDistraction"); - DBusMessageController::SubscribeTo("UI", "OnSystemContext"); - DBusMessageController::SubscribeTo("UI", "OnLanguageChange"); - DBusMessageController::SubscribeTo("UI", "OnKeyboardInput"); - DBusMessageController::SubscribeTo("UI", "OnTouchEvent"); - DBusMessageController::SubscribeTo("UI", "OnResetTimeout"); - DBusMessageController::SubscribeTo("TTS", "OnResetTimeout"); - DBusMessageController::SubscribeTo("VR", "Started"); - DBusMessageController::SubscribeTo("VR", "Stopped"); - DBusMessageController::SubscribeTo("VR", "OnCommand"); - DBusMessageController::SubscribeTo("VR", "OnLanguageChange"); - DBusMessageController::SubscribeTo("BasicCommunication", "OnReady"); - DBusMessageController::SubscribeTo("BasicCommunication", "OnAppDeactivated"); - DBusMessageController::SubscribeTo("BasicCommunication", - "OnStartDeviceDiscovery"); - DBusMessageController::SubscribeTo("BasicCommunication", - "OnUpdateDeviceList"); - DBusMessageController::SubscribeTo("BasicCommunication", - "OnFindApplications"); - DBusMessageController::SubscribeTo("BasicCommunication", "OnAppActivated"); - DBusMessageController::SubscribeTo("BasicCommunication", "OnExitApplication"); - DBusMessageController::SubscribeTo("BasicCommunication", - "OnExitAllApplications"); - DBusMessageController::SubscribeTo("BasicCommunication", "OnDeviceChosen"); - DBusMessageController::SubscribeTo("BasicCommunication", - "OnIgnitionCycleOver"); - DBusMessageController::SubscribeTo("BasicCommunication", "OnSystemRequest"); - DBusMessageController::SubscribeTo("BasicCommunication", - "OnSystemInfoChanged"); - DBusMessageController::SubscribeTo("TTS", "Started"); - DBusMessageController::SubscribeTo("TTS", "Stopped"); - DBusMessageController::SubscribeTo("TTS", "OnLanguageChange"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnGpsData"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnSpeed"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnRpm"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnFuelLevel"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnFuelLevelState"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnInstantFuelConsumption"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnExternalTemperature"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnVin"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnPrndl"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnTirePressure"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnOdometer"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnBeltStatus"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnBodyInformation"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnDeviceStatus"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnDriverBraking"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnWiperStatus"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnHeadLampStatus"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnEngineTorque"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnAccPedalPosition"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnSteeringWheelAngle"); - DBusMessageController::SubscribeTo("VehicleInfo", "OnMyKey"); - DBusMessageController::SubscribeTo("Navigation", "OnTBTClientState"); - DBusMessageController::SubscribeTo("Navigation", "OnWayPointChange"); - DBusMessageController::SubscribeTo("SDL", "OnAllowSDLFunctionality"); - DBusMessageController::SubscribeTo("SDL", "OnReceivedPolicyUpdate"); - DBusMessageController::SubscribeTo("SDL", "OnPolicyUpdate"); - DBusMessageController::SubscribeTo("SDL", "OnAppPermissionConsent"); - DBusMessageController::SubscribeTo("SDL", "OnSystemError"); - DBusMessageController::SubscribeTo("SDL", "AddStatisticsInfo"); - DBusMessageController::SubscribeTo("SDL", "OnDeviceStateChanged"); - - LOG4CXX_INFO(logger_, "Subscribed to notifications."); -} - -void DBusMessageAdapter::SendMessageToCore( - const smart_objects::SmartObject& obj) { - LOG4CXX_AUTO_TRACE(logger_); - - if (!handler()) { - LOG4CXX_WARN(logger_, "DBusMessageAdapter hasn't handler"); - return; - } - - MessageSharedPointer message = new application_manager::Message( - protocol_handler::MessagePriority::kDefault); // todo: ykazakov constant - // is a temp solution to - // finish - // merge - // MessagePriority::FromServiceType(message.servicetype) - // shall be used instead - message->set_protocol_version( - protocol_handler::MajorProtocolVersion::PROTOCOL_VERSION_HMI); - message->set_smart_object(obj); - handler()->OnMessageReceived(message); - LOG4CXX_INFO(logger_, "Successfully sent to observer"); -} - -void DBusMessageAdapter::Request(const smart_objects::SmartObject& obj) { - LOG4CXX_AUTO_TRACE(logger_); - dbus::MessageId func_id = static_cast( - obj[sos::S_PARAMS][sos::S_FUNCTION_ID].asInt()); - dbus::MessageName name = get_schema().getMessageName(func_id); - uint id = obj[sos::S_PARAMS][sos::S_CORRELATION_ID].asInt(); - MethodCall(id, func_id, name, obj[sos::S_MSG_PARAMS]); -} - -void DBusMessageAdapter::Notification(const smart_objects::SmartObject& obj) { - LOG4CXX_AUTO_TRACE(logger_); - dbus::MessageId func_id = static_cast( - obj[sos::S_PARAMS][sos::S_FUNCTION_ID].asInt()); - dbus::MessageName name = get_schema().getMessageName(func_id); - Signal(func_id, name, obj[sos::S_MSG_PARAMS]); -} - -void DBusMessageAdapter::Response(const smart_objects::SmartObject& obj) { - LOG4CXX_AUTO_TRACE(logger_); - dbus::MessageId func_id = static_cast( - obj[sos::S_PARAMS][sos::S_FUNCTION_ID].asInt()); - dbus::MessageName name = get_schema().getMessageName(func_id); - uint id = obj[sos::S_PARAMS][sos::S_CORRELATION_ID].asInt(); - MethodReturn(id, func_id, name, obj[sos::S_MSG_PARAMS]); -} - -void DBusMessageAdapter::ErrorResponse(const smart_objects::SmartObject& obj) { - LOG4CXX_DEBUG(logger_, "Error"); - std::string error = obj[sos::S_PARAMS][sos::kCode].asString(); - std::string description = obj[sos::S_PARAMS][sos::kMessage].asString(); - uint id = obj[sos::S_PARAMS][sos::S_CORRELATION_ID].asInt(); - Error(id, error, description); -} - -} // namespace hmi_message_handler diff --git a/src/components/interfaces/CMakeLists.txt b/src/components/interfaces/CMakeLists.txt index 1ea481f11af..660cbd661d8 100644 --- a/src/components/interfaces/CMakeLists.txt +++ b/src/components/interfaces/CMakeLists.txt @@ -44,31 +44,8 @@ add_library(v4_protocol_v1_2_no_extra ${CMAKE_CURRENT_BINARY_DIR}/v4_protocol_v1 generate_interface("MOBILE_API.xml" "mobile_apis" "sdlrpcv2") add_library(MOBILE_API ${CMAKE_CURRENT_BINARY_DIR}/MOBILE_API_schema.cc) -if(HMI_JSON_API) - generate_interface("HMI_API.xml" "hmi_apis" "jsonrpc") - add_library(HMI_API ${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.cc) -endif() - -if(HMI_DBUS_API) - generate_interface("QT_HMI_API.xml" "hmi_apis" "jsonrpc") - - add_custom_command( - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/HMI_API.h" - COMMAND sed "-e" "s/QT_HMI_API/HMI_API/g" "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API.h" > "${CMAKE_CURRENT_BINARY_DIR}/HMI_API.h" - DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API.h" - ) - add_custom_command( - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.h" - COMMAND sed "-e" "s/QT_HMI_API/HMI_API/g" "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API_schema.h" > "${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.h" - DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API_schema.h" - ) - add_custom_command( - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.cc" - COMMAND sed "-e" "s/QT_HMI_API/HMI_API/g" "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API_schema.cc" > "${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.cc" - DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API_schema.cc" "${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.h" "${CMAKE_CURRENT_BINARY_DIR}/HMI_API.h") - - add_library(HMI_API ${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.cc) -endif() +generate_interface("HMI_API.xml" "hmi_apis" "jsonrpc") +add_library(HMI_API ${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.cc) target_link_libraries(v4_protocol_v1_2_no_extra Utils) target_link_libraries(MOBILE_API Utils) diff --git a/src/components/interfaces/QT_HMI_API.xml b/src/components/interfaces/QT_HMI_API.xml deleted file mode 100644 index 0c86d4eea36..00000000000 --- a/src/components/interfaces/QT_HMI_API.xml +++ /dev/null @@ -1,5517 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Lists of the transport types used for device connection to HU. - - - - - - - - Defines the hard (physical) and soft (touchscreen) buttons available from SYNC - - - - - - - - - - - - - - - - - - - - - A button has been released up - - - A button has been pressed down - - - - - A button was released, after it was pressed for a long time. Actual timing is defined by head unit and may vary - - - A button was released, after it was pressed for a short time. Actual timing is defined by head unit and may vary - - - - - English - US - - - Spanish - Mexico - - - French - Canada - - - German - Germany - - - Spanish - Spain - - - English - GB - - - Russian - Russia - - - Turkish - Turkey - - - Polish - Poland - - - French - France - - - Italian - Italy - - - Swedish - Sweden - - - Portuguese - Portugal - - - Dutch (Standard) - Netherlands - - - English - Australia - - - Mandarin - China - - - Mandarin - Taiwan - - - Japanese - Japan - - - Arabic - Saudi Arabia - - - Korean - South Korea - - - Portuguese - Brazil - - - Czech - Czech Republic - - - Danish - Denmark - - - Norwegian - Norway - - - Dutch (Flemish) - Belgium - - - Greek - Greece - - - Hungarian - Hungary - - - Finnish - Finland - - - Slovak - Slovakia - - - English - India - - - Thai - Thailand - - - English - Middle East - - - Hebrew - Israel - - - Romanian - Romania - - - Ukrainian - Ukraine - - - Indonesian - Indonesia - - - Vietnamese - Vietnam - - - Malay - Malaysia - - - Hindi - India - - - - Contains information about the SoftButton capabilities. - - - - - - Enumeration that describes system actions that can be triggered. - - Default action occurs. Standard behavior (e.g. SoftButton clears overlay). - - - The calling app's dialog or related event should clear and the app should be brought into HMI_FULL. - - - Current system context is maintained. An overlay is persisted even though a SoftButton has been pressed and the notification sent. - - - - Enumeration listing possible app types. - - - - - - - - - - - - - Describes what kind of waypoint is requested/provided. - - - - - - - Latitude of the location. - - - Longitude of the location. - - - - For touchscreen interactions, the mode of how the choices are presented. - - This mode causes the interaction to display the previous set of choices as icons. - - This mode causes the interaction to display the previous set of choices as icons along with a search field in the HMI. - - This mode causes the interaction to display the previous set of choices as a list. - - This mode causes the interaction to display the previous set of choices as a list along with a search field in the HMI. - - This mode causes the interaction to immediately display a keyboard entry through the HMI. - - - Specifies the functionality the User has switched to. - - Navigated to audio(radio, etc) - - - Navigated to make a call. - - - Navigated to navigation screen. - - - Navigated to phone menu. - - - Navigated to settings menu. - - - Other screens navigation apart from other mobile app. - - - - Describes how the media clock timer should behave on the platform - - Starts the media clock timer counting upwards, as in time elapsed. - - Starts the media clock timer counting downwards, as in time remaining. - - Pauses the media clock timer - - Resume the media clock timer - - Clears the media clock timer (previously done through Show->mediaClock) - - - Enumeration that describes possible contexts the application might be in on HU. - Communicated to whichever app is in HMI FULL, except Alert. - - The app's persistent display (whether media/non-media/navigation) is fully visible onscreen. - There is currently no user interaction (user-initiated or app-initiated) with the head-unit - - - The system is currently in a VR session (with whatever dedicated VR screen being overlaid onscreen). - - - The system is currently displaying a system or in-App menu onscreen. - - - The app's display HMI is currently obscuring with either a system or other app's overlay (except of Alert element). - - - Broadcast only to whichever app has an alert currently being displayed. - - - - Contains information about the HMI zone capabilities. - For future use. - - - - - Contains information about the TTS capabilities. - - - - - - - - Contains information about the VR capabilities. - - - - Contains a list of prerecorded speech items present on the platform. - - - - - - - - Enumeration that describes possible states of turn-by-turn client or SmartDeviceLink app. - - - - - - - - - - - - - Describes the reasons for exiting all of applications. - - - - - - - The possible types of HU display. - - A 2-line x 20 character "dot matrix" display - - - 1 line older radio head unit. - - - Old radio head unit. - - - Next Generation Navigation display. - - - GEN-2, 8 inch display. - - - GEN-2, 6 inch display. - - - 3 inch GEN1.1 display - - - 4 inch GEN1.1 display - - - 5 inch GEN1.1 display - - - - - Contains information about the type of image. - - - - - - By getting this value, SDL puts the named app to NONE HMILevel - - - By getting this value, SDL puts the named app to NONE HMILevel - - - By getting this value, SDL unregisters the named application - - - By getting this value, SDL unregisters the named application - - - - - The first line of first set of main fields of the persistent display; applies to "Show" - - - The second line of first set of main fields of the persistent display; applies to "Show" - - - The first line of second set of main fields of persistent display; applies to "Show" - - - The second line of second set of main fields of the persistent display; applies to "Show" - - - The status bar on NGN; applies to "Show" - - - Text value for MediaClock field; applies to "Show" - - - The track field of NGN and GEN1.1 MFD displays. This field is only available for media applications; applies to "Show" - - - The first line of the alert text field; applies to "Alert" - - - The second line of the alert text field; applies to "Alert" - - - The third line of the alert text field; applies to "Alert" - - - Long form body of text that can include newlines and tabs; applies to "ScrollableMessage" - - - First line suggestion for a user response (in the case of VR enabled interaction - - - First line of navigation text - - - Second line of navigation text - - - Estimated Time of Arrival time for navigation - - - Total distance to destination for navigation - - - First line of text for audio pass thru - - - Second line of text for audio pass thru - - - Header text for slider - - - Footer text for slider - - - Primary text for Choice - - - Secondary text for Choice - - - Tertiary text for Choice - - - Optional text to label an app menu button (for certain touchscreen platforms). - - - - Navigation text for UpdateTurnList. - - - Text of notification to be displayed on screen. - - - Optional name / title of intended location for SendLocation. - - - Optional description of intended location / establishment (if applicable) for SendLocation. - - - Optional location address (if applicable) for SendLocation. - - - Optional hone number of intended location / establishment (if applicable) for SendLocation. - - - - - - - The data in this field contains the title of the currently playing audio track. - - - The data in this field contains the artist or creator of the currently playing audio track. - - - The data in this field contains the album title of the currently playing audio track. - - - The data in this field contains the creation year of the currently playing audio track. - - - The data in this field contains the genre of the currently playing audio track. - - - The data in this field contains the name of the current source for the media. - - - The data in this field is a rating. - - - The data in this field is the current temperature. - - - The data in this field is the maximum temperature for the day. - - - The data in this field is the minimum temperature for the day. - - - The data in this field describes the current weather (ex. cloudy, clear, etc.). - - - The data in this field describes the current humidity value. - - - - - The image field for SoftButton - - - The first image field for Choice - - - The secondary image field for Choice - - - The image field for vrHelpItem - - - The image field for Turn - - - The image field for the menu icon in SetGlobalProperties - - - The image field for AddCommand - - - The image field for the app icon (set by setAppIcon) - - - The image field for Show - - - The primary image field for ShowConstantTBT - - - The secondary image field for ShowConstantTBT - - - The optional image of a destination / location - - - - The list of possible alignments, left, right, or centered - - - - - - Enumeration that describes possible states of driver distraction. - - - - - - - minutesFieldWidth = 2;minutesFieldMax = 19;secondsFieldWidth = 2;secondsFieldMax = 99;maxHours = 19;maxMinutes = 59;maxSeconds = 59; - Is used for Type II, NGN and CID head units. - - - - - minutesFieldWidth = 3;minutesFieldMax = 199;secondsFieldWidth = 2;secondsFieldMax = 99;maxHours = 59;maxMinutes = 59;maxSeconds = 59; - Is used for Type V head units. - - - - - minutesFieldWidth = 2;minutesFieldMax = 59;secondsFieldWidth = 2;secondsFieldMax = 59;maxHours = 9;maxMinutes = 59;maxSeconds = 59; - Is used for GEN1.1 (i.e. MFD3/4/5) head units. - - - - - 5 characters possible - Format: 1|sp c :|sp c c - 1|sp : digit "1" or space - c : character out of following character set: sp|0-9|[letters - :|sp : colon or space - Is used for Type II head unit - - - - - 5 chars possible - Format: 1|sp c :|sp c c - 1|sp : digit "1" or space - c : character out of following character set: sp|0-9|[letters - :|sp : colon or space - Is used for CID and NGN head unit - - - - - 6 chars possible - Format: 1|sp c c :|sp c c - 1|sp : digit "1" or space - c : character out of following character set: sp|0-9|[letters - :|sp : colon or space - Is used for Type V head unit - - - - - 6 chars possible - Format: c :|sp c c : c c - :|sp : colon or space - c : character out of following character set: sp|0-9|[letters]. - Is used for GEN1.1 (i.e. MFD3/4/5) head units - - - - - - Type that expound that current AddCommand should be pocessed as choise for initiated PerformInteraction request for current active on HMI. - - - Type that expound that current AddCommand should be pocessed as common command for current application on HMI. - - - - - The volume status of a vehicle component. - - The data is unknown. - - - The volume is normal. - - - The volume is low. - - - The module/sensor is currently faulted. - - - The component`s volume is in critical level. - - - The data is not supported. - - - - The selected gear. - - Parking - - - Reverse gear - - - No gear - - - - - Drive Sport mode - - - 1st gear hold - - - - - - - - - - - - - - - - - - - - - - Reflects the status of a vehicle data event; e.g. a seat belt event status. - - The system does not have the adequate information to send valid YES or NO states. - - - The requested event is in NO state. - - - The requested event is in YES state. - - - The requested data is not supported - - - The module/sensor is currently faulted. - - - - Reflects the status of a binary vehicle data item. - - - - - - - - - Reflects the ignition switch stability. - - - - - - Either the data is not accessible or the sensor is broken. - - - - Reflects the status of ignition. - - The information is not acceptable. - - - The ignition is off. - - - The accessories are active (power windows, audio, display, etc.). - - - Ignition is active. - - - Starter is switched. - - - The data is provided, but there is some sort of fault or problem. - - - - Reflects the reported component status of the connected device, if reported. - - - - - - - - - - - - - - - Reflects the current primary audio source (if selected). - - - - - - - - - - - - - - - - - The list of potential compass directions - - - - - - - - - - - - - - - - - - - The supported dimensions of the GPS - - No GPS at all - - - Longitude and lattitude - - - Longitude and lattitude and altitude - - - - - - - - - Reflects the status of a cluster instrument warning light. - - - - - - - - - - - Enumeration that describes possible result codes of a vehicle data entry request. - - - - - - - - - - - - Defines the data types that can be published and subscribed to. - - Notifies GPSData may be subscribed - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Reflects the status of the wipers. - - The wipers are off. - - - The wipers are automatically off - - - Means that though set to off, somehow the wipers have been engaged (physically moved enough to engage a wiping motion). - - - The wipers are manually off after having been working. - - - The wipers are manually on. - - - The wipers are manually set to low speed. - - - The wipers are manually set to high speed. - - - The wipers are manually set for doing a flick. - - - The wipers are set to use the water from vehicle washer bottle for cleaning the windscreen. - - - The wipers are automatically set to low speed. - - - The wipers are automatically set to high speed. - - - This is for when a user has just initiated a WASH and several seconds later a secondary wipe is automatically initiated to clear remaining fluid. - - - This is set as the user moves between possible automatic wiper speeds. - - - The wiper is stalled to its place. - - - The sensor / module cannot provide any information for wiper. - - - - Describes different sampling options for PerformAudioPassThru. - - - - - - - Describes different quality options for PerformAudioPassThru. - - - - - Describes different audio type options for PerformAudioPassThru. - - - - Enumeration listing possible keyboard layouts. - - - - - - Enumeration listing possible keyboard events. - - - - - - - - Enumeration listing possible keyboard events. - - Each keypress is individually sent as the user presses the keyboard keys. - - - The keypresses are queued and a string is eventually sent once the user chooses to submit their entry. - - - The keypresses are queue and a string is sent each time the user presses a keyboard key; the string contains the entire current entry. - - - - Reflects the status of the ambient light sensor. - - - - - - - - - - - Enumeration listing possible file types. - - - - - - - - - - - Enumeration listing possible asynchronous requests. - - - - - - - - - - - - - - - - - - - - - - - Reflects the status of the eCall Notification. - - - - - - - - - - - - - - - - - Reflects the status of a vehicle data notification. - - - - - - - - - - - Reflects the emergency event status of the vehicle. - - - - - - - - - - - - - - - - - Reflects the status of the RCM fuel cutoff. - - - - - - - - - Reflects the status of the current power mode qualification. - - - - - - - - - - - Reflects the status of the current car mode. - - - - - - - - - - - Reflects the status of the current power mode. - - - - - - - - - - - - - - - - - - - - - The list of potential character sets - - See [@TODO: create file ref] - - - See [@TODO: create file ref] - - - See [@TODO: create file ref] - - - See [@TODO: create file ref] - - - - - - - - - - - - - Defines the type of the request which causes text-to-speech prompt - - - - - - - -Defines the type of the request which causes text-to-speech prompt - - - - - - - - - - - - - Reflects the current active event - - Navigated to audio(radio, etc) - - - Navigated to navigation screen - - - Phone call is active - - - Active emergency event, active parking event - - - GAL/DIO is active - - - - - Enum for each type of video streaming protocol type. - - - Raw stream bytes that contains no timestamp data and is the lowest supported video streaming - - - - - RTP facilitates the transfer of real-time data. Information provided by this protocol include - timestamps (for synchronization), sequence numbers (for packet loss and reordering detection) - and the payload format which indicates the encoded format of the data. - - - - - The transmission of streaming data itself is not a task of RTSP. Most RTSP servers use the - Real-time Transport Protocol (RTP) in conjunction with Real-time Control Protocol (RTCP) - for media stream delivery. However, some vendors implement proprietary transport protocols. - - - - - Real-Time Messaging Protocol (RTMP) was initially a proprietary protocol developed by - Macromedia for streaming audio, video and data over the Internet, between a Flash player - and a server. Macromedia is now owned by Adobe, which has released an incomplete version - of the specification of the protocol for public use. - - - - - The WebM container is based on a profile of Matroska. WebM initially supported VP8 video and - Vorbis audio streams. In 2013 it was updated to accommodate VP9 video and Opus audio. - - - - - - Enum for each type of video streaming codec. - - - A block-oriented motion-compensation-based video compression standard. - As of 2014 it is one of the most commonly used formats for the recording, compression, and - distribution of video content. - - - - - High Efficiency Video Coding (HEVC), also known as H.265 and MPEG-H Part 2, is a video - compression standard, one of several potential successors to the widely used AVC (H.264 or - MPEG-4 Part 10). In comparison to AVC, HEVC offers about double the data compression ratio - at the same level of video quality, or substantially improved video quality at the same - bit rate. It supports resolutions up to 8192x4320, including 8K UHD. - - - - - Theora is derived from the formerly proprietary VP3 codec, released into the public domain - by On2 Technologies. It is broadly comparable in design and bitrate efficiency to - MPEG-4 Part 2, early versions of Windows Media Video, and RealVideo while lacking some of - the features present in some of these other codecs. It is comparable in open standards - philosophy to the BBC's Dirac codec. - - - - - VP8 can be multiplexed into the Matroska-based container format WebM along with Vorbis and - Opus audio. The image format WebP is based on VP8's intra-frame coding. VP8's direct - successor, VP9, and the emerging royalty-free internet video format AV1 from the Alliance for - Open Media (AOMedia) are based on VP8. - - - - - Similar to VP8, but VP9 is customized for video resolutions beyond high-definition video (UHD) - and also enables lossless compression. - - - - - - - - - - - - - - - - - - - - - - - - - - - - The name of the device connected. - - - The ID of the device connected - - - The transport type the named-app's-device is connected over HU(BlueTooth, USB or WiFi). It must be provided in OnAppRegistered and in UpdateDeviceList - - - Sent by SDL in UpdateDeviceList. ’true’ – if device is allowed for PolicyTable Exchange; ‘false’ – if device is NOT allowed for PolicyTable Exchange - - - - - - - - - - - - - Code of message of user-friendly text about functional group to be allowed/disallowed - - - Id of corresponding functional group, needed by SDL. - - - Specifies whether functionality was allowed/disallowed. If ommited - no information about User Consent is yet found for app. - - - - - Get URL based on service type. - - - Used if URL needed are specific for application. - - - - - - The name that identifies the field. See TextFieldName. - - - The character set that is supported in this field. See CharacterSet. - - - The number of characters in one row of this field. - - - The number of rows of this field. - - - - Contains the information about capabilities of a button. - - The name of the Button from the ButtonName enum - - - The button supports a short press. Whenever the button is pressed short, onButtonPressed(SHORT) should be invoked. - - - The button supports a LONG press. Whenever the button is pressed long, onButtonPressed(LONG) should be invoked. - - - The button supports "button down" and "button up". Whenever the button is pressed, onButtonEvent(DOWN) should be invoked. Whenever the button is released, onButtonEvent(UP) should be invoked. - - - - Individual published data request result - - Defined published data element type. - - - Published data result code. - - - - - The x coordinate of the touch. - - - The y coordinate of the touch. - - - - - - A touch's unique identifier. The application can track the current touch events by id. - If a touch event has type begin, the id should be added to the set of touches. - If a touch event has type end, the id should be removed from the set of touches. - - - - - The time that the touch was recorded. This number can the time since the beginning of the session or something else as long as the units are in milliseconds. - The timestamp is used to determined the rate of change of position of a touch. - The application also uses the time to verify whether two touches, with different ids, are part of a single action by the user. - If there is only a single timestamp in this array, it is the same for every coordinate in the coordinates array. - - - - - - - Contains information about on-screen preset capabilities (whether the HW preset buttons could be duplicated with onscreen buttons). - - Must be true if onscreen custom presets are available. - - - - - The path to the dynamic image stored on HU or the static binary image itself. - - - Describes, whether it is a static or dynamic image. - - - - - Describes, whether text, icon or both text and image should be displayed on the soft button. See softButtonType - - - Optional text to be displayed (if defined as TEXT or BOTH) - - - Optional image struct for SoftButton (if defined as IMAGE or BOTH) - - - If true, must be highlighted - If false, must be not - - - Value which must be returned via OnButtonPress / OnButtonEvent - - - Parameter indicates whether clicking a SoftButton must call a specific system action. See SystemAction - - - - A TTS chunk, that consists of the text/phonemes to be spoken - - The text or phonemes to be spoken. - - - Describes, whether it is text or a specific phoneme set. See SpeechCapabilities. - - - - Data type containing information about application needed by HMI. - - The mobile application name, e.g. "Ford Drive Green". - - - Provides an abbreviated version of the app name (if needed), that may be displayed on the NGN media screen. - If not provided, the appName should be used instead (and may be truncated if too long) - - - Path to application icon stored on HU. - - - The ID, serial number, transport type the named-app's-device is connected over to HU. - - - Policy ID(=the appID the application registers with) of registered application. - - - - TTS string for VR recognition of the mobile application name, e.g. "Ford Drive Green". - Meant to overcome any failing on speech engine in properly pronouncing / understanding app name. - May not be empty. - May not start with a new line character. - Not unique value - - - - - Defines an additional voice recognition command. - Must not interfere with any name of previously registered applications(SDL makes check). - - - - Unique (during ignition cycle) id of the application. To be used in all RPCs sent by both HU system and SDL - - - The language the application intends to use on HU - - - Indicates whether it is a media or a non-media application. - - - List of all applicable app types stating which classifications to be given to the app. - e.g. for platforms like GEN2, this determines which "corner(s)" the app can populate. - - - Indicates whether application should be dimmed on the screen. - Applicable only for apps received through QueryApps and still not registered. - - - The list of SystemRequest's RequestTypes allowed by policies for the named application - (the app's SystemRequest sent with RequestType out of this list will get 'disallowed' response from SDL). - If SDL sends an empty array - any RequestType is allowed for this app. - If SDL omits this parameter - none RequestType is allowed for this app - (either this is a pre-registered app or such is dictated by policies). - - - - - unique ID of the sub menu, the command must be added to. - If not provided, the command must be added to the top level of the in application menu. - - - Position within the items that are at the top level of the in application menu. - 0 should insert at the front. - 1 should insert at the second position. - if position is greater than or equal to the number of items on the top level, the the sub menu/command should be appended to the end. - If this param is omitted the entry should be added at the end. - - - The name of the sub menu/command. - - - - A choice is an option given to the user which can be selected either by menu, or through voice recognition system. - - The unique within the concerned application identifier for this choice - - - The name of the choice - - - The image for representing the choice - - - Optional secondary text to display; e.g. address of POI in a search result entry - - - Optional tertiary text to display; e.g. distance to POI for a search result entry - - - Optional secondary image struct for choice - - - - - Text to display for VR Help item - - - Image struct for VR Help item - - - Position to display item in VR Help list - - - - - The hour of the media clock. - Some units only support a max of 19 hours. If out of range, it should be rejected. - - - - - - - - - - - - - - - The image resolution width. - - - The image resolution height. - - - - - The resolution of the prescribed screen area. - - - Types of screen touch events available in screen area. - - - - - The name that identifies the field. See ImageFieldName. - - - The image types that are supported in this field. See FileType. - - - The image resolution of this field. - - - - Video streaming formats and their specifications. - - Protocol type, see VideoStreamingProtocol - - - Codec type, see VideoStreamingCodec - - - - - Configuration of a video stream. - - The video protocol configuration - - - The video codec configuration - - - Width of the video stream, in pixels. - - - Height of the video stream, in pixels. - - - - Contains information about the display capabilities. - - The type of the display. See DisplayType - - - A set of all fields for text displaying supported by HU. See TextFieldName. - If there are no textfields supported, the empty array must be returned - - - A set of all fields that support images. See ImageField - - - A set of all supported formats of the media clock. See MediaClockFormat - - - - - The display's persistent screen supports referencing a static or dynamic image. - - - A set of all predefined persistent display templates available on headunit. To be referenced in SetDisplayLayout. - - - A set of all parameters related to a prescribed screen area (e.g. for video / touch input). - - - The number of on-screen custom presets available (if any); otherwise omitted. - - - - Contains information about a SoftButton's capabilities. - - The button supports a short press. - Whenever the button is pressed short, onButtonPressed( SHORT) must be invoked. - - - The button supports a LONG press. - Whenever the button is pressed long, onButtonPressed( LONG) must be invoked. - - - The button supports "button down" and "button up". - Whenever the button is pressed, onButtonEvent( DOWN) must be invoked. - Whenever the button is released, onButtonEvent( UP) must be invoked. - - - Must be true if the button supports referencing a static or dynamic image. - - - - - Availability of build in Nav. True: Available, False: Not Available - - - Availability of build in phone. True: Available, False: Not Available - - - - - Describes different audio type configurations for PerformAudioPassThru. - e.g. 8kHz,8-bit,PCM - - - - - - - - The name of the field for displaying the text. - - - The text itself. - - - - Configuration of on-screen keyboard (if available). - - The keyboard language. - - - Desired keyboard layout. - - - - Desired keypress mode. - If omitted, this value will be set to RESEND_CURRENT_ENTRY. - - - - Array of keyboard characters to enable. - All omitted characters will be greyed out (disabled) on the keyboard. - If omitted, the entire keyboard will be enabled. - - - Allows an app to prepopulate the text field with a suggested or completed entry as the user types - - - - - Uses navigationText from TextFieldStruct. - - - - - - - Make of the vehicle - e.g. Ford - - - Model of the vehicle - e.g. Fiesta - - - Model Year of the vehicle - e.g. 2013 - - - Trim of the vehicle - e.g. SE - - - - - Struct with the GPS data. - - - - - - The current UTC year. - - - The current UTC month. - - - The current UTC day. - - - The current UTC hour. - - - The current UTC minute. - - - The current UTC second. - - - See CompassDirection. - - - PDOP. - - - HDOP. - - - VDOP. - - - - True, if actual. - False, if infered. - - - - Number of satellites in view - - - See Dimension - - - Altitude in meters - - - The heading. North is 0. Resolution is 0.01 - - - The speed in KPH - - - - - The status of component volume. See ComponentVolumeStatus. - - - - Individual requested DID result and data - - Individual DID result code. - - - Location of raw data (the address from ReadDID request) - - - Raw DID-based data returned for requested element. - - - - - Status of the low beam lamps. - - - Status of the high beam lamps. - - - Status of the ambient light sensor. - - - - The status and pressure of the tires. - - Status of the Tire Pressure Telltale. See WarningLightStatus. - - - The status of the left front tire. - - - The status of the right front tire. - - - The status of the left rear tire. - - - The status of the right rear tire. - - - The status of the inner left rear. - - - The status of the inner right rear. - - - - - See VehicleDataEventStatus. - - - See VehicleDataEventStatus. - - - See VehicleDataEventStatus. - - - See VehicleDataEventStatus. - - - See VehicleDataEventStatus. - - - See VehicleDataEventStatus. - - - See VehicleDataEventStatus. - - - See VehicleDataEventStatus. - - - See VehicleDataEventStatus. - - - See VehicleDataEventStatus. - - - See VehicleDataEventStatus. - - - See VehicleDataEventStatus. - - - See VehicleDataEventStatus. - - - See VehicleDataEventStatus. - - - See VehicleDataEventStatus. - - - - - Must be true if the park brake is active - - - Information about the ignition switch. See IgnitionStableStatus. - - - The status of the ignition. See IgnitionStatus. - - - References signal "DrStatDrv_B_Actl". - - - References signal "DrStatPsngr_B_Actl". - - - References signal "DrStatRl_B_Actl". - - - References signal "DrStatRr_B_Actl". - - - - - Must be true if the voice recording is on. - - - Must be true if Bluetooth icon is displayed. - - - Must be true if there is an active call.. - - - Must be true if ther is a phone roaming. - - - Must be true if the text message is available. - - - Device battery level status. See DeviceLevelStatus. - - - Must be true if stereo audio output is muted. - - - Must be true if mono audio output is muted. - - - Device signal level status. See DeviceLevelStatus. - - - See PrimaryAudioSource. - - - Must be true if emergency call event is active. - - - - - References signal "eCallNotification_4A". See VehicleDataNotificationStatus. - - - References signal "eCallNotification". See VehicleDataNotificationStatus. - - - References signal "eCallConfirmation". See ECallConfirmationStatus. - - - - - References signal "VedsDrvBag_D_Ltchd". See VehicleDataEventStatus. - - - References signal "VedsDrvSideBag_D_Ltchd". See VehicleDataEventStatus. - - - References signal "VedsDrvCrtnBag_D_Ltchd". See VehicleDataEventStatus. - - - References signal "VedsPasBag_D_Ltchd". See VehicleDataEventStatus. - - - References signal "VedsPasCrtnBag_D_Ltchd". See VehicleDataEventStatus. - - - References signal "VedsKneeDrvBag_D_Ltchd". See VehicleDataEventStatus. - - - References signal "VedsPasSideBag_D_Ltchd". See VehicleDataEventStatus. - - - References signal "VedsKneePasBag_D_Ltchd". See VehicleDataEventStatus. - - - - - References signal "VedsEvntType_D_Ltchd". See EmergencyEventType. - - - References signal "RCM_FuelCutoff". See FuelCutoffStatus. - - - References signal "VedsEvntRoll_D_Ltchd". See VehicleDataEventStatus. - - - References signal "VedsMaxDeltaV_D_Ltchd". See VehicleDataEventStatus. - - - References signal "VedsMultiEvnt_D_Ltchd". See VehicleDataEventStatus. - - - - - References signal "PowerMode_UB". - - - References signal "PowerModeQF". See PowerModeQualificationStatus. - - - References signal "CarMode". See CarMode. - - - References signal "PowerMode". See PowerMode. - - - - - Indicates whether e911 override is on. See VehicleDataStatus. - - - - - - - - - - - - - - - - - - Program Service Name - - - Radio Text - - - The clock text in UTC format as YYYY-MM-DDThh:mm:ss.sTZD - - - Program Identification - the call sign for the radio station - - - The program type - The region should be used to differentiate between EU and North America program types - - - Traffic Program Identification - Identifies a station that offers traffic - - - Traffic Announcement Identification - Indicates an ongoing traffic announcement - - - Region - - - - - - - - - - - - - The integer part of the frequency ie for 101.7 this value should be 101 - - - The fractional part of the frequency for 101.7 is 7 - - - - - - - number of HD sub-channels if available - - - Current HD sub-channel if available - - - - - If the signal strength falls below the set value for this parameter, the radio will tune to an alternative frequency - - - True if the radio is on, false is the radio is off - - - - - - - Contains information about a radio control module's capabilities. - - The short name or a short description of the radio control module. - - - - Availability of the control of enable/disable radio. - True: Available, False: Not Available, Not present: Not Available. - - - - - Availability of the control of radio band. - True: Available, False: Not Available, Not present: Not Available. - - - - - Availability of the control of radio frequency. - True: Available, False: Not Available, Not present: Not Available. - - - - - Availability of the control of HD radio channel. - True: Available, False: Not Available, Not present: Not Available. - - - - - Availability of the getting Radio Data System (RDS) data. - True: Available, False: Not Available, Not present: Not Available. - - - - - Availability of the getting the number of available HD channels. - True: Available, False: Not Available, Not present: Not Available. - - - - - Availability of the getting the Radio state. - True: Available, False: Not Available, Not present: Not Available. - - - - - Availability of the getting the signal strength. - True: Available, False: Not Available, Not present: Not Available. - - - - - Availability of the getting the signal Change Threshold. - True: Available, False: Not Available, Not present: Not Available. - - - - - - - - - - - - - - - - - - - - - - - - - - Temperature Unit - - - Temperature Value in TemperatureUnit specified unit. Range depends on OEM and is not checked by SDL. - - - - - - - - - - - - - - - - - - - - - - - - - - - - Contains information about a climate control module's capabilities. - - The short name or a short description of the climate control module. - - - - Availability of the reading of current temperature. - True: Available, False: Not Available, Not present: Not Available. - - - - - Availability of the control of fan speed. - True: Available, False: Not Available, Not present: Not Available. - - - - - Availability of the control of desired temperature. - True: Available, False: Not Available, Not present: Not Available. - - - - - Availability of the control of turn on/off AC. - True: Available, False: Not Available, Not present: Not Available. - - - - - Availability of the control of enable/disable air conditioning is ON on the maximum level. - True: Available, False: Not Available, Not present: Not Available. - - - - - Availability of the control of enable/disable circulate Air mode. - True: Available, False: Not Available, Not present: Not Available. - - - - - Availability of the control of enable/disable auto mode. - True: Available, False: Not Available, Not present: Not Available. - - - - - Availability of the control of enable/disable dual mode. - True: Available, False: Not Available, Not present: Not Available. - - - - - Availability of the control of defrost zones. - True: Available, False: Not Available, Not present: Not Available. - - - - - A set of all defrost zones that are controllable. - - - - - Availability of the control of air ventilation mode. - True: Available, False: Not Available, Not present: Not Available. - - - - - A set of all ventilation modes that are controllable. - - - - - - The moduleType indicates which type of data should be changed and identifies which data object exists in this struct. For example, if the moduleType is CLIMATE then a "climateControlData" should exist - - - - - - - - - - Enumeration that describes possible remote control access mode the application might be in on HU. - - - - - - - Milliseconds - - - Seconds part of time - - - Minutes part of time - - - Hours part of time. Note that this structure accepts time only in 24 Hr format - - - Day of the month - - - Month of the year - - - The year in YYYY format - - - Time zone offset in Hours wrt UTC. - - - Time zone offset in Min wrt UTC. - - - - - - Name of the country (localized) - - - Name of country (ISO 3166-2) - - - (PLZ, ZIP, PIN, CAP etc.) - - - Portion of country (e.g. state) - - - Portion of e.g. state (e.g. county) - - - Hypernym for e.g. city/village - - - Hypernym for e.g. district - - - Hypernym for street, road etc. - - - Portion of thoroughfare e.g. house number - - - - - - Latitude/Longitude of the location. - - - Name of location. - - - Location address for display purposes only - - - Description intended location / establishment (if applicable) - - - Phone number of location / establishment. - - - Image / icon of intended location. - - - Address to be used by navigation engines for search - - - - - Extended capabilities for an onboard navigation system - - If the module has the ability to add locations to the onboard nav - - - If the module has the ability to return way points from onboard nav - - - - - Extended capabilities of the module's phone feature - - If the module has the abiulity to perform dial number - - - - - Contains information about this system's video streaming capabilities. - - The preferred resolution of a video stream for decoding and rendering on HMI. - - - The maximum bitrate of video stream that is supported, in kbps. - - - - Detailed information on each format supported by this system, in its preferred order - (i.e. the first element in the array is most preferable to the system). - Each object will contain a VideoStreamingFormat that describes what can be expected. - - - - True if the system can utilize the haptic spatial data from the source being streamed. - - - - - - - - - - - - - - - If included, the platform supports RC climate controls. For this baseline version, maxsize=1. i.e. only one climate control module is supported. - - - If included, the platform supports RC radio controls. For this baseline version, maxsize=1. i.e. only one climate control module is supported. - - - If included, the platform supports RC button controls with the included button names. - - - - - - The X-coordinate of the user control - - - The Y-coordinate of the user control - - - The width of the user control's bounding rectangle - - - The height of the user control's bounding rectangle - - - - - Defines haptic rectangle data for each user control object for video streaming application - - A user control spatial identifier - - - The position of the haptic rectangle to be highlighted. The center of this rectangle will be "touched" when a press occurs. - - - - - - Method is invoked at system start-up. SDL requests the information about all supported hardware buttons and their capabilities - - - - Response must provide the names of available buttons and their capabilities.See ButtonCapabilities - - - Must be returned if the platform supports custom on-screen Presets - - - - HU system must notify about every UP/DOWN event for buttons - - - Indicates whether this is an UP or DOWN event. - - - Must be provided if ButtonName is CUSTOM_BUTTON, this references the integer ID passed by a custom button. (e.g. softButtonName) - - - - In case the ButtonName is CUSTOM_BUTTON, HMI must include appID parameters to OnButtonPress notification sent to SDL. - Otherwise, if appID is not sent together with CUSTOM_BUTTON, this notification will be ignored by SDL. - - - - - - - Indicates whether this is a LONG or SHORT button press event. - - - Must be returned if ButtonName is CUSTOM_BUTTON, this references the string passed by a custom button. (e.g. softButtonName) - - - - In case the ButtonName is CUSTOM_BUTTON, HMI must include appID parameters to OnButtonPress notification sent to SDL. - Otherwise, if appID is not sent together with CUSTOM_BUTTON, this notification will be ignored by SDL. - - - - - - Sender: SDL->HMI. Purpose: to notify about button subscription state is changed for the named application - - - - - Defines whether the named button has status of 'subscribed' or 'unsubscribed': - If "true" - the named button is subscribed. - If "false" - the named button is unsubscribed. - - - - - The ID of application that relates to this button-subscription status change. - - - - - - - HMI must notify SDL about its readiness to start communication. In fact, this has to be the first message between SDL and HMI. - - - Initiated by HMI user for getting the list of connected devices. - - - Notification from HMI to SDL sent when HMI requires update of device list (i.e. when user clicks 'Change Device' button) - - - Sender: HMI->SDL. When: upon phone-call event started or ended - - Must be 'true' - when the phone call is started on HMI. Must be 'false' when the phone call is ended on HMI - - - - - "Sender: HMI->SDL. Conditions: when HMI enters the mode of "911 Assist", or other rear view camera, - or something else in the future. Purpose: for SDL to change the audioStreamingState of the related apps to - NOT_AUDIBLE when "enabled:true" and back to AUDIBLE when "enabled:false"" - - - - - - This method must be invoked by SDL to update audio state. - - The ID of app to be resumed audio source. - - - - - - Issued by SDL to notify HMI about new applications registered. - - - - - - Request from SmartDeviceLink to HMI to change device list. - - The array of names/IDs of connected devices - - - - - - Notifies HMI in case some application file has been removed - - The name of the removed file - - - The file type. See FileType. - - - ID of the application. - - - - Request from SmartDeviceLink to HMI to get the permissions of new device connection. - - - - - - - Notification must be initiated by HMI on user selecting device in the list of devices. - - The name and ID of the device chosen - - - - This method must be invoked by HMI to get list of registered apps. - - The name and ID of the device the list of registered applications is required for. - - - - Request from SDL to HMI to bring specified application to front on UI e.g make it HMI status 'FULL'. - - ID of deactivated application. - - - Send to HMI so that it can coordinate order of requests/notifications correspondingly. - - - If level for application is to be changed to something else then FULL then this parameter should be used. - - - - - - Must be sent by HU system when the user clicks on app in the list of registered apps or on soft button with 'STEAL_FOCUS' action. - - ID of selected application. - - - - Must be sent by HU system when the user switches to any functionality which is not other mobile application. - - ID of deactivated application. - - - Specifies the functionality the user has switched to. - - - - Issued by SDL to notify HMI about new application registered. - - The information about application registered. See HMIApplication. - - - - TTS string for VR recognition of the mobile application name, e.g. "Ford Drive Green". - Meant to overcome any failing on speech engine in properly pronouncing / understanding app name. - May not be empty. - May not start with a new line character. - Not unique value - - - - - Defines an additional voice recognition command. - Must not interfere with any name of previously registered applications(SDL makes check). - - - - The flag if VR grammars resume is required - - - Send to HMI so that it can coordinate order of requests/notifications correspondingly. - - - - - Issued by SDL to notify HMI about application unregistered. - Application then to be removed from application list; all data connected with application has to be cleared up. - - - - SDL sends 'true' in case the connection is unexpectedly lost. - SDL sends 'false' in case the mobile app is unregistered gracefully (via appropriate RPC) - - - - ID of the application unregistered - - - - Must be sent by HMI when the User chooses to exit the application.. - - Specifies reason of moving the app to NONE - - - ID of the application to be exited. - - - - Sent by HMI to SDL to close all registered applications. - - Specifies reason for exiting all apllications. - - - - - Sender: HMI->SDL. Must be sent to return SDL to normal operation after 'Suspend' or 'LowVoltage' events - - - - Request from SDL to HMI to find out if the last one supports mixing audio (i.e. recording TTS command and playing audio). - - - If no response received SDL supposes that mixing audio is not supported - - Must be true if supported - - - - Sent by SDL to HMI to notify that the tone should be played. - - ID of the application that invoked this notification - - - Defines the name of app's request that initiates playing a tone - - - - Request from SDL to call a specific number. - - The number to dial. Only the character + and numbers are allowed. - - - ID of application that concerns this RPC. - - - - - - - - - An asynchronous request from the system for specific data from the device or the cloud or response to a request from the device or cloud - Binary data can be included in hybrid part of message for some requests (such as Authentication request responses) - - - The type of system request. - - - Optional array of URL(s) for HTTP requests. - - - Optional file type (meant for HTTP file requests). - - - Optional offset in bytes for resuming partial data chunks - - - Optional length in bytes for resuming partial data chunks - - - - - File reference name. - - - ID of application that requested this RPC. - - - - An asynchronous request from the device; binary data can be included in hybrid part of message for some requests (such as Authentication requests) - - The type of system request. - - - The path to file. - - - ID of application that requested this RPC. - - - - - - - From: SDL - To: SYNCP Manager - Asks SYNCP Manager to send given Policy Table snapshot to the backend - - - - Location of policy table snapshot - - - - - Send attempt timeout in seconds - - - - - Array of delays to wait after failed atempts - - - - - - - - SDL must notify HMI about finish working application - - - - Notification, that comes to HMI when mobile sents file with systemFile flag - - - Optional offset in bytes for resuming partial data chunks - - - Optional length in bytes for resuming partial data chunks - - - Full Size of file. sends in first OnPutFile notification if file is splited - into many PutFiles - - - - File reference name. - - - File reference name. - - - Selected file type. - - - - Indicates if the file is meant to persist between sessions / ignition cycles. - If set to TRUE, then the system will aim to persist this file through session / cycles. - While files with this designation will have priority over others, they are subject to deletion by the system at any time. - In the event of automatic deletion by the system, the app will receive a rejection and have to resend the file. - If omitted, the value will be set to false. - - - - - - Request from SDL to HMI to obtain information about head unit system. - - - - Software version of the module - - - ISO 639-1 combined with ISO 3166 alpha-2 country code (i.e. en-us) - - - Country code from the Ford system WERS (i.e.WAEGB). - - - - Issued by system to SDL to notify that some system param has changed. Currently applied for Sync Language. - - - - Notification from system to SDL to let it know that ignition cycle is over. - - - Sender: SDL->HMI. Purpose: to decrypt the certificate received via the Updated Policy Table. - - The path to the file with the encrypted certificate from the PolicyTable. - - - - SUCCESS - in case the certificate is decrypted and placed to the same file from request. - - - Sender: HMI->SDL. When event is become active - - Specifies the types of active events. - - - Must be 'true' - when the event is started on HMI. Must be 'false' when the event is ended on HMI - - - - - - - Method is invoked at system startup. Response provides information about presence of VR module and its readiness to cooperate with SDL. - - - - Must be true if VR is present and ready to communicate with SDL. - - - - Must be initiated by VR module to let SDL know that VR session has started. - - - Must be initiated by VR module to let SDL know that VR session has stopped. - - - Request from SDL to add a command(string with associated id) to VR. - - ID of a command (further to be used in OnCommand notification). - - - List of strings to be used as VR commands. - - - Type of added command. See VRCommandType. - - - - ID of the specific grammar, whether top-level or choice set. - - - - ID of application that requested this RPC. - - - - - - Request from SDL to delete a command from VR. - - Id of a command (list of strings), previously sent by AddCommand. - - - Type of added command. See VRCommandType. - - - ID of the specific grammar. - - - ID of application that requested this RPC. - - - - - - - Sets some properties for the application initiated request. - - - - The help prompt. An array of text chunks of type TTSChunk. See TTSChunk. The array must have at least one item. - - - - - This is the intial prompt spoken to the user at the start of an interaction. An array of text chunks of type TTSChunk. See TTSChunk. The array must have at least one item. - - - - - Help text for a wait timeout. An array of text chunks of type TTSChunk. See TTSChunk. The array must have at least one item. - - - - Timeout initiate timeoutPrompt - - - - IDs of the specific compiled grammars for this voice interaction. - - - - - - - ID of the choice that was selected in response to PerformInteraction. - - - - - Notifies SDL about command trigerred via VR - - ID of of the command (list of strings) - - - ID of application related to this RPC. - - - - Request from SmartDeviceLink to HMI to change language of VR. - - - Request new VR synonyms registration - Defines an additional voice recognition command. - Must not interfere with any name of previously registered applications(SDL makes check). - - - - The language application wants to switch to. - - - ID of application that concerns this RPC. - - - - - - Notification from HMI to SmartDeviceLink about change of language. - - Language VR has switched to. - - - - Method is invoked at system start-up. Response must provide the information about VR supported languages. - - - - List of languages supported in VR. - - - - Request from SmartDeviceLink to HMI to get currently active VR language - - - - - - Method is invoked at system startup by SDL to request information about VR capabilities of HMI. - - - - Types of input recognized by VR module. - - - - - RPCs for communication between TTS and SDL. - - Method is invoked at system start-up. SDL requests the information about all supported hardware and their capabilities - - - - See SpeechCapabilities - - - See PrerecordedSpeech - - - - Must be initiated by TTS module to let SDL know that TTS session has started. - - - Must be initiated by TTS module to let SDL know that TTS session has stopped. - - - Method is invoked at system start-up. Response must provide the information about presence of TTS module and its readiness to cooperate with SDL. - - - - Must be true if TTS is present and ready to communicate with SDL. - - - - RPC from SDL to TTS for speaking the text. - - List of strings to be spoken. - - - ID of application that requested this RPC. - - - Defines the type of the request which causes text-to-speech - - - - Provides information about success of operation. - - - Initiated by SDL to stop speaking the text. - - - - - Request from SmartDeviceLink to HMI to change language of TTS. - - - Request new ttsName registration - TTS string for VR recognition of the mobile application name, e.g. "Ford Drive Green". - Meant to overcome any failing on speech engine in properly pronouncing / understanding app name. - May not be empty. - May not start with a new line character. - Not unique value (SDL makes all the checks) - - - - The language application wants to switch to. - - - ID of application related to this RPC. - - - - - - Notification from HMI to SmartDeviceLink about change of language. - - Language TTS has switched to. - - - - Method is invoked at system start-up by SDL. Response must provide the information about TTS supported languages. - - - - List of languages supported in TTS. - - - - Request from SmartDeviceLink to HMI to get currently active TTS language - - - - - - Sets some properties for the application initiated request. - - - The help prompt. - An array of text chunks of type TTSChunk. See TTSChunk. - The array must have at least one item. - - - - - Help text for a wait timeout. - An array of text chunks of type TTSChunk. See TTSChunk. - The array must have at least one item. - - - - ID of application related to this RPC. - - - - - - - Sender: HMI->SDL. HMI must send this notification every 10 sec. in case the 'methodName' - results long processing on HMI - - - Id of application that concerns the 'methodName'. - - - The name of the method, the renew of timeout is required for - - - - - - Request from SDL to show an alert message on the display. - - Array of lines of alert text fields. See TextFieldStruct. Uses alertText1, alertText2, alertText3. - - - Timeout in milliseconds. - - - App defined SoftButtons - - - If supported on the given platform, the alert GUI will include some sort of animation indicating that loading of a feature is progressing. e.g. a spinning wheel or hourglass, etc. - - - Defines if only UI or BOTH portions of the Alert request are being sent to HMI Side - - - ID of application requested this RPC. - - - - - Amount of time (in milliseconds) that SDL must wait before resending an alert. Must be provided if another system event or overlay currently has a higher priority than this alert. - - - - - Array of lines of show text fields. See TextFieldStruct. Uses mainField1, mainField2, mainField3, mainField4. If some field is not set, the corresponding text should stay unchanged. If field's text is empty "", the field must be cleared. - mainField1: The text that should be displayed in a single or upper display line. - mainField2: The text that should be displayed on the second display line. - mainField3: The text that should be displayed on the second "page" first display line. - mainField4: The text that should be displayed on the second "page" second display line. - statusBar: statusBar. - mediaClock: Text value for MediaClock field. - mediaTrack: The text that should be displayed in the track field. This field is only valid for media applications on NGN type ACMs. - - - - Specifies how mainField1 and mainField2 texts should be aligned on the display. - If omitted, texts must be centered - - - Path to optional dynamic image or the static binary image itself. See Image. If omitted, the displayed graphic should not change. - - - - Image struct determining whether static or dynamic secondary image to display in app. - If omitted on supported displays, the displayed secondary graphic shall not change. - - - - App defined SoftButtons. - If omitted, the currently displayed SoftButton values should not change. - - - App labeled on-screen presets (i.e. GEN3 media presets or dynamic search suggestions). - If omitted on supported displays, the presets will be shown as not defined. - - - Id of application related to this RPC. - - - - - - Request from SDL to add a command to the application menu. - - ID of the command to be added. - - - Optional sub value containing parameters of the command (position, name, etc.). See MenuParams. If omitted the command should be added to the end of the list of commands. - - - Image to be displayed for representing the command. See Image. - If omitted, no (or the default if applicable) icon should be displayed. - - - ID of application that concerns this RPC. - - - - - - Request from SDL to delete a command from the in-application menu with the specified command id. - - cmdId previously sent via AddCommand request - id of the command to be deleted. - - - ID of application that concerns this RPC. - - - - - - Request from SDL to add a sub menu to the in-application menu. - - ID of the sub menu to be added. Unique for the application. - - - Position and name of menu to be added. 'parent' field is omitted for this RPC. - - - ID of application that requested this RPC. - - - - - - Request from SDL to delete a submenu from the in-application menu. - - The "menuID" of the sub-menu to be deleted. (See addSubMenu.menuID) - - - ID of application that concerns this RPC. - - - - - - Request from SDL for triggering an interaction (e.g. "Permit GPS?" - Yes, no, Always Allow). - - Uses initialInteractionText. See TextFieldStruct. - - - The list of choices to be used for the interaction with the user - - - VR Help Title text. - If omitted on supported displays, the default HU system help title should be used. - - - VR Help Items. If omitted on supported displays, the default HU system generated help items should be used. - - - Timeout in milliseconds. - - - See LayoutMode. - - - ID of application that concerns this RPC. - - - - - ID of the choice that was selected in response to PerformInteraction. - - - - Manually entered text selection, e.g. through keyboard - Can be returned in lieu of choiceID, depending on trigger source - - - - - Sets the initial media clock value and automatic update method. - - startTime should be ignored for "PAUSE", "RESUME", and "CLEAR" - - - - See TimeFormat. - endTime can be provided for "COUNTUP" and "COUNTDOWN"; to be used to calculate any visual progress bar (if not provided, this feature is ignored) - If endTime is greater then startTime for COUNTDOWN or less than startTime for COUNTUP, then the request will return an INVALID_DATA. - endTime will be ignored for "PAUSE", "RESUME", and "CLEAR" - - - - The update method of the media clock. - In case of pause, resume, or clear, the start time value is ignored and shall be left out. For resume, the time continues with the same value as it was when paused. - - - ID of application that requested this RPC. - - - - - - Request from SDL to set some properties for VR help. - - VR Help Title text. - If omitted on supported displays, the default HU system help title should be used. - - - VR Help Items. If omitted on supported displays, the default HU system generated help items should be used. - - - Optional text to label an app menu button (for certain touchscreen platforms). - - - >Optional icon to draw on an app menu button (for certain touchscreen platforms). - - - On-screen keybaord configuration (if available). - - - ID of application that concerns this RPC. - - - - - - Notification must be initiated by HMI on user choosing menu item. - - Command ID, which is related to a specific menu entry (previously sent with AddCommand). - - - ID of application that is related to this RPC. - - - - - Notification must be initiated by HMI when the user changes the context of application: goes to menu (in-application menu or system menu); - switches to VR; pop-up appears on screen etc. - - - The context the application is brought into. - - - ID of application that is related to this RPC. - - - - Method is invoked at system startup by SDL to request information about UI capabilities of HMI. - - - - Information about the capabilities of the display: its type, text field supported, etc. See DisplayCapabilities. - - - - - Must be returned if the platform supports on-screen SoftButtons. - - - Specifies the HMI’s capabilities. See HMICapabilities. - - - - Request from SmartDeviceLink to HMI to change language for app. - - - Request new app name registration - Needs to be unique over all applications. - May not be empty. May not start with a new line character. - May not interfere with any name or synonym of any registered applications. - Applications with the same name will be rejected. (SDL makes all the checks) - - - - Request new app short name registration - - - The language application wants to switch to. - - - - Sent when app's requested-during-registration AppHMIType is changed to different one due to Policies update. Contains the updated list of all allowed app's AppHMITypes. - - - - ID of application that concerns this RPC. - - - - - - Notification from HMI to SmartDeviceLink about change of language. - - Language UI has switched to. - - - - Method should be invoked at system startup. Response provides information about UI supported languages. - - - - List of languages supported in UI. - - - - Request from SmartDeviceLink to HMI to get currently active UI language - - - - - - Notification must be sent from HMI to SDL when driver distraction state is changed. Driver distraction rules are defined by the platform. - - See DriverDistractionState. - - - - Used to set existing local file on SYNC as the app's icon. - - Either the path to the dynamic image stored on HY or the static binary image itself. See Image - - - ID of application related to this RPC. - - - - - - - - Predefined or dynamically created screen layout. - Currently only predefined screen layouts are defined. - - - - ID of application related to this RPC. - - - - - See DisplayCapabilities - - - See ButtonCapabilities - - - If returned, the platform supports on-screen SoftButtons; see SoftButtonCapabilities. - - - If returned, the platform supports custom on-screen Presets; see PresetBankCapabilities. - - - - Used to show a custom form; it can be a parent or child screen. If no parent screen is designated, it is set as a parent screen. - - - Predefined or dynamically created screen layout. - Currently only predefined forms are defined. - Predefined layouts include: - "DEFAULT" - Default media / non-media screen - "ONSCREEN_PRESETS" - Custom root media screen containing app-defined onscreen presets. - "KEYBOARD_SEARCH" - Custom template containing app-configured on-screen keyboard with active search updating; user also can trigger voice search. - "NAV_FULLSCREEN_MAP" - Custom root template screen containing full screen map with navigation controls. - "NAV_POI_MENU" - Custom template containing app-defined POI options. - "NAV_SEARCH_RESULTS" - Custom template containing a list of app-defined search results - "NAV_POI_INFO" - Custom template containing app-defined POI information (and potentially map data). - - - - - Parent screen of predefined form to display. - Currently only predefined forms are defined. - If not provided, then set to "DEFAULT". - Predefined layouts include: - "DEFAULT" - Default media / non-media screen - "ONSCREEN_PRESETS" - Custom root media screen containing app-defined onscreen presets. - "NAV_FULLSCREEN_MAP" - Custom template containing full screen map with navigation controls. - - - - - - Provides additional human readable info regarding the result. - - - - On-screen keyboard event. - Can be full string or individual keypresses depending on keyboard mode. - - On-screen keyboard input data. - - - On-screen keyboard input data. - For dynamic keypress events, this will be the current compounded string of entry text. - For entry submission events, this will be the full text entry (this will always return regardless of the mode). - For entry cancelled and entry aborted events, this data param will be omitted. - - - - Notifies about touch events on the screen's prescribed area - - The type of touch event. - - - List of all individual touches involved in this event. - - - - Creates a full screen or pop-up overlay (depending on platform) with a single user controlled slider. - - Number of selectable items on a horizontal axis - - - Initial position of slider control (cannot exceed numTicks) - - - Text header to be displayed. - - - Text footer to be displayed (meant to display min/max threshold descriptors). - For a static text footer, only one footer string shall be provided in the array. - For a dynamic text footer, the number of footer text string in the array must match the numTicks value. - For a dynamic text footer, text array string should correlate with potential slider position index. - If omitted on supported displays, no footer text shall be displayed. - - - Timeout. The slider should be displayed until the defined amount of time has elapsed. - - - ID of application that concerns this RPC. - - - - - Current slider position. Must be returned when the user has clicked the ‘Save’ or ‘Canceled’ button or by the timeout - - - - Creates a full screen overlay containing a large block of formatted text that can be scrolled with up to 8 SoftButtons defined - - Body of text that can include newlines and tabs. Uses scrollableMessageBody. - - - Timeout in milliseconds. The message should be displayed until the time defined is up. - - - App defined SoftButtons. - If omitted on supported displays, only the system defined "Close" SoftButton should be displayed. - - - ID of application related to this RPC. - - - - - - - ID of application related to this RPC. - - - Uses - audioPassThruDisplayText1: First line of text displayed during audio capture. - audioPassThruDisplayText2: Second line of text displayed during audio capture. - - - The maximum duration of audio recording in milliseconds. If not provided, the recording should be performed until EndAudioPassThru arrives. - - - - Defines if the current audio source should be muted during the APT session. If not, the audio source will play without interruption. - If omitted, the value is set to true. - - - - - - - Request is sent by SDL to stop the audio capturing. - - - - - Method is invoked at system startup. Response provides information about presence of UI module and its readiness to cooperate with SDL. - - - - Must be true if UI is present and ready to communicate with SDL. - - - - Initiated by SDL to close currently active pop-up on HMI. - - Method to be closed - - - - Provides the result of operation. - - - HMI must provide SDL with notifications specific to the current Turn-By-Turn client status on the module - - Id of application that invoked notifcation. - - - Currently used method name on which was triggered action - - - - Issued by SDL to notify HMI about capturing mic data should be started - - ID of application related to this RPC. - - - - Send the UI spatial data from MOBILE. This data will be utilized by the HMI to determine how and when haptic events should occur - - Internal ID of the application that requested this RPC. - - - - Array of rectangle data structures that represent the locations of all user controls present on the HMI. - This data should be updated if/when the application presents a new screen. - When a request is sent, if successful, it will replace all rectangle data previously sent through RPC. - Avoidance of doubt, when an empty hapticRectData, it will be clear all rectangle data previously sent through RPC. - - - - - - - - - Method is invoked at system startup. Response must provide the information about presence of UI Navigation module and its readiness to cooperate with SDL. - - - - Must be true if Navigation is present and ready to communicate with SDL. - - - - That allows the app to send a destination to the embedded nav system. - - ID of application related to this RPC. - - - - - - - Name / title of intended location - - - Description intended location / establishment (if applicable) - - - Location address (if applicable) - - - Phone number of intended location / establishment (if applicable) - - - Image / icon of intended location (if applicable and supported) - - - - - - - Dials a phone number and switches to phone application. - - Phone number is a string, which can be up to 40 chars. - - - - - - - - Request from SmartDeviceLinkCore to HMI to show info about navigation. - - See TextFieldStruct. Uses: - navigationText1 - navigationText2 - ETA - totalDistance - timeToDestination. - - - - - - - - Fraction of distance till next maneuver (from previous maneuver). - May be used to calculate progress bar. - - - Fraction of distance till next maneuver (starting from when AlertManeuver is triggered). - May be used to calculate progress bar. - - - If and when a maneuver has completed while an AlertManeuver is active, SDL will send this value set to TRUE in order to clear the AlertManeuver overlay. - If omitted the value should be assumed as FALSE. - - - Three dynamic SoftButtons available - If omitted on supported displays, the currently displayed SoftButton values will not change. - - - ID of application related to this RPC. - - - - - - Request from SmartDeviceLinkCore to HMI to announce navigation maneuver - - If omitted, only the system defined "Close" SoftButton should be displayed. - - - ID of the application requested this RPC. - - - - - - Request from SmartDeviceLinkCore to HMI to update turn list. - - - - If omitted, app-defined SoftButton should be left blank. - - - ID of application related to this RPC. - - - - - - HMI must provide SDL with notifications specific to the current Turn-By-Turn client status on the module - - Current State of TBT client - - - - Request from SDL to HMI to ask whether HMI accepts a video stream with given configuration. - - Configuration of a video stream. - - - ID of application related to this RPC. - - - - - Response from HMI to SDL whether the configuration is accepted. - In a negative response, a list of rejected parameters are supplied. - - - - List of params of VideoConfig struct which are not accepted by HMI, e.g. "protocol" and "codec". - This param exists only when the response is negative. - - - - - Request from SmartDeviceLinkCore to HMI to start playing video streaming. - - URL that HMI start playing. - - - ID of application related to this RPC. - - - - - - Request from SmartDeviceLinkCore to HMI to stop playing video streaming. - - ID of application related to this RPC. - - - - - - Request from SmartDeviceLinkCore to HMI to start playing audio streaming. - - URL that HMI start playing. - - - ID of application related to this RPC. - - - - - - Request from SmartDeviceLinkCore to HMI to stop playing audio streaming. - - ID of application related to this RPC. - - - - - - Sender: SDL->HMI. Purpose: notify about raw audio data presence over the URL provided via StartAudioStream SDL's request. - - If "true" - audio data started. If "false" - audio data stopped. - - - - Sender: SDL->HMI. Purpose: notify about raw video data presence over the URL provided via StartStream SDL's request. - - If "true" - video data started. If "false" - video data stopped. - - - - Request for getting waypoint/destination data. - - To request for either the destination only or for all waypoints including destination - - - ID of the application. - - - - - ID of the application. - - - See LocationDetails - - - - Notification which provides the entire LocationDetails when there is a change to any waypoints or destination. - - See LocationDetails - - - - - To subscribe in getting changes for Waypoints/destinations - - - - - - - Request to unsubscribe from WayPoints and Destination - - - - - - - - - Method is invoked at system startup. Response should provide information about presence of any of vehicle information modules (ECU, GPS, etc) and their readiness to cooperate with SDL. - - - - Must be true if vehicle data modules are present and ready to communicate with SDL. - - - - Request from SmartDeviceLinkCore to HMI to get info about the vehicle (type, model, etc.). - - - - - - Request from SDL for vehicle data reading. - - Name of ECU. - - - Get raw data from vehicle data DID location(s). - - - ID of application related to this RPC. - - - - - Array of requested DID results (with data if available). - - - - Vehicle module diagnostic trouble code request. - - Name of ECU. - - - DTC Mask Byte to be sent in diagnostic request to module . - - - ID of application that requested this RPC. - - - - - 2 byte ECU Header for DTC response (as defined in VHR_Layout_Specification_DTCs.pdf) - - - - Array of all reported DTCs on module. Each DTC is represented with 4 bytes: - 3 bytes for data - 1 byte for status - - - - - Non periodic vehicle diagnostic request - - Name of target ECU. - - - Length of message (in bytes). - - - - Array of bytes comprising CAN message. - - - - ID of application that requested this RPC. - - - - - - Array of bytes comprising CAN message result. - - - - - - Subscribes for specific published data items. - The data will be only sent if it has changed. - The application will be notified by the onVehicleData notification whenever new data is available. - To unsubscribe the notifications, use unsubscribe with the same subscriptionType. - - - See GPSData - - - The vehicle speed in kilometers per hour - - - The number of revolutions per minute of the engine - - - The fuel level in the tank (percentage) - - - The fuel level state - - - The instantaneous fuel consumption in microlitres - - - The external temperature in degrees celsius - - - See PRNDL - - - See TireStatus - - - Odometer in km - - - The status of the seat belts - - - The body information including power modes - - - The device status including signal and battery strength - - - The status of the brake pedal - - - The status of the wipers - - - Status of the head lamps - - - Torque value for engine (in Nm) on non-diesel variants - - - Accelerator pedal position (percentage depressed) - - - Current angle of the steering wheel (in deg) - - - - Emergency Call notification and confirmation data - - - The status of the air bags - - - Information related to an emergency event (and if it occurred) - - - The status modes of the cluster - - - Information related to the MyKey feature - - - - - - See GPSData - - - The vehicle speed in kilometers per hour - - - The number of revolutions per minute of the engine - - - The fuel level in the tank (percentage) - - - The fuel level state - - - The instantaneous fuel consumption in microlitres - - - The external temperature in degrees celsius. - - - See PRNDL - - - See TireStatus - - - Odometer in km - - - The status of the seat belts - - - The body information including power modes - - - The device status including signal and battery strength - - - The status of the brake pedal - - - The status of the wipers - - - Status of the head lamps - - - Torque value for engine (in Nm) on non-diesel variants - - - Accelerator pedal position (percentage depressed) - - - Current angle of the steering wheel (in deg) - - - - Emergency Call notification and confirmation data - - - The status of the air bags - - - Information related to an emergency event (and if it occurred) - - - The status modes of the cluster - - - Information related to the MyKey feature - - - - - - This function is used to unsubscribe the notifications from the subscribeVehicleData function. - - - ID of application that requested this RPC. - - - See GPSData - - - The vehicle speed in kilometers per hour - - - The number of revolutions per minute of the engine - - - The fuel level in the tank (percentage) - - - The fuel level state - - - The instantaneous fuel consumption in microlitres - - - The external temperature in degrees celsius. - - - See PRNDL - - - See TireStatus - - - Odometer in km - - - The status of the seat belts - - - The body information including power modes - - - The device status including signal and battery strength - - - The status of the brake pedal - - - The status of the wipers - - - Status of the head lamps - - - Torque value for engine (in Nm) on non-diesel variants - - - Accelerator pedal position (percentage depressed) - - - Current angle of the steering wheel (in deg) - - - - Emergency Call notification and confirmation data - - - The status of the air bags - - - Information related to an emergency event (and if it occurred) - - - The status modes of the cluster - - - Information related to the MyKey feature - - - - - - See GPSData - - - The vehicle speed in kilometers per hour - - - The number of revolutions per minute of the engine - - - The fuel level in the tank (percentage) - - - The fuel level state - - - The instantaneous fuel consumption in microlitres - - - The external temperature in degrees celsius - - - See PRNDL - - - See TireStatus - - - Odometer in km - - - The status of the seat belts - - - The body information including power modes - - - The device status including signal and battery strength - - - The status of the brake pedal - - - The status of the wipers - - - Status of the head lamps - - - Torque value for engine (in Nm) on non-diesel variants - - - Accelerator pedal position (percentage depressed) - - - Current angle of the steering wheel (in deg) - - - - Emergency Call notification and confirmation data - - - The status of the air bags - - - Information related to an emergency event (and if it occurred) - - - The status modes of the cluster - - - Information related to the MyKey feature - - - - - Non periodic vehicle data read request. - - See GPSData - - - The vehicle speed in kilometers per hour - - - The number of revolutions per minute of the engine - - - The fuel level in the tank (percentage) - - - The fuel level state - - - The instantaneous fuel consumption in microlitres - - - The external temperature in degrees celsius - - - Vehicle identification number - - - See PRNDL - - - See TireStatus - - - Odometer in km - - - The status of the seat belts - - - The body information including ignition status and internal temp - - - The device status including signal and battery strength - - - The status of the brake pedal - - - The status of the wipers - - - Status of the head lamps - - - Torque value for engine (in Nm) on non-diesel variants - - - Accelerator pedal position (percentage depressed) - - - Current angle of the steering wheel (in deg) - - - Emergency Call notification and confirmation data - - - The status of the air bags - - - Information related to an emergency event (and if it occurred) - - - The status modes of the cluster - - - Information related to the MyKey feature - - - - - See GPSData - - - The vehicle speed in kilometers per hour - - - The number of revolutions per minute of the engine - - - The fuel level in the tank (percentage) - - - The fuel level state - - - The instantaneous fuel consumption in microlitres - - - The external temperature in degrees celsius - - - Vehicle identification number - - - See PRNDL - - - See TireStatus - - - Odometer in km - - - The status of the seat belts - - - The body information including power modes - - - The device status including signal and battery strength - - - The status of the brake pedal - - - The status of the wipers - - - Status of the head lamps - - - Torque value for engine (in Nm) on non-diesel variants - - - Accelerator pedal position (percentage depressed) - - - Current angle of the steering wheel (in deg) - - - Emergency Call notification and confirmation data - - - The status of the air bags - - - Information related to an emergency event (and if it occurred) - - - The status modes of the cluster - - - Information related to the MyKey feature - - - - Callback for the periodic and non periodic vehicle data read function. - - See GPSData - - - The vehicle speed in kilometers per hour - - - The number of revolutions per minute of the engine - - - The fuel level in the tank (percentage) - - - The fuel level state - - - The instantaneous fuel consumption in microlitres - - - The external temperature in degrees celsius - - - Vehicle identification number. - - - See PRNDL - - - See TireStatus - - - Odometer in km - - - The status of the seat belts - - - The body information including power modes - - - The device status including signal and battery strength - - - The status of the brake pedal - - - The status of the wipers - - - Status of the head lamps - - - Torque value for engine (in Nm) on non-diesel variants - - - Accelerator pedal position (percentage depressed) - - - Current angle of the steering wheel (in deg) - - - Emergency Call notification and confirmation data - - - The status of the air bags - - - Information related to an emergency event (and if it occurred) - - - The status modes of the cluster - - - Information related to the MyKey feature - - - - - - ID of application requested this RPC. - - - - - See GPSData - - - - - ID of application requested this RPC. - - - - - The vehicle speed in kilometers per hour - - - - - ID of application requested this RPC. - - - - - The number of revolutions per minute of the engine - - - - - ID of application requested this RPC. - - - - - The fuel level in the tank (percentage) - - - - - ID of application requested this RPC. - - - - - The fuel level state - - - - - ID of application requested this RPC. - - - - - The instantaneous fuel consumption in microlitres - - - - - ID of application requested this RPC. - - - - - The external temperature in degrees celsius - - - - - ID of application requested this RPC. - - - - - Vehicle identification number - - - - - ID of application requested this RPC. - - - - - See PRNDL - - - - - ID of application requested this RPC. - - - - - See TireStatus - - - - - ID of application requested this RPC. - - - - - Odometer in km - - - - - ID of application requested this RPC. - - - - - The status of the seat belts - - - - - ID of application requested this RPC. - - - - - The body information including power modes - - - - - ID of application requested this RPC. - - - - - The device status including signal and battery strength - - - - - ID of application requested this RPC. - - - - - The status of the brake pedal - - - - - ID of application requested this RPC. - - - - - The status of the wipers - - - - - ID of application requested this RPC. - - - - - Status of the head lamps - - - - - ID of application requested this RPC. - - - - - Torque value for engine (in Nm) on non-diesel variants - - - - - ID of application requested this RPC. - - - - - Accelerator pedal position (percentage depressed) - - - - - ID of application requested this RPC. - - - - - Current angle of the steering wheel (in deg) - - - - - ID of application requested this RPC. - - - - - Emergency Call notification and confirmation data - - - - - ID of application requested this RPC. - - - - - The status of the air bags - - - - - ID of application requested this RPC. - - - - - Information related to an emergency event (and if it occurred) - - - - - ID of application requested this RPC. - - - - - The status modes of the cluster - - - - - ID of application requested this RPC. - - - - - Information related to the MyKey feature - - - - - - - See GPSData - - - - - The vehicle speed in kilometers per hour - - - - - The number of revolutions per minute of the engine - - - - - The fuel level in the tank (percentage) - - - - - The fuel level state - - - - - The instantaneous fuel consumption in microlitres - - - - - The external temperature in degrees celsius - - - - - Vehicle identification number. - - - - - See PRNDL - - - - - See TireStatus - - - - - Odometer in km - - - - - The status of the seat belts - - - - - The body information including power modes - - - - - The device status including signal and battery strength - - - - - The status of the brake pedal - - - - - The status of the wipers - - - - - Status of the head lamps - - - - - Torque value for engine (in Nm) on non-diesel variants - - - - - Accelerator pedal position (percentage depressed) - - - - - Current angle of the steering wheel (in deg) - - - - - Current angle of the steering wheel (in deg) - - - - - Current angle of the steering wheel (in deg) - - - - - Current angle of the steering wheel (in deg) - - - - - Current angle of the steering wheel (in deg) - - - - - Information related to the MyKey feature - - - - - - - - - See GPSData - - - - - - - See GPSData - - - - - - - The vehicle speed in kilometers per hour - - - - - - - The vehicle speed in kilometers per hour - - - - - - - The number of revolutions per minute of the engine - - - - - - - The number of revolutions per minute of the engine - - - - - - - The fuel level in the tank (percentage) - - - - - - - The fuel level in the tank (percentage) - - - - - - - The fuel level state - - - - - - - The fuel level state - - - - - - - The instantaneous fuel consumption in microlitres - - - - - - - The instantaneous fuel consumption in microlitres - - - - - - - The external temperature in degrees celsius - - - - - - - The external temperature in degrees celsius - - - - - - - See PRNDL - - - - - - - See PRNDL - - - - - - - Vehicle identification number - - - - - - - Vehicle identification number - - - - - - - See TireStatus - - - - - - - See TireStatus - - - - - - - Odometer in km - - - - - - - Odometer in km - - - - - - - The status of the seat belts - - - - - - - The status of the seat belts - - - - - - - The body information including power modes - - - - - - - The body information including power modes - - - - - - - The device status including signal and battery strength - - - - - - - The device status including signal and battery strength - - - - - - - The status of the brake pedal - - - - - - - The status of the brake pedal - - - - - - - The status of the wipers - - - - - - - The status of the wipers - - - - - - - Status of the head lamps - - - - - - - Status of the head lamps - - - - - - - Torque value for engine (in Nm) on non-diesel variants - - - - - - - Torque value for engine (in Nm) on non-diesel variants - - - - - - - Accelerator pedal position (percentage depressed) - - - - - - - Accelerator pedal position (percentage depressed) - - - - - - - Current angle of the steering wheel (in deg) - - - - - - - Current angle of the steering wheel (in deg) - - - - - - - Emergency Call notification and confirmation data - - - - - - - Emergency Call notification and confirmation data - - - - - - - The status of the air bags - - - - - - - The status of the air bags - - - - - - - Information related to an emergency event (and if it occurred) - - - - - - - Information related to an emergency event (and if it occurred) - - - - - - - The status modes of the cluster - - - - - - - The status modes of the cluster - - - - - - - Information related to the MyKey feature - - - - - - - Information related to the MyKey feature - - - - - - - - - - - - - - If isSDLAllowed is false, consent for sending PT through specified device is required. - - - - - If app permissions were reduced (isAppPermissionsRevoked == true), then this array specifies list of removed permissions. - - - - Send to HMI so that it can coordinate order of requests/notifications correspondingly. - - - - Request from HMI to SDL to get user friendly messages for UI/TTS info boxes/texts (i.e. for help/dialogs etc) from Policy Table. - - Id of message to be received according to Policy Table i.e. StatusNeeded, Notifications, DrivingCharacteristics etc. - - - Optional parameter if HMI wants message in some other language then its current one already known to SDL. - - - - - If no message was found in PT for specified message code and for HMI current or specified language, this parameter will be omitted. - - - - Initiated by HMI. Notifies about user/HMI allowing SDL functionality or disallowing access to all mobile apps. Needed if HMI has additional ways of asking user about this (i.e. Settings etc) - - If no device is specified permission counts for SDL functionality in general. - - - Must be true if allowed - - - - - - - From: SYNCP Manager - To: SDL - Notification sent to SDL when SYNCP Manager receives and decrypts updated policy table - - - Location of decrypted policy table Json file on target - - - - - From: SYNCP Manager - To: SDL - Notifies SDL to supply a new "PolicyUpdate" request with more recent snapshot data - - - - - Request from HMI to SDL to get list of permissions for app. If no app specified - list of permissions for all apps. - - - - - If no permissions were specified for application the array will come empty. - - - - Initiated by HMI for specifying the allowance for the application to perform some functionality. Duplicates functionality of the request, needed if HMI has specific ways to allow/disallow functionality (i.e.Setting Menu) - - Information about the application. See HMIApplication. If omitted - allow/disallow all applications - - - - - - - Notification from SDL to HMI. Occurs when app permissions were reduced. If no permission specified means that app was dissallowed and has to be unregitstered. - - - - If app permissions were reduced (isAppPermissionsRevoked == true), then this array specifies list of removed permissions. - - - If present then specified application was prohibited to used with Sync. - - - If present specifies that permissions were added to application that require User Consent, then HMI can send GetListOfPermissions request to obtain list of permissions. - - - When present and set to true (should be if present) then this means that application was not authorized (nickname check failed.) - - - Send to HMI so that it can coordinate order of requests/notifications correspondingly. - - - The list of SystemRequest's RequestTypes allowed by policies for the named application (the app's SystemRequest sent with RequestType out of this list will get 'disallowed' response from SDL). - If SDL sends an empty array - any RequestType is allowed for this app. - If SDL omits this parameter - nothing is changed for RequestType in the policies - - - - - Send from SDL to HMI to notify that data consent is needed for device either because PT update or Retry strategy. - - - - Request from HMI to SDL to start update of Policy Table. - - - Specify result: no update needed, update was successful/unsuccessful etc - - - - Request from HMI to SDL to find out current status of PT exchange process. - - - - - - Notification from SDL to HMI when current status of PT exchange changed (i.e. it Succeded or Failed etc) - - - - - - - Sent by system to record statiscs and error counts. Increases statistics specified by statisticType by one. - - - - Sent by system to SDL to get list of URL for specified service type and optionally policy's application id. - - - - - - - - - - - - - - Method is invoked at system startup. Response should provide information about presence of any of remote controllable module and its readiness to cooperate with SDL. - - - - Must be true if vehicle RC modules are present and ready to communicate with SDL. - - - - - Method is invoked at system startup by SDL to request information about Remote Control capabilities of HMI. - - - - See RemoteControlCapabilities, all available RC modules and buttons shall be returned. - - - - - - The module type and data to set - - - Internal SDL-assigned ID of the related application - - - - - Used to set the values of one zone and one data type within that zone - - - - - - - The module data to retrieve from the vehicle for that type - - - If subscribe is true, the head unit will send onInteriorVehicleData notifications for the module type - - - Internal SDL-assigned ID of the related application - - - - - - - - Is a conditional-mandatory parameter: must be returned in case "subscribe" parameter was present in the related request. - if "true" - the "moduleType" from request is successfully subscribed and the head unit will send onInteriorVehicleData notifications for the moduleDescription. - if "false" - the "moduleType" from request is either unsubscribed or failed to subscribe. - - - - - Sender: SDL->HMI. - HMI is expected to display a permission prompt to the driver showing the RC module and app details (for example, app's name). - The driver is expected to have an ability to grant or deny the permission. - - The module type that the app requests to control. - - - ID of the application that triggers the permission prompt. - - - - - "true" - if the driver grants the permission for controlling to the named app; - "false" - in case the driver denies the permission for controlling to the named app. - - - - - - - - - - Sender: vehicle -> RSDL. Notification about remote-control settings changed. Sent after User`s choice through HMI. - - If "true" - RC is allowed; if "false" - RC is disallowed. - - - The remote control access mode specified by the driver via HMI. - - - - \ No newline at end of file diff --git a/src/components/policy/policy_external/.gitignore b/src/components/policy/policy_external/.gitignore index d67909069ab..d6052d61da0 100644 --- a/src/components/policy/policy_external/.gitignore +++ b/src/components/policy/policy_external/.gitignore @@ -29,8 +29,6 @@ src/appMain/hmi_link src/appMain/smartDeviceLinkCore test/components/application_manager/policies_manager/test_policies_table test/components/application_manager/test_formatters_commands -test/components/dbus/test_DBusAdapter -test/components/dbus/test_DBusSchema test/components/protocol_handler/test_ProtocolHandler test/components/request_watchdog/test_RequestWatchdog test/components/smart_objects/SchemaItem/test_SmartObject_AlwaysFalseSchemaItemTest diff --git a/src/components/rpc_base/include/rpc_base/rpc_base.h b/src/components/rpc_base/include/rpc_base/rpc_base.h index 6792f477320..10b494465ce 100644 --- a/src/components/rpc_base/include/rpc_base/rpc_base.h +++ b/src/components/rpc_base/include/rpc_base/rpc_base.h @@ -42,11 +42,6 @@ namespace Json { class Value; } // namespace Json -namespace dbus { -class MessageReader; -class MessageWriter; -} // namespace dbus - namespace rpc { class ValidationReport; @@ -173,12 +168,10 @@ class Boolean : public PrimitiveType { Boolean(); explicit Boolean(bool value); explicit Boolean(const Json::Value* value); - explicit Boolean(dbus::MessageReader* reader); Boolean(const Json::Value* value, bool def_value); Boolean& operator=(bool new_val); operator bool() const; Json::Value ToJsonValue() const; - void ToDbusWriter(dbus::MessageWriter* writer) const; private: // Fields @@ -197,7 +190,6 @@ class Integer : public PrimitiveType { explicit Integer(IntType value); Integer(const Integer& value); explicit Integer(const Json::Value* value); - explicit Integer(dbus::MessageReader* reader); Integer(const Json::Value* value, IntType def_value); Integer& operator=(IntType new_val); Integer& operator=(const Integer& new_val); @@ -205,7 +197,6 @@ class Integer : public PrimitiveType { Integer& operator+=(int value); operator IntType() const; Json::Value ToJsonValue() const; - void ToDbusWriter(dbus::MessageWriter* writer) const; private: IntType value_; @@ -219,12 +210,10 @@ class Float : public PrimitiveType { Float(); explicit Float(double value); explicit Float(const Json::Value* value); - explicit Float(dbus::MessageReader* reader); Float(const Json::Value* value, double def_value); Float& operator=(double new_val); operator double() const; Json::Value ToJsonValue() const; - void ToDbusWriter(dbus::MessageWriter* writer) const; private: double value_; @@ -239,7 +228,6 @@ class String : public PrimitiveType { explicit String(const std::string& value); explicit String(const char* value); explicit String(const Json::Value* value); - explicit String(dbus::MessageReader* reader); String(const Json::Value* value, const std::string& def_value); bool operator<(const String& new_val) const; String& operator=(const std::string& new_val); @@ -247,7 +235,6 @@ class String : public PrimitiveType { bool operator==(const String& rhs) const; operator const std::string&() const; Json::Value ToJsonValue() const; - void ToDbusWriter(dbus::MessageWriter* writer) const; private: std::string value_; @@ -265,12 +252,10 @@ class Enum : public PrimitiveType { Enum(); explicit Enum(EnumType value); explicit Enum(const Json::Value* value); - explicit Enum(dbus::MessageReader* reader); Enum(const Json::Value* value, EnumType def_value); Enum& operator=(const EnumType& new_val); operator EnumType() const; Json::Value ToJsonValue() const; - void ToDbusWriter(dbus::MessageWriter* writer) const; private: // Fields @@ -289,7 +274,6 @@ class Array : public std::vector, public CompositeType { // Need const and non-const versions to beat all-type accepting constructor explicit Array(Json::Value* value); explicit Array(const Json::Value* value); - explicit Array(dbus::MessageReader* reader); template explicit Array(const U& value); template @@ -298,7 +282,6 @@ class Array : public std::vector, public CompositeType { template void push_back(const U& value); Json::Value ToJsonValue() const; - void ToDbusWriter(dbus::MessageWriter* writer) const; virtual bool is_valid() const; bool is_initialized() const; @@ -320,7 +303,6 @@ class Map : public std::map, public CompositeType { // Need const and non-const versions to beat all-type accepting constructor explicit Map(Json::Value* value); explicit Map(const Json::Value* value); - explicit Map(dbus::MessageReader* reader); template explicit Map(const U& value); template @@ -329,7 +311,6 @@ class Map : public std::map, public CompositeType { template void insert(const std::pair& value); Json::Value ToJsonValue() const; - void ToDbusWriter(dbus::MessageWriter* writer) const; bool is_valid() const; bool is_initialized() const; @@ -343,7 +324,6 @@ class Nullable : public T { public: // Methods Nullable(); - explicit Nullable(dbus::MessageReader* reader); // Need const and non-const versions to beat all-type accepting constructor explicit Nullable(Json::Value* value); explicit Nullable(const Json::Value* value); @@ -370,7 +350,6 @@ class Stringifyable : public T { public: // Methods Stringifyable(); - explicit Stringifyable(dbus::MessageReader* reader); // Need const and non-const versions to beat all-type accepting constructor explicit Stringifyable(Json::Value* value); explicit Stringifyable(const Json::Value* value); @@ -398,15 +377,12 @@ class Optional { public: // Methods Optional(); - explicit Optional(dbus::MessageReader* reader); template explicit Optional(const U& value); template Optional(const Json::Value* value, const U& def_value); Json::Value ToJsonValue() const; - void ToDbusWriter(dbus::MessageWriter* writer) const; - // Pointer semantics T& operator*(); const T& operator*() const; diff --git a/src/components/rpc_base/include/rpc_base/rpc_base_dbus_inl.h b/src/components/rpc_base/include/rpc_base/rpc_base_dbus_inl.h deleted file mode 100644 index aae1a34ac2a..00000000000 --- a/src/components/rpc_base/include/rpc_base/rpc_base_dbus_inl.h +++ /dev/null @@ -1,501 +0,0 @@ -/* - * Copyright (c) 2014, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef SRC_COMPONENTS_RPC_BASE_INCLUDE_RPC_BASE_RPC_BASE_DBUS_INL_H_ -#define SRC_COMPONENTS_RPC_BASE_INCLUDE_RPC_BASE_RPC_BASE_DBUS_INL_H_ - -#include "dbus/dbus_message.h" -#include "json/value.h" -#include "rpc_base/rpc_base.h" - -namespace rpc { - -// static -inline PrimitiveType::ValueState PrimitiveType::InitHelper(bool is_next) { - return is_next ? kValid : kInvalid; -} - -// static -inline CompositeType::InitializationState CompositeType::InitHelper( - bool is_next) { - return is_next ? kInitialized : kUninitialized; -} - -namespace impl { - -// Helper functions to statically map int types to appropriate -// MessageReader functions - -// Non-specialized versions doesn't have implementation - -// Tells if next element of reader is of type T -template -inline bool NextIs(const dbus::MessageReader& reader); -// Takes next element of type T from reader -template -inline T Take(dbus::MessageReader* reader); - -template <> -inline bool NextIs(const dbus::MessageReader& reader) { - return reader.NextIsByte(); -} - -template <> -inline int8_t Take(dbus::MessageReader* reader) { - return static_cast(reader->TakeByte()); -} - -inline void Put(int8_t val, dbus::MessageWriter* writer) { - writer->PutByte(static_cast(val)); -} - -template <> -inline bool NextIs(const dbus::MessageReader& reader) { - return reader.NextIsByte(); -} - -template <> -inline uint8_t Take(dbus::MessageReader* reader) { - return reader->TakeByte(); -} - -inline void Put(uint8_t val, dbus::MessageWriter* writer) { - writer->PutByte(val); -} - -template <> -inline bool NextIs(const dbus::MessageReader& reader) { - return reader.NextIsInt16(); -} - -template <> -inline int16_t Take(dbus::MessageReader* reader) { - return reader->TakeInt16(); -} - -inline void Put(int16_t val, dbus::MessageWriter* writer) { - writer->PutInt16(val); -} - -template <> -inline bool NextIs(const dbus::MessageReader& reader) { - return reader.NextIsUint16(); -} - -template <> -inline uint16_t Take(dbus::MessageReader* reader) { - return reader->TakeUint16(); -} - -inline void Put(uint16_t val, dbus::MessageWriter* writer) { - writer->PutUint16(val); -} - -template <> -inline bool NextIs(const dbus::MessageReader& reader) { - return reader.NextIsInt32(); -} - -template <> -inline int32_t Take(dbus::MessageReader* reader) { - return reader->TakeInt32(); -} - -inline void Put(int32_t val, dbus::MessageWriter* writer) { - writer->PutInt32(val); -} - -template <> -inline bool NextIs(const dbus::MessageReader& reader) { - return reader.NextIsUint32(); -} - -template <> -inline uint32_t Take(dbus::MessageReader* reader) { - return reader->TakeUint32(); -} - -inline void Put(uint32_t val, dbus::MessageWriter* writer) { - writer->PutUint32(val); -} - -template <> -inline bool NextIs(const dbus::MessageReader& reader) { - return reader.NextIsInt64(); -} - -template <> -inline int64_t Take(dbus::MessageReader* reader) { - return reader->TakeInt64(); -} - -inline void Put(int64_t val, dbus::MessageWriter* writer) { - writer->PutInt64(val); -} - -template <> -inline bool NextIs(const dbus::MessageReader& reader) { - return reader.NextIsUint64(); -} - -template <> -inline uint64_t Take(dbus::MessageReader* reader) { - return reader->TakeUint64(); -} - -inline void Put(uint64_t val, dbus::MessageWriter* writer) { - writer->PutUint64(val); -} - -template <> -inline std::string Take(dbus::MessageReader* reader) { - return reader->TakeString(); -} - -inline void Put(const std::string val, dbus::MessageWriter* writer) { - writer->PutString(val); -} - -// Type to DBus type id mappers -template -char DbusTypeCode(); -template <> -inline char DbusTypeCode() { - return DBUS_TYPE_BOOLEAN; -} -// There is no dbus type for signed byte, map to unsigned -template <> -inline char DbusTypeCode() { - return DBUS_TYPE_BYTE; -} -template <> -inline char DbusTypeCode() { - return DBUS_TYPE_BYTE; -} -template <> -inline char DbusTypeCode() { - return DBUS_TYPE_INT16; -} -template <> -inline char DbusTypeCode() { - return DBUS_TYPE_UINT16; -} -template <> -inline char DbusTypeCode() { - return DBUS_TYPE_INT32; -} -template <> -inline char DbusTypeCode() { - return DBUS_TYPE_UINT32; -} -template <> -inline char DbusTypeCode() { - return DBUS_TYPE_INT64; -} -template <> -inline char DbusTypeCode() { - return DBUS_TYPE_UINT64; -} -template <> -inline char DbusTypeCode() { - return DBUS_TYPE_DOUBLE; -} -template <> -inline char DbusTypeCode() { - return DBUS_TYPE_STRING; -} -template <> -inline char DbusTypeCode() { - return DBUS_TYPE_STRING; -} - -// Non-specialized template supposes there is static -// void GetDbusSignature(std::string*) method in T -template -struct DbusSignatureHelper { - static void DbusSignature(std::string* signature) { - T::GetDbusSignature(signature); - } -}; - -template <> -struct DbusSignatureHelper { - static void DbusSignature(std::string* signature) { - (*signature) += rpc::impl::DbusTypeCode(); - } -}; - -template -struct DbusSignatureHelper > { - static void DbusSignature(std::string* signature) { - (*signature) += rpc::impl::DbusTypeCode(); - } -}; - -template -struct DbusSignatureHelper > { - static void DbusSignature(std::string* signature) { - (*signature) += rpc::impl::DbusTypeCode(); - } -}; - -template -struct DbusSignatureHelper > { - static void DbusSignature(std::string* signature) { - (*signature) += rpc::impl::DbusTypeCode(); - } -}; - -template -struct DbusSignatureHelper > { - static void DbusSignature(std::string* signature) { - (*signature) += rpc::impl::DbusTypeCode(); - } -}; - -template -struct DbusSignatureHelper > { - static void DbusSignature(std::string* signature) { - (*signature) += DBUS_DICT_ENTRY_BEGIN_CHAR; - (*signature) += rpc::impl::DbusTypeCode(); - rpc::impl::DbusSignatureHelper::DbusSignature(signature); - (*signature) += DBUS_DICT_ENTRY_END_CHAR; - } -}; - -template -struct DbusSignatureHelper > { - static void DbusSignature(std::string* signature) { - (*signature) += DBUS_TYPE_ARRAY; - rpc::impl::DbusSignatureHelper::DbusSignature(signature); - } -}; - -template -struct DbusSignatureHelper > { - static void DbusSignature(std::string* signature) { - (*signature) += DBUS_TYPE_ARRAY; - rpc::impl::DbusSignatureHelper:: - value_type>::DbusSignature(signature); - } -}; - -template -struct DbusSignatureHelper > { - static void DbusSignature(std::string* signature) { - (*signature) += DBUS_STRUCT_BEGIN_CHAR; - (*signature) += rpc::impl::DbusTypeCode(); - rpc::impl::DbusSignatureHelper::DbusSignature(signature); - (*signature) += DBUS_STRUCT_END_CHAR; - } -}; - -template -struct DbusSignatureHelper > { - static void DbusSignature(std::string* signature) { - (*signature) += DBUS_STRUCT_BEGIN_CHAR; - (*signature) += rpc::impl::DbusTypeCode(); - rpc::impl::DbusSignatureHelper::DbusSignature(signature); - (*signature) += DBUS_STRUCT_END_CHAR; - } -}; - -// Helper Optional type initialization functipon -template -T TakeOptional(dbus::MessageReader* reader) { - dbus::MessageReader struct_reader = reader->TakeStructReader(); - bool available = struct_reader.TakeBool(); - T value(&struct_reader); - return available ? value : T(); -} - -// Helper Nullable type initialization functipon -template -bool TakeNullable(dbus::MessageReader* reader) { - dbus::MessageReader struct_reader = reader->TakeStructReader(); - bool is_null = struct_reader.TakeBool(); - return is_null; -} - -} // namespace impl - -// Helper function that outputs dbus signature for type T -template -void DbusSignature(std::string* signature) { - impl::DbusSignatureHelper::DbusSignature(signature); -} - -// Type constructors -inline Boolean::Boolean(dbus::MessageReader* reader) - : PrimitiveType(InitHelper(reader->NextIsBool())) - , value_(reader->TakeBool()) {} - -template -inline Integer::Integer(dbus::MessageReader* reader) - : PrimitiveType(InitHelper(impl::NextIs(*reader))) - , value_(impl::Take(reader)) { - if (is_valid()) { - value_state_ = range_.Includes(value_) ? kValid : kInvalid; - } -} - -template -inline Float::Float(dbus::MessageReader* reader) - : PrimitiveType(InitHelper(reader->NextIsDouble())) - , value_(reader->TakeDouble()) { - if (is_valid()) { - value_state_ = range_.Includes(value_) ? kValid : kInvalid; - } -} - -template -inline String::String(dbus::MessageReader* reader) - : PrimitiveType(InitHelper(reader->NextIsString())) - , value_(reader->TakeString()) { - if (is_valid()) { - value_state_ = length_range_.Includes(value_.length()) ? kValid : kInvalid; - } -} - -template -inline Enum::Enum(dbus::MessageReader* reader) - : PrimitiveType(InitHelper(reader->NextIsInt32())) - , value_(EnumType(reader->TakeInt32())) { - if (is_valid()) { - value_state_ = IsValidEnum(value_) ? kValid : kInvalid; - } -} - -template -inline Array::Array(dbus::MessageReader* reader) - : CompositeType(InitHelper(reader->NextIsArray())) { - dbus::MessageReader array_reader = reader->TakeArrayReader(); - if (array_reader.has_failed()) { - push_back(T()); - } else { - while (array_reader.HasNext()) { - push_back(T(&array_reader)); - } - } -} - -template -inline Map::Map(dbus::MessageReader* reader) - : CompositeType(InitHelper(reader->NextIsStruct())) { - // Map key-value pairs are serialized into array - dbus::MessageReader array_reader = reader->TakeArrayReader(); - if (array_reader.has_failed()) { - this->insert(typename MapType::value_type("", T())); - } else { - while (array_reader.HasNext()) { - dbus::MessageReader dictvalue_reader = array_reader.TakeDictEntryReader(); - typename MapType::key_type key = - impl::Take(&dictvalue_reader); - this->insert(typename MapType::value_type(key, T(&dictvalue_reader))); - } - } -} - -template -inline Nullable::Nullable(dbus::MessageReader* reader) - : T(reader), marked_null_(impl::TakeNullable(reader)) {} - -template -inline Optional::Optional(dbus::MessageReader* reader) - : value_(impl::TakeOptional(reader)) {} - -// MessageWriter serializers -inline void Boolean::ToDbusWriter(dbus::MessageWriter* writer) const { - writer->PutBool(value_); -} - -template -inline void Integer::ToDbusWriter( - dbus::MessageWriter* writer) const { - impl::Put(value_, writer); -} - -template -inline void Float::ToDbusWriter( - dbus::MessageWriter* writer) const { - writer->PutDouble(value_); -} - -template -inline void String::ToDbusWriter( - dbus::MessageWriter* writer) const { - writer->PutString(value_); -} - -template -inline void Enum::ToDbusWriter(dbus::MessageWriter* writer) const { - writer->PutInt32(static_cast(value_)); -} - -template -inline void Array::ToDbusWriter( - dbus::MessageWriter* writer) const { - std::string array_signature; - DbusSignature(&array_signature); - dbus::MessageWriter array_writer( - writer, dbus::kArray, array_signature.c_str()); - for (typename ArrayType::const_iterator i = this->begin(); i != this->end(); - ++i) { - i->ToDbusWriter(&array_writer); - } -} - -template -inline void Map::ToDbusWriter( - dbus::MessageWriter* writer) const { - std::string array_signature; - DbusSignature(&array_signature); - dbus::MessageWriter array_writer( - writer, dbus::kArray, array_signature.c_str()); - for (typename MapType::const_iterator i = this->begin(); i != this->end(); - ++i) { - dbus::MessageWriter dictentry_writer(&array_writer, dbus::kDictEntry, NULL); - impl::Put(i->first, &dictentry_writer); - i->second.ToDbusWriter(&dictentry_writer); - } -} - -template -inline void Optional::ToDbusWriter(dbus::MessageWriter* writer) const { - dbus::MessageWriter struct_writer(writer, dbus::kStruct, NULL); - struct_writer.PutBool(value_.is_initialized()); - value_.ToDbusWriter(&struct_writer); -} - -} // namespace rpc - -#endif // SRC_COMPONENTS_RPC_BASE_INCLUDE_RPC_BASE_RPC_BASE_DBUS_INL_H_ diff --git a/src/components/rpc_base/test/CMakeLists.txt b/src/components/rpc_base/test/CMakeLists.txt index ca4f41fe76a..ae87bb71b77 100644 --- a/src/components/rpc_base/test/CMakeLists.txt +++ b/src/components/rpc_base/test/CMakeLists.txt @@ -31,8 +31,6 @@ include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories( - ${COMPONENTS_DIR}/dbus/include - ${COMPONENTS_DIR}/dbus/src ${COMPONENTS_DIR}/rpc_base/include ${GMOCK_INCLUDE_DIRECTORY} ${JSONCPP_INCLUDE_DIRECTORY} @@ -43,16 +41,5 @@ set(LIBRARIES jsoncpp ) -if(${HMI_DBUS_API}) - include_directories(${DBUS_INCLUDE_DIRS}) - list(APPEND LIBRARIES - DBus - ) -else() - set(EXCLUDE_PATHS - rpc_base_dbus_test.cc - ) -endif() - collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}" "${EXCLUDE_PATHS}") create_test(rpc_base_test "${SOURCES}" "${LIBRARIES}") diff --git a/src/components/rpc_base/test/rpc_base_dbus_test.cc b/src/components/rpc_base/test/rpc_base_dbus_test.cc deleted file mode 100644 index 4a22e111a38..00000000000 --- a/src/components/rpc_base/test/rpc_base_dbus_test.cc +++ /dev/null @@ -1,682 +0,0 @@ -/* Copyright (c) 2014, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include "gtest/gtest.h" -#include "dbus/dbus_message.h" -#include "rpc_base/rpc_base.h" -#include "rpc_base/rpc_base_dbus_inl.h" - -namespace test { -namespace components { -namespace rpc_base_test { - -using namespace rpc; -using namespace dbus; - -enum TestEnum { kValue0, kValue1, kInvalidValue }; - -bool IsValidEnum(TestEnum val) { - return val == kValue0 || val == kValue1; -} - -bool EnumFromJsonString(const std::string& value, TestEnum* enm) { - if (value == "kValue0") { - *enm = kValue0; - return true; - } else if (value == "kValue1") { - *enm = kValue1; - return true; - } else { - return false; - } -} - -const char* EnumToJsonString(TestEnum enm) { - switch (enm) { - case kValue0: - return "kValue0"; - case kValue1: - return "kValue1"; - default: - return "UNKNOWN"; - } -} - -struct DbusDeserialization : public testing::Test { - dbus::MessageRef msgref; - DbusDeserialization() - : msgref(dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_CALL)) {} -}; - -TEST_F(DbusDeserialization, DeserializeBool) { - { - dbus::MessageWriter writer(msgref); - writer.PutBool(true); - } - { - dbus::MessageReader reader(msgref); - Boolean booln(&reader); - ASSERT_TRUE(booln); - } -} - -TEST_F(DbusDeserialization, DeserializeByte) { - { - dbus::MessageWriter writer(msgref); - writer.PutByte(200); - } - { - dbus::MessageReader reader(msgref); - Integer byte(&reader); - ASSERT_TRUE(byte.is_initialized()); - ASSERT_TRUE(byte.is_valid()); - ASSERT_EQ(byte, 200); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - } -} - -TEST_F(DbusDeserialization, DeserializeInt64) { - { - dbus::MessageWriter writer(msgref); - writer.PutInt64(-1); - } - { - dbus::MessageReader reader(msgref); - Integer int64(&reader); - ASSERT_TRUE(int64.is_initialized()); - ASSERT_TRUE(int64.is_valid()); - ASSERT_EQ(int64, -1); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - } -} - -TEST_F(DbusDeserialization, DeserializeFloat) { - { - dbus::MessageWriter writer(msgref); - writer.PutDouble(3.14); - } - { - dbus::MessageReader reader(msgref); - Float<3, 4> pi(&reader); - ASSERT_TRUE(pi.is_initialized()); - ASSERT_TRUE(pi.is_valid()); - ASSERT_DOUBLE_EQ(pi, 3.14); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - } -} - -TEST_F(DbusDeserialization, DeserializeString) { - { - dbus::MessageWriter writer(msgref); - writer.PutString("Hello"); - } - { - dbus::MessageReader reader(msgref); - String<3, 10> hello(&reader); - ASSERT_TRUE(hello.is_initialized()); - ASSERT_TRUE(hello.is_valid()); - ASSERT_EQ(std::string(hello), "Hello"); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - } -} - -TEST_F(DbusDeserialization, DeserializeEnum) { - { - dbus::MessageWriter writer(msgref); - writer.PutInt32(kValue1); - } - { - dbus::MessageReader reader(msgref); - Enum enm(&reader); - ASSERT_TRUE(enm.is_initialized()); - ASSERT_TRUE(enm.is_valid()); - ASSERT_EQ(enm, kValue1); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - } -} - -TEST_F(DbusDeserialization, DeserializeArray) { - { - dbus::MessageWriter writer(msgref); - std::string array_signature; - rpc::DbusSignature >(&array_signature); - dbus::MessageWriter array_writer( - &writer, dbus::kArray, array_signature.c_str()); - array_writer.PutInt32(5); - array_writer.PutInt32(33); - } - { - dbus::MessageReader reader(msgref); - Array, 1, 100> array(&reader); - ASSERT_TRUE(array.is_initialized()); - ASSERT_TRUE(array.is_valid()); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - ASSERT_EQ(array.size(), 2u); - ASSERT_EQ(array[0], 5); - ASSERT_EQ(array[1], 33); - } -} - -TEST_F(DbusDeserialization, DeserializeArrayOfArrays) { - { - dbus::MessageWriter writer(msgref); - std::string array_signature; - rpc::DbusSignature, 1, 5> >(&array_signature); - dbus::MessageWriter array_writer( - &writer, dbus::kArray, array_signature.c_str()); - int val = 5; - for (int i = 0; i < 2; ++i) { - std::string subarray_signature; - rpc::DbusSignature >(&subarray_signature); - dbus::MessageWriter subarray_wirter( - &array_writer, dbus::kArray, subarray_signature.c_str()); - - subarray_wirter.PutInt32(val++); - subarray_wirter.PutInt32(val++); - } - } - { - dbus::MessageReader reader(msgref); - Array, 1, 5>, 1, 5> array(&reader); - ASSERT_TRUE(array.is_initialized()); - ASSERT_TRUE(array.is_valid()); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - ASSERT_EQ(array.size(), 2u); - ASSERT_EQ(array[0].size(), 2u); - ASSERT_EQ(array[1].size(), 2u); - ASSERT_EQ(array[0][0], 5); - ASSERT_EQ(array[0][1], 6); - ASSERT_EQ(array[1][0], 7); - ASSERT_EQ(array[1][1], 8); - } -} - -TEST_F(DbusDeserialization, DeserializeMap) { - { - dbus::MessageWriter writer(msgref); - std::string dict_signature; - rpc::DbusSignature, 1, 5>::value_type>(&dict_signature); - dbus::MessageWriter array_writer( - &writer, dbus::kArray, dict_signature.c_str()); - const char* keys[] = {"Hello", "World"}; - int val = 0; - for (int i = 0; i < 2; ++i) { - dbus::MessageWriter dictval_wirter(&array_writer, dbus::kDictEntry, NULL); - dictval_wirter.PutString(keys[val]); - dictval_wirter.PutInt32(val++); - } - } - { - dbus::MessageReader reader(msgref); - Map, 1, 5> amap(&reader); - ASSERT_TRUE(amap.is_initialized()); - ASSERT_TRUE(amap.is_valid()); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - ASSERT_EQ(amap.size(), 2u); - ASSERT_EQ(amap["Hello"], kValue0); - ASSERT_EQ(amap["World"], kValue1); - } -} - -TEST_F(DbusDeserialization, InconsistentTypesTest) { - { - dbus::MessageWriter writer(msgref); - writer.PutString("Hello"); - } - { - dbus::MessageReader reader(msgref); - Boolean badbool(&reader); - ASSERT_TRUE(badbool.is_initialized()); - ASSERT_FALSE(badbool.is_valid()); - ASSERT_TRUE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - } -} - -TEST_F(DbusDeserialization, DeserializeOptionalString) { - { - dbus::MessageWriter writer(msgref); - dbus::MessageWriter optwriter(&writer, dbus::kStruct, NULL); - optwriter.PutBool(true); - optwriter.PutString("Hello dear"); - } - { - dbus::MessageReader reader(msgref); - Optional > readback(&reader); - ASSERT_TRUE(readback.is_initialized()); - ASSERT_TRUE(readback.is_valid()); - ASSERT_EQ(std::string(*readback), "Hello dear"); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - } -} - -TEST_F(DbusDeserialization, DeserializeOptionalInt) { - { - dbus::MessageWriter writer(msgref); - dbus::MessageWriter optwriter(&writer, dbus::kStruct, NULL); - optwriter.PutBool(false); - optwriter.PutInt32(42); - } - { - dbus::MessageReader reader(msgref); - Optional > readback(&reader); - ASSERT_FALSE(readback.is_initialized()); - ASSERT_TRUE(readback.is_valid()); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - } -} - -TEST_F(DbusDeserialization, SerializeDeserializeBool) { - { - Boolean true_bool(true); - dbus::MessageWriter writer(msgref); - true_bool.ToDbusWriter(&writer); - } - { - dbus::MessageReader reader(msgref); - Boolean readback(&reader); - ASSERT_TRUE(readback.is_initialized()); - ASSERT_TRUE(readback.is_valid()); - ASSERT_EQ(readback, true); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - } -} - -TEST_F(DbusDeserialization, SerializeDeserializeInt8t) { - { - Integer int8(42); - dbus::MessageWriter writer(msgref); - int8.ToDbusWriter(&writer); - } - { - dbus::MessageReader reader(msgref); - Integer readback(&reader); - ASSERT_TRUE(readback.is_initialized()); - ASSERT_TRUE(readback.is_valid()); - ASSERT_EQ(readback, 42); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - } -} - -TEST_F(DbusDeserialization, BadSerializeDeserializeInt8t) { - { - Integer int8(42); - dbus::MessageWriter writer(msgref); - int8.ToDbusWriter(&writer); - } - { - dbus::MessageReader reader(msgref); - Integer readback(&reader); - ASSERT_TRUE(readback.is_initialized()); - ASSERT_FALSE(readback.is_valid()); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - } -} - -TEST_F(DbusDeserialization, SerializeDeserializeInt64t) { - { - Integer int64(0xFFFFFFFFF1); - dbus::MessageWriter writer(msgref); - int64.ToDbusWriter(&writer); - } - { - dbus::MessageReader reader(msgref); - Integer readback(&reader); - ASSERT_TRUE(readback.is_initialized()); - ASSERT_TRUE(readback.is_valid()); - ASSERT_EQ(readback, 0xFFFFFFFFF1); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - } -} - -TEST_F(DbusDeserialization, SerializeDeserializeDouble) { - { - Float<1, 5> flt(3.14); - dbus::MessageWriter writer(msgref); - flt.ToDbusWriter(&writer); - } - { - dbus::MessageReader reader(msgref); - Float<1, 5> readback(&reader); - ASSERT_TRUE(readback.is_initialized()); - ASSERT_TRUE(readback.is_valid()); - ASSERT_DOUBLE_EQ(readback, 3.14); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - } -} - -TEST_F(DbusDeserialization, SerializeDeserializeString) { - { - String<1, 12> hello("Hello"); - dbus::MessageWriter writer(msgref); - hello.ToDbusWriter(&writer); - } - { - dbus::MessageReader reader(msgref); - String<1, 12> readback(&reader); - ASSERT_TRUE(readback.is_initialized()); - ASSERT_TRUE(readback.is_valid()); - ASSERT_EQ(std::string(readback), "Hello"); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - } -} - -TEST_F(DbusDeserialization, SerializeDeserializeEnum) { - { - Enum te(kValue1); - dbus::MessageWriter writer(msgref); - te.ToDbusWriter(&writer); - } - { - dbus::MessageReader reader(msgref); - Enum readback(&reader); - ASSERT_TRUE(readback.is_initialized()); - ASSERT_TRUE(readback.is_valid()); - ASSERT_EQ(readback, kValue1); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - } -} - -TEST_F(DbusDeserialization, SerializeDeserializeArray) { - { - Array, 1, 90> ints; - ints.push_back(42); - ints.push_back(17); - dbus::MessageWriter writer(msgref); - ints.ToDbusWriter(&writer); - } - { - dbus::MessageReader reader(msgref); - Array, 1, 90> readback(&reader); - ASSERT_TRUE(readback.is_initialized()); - ASSERT_TRUE(readback.is_valid()); - ASSERT_EQ(readback[0], 42); - ASSERT_EQ(readback[1], 17); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - } -} - -TEST_F(DbusDeserialization, SerializeDeserializeMap) { - { - Map, 1, 90> ints; - ints["first"] = 42; - ints["second"] = 17; - dbus::MessageWriter writer(msgref); - ints.ToDbusWriter(&writer); - } - { - dbus::MessageReader reader(msgref); - Map, 1, 90> readback(&reader); - ASSERT_TRUE(readback.is_initialized()); - ASSERT_TRUE(readback.is_valid()); - ASSERT_EQ(readback["first"], 42); - ASSERT_EQ(readback["second"], 17); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - } -} - -TEST_F(DbusDeserialization, SerializeDeserializeMapOfArrays) { - { - Map, 1, 5>, 1, 90> ints; - ints["first"].push_back(1); - ints["first"].push_back(42); - ints["second"].push_back(17); - ints["second"].push_back(3); - dbus::MessageWriter writer(msgref); - ints.ToDbusWriter(&writer); - } - { - dbus::MessageReader reader(msgref); - Map, 1, 5>, 1, 90> readback(&reader); - ASSERT_TRUE(readback.is_initialized()); - ASSERT_TRUE(readback.is_valid()); - ASSERT_EQ(readback.size(), 2u); - ASSERT_EQ(readback["first"].size(), 2u); - ASSERT_EQ(readback["second"].size(), 2u); - ASSERT_EQ(readback["first"][0], 1); - ASSERT_EQ(readback["first"][1], 42); - ASSERT_EQ(readback["second"][0], 17); - ASSERT_EQ(readback["second"][1], 3); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - } -} - -TEST(ValidatedTypes, TestBooleanDbusSignature) { - std::string sign; - DbusSignature(&sign); - ASSERT_EQ(sign, "b"); -} - -TEST(ValidatedTypes, TestIntDbusSignature) { - std::string sign; - DbusSignature >(&sign); - ASSERT_EQ(sign, "i"); -} - -TEST(ValidatedTypes, TestFloatDbusSignature) { - std::string sign; - DbusSignature >(&sign); - ASSERT_EQ(sign, "d"); -} - -TEST(ValidatedTypes, TestStringDbusSignature) { - std::string sign; - DbusSignature >(&sign); - ASSERT_EQ(sign, "s"); -} - -TEST(ValidatedTypes, TestEnumDbusSignature) { - std::string sign; - DbusSignature >(&sign); - ASSERT_EQ(sign, "i"); -} - -TEST(ValidatedTypes, TestIntArrayDbusSignature) { - std::string sign; - DbusSignature, 1, 3> >(&sign); - ASSERT_EQ(sign, "ai"); -} - -TEST(ValidatedTypes, TestIntArrayArrayDbusSignature) { - std::string sign; - DbusSignature, 1, 3>, 4, 5> >(&sign); - ASSERT_EQ(sign, "aai"); -} - -TEST(ValidatedTypes, TestMapDbusSignature) { - std::string sign; - DbusSignature, 3, 4> >(&sign); - ASSERT_EQ(sign, "a{si}"); -} - -TEST(ValidatedTypes, TestMandatoryEnumDbusSignature) { - std::string sign; - DbusSignature >(&sign); - ASSERT_EQ(sign, "i"); -} - -TEST(ValidatedTypes, TestOptionalEnumDbusSignature) { - std::string sign; - DbusSignature > >(&sign); - ASSERT_EQ(sign, "(bi)"); -} - -TEST(ValidatedTypes, TestOptionalFloatArrayDbusSignature) { - std::string sign; - DbusSignature, 3, 4> > >(&sign); - ASSERT_EQ(sign, "(bad)"); -} - -TEST(DbusMessageConstructionTest, DbusMessageConstruction) { - DBusMessage* rawmsg = dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_CALL); - dbus::MessageRef msgref(rawmsg); -} - -class DbusTest : public testing::Test { - public: - dbus::MessageRef msgref; - DbusTest() : msgref(dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_CALL)) {} -}; - -TEST_F(DbusTest, DbusWriterConstructionTest) { - dbus::MessageWriter writer(msgref); -} - -TEST_F(DbusTest, DbusEmptyMessageReaderTest) { - dbus::MessageReader reader(msgref); - ASSERT_TRUE(reader.has_failed()); -} - -TEST_F(DbusTest, DbusMessageWriterBoolWriteRead) { - dbus::MessageWriter writer(msgref); - writer.PutBool(true); - dbus::MessageReader reader(msgref); - bool redback_value = reader.TakeBool(); - ASSERT_FALSE(reader.has_failed()); - ASSERT_TRUE(redback_value); -} - -TEST_F(DbusTest, DbusMessageWriterInt32WriteRead) { - dbus::MessageWriter writer(msgref); - writer.PutInt32(42); - dbus::MessageReader reader(msgref); - int32_t readback_value = reader.TakeInt32(); - ASSERT_FALSE(reader.has_failed()); - ASSERT_EQ(readback_value, 42); -} - -TEST_F(DbusTest, DbusMessageWriterStringWriteRead) { - dbus::MessageWriter writer(msgref); - writer.PutString("Hello DBus!"); - dbus::MessageReader reader(msgref); - std::string readback_value = reader.TakeString(); - ASSERT_FALSE(reader.has_failed()); - ASSERT_EQ(readback_value, "Hello DBus!"); -} - -TEST_F(DbusTest, DbusMultipleParamsReadWrite) { - { - dbus::MessageWriter writer(msgref); - writer.PutString("Hello DBus!"); - writer.PutInt16(42); - writer.PutDouble(3.14); - } - { - dbus::MessageReader reader(msgref); - std::string readback_string = reader.TakeString(); - ASSERT_FALSE(reader.has_failed()); - ASSERT_EQ(readback_string, "Hello DBus!"); - int16_t readback_int = reader.TakeInt16(); - ASSERT_FALSE(reader.has_failed()); - ASSERT_EQ(readback_int, 42); - double readback_double = reader.TakeDouble(); - ASSERT_FALSE(reader.has_failed()); - ASSERT_DOUBLE_EQ(readback_double, 3.14); - ASSERT_FALSE(reader.HasNext()); - } -} - -TEST_F(DbusTest, DbusArrayTest) { - { - dbus::MessageWriter writer(msgref); - dbus::MessageWriter array_writer( - &writer, dbus::kArray, DBUS_TYPE_INT16_AS_STRING); - array_writer.PutInt16(3); - array_writer.PutInt16(4); - array_writer.PutInt16(5); - } - { - dbus::MessageReader reader(msgref); - dbus::MessageReader array_reader = reader.TakeArrayReader(); - int16_t readback_val = array_reader.TakeInt16(); - ASSERT_FALSE(reader.has_failed()); - ASSERT_EQ(readback_val, 3); - readback_val = array_reader.TakeInt16(); - ASSERT_FALSE(reader.has_failed()); - ASSERT_EQ(readback_val, 4); - readback_val = array_reader.TakeInt16(); - ASSERT_FALSE(reader.has_failed()); - ASSERT_EQ(readback_val, 5); - ASSERT_FALSE(array_reader.HasNext()); - } -} - -class DbusFailuresTest : public testing::Test { - public: - dbus::MessageRef int_msg; - DbusFailuresTest() - : int_msg(dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_CALL)) { - dbus::MessageWriter writer(int_msg); - writer.PutInt64(42); - } -}; - -TEST_F(DbusFailuresTest, DbusInconsistentTypeReadFailureTest) { - dbus::MessageReader reader(int_msg); - std::string str = reader.TakeString(); - ASSERT_EQ(str, std::string("")); - ASSERT_TRUE(reader.has_failed()); -} - -TEST_F(DbusFailuresTest, DbusNonExistentArrayReadTest) { - dbus::MessageReader reader(int_msg); - ASSERT_FALSE(reader.has_failed()); - dbus::MessageReader array_reader = reader.TakeArrayReader(); - ASSERT_TRUE(array_reader.has_failed()); - ASSERT_TRUE(reader.has_failed()); - int64_t val = array_reader.TakeInt64(); - ASSERT_TRUE(array_reader.has_failed()); - ASSERT_EQ(val, 0); -} - -} // namespace rpc_base_test -} // namespace components -} // namespace test diff --git a/tools/cmake/modules/FindDBus.cmake b/tools/cmake/modules/FindDBus.cmake deleted file mode 100644 index 1d0f29dd751..00000000000 --- a/tools/cmake/modules/FindDBus.cmake +++ /dev/null @@ -1,59 +0,0 @@ -# - Try to find DBus -# Once done, this will define -# -# DBUS_FOUND - system has DBus -# DBUS_INCLUDE_DIRS - the DBus include directories -# DBUS_LIBRARIES - link these to use DBus -# -# Copyright (C) 2012 Raphael Kubo da Costa -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``AS -# IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ITS -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -FIND_PACKAGE(PkgConfig) -PKG_CHECK_MODULES(PC_DBUS QUIET dbus-1) - -FIND_LIBRARY(DBUS_LIBRARIES - NAMES dbus-1 - HINTS ${PC_DBUS_LIBDIR} - ${PC_DBUS_LIBRARY_DIRS} -) - -FIND_PATH(DBUS_INCLUDE_DIR - NAMES dbus/dbus.h - HINTS ${PC_DBUS_INCLUDEDIR} - ${PC_DBUS_INCLUDE_DIRS} -) - -GET_FILENAME_COMPONENT(_DBUS_LIBRARY_DIR ${DBUS_LIBRARIES} PATH) -FIND_PATH(DBUS_ARCH_INCLUDE_DIR - NAMES dbus/dbus-arch-deps.h - HINTS ${PC_DBUS_INCLUDEDIR} - ${PC_DBUS_INCLUDE_DIRS} - ${_DBUS_LIBRARY_DIR} - ${DBUS_INCLUDE_DIR} - PATH_SUFFIXES include -) - -SET(DBUS_INCLUDE_DIRS ${DBUS_INCLUDE_DIR} ${DBUS_ARCH_INCLUDE_DIR}) - -INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(DBUS REQUIRED_VARS DBUS_INCLUDE_DIRS DBUS_LIBRARIES) \ No newline at end of file diff --git a/tools/cmake/modules/FindQt5DBus.cmake b/tools/cmake/modules/FindQt5DBus.cmake deleted file mode 100644 index d850010e974..00000000000 --- a/tools/cmake/modules/FindQt5DBus.cmake +++ /dev/null @@ -1,10 +0,0 @@ -execute_process( - COMMAND ${CMAKE_SOURCE_DIR}/FindQt.sh -v ${qt_version} Qt5DBusConfig.cmake - OUTPUT_VARIABLE config_file -) - -if(config_file STREQUAL "") - message(FATAL_ERROR "Qt5 DBus module not found") -endif(config_file STREQUAL "") - -include(${config_file}) diff --git a/tools/intergen/GenerateInterfaceLibrary.cmake b/tools/intergen/GenerateInterfaceLibrary.cmake index bec35e1e3a5..31b06880c62 100644 --- a/tools/intergen/GenerateInterfaceLibrary.cmake +++ b/tools/intergen/GenerateInterfaceLibrary.cmake @@ -11,20 +11,14 @@ set(GENERATED_LIB_HEADER_DEPENDENCIES # |generated_interface_names| should contain list of generated interfaces # if |AUTO_FUNC_IDS| is added to argument list, intergen is called with "-a" # flag telling intergen to generate function ids automatically -# if |DBUS_SUPPORT| is added to argument list, intergen is called with "-d" -# flag that enables DBus serialization code generation # from xml_file (intergen creates separate directory for every interface). # Their names are written lowercase_underscored_style. function (GenerateInterfaceLibrary xml_file_name generated_interface_names) - set(options AUTO_FUNC_IDS DBUS_SUPPORT) + set(options AUTO_FUNC_IDS) cmake_parse_arguments(GenerateInterfaceLibrary "${options}" "" "" ${ARGN}) if (GenerateInterfaceLibrary_AUTO_FUNC_IDS) set(AUTOID "-a") endif() - if (GenerateInterfaceLibrary_DBUS_SUPPORT) - set(NEED_DBUS "-d") - list(APPEND GENERATED_LIB_HEADER_DEPENDENCIES ${DBUS_INCLUDE_DIRS}) - endif() foreach(interface_name ${generated_interface_names}) set(HEADERS @@ -41,7 +35,7 @@ function (GenerateInterfaceLibrary xml_file_name generated_interface_names) ${interface_name}/interface.cc ) add_custom_command( OUTPUT ${HEADERS} ${SOURCES} - COMMAND ${INTERGEN_CMD} -f ${CMAKE_CURRENT_SOURCE_DIR}/${xml_file_name} -j ${AUTOID} ${NEED_DBUS} -i ${interface_name} + COMMAND ${INTERGEN_CMD} -f ${CMAKE_CURRENT_SOURCE_DIR}/${xml_file_name} -j ${AUTOID} -i ${interface_name} DEPENDS ${INTERGEN_CMD} ${xml_file_name} COMMENT "Generating interface ${interface_name} from ${xml_file_name}" VERBATIM diff --git a/tools/intergen/cppgen/CMakeLists.txt b/tools/intergen/cppgen/CMakeLists.txt index c6e052a2aec..d20f3d9ab3c 100644 --- a/tools/intergen/cppgen/CMakeLists.txt +++ b/tools/intergen/cppgen/CMakeLists.txt @@ -27,7 +27,6 @@ set (SOURCES src/cppgen/namespace.cc src/cppgen/naming_convention.cc src/cppgen/struct_type_constructor.cc - src/cppgen/struct_type_dbus_serializer.cc src/cppgen/struct_type_from_json_method.cc src/cppgen/struct_type_is_initialized_method.cc src/cppgen/struct_type_is_valid_method.cc @@ -58,7 +57,6 @@ set (HEADERS include/cppgen/namespace.h include/cppgen/naming_convention.h include/cppgen/struct_type_constructor.h - include/cppgen/struct_type_dbus_serializer.h include/cppgen/struct_type_from_json_method.h include/cppgen/struct_type_is_initialized_method.h include/cppgen/struct_type_is_valid_method.h diff --git a/tools/intergen/cppgen/include/cppgen/generator_preferences.h b/tools/intergen/cppgen/include/cppgen/generator_preferences.h index 5278a24417b..d0a58950e22 100644 --- a/tools/intergen/cppgen/include/cppgen/generator_preferences.h +++ b/tools/intergen/cppgen/include/cppgen/generator_preferences.h @@ -43,18 +43,15 @@ struct TypePreferences { int minimum_interger_size; bool avoid_unsigned; bool generate_json; - bool generate_dbus; TypePreferences(int minimum_interger_size, bool avoid_unsigned, - bool generate_json, - bool generate_dbus); + bool generate_json); }; struct Preferences { Preferences(int minimum_interger_size, bool avoid_unsigned, bool generate_json, - bool generate_dbus, const std::set& requested_interfaces); TypePreferences type_preferences; std::set requested_interfaces; diff --git a/tools/intergen/cppgen/include/cppgen/message_factory_function.h b/tools/intergen/cppgen/include/cppgen/message_factory_function.h index da63b4453a3..aa8a0ab6c45 100644 --- a/tools/intergen/cppgen/include/cppgen/message_factory_function.h +++ b/tools/intergen/cppgen/include/cppgen/message_factory_function.h @@ -46,8 +46,7 @@ class Interface; class MessageFactoryFunction: public CppFunction { public: enum SerializationType { - kJson, - kDbus + kJson }; // Methods diff --git a/tools/intergen/cppgen/include/cppgen/struct_type_dbus_serializer.h b/tools/intergen/cppgen/include/cppgen/struct_type_dbus_serializer.h deleted file mode 100644 index 64872f32654..00000000000 --- a/tools/intergen/cppgen/include/cppgen/struct_type_dbus_serializer.h +++ /dev/null @@ -1,88 +0,0 @@ -/* Copyright (c) 2014, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef CPPGEN_STRUCT_TYPE_DBUS_SERIALIZER_H -#define CPPGEN_STRUCT_TYPE_DBUS_SERIALIZER_H - -#include "cppgen/cpp_function.h" - -namespace codegen { -class Interface; -class Struct; -class TypePreferences; - -class StructTypeDbusMessageSignatureMethod: public CppFunction { - public: - StructTypeDbusMessageSignatureMethod(const TypePreferences* preferences, - const Struct* strct, - bool substructure); - ~StructTypeDbusMessageSignatureMethod(); - private: - // CppFunction interface - void DefineBody(std::ostream* os) const; - private: - const TypePreferences* preferences_; - bool substructure_; - const Struct* strct_; -}; - -class StructTypeFromDbusReaderConstructor : public CppStructConstructor { - public: - StructTypeFromDbusReaderConstructor(const TypePreferences* preferences, - const Struct* strct, - bool substructure, - const std::string& base_class_name); - ~StructTypeFromDbusReaderConstructor(); - private: - // CppFunction interface - void DefineBody(std::ostream* os) const; - private: - const TypePreferences* preferences_; - bool substructure_; - const Struct* strct_; -}; - -class StructTypeToDbusWriterMethod : public CppFunction { - public: - StructTypeToDbusWriterMethod(const Struct* strct, - bool substructure); - ~StructTypeToDbusWriterMethod(); - private: - // CppFunction interface - void DefineBody(std::ostream* os) const; - private: - bool substructure_; - const Struct* strct_; -}; - -} // namespace codegen - -#endif // CPPGEN_STRUCT_TYPE_DBUS_SERIALIZER_H diff --git a/tools/intergen/cppgen/src/cppgen/cpp_interface_code_generator.cc b/tools/intergen/cppgen/src/cppgen/cpp_interface_code_generator.cc index 49bd758b6e2..519e6a06e25 100644 --- a/tools/intergen/cppgen/src/cppgen/cpp_interface_code_generator.cc +++ b/tools/intergen/cppgen/src/cppgen/cpp_interface_code_generator.cc @@ -183,9 +183,6 @@ void CppInterfaceCodeGenerator::GenerateMessageFactories() { if (preferences_->generate_json) { ser_types[ser_types_count++] = MessageFactoryFunction::kJson; } - if (preferences_->generate_dbus) { - ser_types[ser_types_count++] = MessageFactoryFunction::kDbus; - } for (size_t i = 0; i < ser_types_count; ++i) { MessageFactoryFunction request_factory(interface_, diff --git a/tools/intergen/cppgen/src/cppgen/declaration_generator.cc b/tools/intergen/cppgen/src/cppgen/declaration_generator.cc index 46e459198e8..649ffd8c685 100644 --- a/tools/intergen/cppgen/src/cppgen/declaration_generator.cc +++ b/tools/intergen/cppgen/src/cppgen/declaration_generator.cc @@ -47,7 +47,6 @@ #include "cppgen/module_manager.h" #include "cppgen/naming_convention.h" #include "cppgen/struct_type_constructor.h" -#include "cppgen/struct_type_dbus_serializer.h" #include "cppgen/struct_type_from_json_method.h" #include "cppgen/struct_type_is_initialized_method.h" #include "cppgen/struct_type_is_valid_method.h" @@ -98,14 +97,6 @@ void DeclareExternalTypes(const TypePreferences& prefs, Namespace* ns) { Namespace::ForwardDeclaration( Namespace::ForwardDeclaration::kClass, "Value")); } - if (prefs.generate_dbus) { - ns->nested("dbus").ForwardDeclare( - Namespace::ForwardDeclaration( - Namespace::ForwardDeclaration::kClass, "MessageReader")); - ns->nested("dbus").ForwardDeclare( - Namespace::ForwardDeclaration( - Namespace::ForwardDeclaration::kClass, "MessageWriter")); - } } } @@ -172,13 +163,6 @@ void DeclarationGenerator::GenerateCodeForStruct(const Struct* strct) { StructTypeFromJsonConstructor(strct, base_class_name).Declare(&o , true); StructTypeToJsonMethod(strct).Declare(&o , true); } - if (preferences_->generate_dbus) { - StructTypeFromDbusReaderConstructor( - preferences_, strct, true, base_class_name).Declare(&o, true); - StructTypeToDbusWriterMethod(strct, true).Declare(&o , true); - StructTypeDbusMessageSignatureMethod(preferences_, - strct, true).Declare(&o, true); - } StructTypeIsValidMethod(strct).Declare(&o, true); StructTypeIsInitializedMethod(strct).Declare(&o, true); StructTypeStructEmptyMethod(strct).Declare(&o, true); @@ -284,13 +268,6 @@ void DeclarationGenerator::GenerateCodeForRequest(const Request& request, StructTypeFromJsonConstructor(&request, base_class_name).Declare(&o , true); StructTypeToJsonMethod(&request).Declare(&o , true); } - if (preferences_->generate_dbus) { - StructTypeFromDbusReaderConstructor(preferences_, &request, false, - base_class_name).Declare(&o, true); - StructTypeToDbusWriterMethod(&request, false).Declare(&o , true); - StructTypeDbusMessageSignatureMethod(preferences_, - &request, false).Declare(&o, true); - } StructTypeIsValidMethod(&request).Declare(&o, true); StructTypeIsInitializedMethod(&request).Declare(&o, true); StructTypeStructEmptyMethod(&request).Declare(&o, true); @@ -336,14 +313,6 @@ void DeclarationGenerator::GenerateCodeForResponse(const Response& response) { StructTypeToJsonMethod(&response).Declare(&o , true); } - if (preferences_->generate_dbus) { - StructTypeFromDbusReaderConstructor(preferences_, &response, false, - base_class_name).Declare(&o, true); - StructTypeToDbusWriterMethod(&response, false).Declare(&o , true); - - StructTypeDbusMessageSignatureMethod(preferences_, - &response, false).Declare(&o, true); - } StructTypeIsValidMethod(&response).Declare(&o, true); StructTypeIsInitializedMethod(&response).Declare(&o, true); StructTypeStructEmptyMethod(&response).Declare(&o, true); @@ -389,13 +358,6 @@ void DeclarationGenerator::GenerateCodeForNotification( StructTypeFromJsonConstructor(¬ification, base_class_name).Declare(&o , true); StructTypeToJsonMethod(¬ification).Declare(&o , true); } - if (preferences_->generate_dbus) { - StructTypeFromDbusReaderConstructor(preferences_, ¬ification, false, - base_class_name).Declare(&o , true); - StructTypeToDbusWriterMethod(¬ification, false).Declare(&o , true); - StructTypeDbusMessageSignatureMethod(preferences_, - ¬ification, false).Declare(&o, true); - } StructTypeIsValidMethod(¬ification).Declare(&o, true); StructTypeIsInitializedMethod(¬ification).Declare(&o, true); StructTypeStructEmptyMethod(¬ification).Declare(&o, true); diff --git a/tools/intergen/cppgen/src/cppgen/definition_generator.cc b/tools/intergen/cppgen/src/cppgen/definition_generator.cc index e2ad0ded04a..b5e404fa71a 100644 --- a/tools/intergen/cppgen/src/cppgen/definition_generator.cc +++ b/tools/intergen/cppgen/src/cppgen/definition_generator.cc @@ -40,7 +40,6 @@ #include "cppgen/message_handle_with_method.h" #include "cppgen/module_manager.h" #include "cppgen/struct_type_constructor.h" -#include "cppgen/struct_type_dbus_serializer.h" #include "cppgen/struct_type_from_json_method.h" #include "cppgen/struct_type_is_initialized_method.h" #include "cppgen/struct_type_is_valid_method.h" @@ -97,13 +96,6 @@ void DefinitionGenerator::GenerateCodeForStruct(const Struct* strct) { StructTypeFromJsonConstructor(strct, base_class_name).Define(&o , false); StructTypeToJsonMethod(strct).Define(&o , false); } - if (preferences_->generate_dbus) { - StructTypeFromDbusReaderConstructor(preferences_, strct, true, - base_class_name).Define(&o , false); - StructTypeToDbusWriterMethod(strct, true).Define(&o , false); - StructTypeDbusMessageSignatureMethod(preferences_, - strct, true).Define(&o, false); - } StructTypeIsValidMethod(strct).Define(&o, false); StructTypeIsInitializedMethod(strct).Define(&o, false); StructTypeStructEmptyMethod(strct).Define(&o, false); @@ -137,13 +129,6 @@ void DefinitionGenerator::GenerateCodeForResponse(const Response& response) { StructTypeFromJsonConstructor(&response, base_class_name).Define(&o , false); StructTypeToJsonMethod(&response).Define(&o , false); } - if (preferences_->generate_dbus) { - StructTypeFromDbusReaderConstructor(preferences_, &response, false, - base_class_name).Define(&o , false); - StructTypeToDbusWriterMethod(&response, false).Define(&o , false); - StructTypeDbusMessageSignatureMethod(preferences_, - &response, false).Define(&o, false); - } MessageHandleWithMethod(response.name()).Define(&o, false); StructTypeIsValidMethod(&response).Define(&o, false); StructTypeIsInitializedMethod(&response).Define(&o, false); @@ -173,13 +158,6 @@ void DefinitionGenerator::GenerateCodeForNotification( StructTypeFromJsonConstructor(¬ification, base_class_name).Define(&o , false); StructTypeToJsonMethod(¬ification).Define(&o , false); } - if (preferences_->generate_dbus) { - StructTypeFromDbusReaderConstructor(preferences_, ¬ification, false, - base_class_name).Define(&o, false); - StructTypeToDbusWriterMethod(¬ification, false).Define(&o , false); - StructTypeDbusMessageSignatureMethod(preferences_, - ¬ification, false).Define(&o, false); - } MessageHandleWithMethod(notification.name()).Define(&o, false); StructTypeIsValidMethod(¬ification).Define(&o, false); StructTypeIsInitializedMethod(¬ification).Define(&o, false); @@ -209,13 +187,6 @@ void DefinitionGenerator::GenerateCodeForRequest(const Request& request, StructTypeFromJsonConstructor(&request, base_class_name).Define(&o , false); StructTypeToJsonMethod(&request).Define(&o , false); } - if (preferences_->generate_dbus) { - StructTypeFromDbusReaderConstructor(preferences_, &request, false, - base_class_name).Define(&o , false); - StructTypeToDbusWriterMethod(&request, false).Define(&o , false); - StructTypeDbusMessageSignatureMethod(preferences_, - &request, false).Define(&o, false); - } StructTypeIsValidMethod(&request).Define(&o, false); StructTypeIsInitializedMethod(&request).Define(&o, false); StructTypeStructEmptyMethod(&request).Define(&o, false); diff --git a/tools/intergen/cppgen/src/cppgen/generator_preferences.cc b/tools/intergen/cppgen/src/cppgen/generator_preferences.cc index ca5b12e2d9d..cc3bbe08194 100644 --- a/tools/intergen/cppgen/src/cppgen/generator_preferences.cc +++ b/tools/intergen/cppgen/src/cppgen/generator_preferences.cc @@ -44,21 +44,18 @@ namespace codegen { TypePreferences::TypePreferences(int minimum_interger_size, bool avoid_unsigned, - bool generate_json, - bool generate_dbus) + bool generate_json) : minimum_interger_size(minimum_interger_size), avoid_unsigned(avoid_unsigned), - generate_json(generate_json), - generate_dbus(generate_dbus) { + generate_json(generate_json) { } Preferences::Preferences(int minimum_interger_size, bool avoid_unsigned, bool generate_json, - bool generate_dbus, const std::set& requested_interfaces) : type_preferences(minimum_interger_size, avoid_unsigned, - generate_json, generate_dbus), + generate_json), requested_interfaces(requested_interfaces) { } diff --git a/tools/intergen/cppgen/src/cppgen/message_factory_function.cc b/tools/intergen/cppgen/src/cppgen/message_factory_function.cc index 2cfc3ea0cde..bce7ef50b22 100644 --- a/tools/intergen/cppgen/src/cppgen/message_factory_function.cc +++ b/tools/intergen/cppgen/src/cppgen/message_factory_function.cc @@ -47,15 +47,15 @@ MessageFactoryFunction::MessageFactoryFunction( SerializationType serialization_type, FunctionMessage::MessageType factory_type) : CppFunction("", - serialization_type == kJson ? "NewFromJson" : "NewFromDbus", + "NewFromJson", Capitalize( FunctionMessage::MessageTypeToString( factory_type)) + "*"), interface_(interface), factory_type_(factory_type) { Add(MessageFactoryFunction::Parameter( - serialization_type == kJson ? "json" : "reader", - serialization_type == kJson ? "const Json::Value*": "dbus::MessageReader*")); + "json", + "const Json::Value*")); Add(MessageFactoryFunction::Parameter("function_id", "FunctionID")); } diff --git a/tools/intergen/cppgen/src/cppgen/module_manager.cc b/tools/intergen/cppgen/src/cppgen/module_manager.cc index 494e279e5cd..104e3fa8568 100644 --- a/tools/intergen/cppgen/src/cppgen/module_manager.cc +++ b/tools/intergen/cppgen/src/cppgen/module_manager.cc @@ -105,12 +105,6 @@ ModuleManager::ModuleManager(const std::string& name, functions_source_.Include( CppFile::Header("rpc_base/rpc_base_json_inl.h", true)); } - if (prefs.generate_dbus) { - structs_source_.Include( - CppFile::Header("rpc_base/rpc_base_dbus_inl.h", true)); - functions_source_.Include( - CppFile::Header("rpc_base/rpc_base_dbus_inl.h", true)); - } } ModuleManager::~ModuleManager() { diff --git a/tools/intergen/cppgen/src/cppgen/struct_type_dbus_serializer.cc b/tools/intergen/cppgen/src/cppgen/struct_type_dbus_serializer.cc deleted file mode 100644 index 5040652e43b..00000000000 --- a/tools/intergen/cppgen/src/cppgen/struct_type_dbus_serializer.cc +++ /dev/null @@ -1,177 +0,0 @@ -/* Copyright (c) 2014, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include "cppgen/struct_type_dbus_serializer.h" - -#include "cppgen/naming_convention.h" -#include "cppgen/type_name_code_generator.h" -#include "model/composite_type.h" -#include "utils/safeformat.h" - -using typesafe_format::strmfmt; - -namespace codegen { - -StructTypeDbusMessageSignatureMethod::StructTypeDbusMessageSignatureMethod( - const TypePreferences* preferences, - const Struct* strct, - bool substructure) - : CppFunction(strct->name(), "GetDbusSignature", "void", kStatic), - preferences_(preferences), - substructure_(substructure), - strct_(strct) { - Add(Parameter("signature", "std::string*")); -} - -StructTypeDbusMessageSignatureMethod::~StructTypeDbusMessageSignatureMethod() { -} - -void StructTypeDbusMessageSignatureMethod::DefineBody(std::ostream* os) const { - const Struct::FieldsList& fields = strct_->fields(); - if (!fields.empty()) { - if (substructure_) { - *os << "(*signature) += DBUS_STRUCT_BEGIN_CHAR;\n"; - } - for (Struct::FieldsList::const_iterator i = fields.begin(), - end = fields.end(); i != end; ++i) { - // Field is considered optional if it has mandatory=false attribute and - // if it does NOT have default values. Fields that have default values are - // always available no mater if they present in input or not - bool field_is_optional = false; - if (!i->is_mandatory()) { - if (i->default_value() == NULL) { - field_is_optional = true; - } - } - std::string field_type = RpcTypeNameGenerator(&strct_->interface(), - preferences_, - i->type(), - field_is_optional).result(); - strmfmt(*os, "rpc::DbusSignature< {0} >({1});\n", - field_type, parameters_[0].name); - - } - if (substructure_) { - *os << "(*signature) += DBUS_STRUCT_END_CHAR;\n"; - } - } -} - -StructTypeFromDbusReaderConstructor::StructTypeFromDbusReaderConstructor( - const TypePreferences* preferences, - const Struct* strct, - bool substructure, - const std::string& base_class_name) - : CppStructConstructor(strct->name()), - preferences_(preferences), - strct_(strct), - substructure_(substructure) { - Add(Parameter("reader__", "dbus::MessageReader*")); - std::string base_initializer = "reader__"; - if (!strct->frankenstruct()) { - base_initializer = "InitHelper(true)"; - } - Add(Initializer(base_class_name, base_initializer)); - // In case of non-substructure use initializer list to initialize fields - // From MessageReader passed in - if (!substructure_) { - const Struct::FieldsList& fields = strct->fields(); - for (Struct::FieldsList::const_iterator i = fields.begin(), end = fields.end(); - i != end; ++i) { - Add(Initializer(AvoidKeywords(i->name()), - "reader__")); - } - } -} - -StructTypeFromDbusReaderConstructor::~StructTypeFromDbusReaderConstructor() { -} - -void StructTypeFromDbusReaderConstructor::DefineBody(std::ostream* os) const { - const Struct::FieldsList& fields = strct_->fields(); - // If initializing substructure (a structure that is used as - // a field of other structure) additional structure reading iterator - // should be created - if (substructure_ && !fields.empty()) { - *os << "dbus::MessageReader subreader__ = reader__->TakeStructReader();\n"; - for (Struct::FieldsList::const_iterator i = fields.begin(), end = fields.end(); - i != end; ++i) { - // Field is considered optional if it has mandatory=false attribute and - // if it does NOT have default values. Fields that have default values are - // always available no mater if they present in input or not - bool field_is_optional = false; - if (!i->is_mandatory()) { - if (i->default_value() == NULL) { - field_is_optional = true; - } - } - std::string field_type = RpcTypeNameGenerator(&strct_->interface(), - preferences_, - i->type(), - field_is_optional).result(); - strmfmt(*os, "{0} = {1}(&subreader__);\n", i->name(), field_type); - } - } -} - -StructTypeToDbusWriterMethod::StructTypeToDbusWriterMethod( - const Struct* strct, - bool substructure) - : CppFunction(strct->name(), "ToDbusWriter", "void", kConst), - substructure_(substructure), - strct_(strct) { - Add(Parameter("writer__", "dbus::MessageWriter*")); -} - -StructTypeToDbusWriterMethod::~StructTypeToDbusWriterMethod() { - -} - -void StructTypeToDbusWriterMethod::DefineBody(std::ostream* os) const { - const Struct::FieldsList& fields = strct_->fields(); - if (!fields.empty()) { - std::string writer_ptr_name = parameters_[0].name; - if (substructure_) { - strmfmt(*os, "dbus::MessageWriter subwriter__({0}, dbus::kStruct, NULL);\n", - writer_ptr_name); - writer_ptr_name = "&subwriter__"; - } - for (Struct::FieldsList::const_iterator i = fields.begin(), end = fields.end(); - i != end; ++i) { - strmfmt(*os, "{0}.ToDbusWriter({1});\n", - i->name(), - writer_ptr_name); - } - } -} - - -} // namespace codegen diff --git a/tools/intergen/test/CMakeLists.txt b/tools/intergen/test/CMakeLists.txt index f2973dd71c5..7695ec419c1 100644 --- a/tools/intergen/test/CMakeLists.txt +++ b/tools/intergen/test/CMakeLists.txt @@ -30,11 +30,7 @@ if(BUILD_TESTS) include(${CMAKE_SOURCE_DIR}/tools/intergen/GenerateInterfaceLibrary.cmake) -if (${HMI_DBUS_API}) - GenerateInterfaceLibrary("test_interface.xml" test_rpc_interface DBUS_SUPPORT) -else() - GenerateInterfaceLibrary("test_interface.xml" test_rpc_interface) -endif() +GenerateInterfaceLibrary("test_interface.xml" test_rpc_interface) set (TEST_HMI_INTERFACES common @@ -45,11 +41,7 @@ set (TEST_HMI_INTERFACES ui ) -if (${HMI_DBUS_API}) - GenerateInterfaceLibrary("test_hmi_interface.xml" "${TEST_HMI_INTERFACES}" AUTO_FUNC_IDS DBUS_SUPPORT) -else() - GenerateInterfaceLibrary("test_hmi_interface.xml" "${TEST_HMI_INTERFACES}" AUTO_FUNC_IDS) -endif() +GenerateInterfaceLibrary("test_hmi_interface.xml" "${TEST_HMI_INTERFACES}" AUTO_FUNC_IDS) include_directories ( ${CMAKE_SOURCE_DIR}/src/components/rpc_base/include @@ -70,16 +62,5 @@ set (SOURCES generated_interface_json_tests.cc ) -if (${HMI_DBUS_API}) - # Build dbus tests - include_directories( - ${CMAKE_SOURCE_DIR}/src/components/dbus/include - ${DBUS_INCLUDE_DIRS} - ) - set (LIBRARIES ${LIBRARIES} DBus) - set (SOURCES ${SOURCES} generated_interface_dbus_tests.cc) -endif () - - create_test(test_generated_interface "${SOURCES}" "${LIBRARIES}") endif() diff --git a/tools/intergen/test/generated_interface_dbus_tests.cc b/tools/intergen/test/generated_interface_dbus_tests.cc deleted file mode 100644 index a510ccd77a8..00000000000 --- a/tools/intergen/test/generated_interface_dbus_tests.cc +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (c) 2015, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include "gmock/gmock.h" - -#include -#include - -#include "dbus/dbus_message.h" - -namespace test { -using namespace rpc::test_rpc_interface; - -TEST(GeneratedInterfaceDbusTests, TestFailedDbusDeserialization) { - dbus::MessageRef msg(dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_CALL)); - { - dbus::MessageWriter writer(msg); - } - { - dbus::MessageReader reader(msg); - request::DiagnosticMessage dm(&reader); - ASSERT_TRUE(reader.has_failed()); - ASSERT_TRUE(dm.is_initialized()); - ASSERT_FALSE(dm.is_valid()); - } -} - -TEST(GeneratedInterfaceDbusTests, TestDbusDeserialization) { - dbus::MessageRef msg(dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_CALL)); - { - dbus::MessageWriter writer(msg); - writer.PutUint16(22); - writer.PutUint16(42); - dbus::MessageWriter array_writer(&writer, dbus::kArray, DBUS_TYPE_BYTE_AS_STRING); - array_writer.PutByte(11); - } - { - dbus::MessageReader reader(msg); - request::DiagnosticMessage dm(&reader); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - ASSERT_TRUE(dm.is_initialized()); - ASSERT_TRUE(dm.is_valid()); - ASSERT_EQ(dm.targetID, 22); - ASSERT_EQ(dm.messageLength, 42); - ASSERT_EQ(dm.messageData.size(), 1u); - } -} - -TEST(GeneratedInterfaceDbusTests, TestDbusSerializationDeserialization) { - dbus::MessageRef msg(dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_CALL)); - { - dbus::MessageWriter writer(msg); - request::DiagnosticMessage dm; - dm.targetID = 70; - dm.messageLength = 1; - dm.messageData.push_back(42); - dm.ToDbusWriter(&writer); - } - { - dbus::MessageReader reader(msg); - request::DiagnosticMessage dm(&reader); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - ASSERT_TRUE(dm.is_initialized()); - ASSERT_TRUE(dm.is_valid()); - ASSERT_EQ(dm.targetID, 70); - ASSERT_EQ(dm.messageLength, 1); - ASSERT_EQ(dm.messageData.size(), 1u); - ASSERT_EQ(dm.messageData[0], 42u); - } -} - -TEST(GeneratedInterfaceDbusTests, TestDbusAddSubMenuSerializatioDeserialization) { - dbus::MessageRef msg(dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_CALL)); - { - dbus::MessageWriter writer(msg); - notification::DummyNotification dn; - TdStruct tds; - tds.resArrMap["Hello"].push_back(R_SUCCESS); - (*tds.optionalResArrMap)["World"].push_back(R_INVALID_DATA); - dn.tds.push_back(tds); - ASSERT_TRUE(dn.is_valid()); - dn.ToDbusWriter(&writer); - } - { - dbus::MessageReader reader(msg); - notification::DummyNotification dn(&reader); - ASSERT_TRUE(dn.is_initialized()); - ASSERT_TRUE(dn.is_valid()); - ASSERT_FALSE(reader.has_failed()); - ASSERT_FALSE(reader.HasNext()); - ASSERT_EQ(dn.tds[0].resArrMap["Hello"][0], R_SUCCESS); - ASSERT_EQ((*dn.tds[0].optionalResArrMap)["World"][0], R_INVALID_DATA); - } -} - -} // namespace test diff --git a/tools/intergen/test/test_hmi_interface.xml b/tools/intergen/test/test_hmi_interface.xml index 16f28923270..c8d0a789e01 100644 --- a/tools/intergen/test/test_hmi_interface.xml +++ b/tools/intergen/test/test_hmi_interface.xml @@ -2777,938 +2777,573 @@ - - - - - ID of application requested this RPC. - - - - + + + Subscribes for specific published data items. + The data will be only sent if it has changed. + The application will be notified by the onVehicleData notification whenever new data is available. + To unsubscribe the notifications, use unsubscribe with the same subscriptionType. + + See GPSData - - - - - ID of application requested this RPC. - - - - + The vehicle speed in kilometers per hour - - - - - ID of application requested this RPC. - - - - + The number of revolutions per minute of the engine - - - - - ID of application requested this RPC. - - - - + The fuel level in the tank (percentage) - - - - - ID of application requested this RPC. - - - - + The fuel level state - - - - - ID of application requested this RPC. - - - - + The instantaneous fuel consumption in microlitres - - - - - ID of application requested this RPC. - - - - + The external temperature in degrees celsius - - - - - ID of application requested this RPC. - - - - - Vehicle identification number - - - - - - ID of application requested this RPC. - - - - + See PRNDL - - - - - ID of application requested this RPC. - - - - + See TireStatus - - - - - ID of application requested this RPC. - - - - + Odometer in km - - - - - ID of application requested this RPC. - - - - + The status of the seat belts - - - - - ID of application requested this RPC. - - - - + The body information including power modes - - - - - ID of application requested this RPC. - - - - + The device status including signal and battery strength - - - - - ID of application requested this RPC. - - - - + The status of the brake pedal - - - - - ID of application requested this RPC. - - - - + The status of the wipers - - - - - ID of application requested this RPC. - - - - + Status of the head lamps - - - - - ID of application requested this RPC. - - - - + Torque value for engine (in Nm) on non-diesel variants - - - - - ID of application requested this RPC. - - - - + Accelerator pedal position (percentage depressed) - - - - - ID of application requested this RPC. - - - - + Current angle of the steering wheel (in deg) - - - - - ID of application requested this RPC. + + The estimated percentage of remaining oil life of the engine. - - - + + Emergency Call notification and confirmation data - - - - - ID of application requested this RPC. - - - - + The status of the air bags - - - - - ID of application requested this RPC. - - - - + Information related to an emergency event (and if it occurred) - - - - - ID of application requested this RPC. - - - - + The status modes of the cluster - - - - - ID of application requested this RPC. - - - - + Information related to the MyKey feature + - - - - - + + See GPSData - - - - + The vehicle speed in kilometers per hour - - - - + The number of revolutions per minute of the engine - - - - + The fuel level in the tank (percentage) - - - - + The fuel level state - - - - + The instantaneous fuel consumption in microlitres - - - - - The external temperature in degrees celsius - - - - - - Vehicle identification number. + + The external temperature in degrees celsius. - - - - + See PRNDL - - - - + See TireStatus - - - - + Odometer in km - - - - + The status of the seat belts - - - - + The body information including power modes - - - - + The device status including signal and battery strength - - - - + The status of the brake pedal - - - - + The status of the wipers - - - - + Status of the head lamps - - - - + Torque value for engine (in Nm) on non-diesel variants - - - - + Accelerator pedal position (percentage depressed) - - - - + Current angle of the steering wheel (in deg) - - - - - Information related to the MyKey feature - - - - - - - - ID of application requested this RPC. + + The estimated percentage of remaining oil life of the engine. - - - - See GPSData + + + Emergency Call notification and confirmation data - - - - ID of application requested this RPC. + + The status of the air bags - - - - See GPSData + + Information related to an emergency event (and if it occurred) - - - - - ID of application requested this RPC. + + The status modes of the cluster - - - - The vehicle speed in kilometers per hour + + Information related to the MyKey feature + - + + + This function is used to unsubscribe the notifications from the subscribeVehicleData function. + - ID of application requested this RPC. + ID of application that requested this RPC. - - - - The vehicle speed in kilometers per hour + + See GPSData - - - - - ID of application requested this RPC. + + The vehicle speed in kilometers per hour - - - + The number of revolutions per minute of the engine - - - - ID of application requested this RPC. + + The fuel level in the tank (percentage) - - - - The number of revolutions per minute of the engine + + The fuel level state - - - - - ID of application requested this RPC. + + The instantaneous fuel consumption in microlitres - - - - The fuel level in the tank (percentage) + + The external temperature in degrees celsius. - - - - ID of application requested this RPC. + + See PRNDL - - - - The fuel level in the tank (percentage) + + See TireStatus - - - - - ID of application requested this RPC. + + Odometer in km - - - - The fuel level state + + The status of the seat belts - - - - ID of application requested this RPC. + + The body information including power modes - - - - The fuel level state + + The device status including signal and battery strength - - - - - ID of application requested this RPC. + + The status of the brake pedal - - - - The instantaneous fuel consumption in microlitres + + The status of the wipers - - - - ID of application requested this RPC. + + Status of the head lamps - - - - The instantaneous fuel consumption in microlitres + + Torque value for engine (in Nm) on non-diesel variants - - - - - ID of application requested this RPC. + + Accelerator pedal position (percentage depressed) - - - - The external temperature in degrees celsius + + Current angle of the steering wheel (in deg) - - - - ID of application requested this RPC. + + The estimated percentage of remaining oil life of the engine. - - - - The external temperature in degrees celsius + + + Emergency Call notification and confirmation data - - - - - ID of application requested this RPC. + + The status of the air bags - - - - See PRNDL + + Information related to an emergency event (and if it occurred) - - - - ID of application requested this RPC. + + The status modes of the cluster - - - - See PRNDL + + Information related to the MyKey feature + - - - - ID of application requested this RPC. + + + See GPSData - - - - Vehicle identification number + + The vehicle speed in kilometers per hour - - - - ID of application requested this RPC. + + The number of revolutions per minute of the engine - - - - Vehicle identification number + + The fuel level in the tank (percentage) - - - - - ID of application requested this RPC. + + The fuel level state - - - - See TireStatus + + The instantaneous fuel consumption in microlitres - - - - ID of application requested this RPC. + + The external temperature in degrees celsius - - - - See TireStatus + + See PRNDL - - - - - ID of application requested this RPC. + + See TireStatus - - - + Odometer in km - - - - ID of application requested this RPC. + + The status of the seat belts - - - - Odometer in km + + The body information including power modes - - - - - ID of application requested this RPC. + + The device status including signal and battery strength - - - - The status of the seat belts + + The status of the brake pedal - - - - ID of application requested this RPC. + + The status of the wipers - - - - The status of the seat belts + + Status of the head lamps - - - - - ID of application requested this RPC. + + Torque value for engine (in Nm) on non-diesel variants - - - - The body information including power modes + + Accelerator pedal position (percentage depressed) - - - - ID of application requested this RPC. + + Current angle of the steering wheel (in deg) - - - - The body information including power modes + + The estimated percentage of remaining oil life of the engine. - - - - - ID of application requested this RPC. + + + Emergency Call notification and confirmation data - - - - The device status including signal and battery strength + + The status of the air bags - - - - ID of application requested this RPC. + + Information related to an emergency event (and if it occurred) - - - - The device status including signal and battery strength + + The status modes of the cluster - - - - - ID of application requested this RPC. + + Information related to the MyKey feature + - - - The status of the brake pedal + + Non periodic vehicle data read request. + + See GPSData - - - - ID of application requested this RPC. + + The vehicle speed in kilometers per hour - - - - The status of the brake pedal + + The number of revolutions per minute of the engine - - - - - ID of application requested this RPC. + + The fuel level in the tank (percentage) - - - - The status of the wipers + + The fuel level state - - - - ID of application requested this RPC. + + The instantaneous fuel consumption in microlitres - - - - The status of the wipers + + The external temperature in degrees celsius - - - - - ID of application requested this RPC. + + Vehicle identification number - - - - Status of the head lamps + + See PRNDL - - - - ID of application requested this RPC. + + See TireStatus - - - - Status of the head lamps + + Odometer in km - - - - - ID of application requested this RPC. + + The status of the seat belts - - - - Torque value for engine (in Nm) on non-diesel variants + + The body information including ignition status and internal temp - - - - ID of application requested this RPC. + + The device status including signal and battery strength - - - - Torque value for engine (in Nm) on non-diesel variants + + The status of the brake pedal - - - - - ID of application requested this RPC. + + The status of the wipers - - - - Accelerator pedal position (percentage depressed) + + Status of the head lamps - - - - ID of application requested this RPC. + + Torque value for engine (in Nm) on non-diesel variants - - - + Accelerator pedal position (percentage depressed) - - - - - ID of application requested this RPC. - - - - + Current angle of the steering wheel (in deg) - - - - ID of application requested this RPC. + + The estimated percentage of remaining oil life of the engine. + + + Emergency Call notification and confirmation data + + + The status of the air bags + + + Information related to an emergency event (and if it occurred) + + + The status modes of the cluster + + + Information related to the MyKey feature - - + + + See GPSData + + + The vehicle speed in kilometers per hour + + + The number of revolutions per minute of the engine + + + The fuel level in the tank (percentage) + + + The fuel level state + + + The instantaneous fuel consumption in microlitres + + + The external temperature in degrees celsius + + + Vehicle identification number + + + See PRNDL + + + See TireStatus + + + Odometer in km + + + The status of the seat belts + + + The body information including power modes + + + The device status including signal and battery strength + + + The status of the brake pedal + + + The status of the wipers + + + Status of the head lamps + + + Torque value for engine (in Nm) on non-diesel variants + + + Accelerator pedal position (percentage depressed) + + Current angle of the steering wheel (in deg) - - - - - ID of application requested this RPC. + + The estimated percentage of remaining oil life of the engine. - - - + Emergency Call notification and confirmation data - - - - ID of application requested this RPC. + + The status of the air bags - - - - Emergency Call notification and confirmation data + + Information related to an emergency event (and if it occurred) - - - - - ID of application requested this RPC. + + The status modes of the cluster - - - - The status of the air bags + + Information related to the MyKey feature - - - ID of application requested this RPC. + + Callback for the periodic and non periodic vehicle data read function. + + See GPSData - - - - The status of the air bags + + The vehicle speed in kilometers per hour - - - - - ID of application requested this RPC. + + The number of revolutions per minute of the engine - - - - Information related to an emergency event (and if it occurred) + + The fuel level in the tank (percentage) - - - - ID of application requested this RPC. + + The fuel level state - - - - Information related to an emergency event (and if it occurred) + + The instantaneous fuel consumption in microlitres - - - - - ID of application requested this RPC. + + The external temperature in degrees celsius - - - - The status modes of the cluster + + Vehicle identification number. - - - - ID of application requested this RPC. + + See PRNDL - - - - The status modes of the cluster + + See TireStatus - - - - - ID of application requested this RPC. + + Odometer in km - - - - Information related to the MyKey feature + + The status of the seat belts - - - - ID of application requested this RPC. + + The body information including power modes - - - + + The device status including signal and battery strength + + + The status of the brake pedal + + + The status of the wipers + + + Status of the head lamps + + + Torque value for engine (in Nm) on non-diesel variants + + + Accelerator pedal position (percentage depressed) + + + Current angle of the steering wheel (in deg) + + + Emergency Call notification and confirmation data + + + The status of the air bags + + + Information related to an emergency event (and if it occurred) + + + The status modes of the cluster + + Information related to the MyKey feature - diff --git a/tools/intergen/tool/intergen.cc b/tools/intergen/tool/intergen.cc index bad87b178b7..8fc8302dccc 100644 --- a/tools/intergen/tool/intergen.cc +++ b/tools/intergen/tool/intergen.cc @@ -54,7 +54,6 @@ struct Options { char* interface_xml; bool auto_generate_function_ids; bool generate_json_code; - bool generate_dbus_code; std::set requested_interfaces; std::set excluded_scopes; bool avoid_unsigned; @@ -63,7 +62,6 @@ struct Options { : interface_xml(NULL), auto_generate_function_ids(false), generate_json_code(false), - generate_dbus_code(false), avoid_unsigned(false), minimum_word_size(8) { } @@ -138,10 +136,6 @@ int main(int argc, char* argv[]) { options.generate_json_code = true; break; } - case 'd': { - options.generate_dbus_code = true; - break; - } default: { cerr << "Invalid option: '" << opt << "'" << '\n'; return EXIT_FAILURE; @@ -165,7 +159,6 @@ int main(int argc, char* argv[]) { codegen::Preferences(options.minimum_word_size, options.avoid_unsigned, options.generate_json_code, - options.generate_dbus_code, options.requested_interfaces)); if (bad.empty()) { return EXIT_SUCCESS;