diff options
author | JackLivio <jack@livio.io> | 2018-02-02 17:55:53 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-02 17:55:53 -0500 |
commit | 31c06e498ca99e45ffe37799ee03109e0877f416 (patch) | |
tree | 00c1a6f82345c53e4facd9b0554bc25c1607102a /src/components | |
parent | 74ccd312dfff41736f7b8c93bcd8813146d76457 (diff) | |
parent | 1087cfe152f8f4ce27383c8f96fcdf1f2e94266a (diff) | |
download | sdl_core-31c06e498ca99e45ffe37799ee03109e0877f416.tar.gz |
Merge branch 'develop' into feature/boost_websocket_hmi_message_adapterfeature/boost_websocket_hmi_message_adapter
Diffstat (limited to 'src/components')
61 files changed, 14706 insertions, 472 deletions
diff --git a/src/components/application_manager/CMakeLists.txt b/src/components/application_manager/CMakeLists.txt index 21f92418fe..e9f2f8ec7b 100644 --- a/src/components/application_manager/CMakeLists.txt +++ b/src/components/application_manager/CMakeLists.txt @@ -345,9 +345,6 @@ set (HMI_COMMANDS_SOURCES ${COMMANDS_SOURCE_DIR}/hmi/rc_get_capabilities_response.cc ${COMMANDS_SOURCE_DIR}/hmi/ui_send_haptic_data_request.cc ${COMMANDS_SOURCE_DIR}/hmi/ui_send_haptic_data_response.cc -) - -set (HMI_COMMANDS_SOURCES_JSON ${COMMANDS_SOURCE_DIR}/hmi/vi_get_vehicle_data_request.cc ${COMMANDS_SOURCE_DIR}/hmi/vi_get_vehicle_data_response.cc ${COMMANDS_SOURCE_DIR}/hmi/vi_subscribe_vehicle_data_request.cc @@ -357,6 +354,9 @@ set (HMI_COMMANDS_SOURCES_JSON ${COMMANDS_SOURCE_DIR}/hmi/on_vi_vehicle_data_notification.cc ) +set (HMI_COMMANDS_SOURCES_JSON +) + set (HMI_COMMANDS_SOURCES_DBUS ${COMMANDS_SOURCE_DIR}/hmi/on_vi_gps_data_notification.cc ${COMMANDS_SOURCE_DIR}/hmi/on_vi_speed_notification.cc diff --git a/src/components/application_manager/src/application_manager_impl.cc b/src/components/application_manager/src/application_manager_impl.cc index 96e8a1314b..4e13da694b 100644 --- a/src/components/application_manager/src/application_manager_impl.cc +++ b/src/components/application_manager/src/application_manager_impl.cc @@ -2259,9 +2259,12 @@ bool ApplicationManagerImpl::ConvertMessageToSO( message.function_id(), message.type(), message.correlation_id()); + + rpc::ValidationReport report("RPC"); + if (!conversion_result || !mobile_so_factory().attachSchema(output, true) || - ((output.validate() != smart_objects::Errors::OK))) { + ((output.validate(&report) != smart_objects::Errors::OK))) { LOG4CXX_WARN(logger_, "Failed to parse string to smart object :" << message.json_message()); @@ -2271,6 +2274,9 @@ bool ApplicationManagerImpl::ConvertMessageToSO( message.function_id(), message.correlation_id(), mobile_apis::Result::INVALID_DATA)); + + (*response)[strings::msg_params][strings::info] = + rpc::PrettyFormat(report); ManageMobileCommand(response, commands::Command::ORIGIN_SDL); return false; } @@ -2318,8 +2324,18 @@ bool ApplicationManagerImpl::ConvertMessageToSO( LOG4CXX_WARN(logger_, "Failed to attach schema to object."); return false; } - if (output.validate() != smart_objects::Errors::OK) { - LOG4CXX_ERROR(logger_, "Incorrect parameter from HMI"); + + rpc::ValidationReport report("RPC"); + + if (output.validate(&report) != smart_objects::Errors::OK) { + LOG4CXX_ERROR(logger_, + "Incorrect parameter from HMI" + << rpc::PrettyFormat(report)); + + output.erase(strings::msg_params); + output[strings::params][hmi_response::code] = + hmi_apis::Common_Result::INVALID_DATA; + output[strings::msg_params][strings::info] = rpc::PrettyFormat(report); return false; } break; @@ -2495,8 +2511,11 @@ MessageValidationResult ApplicationManagerImpl::ValidateMessageBySchema( if (!mobile_so_factory().attachSchema(so, true)) { return INVALID_METADATA; } - - if (so.validate() != smart_objects::Errors::OK) { + rpc::ValidationReport report("RPC"); + if (so.validate(&report) != smart_objects::Errors::OK) { + LOG4CXX_WARN(logger_, + "validate() failed for Mobile message - " + << rpc::PrettyFormat(report)); return SCHEMA_MISMATCH; } break; @@ -2515,7 +2534,11 @@ MessageValidationResult ApplicationManagerImpl::ValidateMessageBySchema( return INVALID_METADATA; } - if (so.validate() != smart_objects::Errors::OK) { + rpc::ValidationReport report("RPC"); + if (so.validate(&report) != smart_objects::Errors::OK) { + LOG4CXX_WARN(logger_, + "validate() failed for HMI message - " + << rpc::PrettyFormat(report)); return SCHEMA_MISMATCH; } break; diff --git a/src/components/application_manager/src/commands/mobile/get_vehicle_data_request.cc b/src/components/application_manager/src/commands/mobile/get_vehicle_data_request.cc index 84c6e0ba7c..f81d0a8c2a 100644 --- a/src/components/application_manager/src/commands/mobile/get_vehicle_data_request.cc +++ b/src/components/application_manager/src/commands/mobile/get_vehicle_data_request.cc @@ -57,7 +57,7 @@ void GetVehicleDataRequest::Run() { int32_t app_id = (*message_)[strings::params][strings::connection_key].asUInt(); - ApplicationSharedPtr app = appplication_manager.application(app_id); + ApplicationSharedPtr app = application_manager_.application(app_id); if (!app) { LOG4CXX_ERROR(logger_, "NULL pointer"); diff --git a/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_request.cc b/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_request.cc index f7317d72f9..d6ad928bf7 100644 --- a/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_request.cc +++ b/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_request.cc @@ -253,6 +253,14 @@ void UnsubscribeVehicleDataRequest::on_event(const event_engine::Event& event) { } EndAwaitForInterface(HmiInterfaces::HMI_INTERFACE_VehicleInfo); + ApplicationSharedPtr app = + application_manager_.application(CommandRequestImpl::connection_key()); + + if (!app) { + LOG4CXX_ERROR(logger_, "NULL pointer."); + return; + } + #ifdef HMI_DBUS_API for (HmiRequests::iterator it = hmi_requests_.begin(); it != hmi_requests_.end(); @@ -308,7 +316,7 @@ void UnsubscribeVehicleDataRequest::on_event(const event_engine::Event& event) { } SendResponse(any_arg_success, status, NULL, &response_params); if (true == any_arg_success) { - UpdateHash(); + app->UpdateHash(); } } #else 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 4ae6ce4024..f544b5161e 100644 --- a/src/components/application_manager/src/message_helper/message_helper.cc +++ b/src/components/application_manager/src/message_helper/message_helper.cc @@ -1120,7 +1120,7 @@ smart_objects::SmartObjectList MessageHelper::GetIVISubscriptionRequests( if (true == msg_params.keyExists(sr.str) && true == msg_params[sr.str].asBool()) { smart_objects::SmartObjectSPtr request = - MessageHelper::CreateModuleInfoSO(sr.func_id); + MessageHelper::CreateModuleInfoSO(sr.func_id, app_mngr); (*request)[strings::msg_params] = msg_params; hmi_requests.push_back(request); } diff --git a/src/components/dbus/CMakeLists.txt b/src/components/dbus/CMakeLists.txt index 211310d885..26ff9373bf 100644 --- a/src/components/dbus/CMakeLists.txt +++ b/src/components/dbus/CMakeLists.txt @@ -44,7 +44,7 @@ include_directories ( set(PATHS ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/src - ${CMAKE_CURRENT_BINARY_DIR}/introspection_xml.cc + ${CMAKE_CURRENT_SOURCE_DIR}/src/introspection_xml.cc ${CMAKE_CURRENT_BINARY_DIR}/message_descriptions.cc ) collect_sources(SOURCES "${PATHS}") @@ -52,7 +52,7 @@ collect_sources(SOURCES "${PATHS}") set(LIBRARIES HMI_API Utils - dbus-1 -L${DBUS_LIBS_DIRECTORY} + dbus-1 ) add_custom_command( @@ -74,7 +74,6 @@ add_custom_command( ) add_library("DBus" ${SOURCES}) -add_dependecnies("DBus" Utils install-3rd_party_dbus) target_link_libraries("DBus" "${LIBRARIES}") diff --git a/src/components/dbus/codegen/introspection_xml.cc b/src/components/dbus/codegen/introspection_xml.cc new file mode 100644 index 0000000000..6896e7d137 --- /dev/null +++ b/src/components/dbus/codegen/introspection_xml.cc @@ -0,0 +1,327 @@ +// 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/include/dbus/dbus_adapter.h b/src/components/dbus/include/dbus/dbus_adapter.h index 9c78c428ca..42a2ac1140 100644 --- a/src/components/dbus/include/dbus/dbus_adapter.h +++ b/src/components/dbus/include/dbus/dbus_adapter.h @@ -35,6 +35,7 @@ #include <string> #include "smart_objects/smart_object.h" #include "dbus/schema.h" +#include "dbus/message_descriptions.h" struct DBusConnection; struct DBusMessage; diff --git a/src/components/dbus/src/dbus_adapter.cc b/src/components/dbus/src/dbus_adapter.cc index d3f547a893..a46e8e8167 100644 --- a/src/components/dbus/src/dbus_adapter.cc +++ b/src/components/dbus/src/dbus_adapter.cc @@ -33,9 +33,11 @@ #include "dbus/dbus_adapter.h" #include <dbus/dbus.h> #include <sstream> -#include "formatters/CSmartFactory.hpp" +#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; diff --git a/src/components/dbus/src/dbus_message_controller.cc b/src/components/dbus/src/dbus_message_controller.cc index 166037e900..a8bd7a1050 100644 --- a/src/components/dbus/src/dbus_message_controller.cc +++ b/src/components/dbus/src/dbus_message_controller.cc @@ -31,7 +31,7 @@ */ #include "dbus/dbus_message_controller.h" -#include "formatters/CSmartFactory.hpp" +#include "formatters/CSmartFactory.h" namespace sos = NsSmartDeviceLink::NsJSONHandler::strings; diff --git a/src/components/dbus/src/introspection_xml.cc b/src/components/dbus/src/introspection_xml.cc new file mode 100644 index 0000000000..6896e7d137 --- /dev/null +++ b/src/components/dbus/src/introspection_xml.cc @@ -0,0 +1,327 @@ +// 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 new file mode 100644 index 0000000000..f9c73bc1f5 --- /dev/null +++ b/src/components/dbus/src/message_descriptions.cc @@ -0,0 +1,11766 @@ +// 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/test/CMakeLists.txt b/src/components/dbus/test/CMakeLists.txt index 1b3df2c0e7..914bd2ca84 100644 --- a/src/components/dbus/test/CMakeLists.txt +++ b/src/components/dbus/test/CMakeLists.txt @@ -33,11 +33,12 @@ 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 - test_dbus_message_controller.cc + dbus_message_controller_test.cc ) collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}" ${EXCLUDE_PATHS}) diff --git a/src/components/dbus/test/dbus_message_controller_test.cc b/src/components/dbus/test/dbus_message_controller_test.cc index 5c5d4e69d5..c06e144f9b 100644 --- a/src/components/dbus/test/dbus_message_controller_test.cc +++ b/src/components/dbus/test/dbus_message_controller_test.cc @@ -36,14 +36,14 @@ #include <pthread.h> #include <gtest/gtest.h> #include <gmock/gmock.h> -#include "hmi_message_handler/mock_dbus_message_controller.h" -#include "hmi_message_handler/mock_subscriber.h" +#include "dbus/mock_dbus_message_controller.h" +#include "dbus/mock_subscriber.h" using ::testing::_; namespace test { namespace components { -namespace hmi_message_handler { +namespace dbus { ACTION_P(SignalTest, test) { if (test->thread_id != pthread_self()) { @@ -111,6 +111,6 @@ TEST_F(DBusMessageControllerTest, DISABLED_Send) { controller_->Send(kText); } -} // namespace hmi_message_handler +} // namespace dbus } // namespace components } // namespace test diff --git a/src/components/hmi_message_handler/test/include/hmi_message_handler/mock_dbus_message_controller.h b/src/components/dbus/test/include/dbus/mock_dbus_message_controller.h index 86ebf100bb..2fe4267b35 100644 --- a/src/components/hmi_message_handler/test/include/hmi_message_handler/mock_dbus_message_controller.h +++ b/src/components/dbus/test/include/dbus/mock_dbus_message_controller.h @@ -30,18 +30,18 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#ifndef SRC_COMPONENTS_HMI_MESSAGE_HANDLER_TEST_INCLUDE_HMI_MESSAGE_HANDLER_MOCK_DBUS_MESSAGE_CONTROLLER_H_ -#define SRC_COMPONENTS_HMI_MESSAGE_HANDLER_TEST_INCLUDE_HMI_MESSAGE_HANDLER_MOCK_DBUS_MESSAGE_CONTROLLER_H_ +#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 <pthread.h> -#include "hmi_message_handler/dbus_message_controller.h" +#include "dbus/dbus_message_controller.h" namespace test { namespace components { -namespace hmi_message_handler_test { +namespace dbus_test { class MockDBusMessageController - : public ::hmi_message_handler::DBusMessageController { + : public ::dbus::DBusMessageController { public: MOCK_METHOD1(Recv, void(std::string&)); @@ -69,8 +69,8 @@ class MockDBusMessageController } }; -} // namespace hmi_message_handler_test +} // namespace dbus_test } // namespace components } // namespace test -#endif // SRC_COMPONENTS_HMI_MESSAGE_HANDLER_TEST_INCLUDE_HMI_MESSAGE_HANDLER_MOCK_DBUS_MESSAGE_CONTROLLER_H_ +#endif // SRC_COMPONENTS_DBUS_TEST_INCLUDE_DBUS_MOCK_DBUS_MESSAGE_CONTROLLER_H_ diff --git a/src/components/hmi_message_handler/test/include/hmi_message_handler/mock_subscriber.h b/src/components/dbus/test/include/dbus/mock_subscriber.h index 9e9074e70c..b2a369e371 100644 --- a/src/components/hmi_message_handler/test/include/hmi_message_handler/mock_subscriber.h +++ b/src/components/dbus/test/include/dbus/mock_subscriber.h @@ -30,8 +30,8 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#ifndef SRC_COMPONENTS_HMI_MESSAGE_HANDLER_TEST_INCLUDE_HMI_MESSAGE_HANDLER_MOCK_SUBSCRIBER_H_ -#define SRC_COMPONENTS_HMI_MESSAGE_HANDLER_TEST_INCLUDE_HMI_MESSAGE_HANDLER_MOCK_SUBSCRIBER_H_ +#ifndef SRC_COMPONENTS_DBUS_TEST_INCLUDE_DBUS_MOCK_SUBSCRIBER_H_ +#define SRC_COMPONENTS_DBUS_TEST_INCLUDE_DBUS_MOCK_SUBSCRIBER_H_ #include <string> @@ -39,7 +39,7 @@ struct DBusConnection; namespace test { namespace components { -namespace hmi_message_handler_test { +namespace dbus { class MockSubscriber { public: @@ -55,8 +55,8 @@ class MockSubscriber { DBusConnection* conn_; }; -} // namespace hmi_message_handler_test +} // namespace dbus } // namespace components } // namespace test -#endif // SRC_COMPONENTS_HMI_MESSAGE_HANDLER_TEST_INCLUDE_HMI_MESSAGE_HANDLER_MOCK_SUBSCRIBER_H_ +#endif // SRC_COMPONENTS_DBUS_TEST_INCLUDE_DBUS_MOCK_SUBSCRIBER_H_ diff --git a/src/components/hmi_message_handler/test/mock_subscriber.cc b/src/components/dbus/test/mock_subscriber.cc index 0fc9110a1d..2c5dccaa50 100644 --- a/src/components/hmi_message_handler/test/mock_subscriber.cc +++ b/src/components/dbus/test/mock_subscriber.cc @@ -31,14 +31,14 @@ */ #include "dbus/dbus.h" -#include "hmi_message_handler/mock_subscriber.h" +#include "dbus/mock_subscriber.h" namespace test { namespace components { -namespace hmi_message_handler_test { +namespace dbus { -MockSubscriber::MockSubscriber(const std::string& nameService, - const std::string& path) +MockSubscriber::MockSubscriber(const std::string nameService, + const std::string path) : nameService_(nameService), path_(path), conn_(NULL) {} MockSubscriber::~MockSubscriber() {} @@ -66,6 +66,6 @@ bool MockSubscriber::Start() { void MockSubscriber::Send(const std::string& message) {} -} // namespace hmi_message_handler_test +} // namespace dbus } // namespace components } // namespace test diff --git a/src/components/formatters/test/CSmartFactory_test.cc b/src/components/formatters/test/CSmartFactory_test.cc index f98af88328..3713d076e2 100644 --- a/src/components/formatters/test/CSmartFactory_test.cc +++ b/src/components/formatters/test/CSmartFactory_test.cc @@ -67,7 +67,9 @@ TEST(CSmartFactoryTest, obj[S_MSG_PARAMS] = SmartObject(SmartType::SmartType_Map); std::set<std::string> keys = obj.enumerate(); EXPECT_EQ(2u, keys.size()); - EXPECT_EQ(Errors::eType::OK, obj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::OK, obj.validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); EXPECT_TRUE(obj.isValid()); } @@ -79,7 +81,9 @@ TEST(CSmartFactoryTest, FunctionIdTest::Function1, MessageTypeTest::INVALID_ENUM); EXPECT_FALSE(SmartType::SmartType_Map == obj.getType()); EXPECT_TRUE(SmartType::SmartType_Null == obj.getType()); - EXPECT_EQ(Errors::eType::OK, obj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::OK, obj.validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); EXPECT_TRUE(obj.isValid()); } @@ -99,7 +103,9 @@ TEST( obj[S_MSG_PARAMS] = SmartObject(SmartType::SmartType_Map); std::set<std::string> keys = obj.enumerate(); EXPECT_EQ(2u, keys.size()); - EXPECT_EQ(Errors::eType::MISSING_MANDATORY_PARAMETER, obj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::MISSING_MANDATORY_PARAMETER, obj.validate(&report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); EXPECT_FALSE(obj.isValid()); } @@ -120,7 +126,9 @@ TEST( obj[S_MSG_PARAMS] = SmartObject(SmartType::SmartType_Map); std::set<std::string> keys = obj.enumerate(); EXPECT_EQ(2u, keys.size()); - EXPECT_EQ(Errors::eType::OUT_OF_RANGE, obj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::OUT_OF_RANGE, obj.validate(&report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); EXPECT_FALSE(obj.isValid()); } @@ -141,7 +149,9 @@ TEST( obj[S_MSG_PARAMS] = SmartObject(SmartType::SmartType_Map); std::set<std::string> keys = obj.enumerate(); EXPECT_EQ(2u, keys.size()); - EXPECT_EQ(Errors::eType::INVALID_VALUE, obj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::INVALID_VALUE, obj.validate(&report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); EXPECT_FALSE(obj.isValid()); } @@ -163,7 +173,9 @@ TEST(CSmartFactoryTest, obj[S_MSG_PARAMS] = SmartObject(SmartType::SmartType_Map); std::set<std::string> keys = obj.enumerate(); EXPECT_EQ(2u, keys.size()); - EXPECT_EQ(Errors::eType::OK, obj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::OK, obj.validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); EXPECT_TRUE(obj.isValid()); } @@ -185,7 +197,9 @@ TEST( obj[S_MSG_PARAMS] = SmartObject(SmartType::SmartType_Map); std::set<std::string> keys = obj.enumerate(); EXPECT_EQ(2u, keys.size()); - EXPECT_EQ(Errors::eType::MISSING_MANDATORY_PARAMETER, obj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::MISSING_MANDATORY_PARAMETER, obj.validate(&report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); EXPECT_FALSE(obj.isValid()); } @@ -221,7 +235,9 @@ TEST( obj[S_MSG_PARAMS] = SmartObject(SmartType::SmartType_Map); std::set<std::string> keys = obj.enumerate(); EXPECT_EQ(2u, keys.size()); - EXPECT_EQ(Errors::eType::INVALID_VALUE, obj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::INVALID_VALUE, obj.validate(&report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); EXPECT_FALSE(obj.isValid()); } @@ -236,7 +252,9 @@ TEST(CSmartFactoryTest, obj["position"] = 200; std::set<std::string> keys = obj.enumerate(); EXPECT_EQ(2u, keys.size()); - EXPECT_EQ(Errors::eType::OK, obj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::OK, obj.validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); EXPECT_TRUE(obj.isValid()); } @@ -251,7 +269,9 @@ TEST( obj["text"] = "test"; std::set<std::string> keys = obj.enumerate(); EXPECT_EQ(1u, keys.size()); - EXPECT_EQ(Errors::eType::MISSING_MANDATORY_PARAMETER, obj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::MISSING_MANDATORY_PARAMETER, obj.validate(&report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); EXPECT_FALSE(obj.isValid()); } @@ -266,7 +286,9 @@ TEST(CSmartFactoryTest, obj["position"] = 200; std::set<std::string> keys = obj.enumerate(); EXPECT_EQ(2u, keys.size()); - EXPECT_EQ(Errors::eType::OK, obj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::OK, obj.validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); EXPECT_TRUE(obj.isValid()); } @@ -281,10 +303,14 @@ TEST(CSmartFactoryTest, obj["position"] = 200; obj["image"]["text"] = "test2"; obj["image"]["position"] = 100; - EXPECT_EQ(Errors::eType::OK, obj["image"].validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::OK, obj["image"].validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); std::set<std::string> keys = obj.enumerate(); EXPECT_EQ(3u, keys.size()); - EXPECT_EQ(Errors::eType::OK, obj.validate()); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::eType::OK, obj.validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); EXPECT_TRUE(obj.isValid()); } @@ -301,11 +327,15 @@ TEST( obj["image"]["text"] = "test2"; obj["image"]["position"] = 100; // Check object "image" - EXPECT_EQ(Errors::eType::OK, obj["image"].validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::OK, obj["image"].validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); std::set<std::string> keys = obj.enumerate(); EXPECT_EQ(3u, keys.size()); // Check global object - EXPECT_EQ(Errors::eType::OK, obj.validate()); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::eType::OK, obj.validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); EXPECT_TRUE(obj.isValid()); } @@ -321,11 +351,15 @@ TEST( obj["image"]["text"] = "test2"; obj["image"]["position"] = 100; // Check object "image" - EXPECT_EQ(Errors::eType::OK, obj["image"].validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::OK, obj["image"].validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); std::set<std::string> keys = obj.enumerate(); EXPECT_EQ(2u, keys.size()); // Check global object - EXPECT_EQ(Errors::eType::MISSING_MANDATORY_PARAMETER, obj.validate()); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::eType::MISSING_MANDATORY_PARAMETER, obj.validate(&report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); EXPECT_FALSE(obj.isValid()); } @@ -342,11 +376,15 @@ TEST( obj["image"]["text"] = "test2"; obj["image"]["position"] = 100; // Check object "image" - EXPECT_EQ(Errors::eType::OK, obj["image"].validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::OK, obj["image"].validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); std::set<std::string> keys = obj.enumerate(); EXPECT_EQ(3u, keys.size()); // Check global object - EXPECT_EQ(Errors::eType::OK, obj.validate()); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::eType::OK, obj.validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); EXPECT_TRUE(obj.isValid()); } @@ -363,7 +401,9 @@ TEST( std::set<std::string> keys = obj.enumerate(); EXPECT_EQ(2u, keys.size()); // Check global object - EXPECT_EQ(Errors::eType::MISSING_MANDATORY_PARAMETER, obj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::MISSING_MANDATORY_PARAMETER, obj.validate(&report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); EXPECT_FALSE(obj.isValid()); } @@ -381,7 +421,9 @@ TEST( std::set<std::string> keys = obj.enumerate(); EXPECT_EQ(3u, keys.size()); // Check global object - EXPECT_EQ(Errors::eType::INVALID_VALUE, obj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::INVALID_VALUE, obj.validate(&report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); EXPECT_FALSE(obj.isValid()); } diff --git a/src/components/formatters/test/cFormatterJsonSDLRPCv1_test.cc b/src/components/formatters/test/cFormatterJsonSDLRPCv1_test.cc index 91701c8aab..a4d40b4478 100644 --- a/src/components/formatters/test/cFormatterJsonSDLRPCv1_test.cc +++ b/src/components/formatters/test/cFormatterJsonSDLRPCv1_test.cc @@ -42,7 +42,9 @@ namespace formatters { TEST(CFormatterJsonSDLRPCv1Test, EmptySmartObjectToString) { SmartObject srcObj; - EXPECT_EQ(Errors::eType::OK, srcObj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::OK, srcObj.validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); std::string jsonString; bool result = CFormatterJsonSDLRPCv1::toString(srcObj, jsonString); @@ -71,7 +73,10 @@ TEST(CFormatterJsonSDLRPCv1Test, SmObjWithRequestWithoutMsgNotValid_ToString) { srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0; srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 1; - EXPECT_EQ(Errors::eType::MISSING_MANDATORY_PARAMETER, srcObj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::MISSING_MANDATORY_PARAMETER, + srcObj.validate(&report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); std::string jsonString; bool result = CFormatterJsonSDLRPCv1::toString(srcObj, jsonString); @@ -102,7 +107,9 @@ TEST(CFormatterJsonSDLRPCv1Test, srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 1; srcObj[S_MSG_PARAMS][""] = ""; - EXPECT_EQ(Errors::eType::OK, srcObj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::OK, srcObj.validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); std::string jsonString; @@ -333,7 +340,9 @@ TEST(CFormatterJsonSDLRPCv1Test, StringRequestToSmObj) { inputJsonString, obj); EXPECT_EQ(CFormatterJsonSDLRPCv1::kSuccess, result); - EXPECT_EQ(Errors::eType::OK, obj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::OK, obj.validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); EXPECT_EQ(obj[S_PARAMS][S_MESSAGE_TYPE], MessageTypeTest::request); EXPECT_EQ(obj[S_PARAMS][S_FUNCTION_ID], FunctionIDTest::RegisterAppInterface); EXPECT_EQ(obj[S_PARAMS][S_CORRELATION_ID], 5); @@ -477,7 +486,9 @@ TEST(CFormatterJsonSDLRPCv1Test, StringNotificationToSmartObject) { MessageTypeTest::eType>( inputJsonString, obj); EXPECT_EQ(CFormatterJsonSDLRPCv1::kSuccess, result); - EXPECT_EQ(Errors::eType::OK, obj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::OK, obj.validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); EXPECT_EQ(obj[S_PARAMS][S_MESSAGE_TYPE], MessageTypeTest::notification); EXPECT_EQ(obj[S_PARAMS][S_FUNCTION_ID], FunctionIDTest::SetGlobalProperties); EXPECT_EQ(obj[S_PARAMS][S_CORRELATION_ID], 13); diff --git a/src/components/formatters/test/cFormatterJsonSDLRPCv2_test.cc b/src/components/formatters/test/cFormatterJsonSDLRPCv2_test.cc index feb7dd3129..c7e6f61674 100644 --- a/src/components/formatters/test/cFormatterJsonSDLRPCv2_test.cc +++ b/src/components/formatters/test/cFormatterJsonSDLRPCv2_test.cc @@ -41,7 +41,9 @@ namespace formatters { TEST(CFormatterJsonSDLRPCv2Test, EmptySmartObjectToString) { SmartObject srcObj; - EXPECT_EQ(Errors::eType::OK, srcObj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::OK, srcObj.validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); std::string jsonString; bool result = CFormatterJsonSDLRPCv2::toString(srcObj, jsonString); @@ -64,7 +66,10 @@ TEST(CFormatterJsonSDLRPCv2Test, SmObjWithRequestWithoutMsgNotValid_ToString) { srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0; srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2; - EXPECT_EQ(Errors::eType::MISSING_MANDATORY_PARAMETER, srcObj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::MISSING_MANDATORY_PARAMETER, + srcObj.validate(&report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); std::string jsonString; bool result = CFormatterJsonSDLRPCv2::toString(srcObj, jsonString); @@ -88,7 +93,9 @@ TEST(CFormatterJsonSDLRPCv2Test, srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2; srcObj[S_MSG_PARAMS][""] = ""; - EXPECT_EQ(Errors::eType::OK, srcObj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::OK, srcObj.validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); std::string jsonString; @@ -262,7 +269,9 @@ TEST(CFormatterJsonSDLRPCv2Test, StringRequestWithoutCorIdToSmObj) { MessageTypeTest::request); EXPECT_EQ(true, result); - EXPECT_EQ(Errors::eType::MISSING_MANDATORY_PARAMETER, obj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::MISSING_MANDATORY_PARAMETER, obj.validate(&report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); EXPECT_EQ(obj[S_PARAMS][S_MESSAGE_TYPE], MessageTypeTest::request); EXPECT_EQ(obj[S_PARAMS][S_FUNCTION_ID], FunctionIDTest::RegisterAppInterface); EXPECT_EQ(obj[S_PARAMS][S_PROTOCOL_TYPE], 0); @@ -307,7 +316,9 @@ TEST(CFormatterJsonSDLRPCv2Test, StringRequestWithCorIdToSmObj) { corId); EXPECT_EQ(true, result); - EXPECT_EQ(Errors::eType::OK, obj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::OK, obj.validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); EXPECT_EQ(obj[S_PARAMS][S_MESSAGE_TYPE], MessageTypeTest::request); EXPECT_EQ(obj[S_PARAMS][S_FUNCTION_ID], FunctionIDTest::RegisterAppInterface); EXPECT_EQ(obj[S_PARAMS][S_CORRELATION_ID], corId); @@ -372,7 +383,9 @@ TEST(CFormatterJsonSDLRPCv2Test, StringNotificationToSmartObject) { MessageTypeTest::notification, corId); EXPECT_EQ(true, result); - EXPECT_EQ(Errors::eType::OK, obj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::eType::OK, obj.validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); EXPECT_EQ(obj[S_PARAMS][S_MESSAGE_TYPE], MessageTypeTest::notification); EXPECT_EQ(obj[S_PARAMS][S_FUNCTION_ID], FunctionIDTest::SetGlobalProperties); EXPECT_EQ(obj[S_PARAMS][S_CORRELATION_ID], corId); diff --git a/src/components/formatters/test/formatter_json_rpc_test.cc b/src/components/formatters/test/formatter_json_rpc_test.cc index fa368924c9..e882bed618 100644 --- a/src/components/formatters/test/formatter_json_rpc_test.cc +++ b/src/components/formatters/test/formatter_json_rpc_test.cc @@ -149,7 +149,9 @@ TEST(FormatterJsonRPCTest, UpperBoundValuesInSystemRequest_ToString_Success) { hmi_apis::HMI_API factory; EXPECT_TRUE(factory.attachSchema(obj, false)); - EXPECT_EQ(Errors::OK, obj.validate()); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::OK, obj.validate(&report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); std::string result; // Convert SmartObject to Json string EXPECT_TRUE(FormatterJsonRpc::ToString(obj, result)); diff --git a/src/components/hmi_message_handler/CMakeLists.txt b/src/components/hmi_message_handler/CMakeLists.txt index 13d5177046..9fb233b446 100644 --- a/src/components/hmi_message_handler/CMakeLists.txt +++ b/src/components/hmi_message_handler/CMakeLists.txt @@ -57,7 +57,7 @@ set(PATHS ) if (HMIADAPTER STREQUAL "dbus") - set(EXCLUDE_PATHS) + set(EXCLUDE_PATHS messagebroker_adapter.cc) set(DBUS_ADAPTER DBus) else() set(EXCLUDE_PATHS dbus_message_adapter.cc) diff --git a/src/components/hmi_message_handler/test/CMakeLists.txt b/src/components/hmi_message_handler/test/CMakeLists.txt index 6d4041e0bf..9e855c563e 100644 --- a/src/components/hmi_message_handler/test/CMakeLists.txt +++ b/src/components/hmi_message_handler/test/CMakeLists.txt @@ -37,7 +37,11 @@ include_directories ( ${COMPONENTS_DIR}/hmi_message_handler/test/include ) -set(EXCLUDE_PATHS) +if (HMIADAPTER STREQUAL "messagebroker") + set(EXCLUDE_PATHS) +else() + set(EXCLUDE_PATHS hmi_message_handler_impl_test.cc) +endif() set(LIBRARIES gmock @@ -48,13 +52,6 @@ set(LIBRARIES ConfigProfile ) -if(NOT HMI_DBUS_API}) - list (APPEND EXCLUDE_PATHS - mock_subscriber.cc - dbus_message_adapter_test.cc - ) -endif() - collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}" "${EXCLUDE_PATHS}") if (HMIADAPTER STREQUAL "messagebroker") diff --git a/src/components/rpc_base/include/rpc_base/validation_report.h b/src/components/include/rpc_base/validation_report.h index 4397112d54..82f265e594 100644 --- a/src/components/rpc_base/include/rpc_base/validation_report.h +++ b/src/components/include/rpc_base/validation_report.h @@ -68,14 +68,17 @@ inline void PrettyFormat(const ValidationReport& report, if (!object_path.empty() && report.object_name()[0] != '[') { object_path.append("."); } + const ValidationReports& subreports = report.subobject_reports(); object_path.append(report.object_name()); if (!report.validation_info().empty()) { + // Insert newline between entries + if (!result->empty()) { + result->append("\n"); + } result->append(object_path); result->append(": "); result->append(report.validation_info()); - result->append("\n"); } - const ValidationReports& subreports = report.subobject_reports(); for (ValidationReports::const_iterator i = subreports.begin(), end = subreports.end(); i != end; diff --git a/src/components/interfaces/QT_HMI_API.xml b/src/components/interfaces/QT_HMI_API.xml index 269031ddc9..0c86d4eea3 100644 --- a/src/components/interfaces/QT_HMI_API.xml +++ b/src/components/interfaces/QT_HMI_API.xml @@ -1,4 +1,3 @@ -<?xml version="1.0" standalone="yes"?> <!-- * Copyright (c) 2013, Ford Motor Company * All rights reserved. @@ -62,6 +61,8 @@ <element name="GENERIC_ERROR" value="22"/> <element name="USER_DISALLOWED" value="23"/> <element name="TRUNCATED_DATA" value="24"/> + <element name="SAVED" value="25"/> + <element name="READ_ONLY" value="26"/> </enum> <enum name="TransportType"> <description> @@ -258,6 +259,20 @@ <element name="TESTING"/> <element name="SYSTEM"/> </enum> + <enum name="WayPointType"> + <description>Describes what kind of waypoint is requested/provided.</description> + <element name="ALL" /> + <element name="DESTINATION" /> + </enum> + + <struct name="Coordinate"> + <param name="latitudeDegrees" minvalue="-90" maxvalue="90" type="Float" mandatory="true"> + <description>Latitude of the location.</description> + </param> + <param name="longitudeDegrees" minvalue="-180" maxvalue="180" type="Float" mandatory="true"> + <description>Longitude of the location.</description> + </param> + </struct> <enum name="LayoutMode"> <description>For touchscreen interactions, the mode of how the choices are presented.</description> <element name="ICON_ONLY"/> @@ -369,7 +384,7 @@ <element name="IGNITION_OFF"/> <element name="MASTER_RESET"/> <element name="FACTORY_DEFAULTS"/> - <element name="SUSPEND" /> + <element name="SUSPEND"/> </enum> <enum name="DisplayType"> <description>The possible types of HU display.</description> @@ -408,15 +423,18 @@ <element name="DYNAMIC"/> </enum> <enum name="ApplicationExitReason"> - <element name="DRIVER_DISTRACTION_VIOLATION" > + <element name="DRIVER_DISTRACTION_VIOLATION"> <description>By getting this value, SDL puts the named app to NONE HMILevel</description> </element> - <element name="USER_EXIT" > + <element name="USER_EXIT"> <description>By getting this value, SDL puts the named app to NONE HMILevel</description> </element> <element name="UNAUTHORIZED_TRANSPORT_REGISTRATION"> <description>By getting this value, SDL unregisters the named application</description> </element> + <element name="UNSUPPORTED_HMI_RESOURCE"> + <description>By getting this value, SDL unregisters the named application</description> + </element> </enum> <enum name="TextFieldName"> <element name="mainField1"> @@ -513,6 +531,44 @@ <!-- TO DO to be removed --> <element name="turnText"/> </enum> + <enum name="MetadataType"> + <element name="mediaTitle"> + <description>The data in this field contains the title of the currently playing audio track.</description> + </element> + <element name="mediaArtist"> + <description>The data in this field contains the artist or creator of the currently playing audio track.</description> + </element> + <element name="mediaAlbum"> + <description>The data in this field contains the album title of the currently playing audio track.</description> + </element> + <element name="mediaYear"> + <description>The data in this field contains the creation year of the currently playing audio track.</description> + </element> + <element name="mediaGenre"> + <description>The data in this field contains the genre of the currently playing audio track.</description> + </element> + <element name="mediaStation"> + <description>The data in this field contains the name of the current source for the media.</description> + </element> + <element name="rating"> + <description>The data in this field is a rating.</description> + </element> + <element name="currentTemperature"> + <description>The data in this field is the current temperature.</description> + </element> + <element name="maximumTemperature"> + <description>The data in this field is the maximum temperature for the day.</description> + </element> + <element name="minimumTemperature"> + <description>The data in this field is the minimum temperature for the day.</description> + </element> + <element name="weatherTerm"> + <description>The data in this field describes the current weather (ex. cloudy, clear, etc.).</description> + </element> + <element name="humidity"> + <description>The data in this field describes the current humidity value.</description> + </element> + </enum> <enum name="ImageFieldName"> <element name="softButtonImage"> <description>The image field for SoftButton</description> @@ -943,7 +999,7 @@ <description>Enumeration listing possible keyboard events.</description> <element name="KEYPRESS"/> <element name="ENTRY_SUBMITTED"/> - <element name="ENTRY_VOICE" /> + <element name="ENTRY_VOICE"/> <element name="ENTRY_CANCELLED"/> <element name="ENTRY_ABORTED"/> </enum> @@ -989,20 +1045,20 @@ <element name="AUTH_CHALLENGE"/> <element name="AUTH_ACK"/> <element name="PROPRIETARY"/> - <element name="QUERY_APPS" /> - <element name="LAUNCH_APP" /> - <element name="LOCK_SCREEN_ICON_URL" /> - <element name="TRAFFIC_MESSAGE_CHANNEL" /> - <element name="DRIVER_PROFILE" /> - <element name="VOICE_SEARCH" /> - <element name="NAVIGATION" /> - <element name="PHONE" /> - <element name="CLIMATE" /> - <element name="SETTINGS" /> - <element name="VEHICLE_DIAGNOSTICS" /> - <element name="EMERGENCY" /> - <element name="MEDIA" /> - <element name="FOTA" /> + <element name="QUERY_APPS"/> + <element name="LAUNCH_APP"/> + <element name="LOCK_SCREEN_ICON_URL"/> + <element name="TRAFFIC_MESSAGE_CHANNEL"/> + <element name="DRIVER_PROFILE"/> + <element name="VOICE_SEARCH"/> + <element name="NAVIGATION"/> + <element name="PHONE"/> + <element name="CLIMATE"/> + <element name="SETTINGS"/> + <element name="VEHICLE_DIAGNOSTICS"/> + <element name="EMERGENCY"/> + <element name="MEDIA"/> + <element name="FOTA"/> </enum> <enum name="ECallConfirmationStatus"> <description>Reflects the status of the eCall Notification.</description> @@ -1127,25 +1183,124 @@ </enum> <enum name="MethodName"> <description>Defines the type of the request which causes text-to-speech prompt</description> - <element name="ALERT" /> - <element name="SPEAK" /> - <element name="AUDIO_PASS_THRU" /> - <element name="ALERT_MANEUVER" /> + <element name="ALERT"/> + <element name="SPEAK"/> + <element name="AUDIO_PASS_THRU"/> + <element name="ALERT_MANEUVER"/> </enum> <enum name="AlertType"> <description>Defines the type of the request which causes text-to-speech prompt</description> -<element name="UI" /> -<element name="BOTH" /> +<element name="UI"/> +<element name="BOTH"/> </enum> <enum name="HMILevel"> <element name="FULL"/> - <element name="LIMITED" /> + <element name="LIMITED"/> <element name="BACKGROUND"/> <element name="NONE"/> </enum> +<enum name="EventTypes"> + <description>Reflects the current active event</description> + <element name="AUDIO_SOURCE"> + <description>Navigated to audio(radio, etc)</description> + </element> + <element name="EMBEDDED_NAVI"> + <description>Navigated to navigation screen</description> + </element> + <element name="PHONE_CALL"> + <description>Phone call is active</description> + </element> + <element name="EMERGENCY_EVENT"> + <description>Active emergency event, active parking event</description> + </element> + <element name="DEACTIVATE_HMI"> + <description> GAL/DIO is active </description> + </element> +</enum> + +<enum name="VideoStreamingProtocol"> + <description>Enum for each type of video streaming protocol type.</description> + <element name="RAW"> + <description> + Raw stream bytes that contains no timestamp data and is the lowest supported video streaming + </description> + </element> + <element name="RTP"> + <description> + 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. + </description> + </element> + <element name="RTSP"> + <description> + 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. + </description> + </element> + <element name="RTMP"> + <description> + 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. + </description> + </element> + <element name="WEBM"> + <description> + 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. + </description> + </element> +</enum> + +<enum name="VideoStreamingCodec"> + <description>Enum for each type of video streaming codec.</description> + <element name="H264"> + <description> + 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. + </description> + </element> + <element name="H265"> + <description> + 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. + </description> + </element> + <element name="Theora"> + <description> + 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. + </description> + </element> + <element name="VP8"> + <description> + 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. + </description> + </element> + <element name="VP9"> + <description> + Similar to VP8, but VP9 is customized for video resolutions beyond high-definition video (UHD) + and also enables lossless compression. + </description> + </element> +</enum> + <!-- Policies --> <enum name="UpdateResult"> <element name="UP_TO_DATE"/> @@ -1178,7 +1333,7 @@ <description>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</description> </param> <param name="isSDLAllowed" type="Boolean" mandatory="false"> - <description>Sent by SDL in UpdateDeviceList. ’true’ – if device is allowed for PolicyTable Exchange; ‘false’ – if device is NOT allowed for PolicyTable Exchange </description> + <description>Sent by SDL in UpdateDeviceList. ’true’ – if device is allowed for PolicyTable Exchange; ‘false’ – if device is NOT allowed for PolicyTable Exchange </description> </param> </struct> <struct name="UserFriendlyMessage" scope="internal"> @@ -1210,16 +1365,16 @@ </struct> <!-- End of Policies --> <struct name="TextField"> - <param name="name" type="Common.TextFieldName"> + <param name="name" type="Common.TextFieldName" mandatory="true"> <description>The name that identifies the field. See TextFieldName.</description> </param> - <param name="characterSet" type="Common.CharacterSet"> + <param name="characterSet" type="Common.CharacterSet" mandatory="true"> <description>The character set that is supported in this field. See CharacterSet.</description> </param> - <param name="width" type="Integer" minvalue="1" maxvalue="500"> + <param name="width" type="Integer" minvalue="1" maxvalue="500" mandatory="true"> <description>The number of characters in one row of this field.</description> </param> - <param name="rows" type="Integer" minvalue="1" maxvalue="8"> + <param name="rows" type="Integer" minvalue="1" maxvalue="8" mandatory="true"> <description>The number of rows of this field.</description> </param> </struct> @@ -1240,27 +1395,13 @@ </struct> <struct name="VehicleDataResult"> <description>Individual published data request result</description> - <param name="dataType" type="Common.VehicleDataType"> + <param name="dataType" type="Common.VehicleDataType" mandatory="true"> <description>Defined published data element type.</description> </param> - <param name="resultCode" type="Common.VehicleDataResultCode"> + <param name="resultCode" type="Common.VehicleDataResultCode" mandatory="true"> <description>Published data result code.</description> </param> </struct> - <struct name="DeviceInfo"> - <param name="name" type="String" mandatory="true"> - <description>The name of the device connected.</description> - </param> - <param name="id" type="String" mandatory="true"> - <description>The ID of the device connected: either hash of device's USB serial number(in case of USB connection) or hash of device's MAC address(in case of BlueTooth or WIFI connection).</description> - </param> - <param name="transportType" type="Common.TransportType" mandatory="false"> - <description>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</description> - </param> - <param name="isSDLAllowed" type="Boolean" mandatory="false"> - <description>Sent by SDL in UpdateDeviceList. ’true’ – if device is allowed for PolicyTable Exchange; ‘false’ – if device is NOT allowed for PolicyTable Exchange </description> - </param> - </struct> <struct name="TouchCoord"> <param name="x" type="Integer" mandatory="true" minvalue="0" maxvalue="10000"> <description>The x coordinate of the touch.</description> @@ -1350,7 +1491,7 @@ <param name="policyAppID" type="String" maxlength="50" minlength="1" mandatory="true"> <description>Policy ID(=the appID the application registers with) of registered application.</description> </param> - <param name="ttsName" type="Common.TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false" > + <param name="ttsName" type="Common.TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false"> <description> 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. @@ -1481,6 +1622,31 @@ <description>The image resolution of this field.</description> </param> </struct> + <struct name="VideoStreamingFormat"> + <description>Video streaming formats and their specifications.</description> + <param name="protocol" type="Common.VideoStreamingProtocol" mandatory="true"> + <description>Protocol type, see VideoStreamingProtocol</description> + </param> + <param name="codec" type="Common.VideoStreamingCodec" mandatory="true"> + <description>Codec type, see VideoStreamingCodec</description> + </param> + </struct> + + <struct name="VideoConfig"> + <description>Configuration of a video stream.</description> + <param name="protocol" type="Common.VideoStreamingProtocol" mandatory="false"> + <description>The video protocol configuration</description> + </param> + <param name="codec" type="Common.VideoStreamingCodec" mandatory="false"> + <description>The video codec configuration</description> + </param> + <param name="width" type="Integer" mandatory="false"> + <description>Width of the video stream, in pixels.</description> + </param> + <param name="height" type="Integer" mandatory="false"> + <description>Height of the video stream, in pixels.</description> + </param> + </struct> <struct name="DisplayCapabilities"> <description>Contains information about the display capabilities.</description> <param name="displayType" type="Common.DisplayType" mandatory="true"> @@ -1820,70 +1986,70 @@ </param> </struct> <struct name="ECallInfo"> - <param name="eCallNotificationStatus" type="Common.VehicleDataNotificationStatus"> + <param name="eCallNotificationStatus" type="Common.VehicleDataNotificationStatus" mandatory="true"> <description>References signal "eCallNotification_4A". See VehicleDataNotificationStatus.</description> </param> - <param name="auxECallNotificationStatus" type="Common.VehicleDataNotificationStatus"> + <param name="auxECallNotificationStatus" type="Common.VehicleDataNotificationStatus" mandatory="true"> <description>References signal "eCallNotification". See VehicleDataNotificationStatus.</description> </param> - <param name="eCallConfirmationStatus" type="Common.ECallConfirmationStatus"> + <param name="eCallConfirmationStatus" type="Common.ECallConfirmationStatus" mandatory="true"> <description>References signal "eCallConfirmation". See ECallConfirmationStatus.</description> </param> </struct> <struct name="AirbagStatus"> - <param name="driverAirbagDeployed" type="Common.VehicleDataEventStatus"> + <param name="driverAirbagDeployed" type="Common.VehicleDataEventStatus" mandatory="true"> <description>References signal "VedsDrvBag_D_Ltchd". See VehicleDataEventStatus.</description> </param> - <param name="driverSideAirbagDeployed" type="Common.VehicleDataEventStatus"> + <param name="driverSideAirbagDeployed" type="Common.VehicleDataEventStatus" mandatory="true"> <description>References signal "VedsDrvSideBag_D_Ltchd". See VehicleDataEventStatus.</description> </param> - <param name="driverCurtainAirbagDeployed" type="Common.VehicleDataEventStatus"> + <param name="driverCurtainAirbagDeployed" type="Common.VehicleDataEventStatus" mandatory="true"> <description>References signal "VedsDrvCrtnBag_D_Ltchd". See VehicleDataEventStatus.</description> </param> - <param name="passengerAirbagDeployed" type="Common.VehicleDataEventStatus"> + <param name="passengerAirbagDeployed" type="Common.VehicleDataEventStatus" mandatory="true"> <description>References signal "VedsPasBag_D_Ltchd". See VehicleDataEventStatus.</description> </param> - <param name="passengerCurtainAirbagDeployed" type="Common.VehicleDataEventStatus"> + <param name="passengerCurtainAirbagDeployed" type="Common.VehicleDataEventStatus" mandatory="true"> <description>References signal "VedsPasCrtnBag_D_Ltchd". See VehicleDataEventStatus.</description> </param> - <param name="driverKneeAirbagDeployed" type="Common.VehicleDataEventStatus"> + <param name="driverKneeAirbagDeployed" type="Common.VehicleDataEventStatus" mandatory="true"> <description>References signal "VedsKneeDrvBag_D_Ltchd". See VehicleDataEventStatus.</description> </param> - <param name="passengerSideAirbagDeployed" type="Common.VehicleDataEventStatus"> + <param name="passengerSideAirbagDeployed" type="Common.VehicleDataEventStatus" mandatory="true"> <description>References signal "VedsPasSideBag_D_Ltchd". See VehicleDataEventStatus.</description> </param> - <param name="passengerKneeAirbagDeployed" type="Common.VehicleDataEventStatus"> + <param name="passengerKneeAirbagDeployed" type="Common.VehicleDataEventStatus" mandatory="true"> <description>References signal "VedsKneePasBag_D_Ltchd". See VehicleDataEventStatus.</description> </param> </struct> <struct name="EmergencyEvent"> - <param name="emergencyEventType" type="Common.EmergencyEventType"> + <param name="emergencyEventType" type="Common.EmergencyEventType" mandatory="true"> <description>References signal "VedsEvntType_D_Ltchd". See EmergencyEventType.</description> </param> - <param name="fuelCutoffStatus" type="Common.FuelCutoffStatus"> + <param name="fuelCutoffStatus" type="Common.FuelCutoffStatus" mandatory="true"> <description>References signal "RCM_FuelCutoff". See FuelCutoffStatus.</description> </param> - <param name="rolloverEvent" type="Common.VehicleDataEventStatus"> + <param name="rolloverEvent" type="Common.VehicleDataEventStatus" mandatory="true"> <description>References signal "VedsEvntRoll_D_Ltchd". See VehicleDataEventStatus.</description> </param> - <param name="maximumChangeVelocity" type="Common.VehicleDataEventStatus"> + <param name="maximumChangeVelocity" type="Common.VehicleDataEventStatus" mandatory="true"> <description>References signal "VedsMaxDeltaV_D_Ltchd". See VehicleDataEventStatus.</description> </param> - <param name="multipleEvents" type="Common.VehicleDataEventStatus"> + <param name="multipleEvents" type="Common.VehicleDataEventStatus" mandatory="true"> <description>References signal "VedsMultiEvnt_D_Ltchd". See VehicleDataEventStatus.</description> </param> </struct> <struct name="ClusterModeStatus"> - <param name="powerModeActive" type="Boolean"> + <param name="powerModeActive" type="Boolean" mandatory="true"> <description>References signal "PowerMode_UB".</description> </param> - <param name="powerModeQualificationStatus" type="Common.PowerModeQualificationStatus"> + <param name="powerModeQualificationStatus" type="Common.PowerModeQualificationStatus" mandatory="true"> <description>References signal "PowerModeQF". See PowerModeQualificationStatus.</description> </param> - <param name="carModeStatus" type="Common.CarModeStatus"> + <param name="carModeStatus" type="Common.CarModeStatus" mandatory="true"> <description>References signal "CarMode". See CarMode.</description> </param> - <param name="powerModeStatus" type="Common.PowerModeStatus"> + <param name="powerModeStatus" type="Common.PowerModeStatus" mandatory="true"> <description>References signal "PowerMode". See PowerMode.</description> </param> </struct> @@ -1893,6 +2059,452 @@ </param> </struct> <!--end of IVI part--> + <!-- Remote Control --> + <enum name="ModuleType"> + <element name="CLIMATE"/> + <element name="RADIO"/> + </enum> + + <enum name="RadioBand"> + <element name="AM"/> + <element name="FM"/> + <element name="XM"/> + </enum> + + <struct name="RdsData"> + <param name="PS" type="String" minlength="0" maxlength="8" mandatory="false"> + <description>Program Service Name</description> + </param> + <param name="RT" type="String" minlength="0" maxlength="64" mandatory="false"> + <description>Radio Text</description> + </param> + <param name="CT" type="String" minlength="24" maxlength="24" mandatory="false"> + <description>The clock text in UTC format as YYYY-MM-DDThh:mm:ss.sTZD</description> + </param> + <param name="PI" type="String" minlength="0" maxlength="6" mandatory="false"> + <description>Program Identification - the call sign for the radio station</description> + </param> + <param name="PTY" type="Integer" minvalue="0" maxvalue="31" mandatory="false"> + <description>The program type - The region should be used to differentiate between EU and North America program types</description> + </param> + <param name="TP" type="Boolean" mandatory="false"> + <description>Traffic Program Identification - Identifies a station that offers traffic</description> + </param> + <param name="TA" type="Boolean" mandatory="false"> + <description>Traffic Announcement Identification - Indicates an ongoing traffic announcement</description> + </param> + <param name="REG" type="String" mandatory="false"> + <description>Region</description> + </param> + </struct> + + <enum name="RadioState"> + <element name="ACQUIRING"/> + <element name="ACQUIRED"/> + <element name="MULTICAST"/> + <element name="NOT_FOUND"/> + </enum> + + <struct name="RadioControlData"> + <param name="frequencyInteger" type="Integer" minvalue="0" maxvalue="1710" mandatory="false"> + <description>The integer part of the frequency ie for 101.7 this value should be 101</description> + </param> + <param name="frequencyFraction" type="Integer" minvalue="0" maxvalue="9" mandatory="false"> + <description>The fractional part of the frequency for 101.7 is 7</description> + </param> + <param name="band" type="Common.RadioBand" mandatory="false"> + </param> + <param name="rdsData" type="Common.RdsData" mandatory="false"> + </param> + <param name="availableHDs" type="Integer" minvalue="1" maxvalue="3" mandatory="false"> + <description>number of HD sub-channels if available</description> + </param> + <param name="hdChannel" type="Integer" minvalue="1" maxvalue="3" mandatory="false"> + <description>Current HD sub-channel if available</description> + </param> + <param name="signalStrength" type="Integer" minvalue="0" maxvalue="100" mandatory="false"> + </param> + <param name="signalChangeThreshold" type="Integer" minvalue="0" maxvalue="100" mandatory="false"> + <description>If the signal strength falls below the set value for this parameter, the radio will tune to an alternative frequency</description> + </param> + <param name="radioEnable" type="Boolean" mandatory="false"> + <description> True if the radio is on, false is the radio is off</description> + </param> + <param name="state" type="Common.RadioState" mandatory="false"> + </param> + </struct> + + <struct name="RadioControlCapabilities"> + <description>Contains information about a radio control module's capabilities.</description> + <param name="moduleName" type="String" maxlength="100" mandatory="true" > + <description>The short name or a short description of the radio control module.</description> + </param> + <param name="radioEnableAvailable" type="Boolean" mandatory="false"> + <description> + Availability of the control of enable/disable radio. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="radioBandAvailable" type="Boolean" mandatory="false" > + <description> + Availability of the control of radio band. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="radioFrequencyAvailable" type="Boolean" mandatory="false" > + <description> + Availability of the control of radio frequency. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="hdChannelAvailable" type="Boolean" mandatory="false" > + <description> + Availability of the control of HD radio channel. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="rdsDataAvailable" type="Boolean" mandatory="false" > + <description> + Availability of the getting Radio Data System (RDS) data. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="availableHDsAvailable" type="Boolean" mandatory="false" > + <description> + Availability of the getting the number of available HD channels. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="stateAvailable" type="Boolean" mandatory="false" > + <description> + Availability of the getting the Radio state. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="signalStrengthAvailable" type="Boolean" mandatory="false" > + <description> + Availability of the getting the signal strength. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="signalChangeThresholdAvailable" type="Boolean" mandatory="false" > + <description> + Availability of the getting the signal Change Threshold. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + </struct> + + <enum name="DefrostZone"> + <element name="FRONT"/> + <element name="REAR"/> + <element name="ALL"/> + <element name="NONE"/> + </enum> + + <enum name="VentilationMode"> + <element name="UPPER"/> + <element name="LOWER"/> + <element name="BOTH"/> + <element name="NONE"/> + </enum> + + <enum name="TemperatureUnit"> + <element name="FAHRENHEIT"/> + <element name="CELSIUS"/> + </enum> + + <struct name="Temperature"> + <param name="unit" type="TemperatureUnit" mandatory="true" > + <description>Temperature Unit</description> + </param> + <param name="value" type="Float" mandatory="true" > + <description>Temperature Value in TemperatureUnit specified unit. Range depends on OEM and is not checked by SDL.</description> + </param> + </struct> + + <struct name="ClimateControlData"> + <param name="fanSpeed" type="Integer" minvalue="0" maxvalue="100" mandatory="false"> + </param> + <param name="currentTemperature" type="Common.Temperature" mandatory="false"> + </param> + <param name="desiredTemperature" type="Common.Temperature" mandatory="false"> + </param> + <param name="acEnable" type="Boolean" mandatory="false"> + </param> + <param name="circulateAirEnable" type="Boolean" mandatory="false"> + </param> + <param name="autoModeEnable" type="Boolean" mandatory="false"> + </param> + <param name="defrostZone" type="DefrostZone" mandatory="false"> + </param> + <param name="dualModeEnable" type="Boolean" mandatory="false"> + </param> + <param name="acMaxEnable" type="Boolean" mandatory="false"> + </param> + <param name="ventilationMode" type="Common.VentilationMode" mandatory="false"> + </param> + </struct> + + <struct name="ClimateControlCapabilities"> + <description>Contains information about a climate control module's capabilities.</description> + <param name="moduleName" type="String" maxlength="100" mandatory="true" > + <description>The short name or a short description of the climate control module.</description> + </param> + <param name="currentTemperatureAvailable" type="Boolean" mandatory="false"> + <description> + Availability of the reading of current temperature. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="fanSpeedAvailable" type="Boolean" mandatory="false"> + <description> + Availability of the control of fan speed. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="desiredTemperatureAvailable" type="Boolean" mandatory="false"> + <description> + Availability of the control of desired temperature. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="acEnableAvailable" type="Boolean" mandatory="false"> + <description> + Availability of the control of turn on/off AC. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="acMaxEnableAvailable" type="Boolean" mandatory="false"> + <description> + Availability of the control of enable/disable air conditioning is ON on the maximum level. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="circulateAirEnableAvailable" type="Boolean" mandatory="false"> + <description> + Availability of the control of enable/disable circulate Air mode. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="autoModeEnableAvailable" type="Boolean" mandatory="false"> + <description> + Availability of the control of enable/disable auto mode. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="dualModeEnableAvailable" type="Boolean" mandatory="false"> + <description> + Availability of the control of enable/disable dual mode. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="defrostZoneAvailable" type="Boolean" mandatory="false"> + <description> + Availability of the control of defrost zones. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="defrostZone" type="Common.DefrostZone" minsize="1" maxsize="100" array="true" mandatory="false"> + <description> + A set of all defrost zones that are controllable. + </description> + </param> + <param name="ventilationModeAvailable" type="Boolean" mandatory="false"> + <description> + Availability of the control of air ventilation mode. + True: Available, False: Not Available, Not present: Not Available. + </description> + </param> + <param name="ventilationMode" type="Common.VentilationMode" minsize="1" maxsize="100" array="true" mandatory="false"> + <description> + A set of all ventilation modes that are controllable. + </description> + </param> + </struct> + + <struct name="ModuleData"> + <description>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</description> + <param name="moduleType" type="Common.ModuleType" mandatory="true" > + </param> + <param name="radioControlData" type="Common.RadioControlData" mandatory="false"> + </param> + <param name="climateControlData" type="Common.ClimateControlData" mandatory="false"> + </param> + </struct> + + <enum name="RCAccessMode"> + <description>Enumeration that describes possible remote control access mode the application might be in on HU.</description> + <element name="AUTO_ALLOW"/> + <element name="AUTO_DENY"/> + <element name="ASK_DRIVER"/> + </enum> +<struct name="DateTime"> + <param name="millisecond" type="Integer" minvalue="0" maxvalue="999" mandatory="false"> + <description>Milliseconds </description> + </param> + <param name="second" type="Integer" minvalue="0" maxvalue="60" mandatory="false"> + <description>Seconds part of time</description> + </param> + <param name="minute" type="Integer" minvalue="0" maxvalue="59" mandatory="false"> + <description>Minutes part of time</description> + </param> + <param name="hour" type="Integer" minvalue="0" maxvalue="23" mandatory="false"> + <description>Hours part of time. Note that this structure accepts time only in 24 Hr format</description> + </param> + <param name="day" type="Integer" minvalue="1" maxvalue="31" mandatory="false"> + <description>Day of the month</description> + </param> + <param name="month" type="Integer" minvalue="1" maxvalue="12" mandatory="false"> + <description>Month of the year</description> + </param> + <param name="year" type="Integer" maxvalue="4095" mandatory="false"> + <description>The year in YYYY format</description> + </param> + <param name="tz_hour" type="Integer" minvalue="-12" maxvalue="14" defvalue="0" mandatory="false"> + <description>Time zone offset in Hours wrt UTC.</description> + </param> + <param name="tz_minute" type="Integer" minvalue="0" maxvalue="59" defvalue="0" mandatory="false"> + <description>Time zone offset in Min wrt UTC.</description> + </param> +</struct> + +<struct name="OASISAddress"> + <param name="countryName" minlength="0" maxlength="200" type="String" mandatory="false"> + <description>Name of the country (localized)</description> + </param> + <param name="countryCode" minlength="0" maxlength="50" type="String" mandatory="false"> + <description>Name of country (ISO 3166-2)</description> + </param> + <param name="postalCode" minlength="0" maxlength="16" type="String" mandatory="false"> + <description>(PLZ, ZIP, PIN, CAP etc.)</description> + </param> + <param name="administrativeArea" minlength="0" maxlength="200" type="String" mandatory="false"> + <description>Portion of country (e.g. state)</description> + </param> + <param name="subAdministrativeArea" minlength="0" maxlength="200" type="String" mandatory="false"> + <description>Portion of e.g. state (e.g. county)</description> + </param> + <param name="locality" minlength="0" maxlength="200" type="String" mandatory="false"> + <description>Hypernym for e.g. city/village</description> + </param> + <param name="subLocality" minlength="0" maxlength="200" type="String" mandatory="false"> + <description>Hypernym for e.g. district</description> + </param> + <param name="thoroughfare" minlength="0" maxlength="200" type="String" mandatory="false"> + <description>Hypernym for street, road etc.</description> + </param> + <param name="subThoroughfare" minlength="0" maxlength="200" type="String" mandatory="false"> + <description>Portion of thoroughfare e.g. house number</description> + </param> +</struct> + + <struct name="LocationDetails"> + <param name="coordinate" type="Coordinate" mandatory="false"> + <description>Latitude/Longitude of the location.</description> + </param> + <param name="locationName" type="String" maxlength="500" mandatory="false"> + <description>Name of location.</description> + </param> + <param name="addressLines" type="String" maxlength="500" minsize="0" maxsize="4" array="true" mandatory="false"> + <description>Location address for display purposes only</description> + </param> + <param name="locationDescription" type="String" maxlength="500" mandatory="false"> + <description>Description intended location / establishment (if applicable)</description> + </param> + <param name="phoneNumber" type="String" maxlength="500" mandatory="false"> + <description>Phone number of location / establishment.</description> + </param> + <param name="locationImage" type="Image" mandatory="false"> + <description>Image / icon of intended location.</description> + </param> + <param name="searchAddress" type="OASISAddress" mandatory="false"> + <description>Address to be used by navigation engines for search</description> + </param> + </struct> + + <struct name="NavigationCapability"> + <description>Extended capabilities for an onboard navigation system</description> + <param name="sendLocationEnabled" type="Boolean" mandatory="false"> + <description>If the module has the ability to add locations to the onboard nav</description> + </param> + <param name="getWayPointsEnabled" type="Boolean" mandatory="false"> + <description>If the module has the ability to return way points from onboard nav</description> + </param> + </struct> + + <struct name="PhoneCapability"> + <description>Extended capabilities of the module's phone feature</description> + <param name="dialNumberEnabled" type="Boolean" mandatory="false"> + <description>If the module has the abiulity to perform dial number</description> + </param> + </struct> + + <struct name="VideoStreamingCapability"> + <description>Contains information about this system's video streaming capabilities.</description> + <param name="preferredResolution" type="Common.ImageResolution" mandatory="false"> + <description>The preferred resolution of a video stream for decoding and rendering on HMI.</description> + </param> + <param name="maxBitrate" type="Integer" minvalue="0" maxvalue="2147483647" mandatory="false"> + <description>The maximum bitrate of video stream that is supported, in kbps.</description> + </param> + <param name="supportedFormats" type="Common.VideoStreamingFormat" array="true" mandatory="false"> + <description> + 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. + </description> + </param> + <param name="hapticSpatialDataSupported" type="Boolean" mandatory="false"> + <description>True if the system can utilize the haptic spatial data from the source being streamed. </description> + </param> + </struct> + + <struct name="SystemCapabilities"> + <param name="navigationCapability" type="NavigationCapability" mandatory="false"> + </param> + <param name="phoneCapability" type="PhoneCapability" mandatory="false"> + </param> + <param name="videoStreamingCapability" type="VideoStreamingCapability" mandatory="false"> + </param> + </struct> + + <struct name="RemoteControlCapabilities"> + <param name="climateControlCapabilities" type="ClimateControlCapabilities" mandatory="false" minsize="1" maxsize="100" array="true"> + <description>If included, the platform supports RC climate controls. For this baseline version, maxsize=1. i.e. only one climate control module is supported.</description > + </param> + <param name="radioControlCapabilities" type="RadioControlCapabilities" mandatory="false" minsize="1" maxsize="100" array="true"> + <description>If included, the platform supports RC radio controls. For this baseline version, maxsize=1. i.e. only one climate control module is supported.</description > + </param> + <param name="buttonCapabilities" type="ButtonCapabilities" mandatory="false" minsize="1" maxsize="100" array="true" > + <description>If included, the platform supports RC button controls with the included button names.</description > + </param> + </struct> + + <struct name="Rectangle"> + <param name="x" type="Float" mandatory="true"> + <description>The X-coordinate of the user control</description> + </param> + <param name="y" type="Float" mandatory="true"> + <description>The Y-coordinate of the user control</description> + </param> + <param name="width" type="Float" mandatory="true"> + <description>The width of the user control's bounding rectangle</description> + </param> + <param name="height" type="Float" mandatory="true"> + <description>The height of the user control's bounding rectangle</description> + </param> + </struct> + + <struct name="HapticRect"> + <description>Defines haptic rectangle data for each user control object for video streaming application</description> + <param name="id" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="true"> + <description>A user control spatial identifier</description> + </param> + <param name="rect" type="Common.Rectangle" mandatory="true"> + <description>The position of the haptic rectangle to be highlighted. The center of this rectangle will be "touched" when a press occurs.</description> + </param> + </struct> </interface> <interface name="Buttons" version="1.0" date="2013-04-12"> <function name="GetCapabilities" messagetype="request" provider="hmi"> @@ -1939,9 +2551,9 @@ </function> <function name="OnButtonSubscription" messagetype="notification"> <description> - Sender: SDL->HMI. Purpose: to notify about button subscription state is changed for the named application + Sender: SDL->HMI. Purpose: to notify about button subscription state is changed for the named application </description> - <param name="name" type="Common.ButtonName" mandatory="true" /> + <param name="name" type="Common.ButtonName" mandatory="true"/> <param name="isSubscribed" type="Boolean" mandatory="true"> <description> Defines whether the named button has status of 'subscribed' or 'unsubscribed': @@ -1967,14 +2579,14 @@ <description>Notification from HMI to SDL sent when HMI requires update of device list (i.e. when user clicks 'Change Device' button)</description> </function> <function name="OnPhoneCall" messagetype="notification"> - <description>Sender: HMI->SDL. When: upon phone-call event started or ended</description> + <description>Sender: HMI->SDL. When: upon phone-call event started or ended</description> <param name="isActive" type="Boolean" mandatory="true"> <description>Must be 'true' - when the phone call is started on HMI. Must be 'false' when the phone call is ended on HMI</description> </param> </function> <function name="OnEmergencyEvent" messagetype="notification"> <description> - "Sender: HMI->SDL. Conditions: when HMI enters the mode of "911 Assist", or other rear view camera, + "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"" </description> @@ -2122,7 +2734,7 @@ </function> <function name="OnAwakeSDL" messagetype="notification"> <description> - Sender: HMI->SDL. Must be sent to return SDL to normal operation after 'Suspend' or 'LowVoltage' events + Sender: HMI->SDL. Must be sent to return SDL to normal operation after 'Suspend' or 'LowVoltage' events </description> </function> <function name="MixingAudioSupported" messagetype="request" provider="hmi"> @@ -2143,6 +2755,17 @@ <description>Defines the name of app's request that initiates playing a tone</description> </param> </function> + <function name="DialNumber" messagetype="request"> + <description>Request from SDL to call a specific number.</description> + <param name="number" type="String" maxlength="40" mandatory="true"> + <description>The number to dial. Only the character + and numbers are allowed.</description> + </param> + <param name="appID" type="Integer" mandatory="true"> + <description>ID of application that concerns this RPC.</description> + </param> + </function> + <function name="DialNumber" messagetype="response"> + </function> <!-- Policies --> <!-- SyncP RPC--> <function name="OnSystemRequest" messagetype="notification" provider="hmi"> @@ -2273,7 +2896,7 @@ <description>Notification from system to SDL to let it know that ignition cycle is over.</description> </function> <function name="DecryptCertificate" messagetype="request"> - <description>Sender: SDL->HMI. Purpose: to decrypt the certificate received via the Updated Policy Table. </description> + <description>Sender: SDL->HMI. Purpose: to decrypt the certificate received via the Updated Policy Table. </description> <param name="fileName" type="String" maxlength="255" minlength="1" mandatory="true"> <description>The path to the file with the encrypted certificate from the PolicyTable.</description> </param> @@ -2281,6 +2904,15 @@ <function name="DecryptCertificate" messagetype="response"> <description>SUCCESS - in case the certificate is decrypted and placed to the same file from request.</description> </function> + <function name="OnEventChanged" messagetype="notification"> + <description>Sender: HMI->SDL. When event is become active</description> + <param name="eventName" type="Common.EventTypes" mandatory="true"> + <description>Specifies the types of active events.</description> + </param> + <param name="isActive" type="Boolean" mandatory="true"> + <description>Must be 'true' - when the event is started on HMI. Must be 'false' when the event is ended on HMI</description> + </param> + </function> <!-- End of Policies --> </interface> <interface name="VR" version="1.0" date="2013-04-17"> @@ -2477,7 +3109,7 @@ </function> <function name="ChangeRegistration" messagetype="request" provider="hmi"> <description>Request from SmartDeviceLink to HMI to change language of TTS.</description> - <param name="ttsName" type="Common.TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false" > + <param name="ttsName" type="Common.TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false"> <description> Request new ttsName registration TTS string for VR recognition of the mobile application name, e.g. "Ford Drive Green". @@ -2540,7 +3172,7 @@ </function> <function name="OnResetTimeout" messagetype="notification"> <description> - Sender: HMI->SDL. HMI must send this notification every 10 sec. in case the 'methodName' + Sender: HMI->SDL. HMI must send this notification every 10 sec. in case the 'methodName' results long processing on HMI </description> <param name="appID" type="Integer" mandatory="true"> @@ -2788,7 +3420,7 @@ <description>Must be returned if the platform supports on-screen SoftButtons.</description> </param> <param name="hmiCapabilities" type="Common.HMICapabilities" mandatory="false"> - <description>Specifies the HMI’s capabilities. See HMICapabilities.</description> + <description>Specifies the HMI’s capabilities. See HMICapabilities.</description> </param> </function> <function name="ChangeRegistration" messagetype="request" provider="hmi"> @@ -2963,7 +3595,7 @@ </function> <function name="Slider" messagetype="response"> <param name="sliderPosition" type="Integer" minvalue="1" maxvalue="26" mandatory="false"> - <description>Current slider position. Must be returned when the user has clicked the ‘Save’ or ‘Canceled’ button or by the timeout </description> + <description>Current slider position. Must be returned when the user has clicked the ‘Save’ or ‘Canceled’ button or by the timeout </description> </param> </function> <function name="ScrollableMessage" messagetype="request" provider="hmi"> @@ -3042,6 +3674,22 @@ <description>ID of application related to this RPC.</description> </param> </function> + <function name="SendHapticData" messagetype="request"> + <description>Send the UI spatial data from MOBILE. This data will be utilized by the HMI to determine how and when haptic events should occur</description> + <param name="appID" type="Integer" mandatory="true"> + <description>Internal ID of the application that requested this RPC.</description> + </param> + <param name="hapticRectData" type="Common.HapticRect" minsize="0" maxsize="1000" mandatory="false" array="true"> + <description> + 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. + </description> + </param> + </function> + <function name="SendHapticData" messagetype="response"> + </function> </interface> <interface name="Navigation" version="1.0" date="2013-05-22"> <function name="IsReady" messagetype="request" provider="hmi"> @@ -3077,34 +3725,17 @@ <description> Image / icon of intended location (if applicable and supported) </description> </param> </function> - <function name="SendLocation" messagetype="response" > + <function name="SendLocation" messagetype="response"> </function> <function name="DialNumber" functionID="DialNumberID" messagetype="request"> <description>Dials a phone number and switches to phone application.</description> - <param name="number" type="String" maxlength="40"> + <param name="number" type="String" maxlength="40" mandatory="true"> <description>Phone number is a string, which can be up to 40 chars.</description> </param> </function> <function name="DialNumber" functionID="DialNumberID" messagetype="response"> - <param name="success" type="Boolean" platform="documentation"> - <description>true, if successful</description> - <description>false, if failed</description> - </param> - <param name="resultCode" type="Result" platform="documentation"> - <description>See Result</description> - <element name="SUCCESS"/> - <element name="INVALID_DATA"/> - <element name="OUT_OF_MEMORY"/> - <element name="TOO_MANY_PENDING_REQUESTS"/> - <element name="APPLICATION_NOT_REGISTERED"/> - <element name="GENERIC_ERROR"/> - <element name="REJECTED"/> - </param> - <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation"> - <description>Provides additional human readable info regarding the result.</description> - </param> </function> <function name="ShowConstantTBT" messagetype="request" provider="hmi"> @@ -3174,6 +3805,27 @@ <description>Current State of TBT client</description> </param> </function> + <function name="SetVideoConfig" messagetype="request"> + <description>Request from SDL to HMI to ask whether HMI accepts a video stream with given configuration.</description> + <param name="config" type="Common.VideoConfig" mandatory="true"> + <description>Configuration of a video stream.</description> + </param> + <param name="appID" type="Integer" mandatory="true"> + <description>ID of application related to this RPC.</description> + </param> + </function> + <function name="SetVideoConfig" messagetype="response"> + <description> + Response from HMI to SDL whether the configuration is accepted. + In a negative response, a list of rejected parameters are supplied. + </description> + <param name="rejectedParams" type="String" array="true" minsize="1" maxsize="1000" mandatory="false"> + <description> + 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. + </description> + </param> + </function> <function name="StartStream" messagetype="request" provider="hmi"> <description>Request from SmartDeviceLinkCore to HMI to start playing video streaming.</description> <param name="url" type="String" minlength="21" maxlength="500" mandatory="true"> @@ -3213,18 +3865,54 @@ <function name="StopAudioStream" messagetype="response"> </function> <function name="OnAudioDataStreaming" messagetype="notification"> - <description>Sender: SDL->HMI. Purpose: notify about raw audio data presence over the URL provided via StartAudioStream SDL's request.</description> + <description>Sender: SDL->HMI. Purpose: notify about raw audio data presence over the URL provided via StartAudioStream SDL's request.</description> <param name="available" type="Boolean" mandatory="true"> <description>If "true" - audio data started. If "false" - audio data stopped.</description> </param> </function> <function name="OnVideoDataStreaming" messagetype="notification"> - <description>Sender: SDL->HMI. Purpose: notify about raw video data presence over the URL provided via StartStream SDL's request.</description> + <description>Sender: SDL->HMI. Purpose: notify about raw video data presence over the URL provided via StartStream SDL's request.</description> <param name="available" type="Boolean" mandatory="true"> <description>If "true" - video data started. If "false" - video data stopped.</description> </param> </function> + <function name="GetWayPoints" functionID="GetWayPointsID" messagetype="request"> + <description>Request for getting waypoint/destination data.</description> + <param name="wayPointType" type="Common.WayPointType" mandatory="true"> + <description>To request for either the destination only or for all waypoints including destination</description> + </param> + <param name="appID" type="Integer" mandatory="true"> + <description>ID of the application.</description> + </param> + </function> + <function name="GetWayPoints" functionID="GetWayPointsID" messagetype="response"> + <param name="appID" type="Integer" mandatory="true"> + <description>ID of the application.</description> + </param> + <param name="wayPoints" type="Common.LocationDetails" mandatory="false" array="true" minsize="1" maxsize="10"> + <description>See LocationDetails</description> + </param> + </function> + <function name="OnWayPointChange" functionID="OnWayPointChangeID" messagetype="notification"> + <description>Notification which provides the entire LocationDetails when there is a change to any waypoints or destination.</description> + <param name="wayPoints" type="Common.LocationDetails" mandatory="true" array="true" minsize="1" maxsize="10"> + <description>See LocationDetails</description> + </param> + </function> + + <function name="SubscribeWayPoints" functionID="SubscribeWayPointsID" messagetype="request"> + <description>To subscribe in getting changes for Waypoints/destinations</description> + </function> + <function name="SubscribeWayPoints" functionID="SubscribeWayPointsID" messagetype="response"> + </function> + + <function name="UnsubscribeWayPoints" functionID="UnsubscribeWayPointsID" messagetype="request"> + <description>Request to unsubscribe from WayPoints and Destination</description> + </function> + + <function name="UnsubscribeWayPoints" functionID="UnsubscribeWayPointsID" messagetype="response"> + </function> </interface> <interface name="VehicleInfo" version="1.0" date="2013-04-21"> @@ -3307,6 +3995,555 @@ </description> </param> </function> + <function name="SubscribeVehicleData" messagetype="request"> + <description> + 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. + </description> + <param name="gps" type="Boolean" mandatory="false"> + <description>See GPSData</description> + </param> + <param name="speed" type="Boolean" mandatory="false"> + <description>The vehicle speed in kilometers per hour</description> + </param> + <param name="rpm" type="Boolean" mandatory="false"> + <description>The number of revolutions per minute of the engine</description> + </param> + <param name="fuelLevel" type="Boolean" mandatory="false"> + <description>The fuel level in the tank (percentage)</description> + </param> + <param name="fuelLevel_State" type="Boolean" mandatory="false"> + <description>The fuel level state</description> + </param> + <param name="instantFuelConsumption" type="Boolean" mandatory="false"> + <description>The instantaneous fuel consumption in microlitres</description> + </param> + <param name="externalTemperature" type="Boolean" mandatory="false"> + <description>The external temperature in degrees celsius</description> + </param> + <param name="prndl" type="Boolean" mandatory="false"> + <description>See PRNDL</description> + </param> + <param name="tirePressure" type="Boolean" mandatory="false"> + <description>See TireStatus</description> + </param> + <param name="odometer" type="Boolean" mandatory="false"> + <description>Odometer in km</description> + </param> + <param name="beltStatus" type="Boolean" mandatory="false"> + <description>The status of the seat belts</description> + </param> + <param name="bodyInformation" type="Boolean" mandatory="false"> + <description>The body information including power modes</description> + </param> + <param name="deviceStatus" type="Boolean" mandatory="false"> + <description>The device status including signal and battery strength</description> + </param> + <param name="driverBraking" type="Boolean" mandatory="false"> + <description>The status of the brake pedal</description> + </param> + <param name="wiperStatus" type="Boolean" mandatory="false"> + <description>The status of the wipers</description> + </param> + <param name="headLampStatus" type="Boolean" mandatory="false"> + <description>Status of the head lamps</description> + </param> + <param name="engineTorque" type="Boolean" mandatory="false"> + <description>Torque value for engine (in Nm) on non-diesel variants</description> + </param> + <param name="accPedalPosition" type="Boolean" mandatory="false"> + <description>Accelerator pedal position (percentage depressed)</description> + </param> + <param name="steeringWheelAngle" type="Boolean" mandatory="false"> + <description>Current angle of the steering wheel (in deg)</description> + </param> + <!-- Ford Specific Data Items --> + <param name="eCallInfo" type="Boolean" mandatory="false"> + <description>Emergency Call notification and confirmation data</description> + </param> + <param name="airbagStatus" type="Boolean" mandatory="false"> + <description>The status of the air bags</description> + </param> + <param name="emergencyEvent" type="Boolean" mandatory="false"> + <description>Information related to an emergency event (and if it occurred)</description> + </param> + <param name="clusterModeStatus" type="Boolean" mandatory="false"> + <description>The status modes of the cluster</description> + </param> + <param name="myKey" type="Boolean" mandatory="false"> + <description>Information related to the MyKey feature</description> + </param> + <!-- / Ford Specific Data Items --> + </function> + <function name="SubscribeVehicleData" messagetype="response"> + <param name="gps" type="Common.VehicleDataResult" mandatory="false"> + <description>See GPSData</description> + </param> + <param name="speed" type="Common.VehicleDataResult" mandatory="false"> + <description>The vehicle speed in kilometers per hour</description> + </param> + <param name="rpm" type="Common.VehicleDataResult" mandatory="false"> + <description>The number of revolutions per minute of the engine</description> + </param> + <param name="fuelLevel" type="Common.VehicleDataResult" mandatory="false"> + <description>The fuel level in the tank (percentage)</description> + </param> + <param name="fuelLevel_State" type="Common.VehicleDataResult" mandatory="false"> + <description>The fuel level state</description> + </param> + <param name="instantFuelConsumption" type="Common.VehicleDataResult" mandatory="false"> + <description>The instantaneous fuel consumption in microlitres</description> + </param> + <param name="externalTemperature" type="Common.VehicleDataResult" mandatory="false"> + <description>The external temperature in degrees celsius.</description> + </param> + <param name="prndl" type="Common.VehicleDataResult" mandatory="false"> + <description>See PRNDL</description> + </param> + <param name="tirePressure" type="Common.VehicleDataResult" mandatory="false"> + <description>See TireStatus</description> + </param> + <param name="odometer" type="Common.VehicleDataResult" mandatory="false"> + <description>Odometer in km</description> + </param> + <param name="beltStatus" type="Common.VehicleDataResult" mandatory="false"> + <description>The status of the seat belts</description> + </param> + <param name="bodyInformation" type="Common.VehicleDataResult" mandatory="false"> + <description>The body information including power modes</description> + </param> + <param name="deviceStatus" type="Common.VehicleDataResult" mandatory="false"> + <description>The device status including signal and battery strength</description> + </param> + <param name="driverBraking" type="Common.VehicleDataResult" mandatory="false"> + <description>The status of the brake pedal</description> + </param> + <param name="wiperStatus" type="Common.VehicleDataResult" mandatory="false"> + <description>The status of the wipers</description> + </param> + <param name="headLampStatus" type="Common.VehicleDataResult" mandatory="false"> + <description>Status of the head lamps</description> + </param> + <param name="engineTorque" type="Common.VehicleDataResult" mandatory="false"> + <description>Torque value for engine (in Nm) on non-diesel variants</description> + </param> + <param name="accPedalPosition" type="Common.VehicleDataResult" mandatory="false"> + <description>Accelerator pedal position (percentage depressed)</description> + </param> + <param name="steeringWheelAngle" type="Common.VehicleDataResult" mandatory="false"> + <description>Current angle of the steering wheel (in deg)</description> + </param> + <!-- Ford Specific Data Items --> + <param name="eCallInfo" type="Common.VehicleDataResult" mandatory="false"> + <description>Emergency Call notification and confirmation data</description> + </param> + <param name="airbagStatus" type="Common.VehicleDataResult" mandatory="false"> + <description>The status of the air bags</description> + </param> + <param name="emergencyEvent" type="Common.VehicleDataResult" mandatory="false"> + <description>Information related to an emergency event (and if it occurred)</description> + </param> + <param name="clusterModes" type="Common.VehicleDataResult" mandatory="false"> + <description>The status modes of the cluster</description> + </param> + <param name="myKey" type="Common.VehicleDataResult" mandatory="false"> + <description>Information related to the MyKey feature</description> + </param> + <!-- / Ford Specific Data Items --> + </function> + <function name="UnsubscribeVehicleData" messagetype="request"> + <description> + This function is used to unsubscribe the notifications from the subscribeVehicleData function. + </description> + <param name="appID" type="Integer" mandatory="true"> + <description>ID of application that requested this RPC.</description> + </param> + <param name="gps" type="Boolean" mandatory="false"> + <description>See GPSData</description> + </param> + <param name="speed" type="Boolean" mandatory="false"> + <description>The vehicle speed in kilometers per hour</description> + </param> + <param name="rpm" type="Boolean" mandatory="false"> + <description>The number of revolutions per minute of the engine</description> + </param> + <param name="fuelLevel" type="Boolean" mandatory="false"> + <description>The fuel level in the tank (percentage)</description> + </param> + <param name="fuelLevel_State" type="Boolean" mandatory="false"> + <description>The fuel level state</description> + </param> + <param name="instantFuelConsumption" type="Boolean" mandatory="false"> + <description>The instantaneous fuel consumption in microlitres</description> + </param> + <param name="externalTemperature" type="Boolean" mandatory="false"> + <description>The external temperature in degrees celsius.</description> + </param> + <param name="prndl" type="Boolean" mandatory="false"> + <description>See PRNDL</description> + </param> + <param name="tirePressure" type="Boolean" mandatory="false"> + <description>See TireStatus</description> + </param> + <param name="odometer" type="Boolean" mandatory="false"> + <description>Odometer in km</description> + </param> + <param name="beltStatus" type="Boolean" mandatory="false"> + <description>The status of the seat belts</description> + </param> + <param name="bodyInformation" type="Boolean" mandatory="false"> + <description>The body information including power modes</description> + </param> + <param name="deviceStatus" type="Boolean" mandatory="false"> + <description>The device status including signal and battery strength</description> + </param> + <param name="driverBraking" type="Boolean" mandatory="false"> + <description>The status of the brake pedal</description> + </param> + <param name="wiperStatus" type="Boolean" mandatory="false"> + <description>The status of the wipers</description> + </param> + <param name="headLampStatus" type="Boolean" mandatory="false"> + <description>Status of the head lamps</description> + </param> + <param name="engineTorque" type="Boolean" mandatory="false"> + <description>Torque value for engine (in Nm) on non-diesel variants</description> + </param> + <param name="accPedalPosition" type="Boolean" mandatory="false"> + <description>Accelerator pedal position (percentage depressed)</description> + </param> + <param name="steeringWheelAngle" type="Boolean" mandatory="false"> + <description>Current angle of the steering wheel (in deg)</description> + </param> + <!-- Ford Specific Data Items --> + <param name="eCallInfo" type="Boolean" mandatory="false"> + <description>Emergency Call notification and confirmation data</description> + </param> + <param name="airbagStatus" type="Boolean" mandatory="false"> + <description>The status of the air bags</description> + </param> + <param name="emergencyEvent" type="Boolean" mandatory="false"> + <description>Information related to an emergency event (and if it occurred)</description> + </param> + <param name="clusterModeStatus" type="Boolean" mandatory="false"> + <description>The status modes of the cluster</description> + </param> + <param name="myKey" type="Boolean" mandatory="false"> + <description>Information related to the MyKey feature</description> + </param> + <!-- / Ford Specific Data Items --> + </function> + <function name="UnsubscribeVehicleData" messagetype="response"> + <param name="gps" type="Common.VehicleDataResult" mandatory="false"> + <description>See GPSData</description> + </param> + <param name="speed" type="Common.VehicleDataResult" mandatory="false"> + <description>The vehicle speed in kilometers per hour</description> + </param> + <param name="rpm" type="Common.VehicleDataResult" mandatory="false"> + <description>The number of revolutions per minute of the engine</description> + </param> + <param name="fuelLevel" type="Common.VehicleDataResult" mandatory="false"> + <description>The fuel level in the tank (percentage)</description> + </param> + <param name="fuelLevel_State" type="Common.VehicleDataResult" mandatory="false"> + <description>The fuel level state</description> + </param> + <param name="instantFuelConsumption" type="Common.VehicleDataResult" mandatory="false"> + <description>The instantaneous fuel consumption in microlitres</description> + </param> + <param name="externalTemperature" type="Common.VehicleDataResult" mandatory="false"> + <description>The external temperature in degrees celsius</description> + </param> + <param name="prndl" type="Common.VehicleDataResult" mandatory="false"> + <description>See PRNDL</description> + </param> + <param name="tirePressure" type="Common.VehicleDataResult" mandatory="false"> + <description>See TireStatus</description> + </param> + <param name="odometer" type="Common.VehicleDataResult" mandatory="false"> + <description>Odometer in km</description> + </param> + <param name="beltStatus" type="Common.VehicleDataResult" mandatory="false"> + <description>The status of the seat belts</description> + </param> + <param name="bodyInformation" type="Common.VehicleDataResult" mandatory="false"> + <description>The body information including power modes</description> + </param> + <param name="deviceStatus" type="Common.VehicleDataResult" mandatory="false"> + <description>The device status including signal and battery strength</description> + </param> + <param name="driverBraking" type="Common.VehicleDataResult" mandatory="false"> + <description>The status of the brake pedal</description> + </param> + <param name="wiperStatus" type="Common.VehicleDataResult" mandatory="false"> + <description>The status of the wipers</description> + </param> + <param name="headLampStatus" type="Common.VehicleDataResult" mandatory="false"> + <description>Status of the head lamps</description> + </param> + <param name="engineTorque" type="Common.VehicleDataResult" mandatory="false"> + <description>Torque value for engine (in Nm) on non-diesel variants</description> + </param> + <param name="accPedalPosition" type="Common.VehicleDataResult" mandatory="false"> + <description>Accelerator pedal position (percentage depressed)</description> + </param> + <param name="steeringWheelAngle" type="Common.VehicleDataResult" mandatory="false"> + <description>Current angle of the steering wheel (in deg)</description> + </param> + <!-- Ford Specific Data Items --> + <param name="eCallInfo" type="Common.VehicleDataResult" mandatory="false"> + <description>Emergency Call notification and confirmation data</description> + </param> + <param name="airbagStatus" type="Common.VehicleDataResult" mandatory="false"> + <description>The status of the air bags</description> + </param> + <param name="emergencyEvent" type="Common.VehicleDataResult" mandatory="false"> + <description>Information related to an emergency event (and if it occurred)</description> + </param> + <param name="clusterModes" type="Common.VehicleDataResult" mandatory="false"> + <description>The status modes of the cluster</description> + </param> + <param name="myKey" type="Common.VehicleDataResult" mandatory="false"> + <description>Information related to the MyKey feature</description> + </param> + <!-- / Ford Specific Data Items --> + </function> + <function name="GetVehicleData" messagetype="request"> + <description>Non periodic vehicle data read request.</description> + <param name="gps" type="Boolean" mandatory="false"> + <description>See GPSData</description> + </param> + <param name="speed" type="Boolean" mandatory="false"> + <description>The vehicle speed in kilometers per hour</description> + </param> + <param name="rpm" type="Boolean" mandatory="false"> + <description>The number of revolutions per minute of the engine</description> + </param> + <param name="fuelLevel" type="Boolean" mandatory="false"> + <description>The fuel level in the tank (percentage)</description> + </param> + <param name="fuelLevel_State" type="Boolean" mandatory="false"> + <description>The fuel level state</description> + </param> + <param name="instantFuelConsumption" type="Boolean" mandatory="false"> + <description>The instantaneous fuel consumption in microlitres</description> + </param> + <param name="externalTemperature" type="Boolean" mandatory="false"> + <description>The external temperature in degrees celsius</description> + </param> + <param name="vin" type="Boolean" mandatory="false"> + <description>Vehicle identification number</description> + </param> + <param name="prndl" type="Boolean" mandatory="false"> + <description>See PRNDL</description> + </param> + <param name="tirePressure" type="Boolean" mandatory="false"> + <description>See TireStatus</description> + </param> + <param name="odometer" type="Boolean" mandatory="false"> + <description>Odometer in km</description> + </param> + <param name="beltStatus" type="Boolean" mandatory="false"> + <description>The status of the seat belts</description> + </param> + <param name="bodyInformation" type="Boolean" mandatory="false"> + <description>The body information including ignition status and internal temp</description> + </param> + <param name="deviceStatus" type="Boolean" mandatory="false"> + <description>The device status including signal and battery strength</description> + </param> + <param name="driverBraking" type="Boolean" mandatory="false"> + <description>The status of the brake pedal</description> + </param> + <param name="wiperStatus" type="Boolean" mandatory="false"> + <description>The status of the wipers</description> + </param> + <param name="headLampStatus" type="Boolean" mandatory="false"> + <description>Status of the head lamps</description> + </param> + <param name="engineTorque" type="Boolean" mandatory="false"> + <description>Torque value for engine (in Nm) on non-diesel variants</description> + </param> + <param name="accPedalPosition" type="Boolean" mandatory="false"> + <description>Accelerator pedal position (percentage depressed)</description> + </param> + <param name="steeringWheelAngle" type="Boolean" mandatory="false"> + <description>Current angle of the steering wheel (in deg)</description> + </param> + <param name="eCallInfo" type="Boolean" mandatory="false"> + <description>Emergency Call notification and confirmation data</description> + </param> + <param name="airbagStatus" type="Boolean" mandatory="false"> + <description>The status of the air bags</description> + </param> + <param name="emergencyEvent" type="Boolean" mandatory="false"> + <description>Information related to an emergency event (and if it occurred)</description> + </param> + <param name="clusterModeStatus" type="Boolean" mandatory="false"> + <description>The status modes of the cluster</description> + </param> + <param name="myKey" type="Boolean" mandatory="false"> + <description>Information related to the MyKey feature</description> + </param> + </function> + <function name="GetVehicleData" messagetype="response"> + <param name="gps" type="Common.GPSData" mandatory="false"> + <description>See GPSData</description> + </param> + <param name="speed" type="Float" minvalue="0" maxvalue="700" mandatory="false"> + <description>The vehicle speed in kilometers per hour</description> + </param> + <param name="rpm" type="Integer" minvalue="0" maxvalue="20000" mandatory="false"> + <description>The number of revolutions per minute of the engine</description> + </param> + <param name="fuelLevel" type="Float" minvalue="-6" maxvalue="106" mandatory="false"> + <description>The fuel level in the tank (percentage)</description> + </param> + <param name="fuelLevel_State" type="Common.ComponentVolumeStatus" mandatory="false"> + <description>The fuel level state</description> + </param> + <param name="instantFuelConsumption" type="Float" minvalue="0" maxvalue="25575" mandatory="false"> + <description>The instantaneous fuel consumption in microlitres</description> + </param> + <param name="externalTemperature" type="Float" minvalue="-40" maxvalue="100" mandatory="false"> + <description>The external temperature in degrees celsius</description> + </param> + <param name="vin" type="String" maxlength="17" mandatory="false"> + <description>Vehicle identification number</description> + </param> + <param name="prndl" type="Common.PRNDL" mandatory="false"> + <description>See PRNDL</description> + </param> + <param name="tirePressure" type="Common.TireStatus" mandatory="false"> + <description>See TireStatus</description> + </param> + <param name="odometer" type="Integer" minvalue="0" maxvalue="17000000" mandatory="false"> + <description>Odometer in km</description> + </param> + <param name="beltStatus" type="Common.BeltStatus" mandatory="false"> + <description>The status of the seat belts</description> + </param> + <param name="bodyInformation" type="Common.BodyInformation" mandatory="false"> + <description>The body information including power modes</description> + </param> + <param name="deviceStatus" type="Common.DeviceStatus" mandatory="false"> + <description>The device status including signal and battery strength</description> + </param> + <param name="driverBraking" type="Common.VehicleDataEventStatus" mandatory="false"> + <description>The status of the brake pedal</description> + </param> + <param name="wiperStatus" type="Common.WiperStatus" mandatory="false"> + <description>The status of the wipers</description> + </param> + <param name="headLampStatus" type="Common.HeadLampStatus" mandatory="false"> + <description>Status of the head lamps</description> + </param> + <param name="engineTorque" type="Float" minvalue="-1000" maxvalue="2000" mandatory="false"> + <description>Torque value for engine (in Nm) on non-diesel variants</description> + </param> + <param name="accPedalPosition" type="Float" minvalue="0" maxvalue="100" mandatory="false"> + <description>Accelerator pedal position (percentage depressed)</description> + </param> + <param name="steeringWheelAngle" type="Float" minvalue="-2000" maxvalue="2000" mandatory="false"> + <description>Current angle of the steering wheel (in deg)</description> + </param> + <param name="eCallInfo" type="Common.ECallInfo" mandatory="false"> + <description>Emergency Call notification and confirmation data</description> + </param> + <param name="airbagStatus" type="Common.AirbagStatus" mandatory="false"> + <description>The status of the air bags</description> + </param> + <param name="emergencyEvent" type="Common.EmergencyEvent" mandatory="false"> + <description>Information related to an emergency event (and if it occurred)</description> + </param> + <param name="clusterModeStatus" type="Common.ClusterModeStatus" mandatory="false"> + <description>The status modes of the cluster</description> + </param> + <param name="myKey" type="Common.MyKey" mandatory="false"> + <description>Information related to the MyKey feature</description> + </param> + </function> + <function name="OnVehicleData" messagetype="notification"> + <description>Callback for the periodic and non periodic vehicle data read function.</description> + <param name="gps" type="Common.GPSData" mandatory="false"> + <description>See GPSData</description> + </param> + <param name="speed" type="Float" minvalue="0" maxvalue="700" mandatory="false"> + <description>The vehicle speed in kilometers per hour</description> + </param> + <param name="rpm" type="Integer" minvalue="0" maxvalue="20000" mandatory="false"> + <description>The number of revolutions per minute of the engine</description> + </param> + <param name="fuelLevel" type="Float" minvalue="-6" maxvalue="106" mandatory="false"> + <description>The fuel level in the tank (percentage)</description> + </param> + <param name="fuelLevel_State" type="Common.ComponentVolumeStatus" mandatory="false"> + <description>The fuel level state</description> + </param> + <param name="instantFuelConsumption" type="Float" minvalue="0" maxvalue="25575" mandatory="false"> + <description>The instantaneous fuel consumption in microlitres</description> + </param> + <param name="externalTemperature" type="Float" minvalue="-40" maxvalue="100" mandatory="false"> + <description>The external temperature in degrees celsius</description> + </param> + <param name="vin" type="String" maxlength="17" mandatory="false"> + <description>Vehicle identification number.</description> + </param> + <param name="prndl" type="Common.PRNDL" mandatory="false"> + <description>See PRNDL</description> + </param> + <param name="tirePressure" type="Common.TireStatus" mandatory="false"> + <description>See TireStatus</description> + </param> + <param name="odometer" type="Integer" minvalue="0" maxvalue="17000000" mandatory="false"> + <description>Odometer in km</description> + </param> + <param name="beltStatus" type="Common.BeltStatus" mandatory="false"> + <description>The status of the seat belts</description> + </param> + <param name="bodyInformation" type="Common.BodyInformation" mandatory="false"> + <description>The body information including power modes</description> + </param> + <param name="deviceStatus" type="Common.DeviceStatus" mandatory="false"> + <description>The device status including signal and battery strength</description> + </param> + <param name="driverBraking" type="Common.VehicleDataEventStatus" mandatory="false"> + <description>The status of the brake pedal</description> + </param> + <param name="wiperStatus" type="Common.WiperStatus" mandatory="false"> + <description>The status of the wipers</description> + </param> + <param name="headLampStatus" type="Common.HeadLampStatus" mandatory="false"> + <description>Status of the head lamps</description> + </param> + <param name="engineTorque" type="Float" minvalue="-1000" maxvalue="2000" mandatory="false"> + <description>Torque value for engine (in Nm) on non-diesel variants</description> + </param> + <param name="accPedalPosition" type="Float" minvalue="0" maxvalue="100" mandatory="false"> + <description>Accelerator pedal position (percentage depressed)</description> + </param> + <param name="steeringWheelAngle" type="Float" minvalue="-2000" maxvalue="2000" mandatory="false"> + <description>Current angle of the steering wheel (in deg)</description> + </param> + <param name="eCallInfo" type="Common.ECallInfo" mandatory="false"> + <description>Emergency Call notification and confirmation data</description> + </param> + <param name="airbagStatus" type="Common.AirbagStatus" mandatory="false"> + <description>The status of the air bags</description> + </param> + <param name="emergencyEvent" type="Common.EmergencyEvent" mandatory="false"> + <description>Information related to an emergency event (and if it occurred)</description> + </param> + <param name="clusterModeStatus" type="Common.ClusterModeStatus" mandatory="false"> + <description>The status modes of the cluster</description> + </param> + <param name="myKey" type="Common.MyKey" mandatory="false"> + <description>Information related to the MyKey feature</description> + </param> + </function> <!--Qt HMI version of GetVehicleData--> <function name="GetGpsData" messagetype="request" provider="hmi"> <param name="appID" type="Integer" mandatory="true"> @@ -4184,8 +5421,97 @@ </function> <function name="OnDeviceStateChanged" messagetype="notification" scope="internal" provider="hmi"> <param name="deviceState" type="Common.DeviceState" mandatory="true"/> - <param name="deviceInternalId" type="String" mandatory="true" minlength="0" maxlength="500" /> + <param name="deviceInternalId" type="String" mandatory="true" minlength="0" maxlength="500"/> <param name="deviceId" type="Common.DeviceInfo" mandatory="false"/> </function> </interface> -</interfaces> +<interface name="RC" version="1.1.0" date="2017-07-18"> + <function name="IsReady" messagetype="request"> + <description>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.</description> + </function> + <function name="IsReady" messagetype="response"> + <param name="available" type="Boolean" mandatory="true"> + <description>Must be true if vehicle RC modules are present and ready to communicate with SDL.</description> + </param> + </function> + + <function name="GetCapabilities" messagetype="request"> + <description>Method is invoked at system startup by SDL to request information about Remote Control capabilities of HMI.</description> + </function> + <function name="GetCapabilities" messagetype="response"> + <param name="remoteControlCapability" type="Common.RemoteControlCapabilities" mandatory="false"> + <description>See RemoteControlCapabilities, all available RC modules and buttons shall be returned.</description> + </param> + </function> + + <function name="SetInteriorVehicleData" functionID="SetInteriorVehicleDataID" messagetype="request"> + <param name="moduleData" type="Common.ModuleData" mandatory="true" > + <description>The module type and data to set</description> + </param> + <param name="appID" type="Integer" mandatory="true"> + <description>Internal SDL-assigned ID of the related application</description> + </param> + </function> + + <function name="SetInteriorVehicleData" messagetype="response"> + <description>Used to set the values of one zone and one data type within that zone</description> + <param name="moduleData" type="Common.ModuleData" mandatory="true" > + </param> + </function> + +<function name="GetInteriorVehicleData" messagetype="request"> + <param name="moduleType" type="Common.ModuleType" mandatory="true" > + <description>The module data to retrieve from the vehicle for that type</description> + </param> + <param name="subscribe" type="Boolean" mandatory="false" defvalue="false"> + <description>If subscribe is true, the head unit will send onInteriorVehicleData notifications for the module type</description> + </param> + <param name="appID" type="Integer" mandatory="true"> + <description>Internal SDL-assigned ID of the related application</description> + </param> +</function> + +<function name="GetInteriorVehicleData" messagetype="response"> + <param name="moduleData" type="Common.ModuleData" mandatory="true" > + </param> + <param name="isSubscribed" type="Boolean" mandatory="false" > + <description>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.</description> + </param> +</function> + +<function name="GetInteriorVehicleDataConsent" messagetype="request"> + <description>Sender: SDL->HMI. </description> + <description>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.</description> + <param name="moduleType" type="Common.ModuleType" mandatory="true"> + <description>The module type that the app requests to control.</description> + </param> + <param name="appID" type="Integer" mandatory="true"> + <description>ID of the application that triggers the permission prompt.</description> + </param> + </function> + <function name="GetInteriorVehicleDataConsent" messagetype="response"> + <param name="allowed" type="Boolean" mandatory="true"> + <description>"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.</description> + </param> +</function> + +<function name="OnInteriorVehicleData" messagetype="notification"> + <param name="moduleData" type="Common.ModuleData" mandatory="true" > + </param> +</function> + +<function name="OnRemoteControlSettings" messagetype="notification"> + <description>Sender: vehicle -> RSDL. Notification about remote-control settings changed. Sent after User`s choice through HMI.</description> + <param name="allowed" type="Boolean" mandatory="false" > + <description>If "true" - RC is allowed; if "false" - RC is disallowed.</description> + </param> + <param name="accessMode" type="Common.RCAccessMode" mandatory="false" > + <description>The remote control access mode specified by the driver via HMI.</description> + </param> +</function> +</interface> +</interfaces>
\ No newline at end of file diff --git a/src/components/rpc_base/test/CMakeLists.txt b/src/components/rpc_base/test/CMakeLists.txt index 566f0ddcde..ca4f41fe76 100644 --- a/src/components/rpc_base/test/CMakeLists.txt +++ b/src/components/rpc_base/test/CMakeLists.txt @@ -34,7 +34,6 @@ include_directories( ${COMPONENTS_DIR}/dbus/include ${COMPONENTS_DIR}/dbus/src ${COMPONENTS_DIR}/rpc_base/include - ${CMAKE_SOURCE_DIR}/src/3rd_party/dbus-1.7.8 ${GMOCK_INCLUDE_DIRECTORY} ${JSONCPP_INCLUDE_DIRECTORY} ) diff --git a/src/components/rpc_base/test/rpc_base_test.cc b/src/components/rpc_base/test/rpc_base_test.cc index c4ffbc321e..d81e01db6c 100644 --- a/src/components/rpc_base/test/rpc_base_test.cc +++ b/src/components/rpc_base/test/rpc_base_test.cc @@ -320,7 +320,7 @@ TEST(ValidatedTypes, ReportUninitializedIntType) { ASSERT_FALSE(val.is_valid()); ValidationReport report("val"); val.ReportErrors(&report); - ASSERT_EQ("val: value is not initialized\n", PrettyFormat(report)); + ASSERT_EQ("val: value is not initialized", PrettyFormat(report)); } TEST(ValidatedTypes, ReportIncorrectInitializedIntType) { @@ -328,7 +328,7 @@ TEST(ValidatedTypes, ReportIncorrectInitializedIntType) { ASSERT_FALSE(val.is_valid()); ValidationReport report("val"); val.ReportErrors(&report); - ASSERT_EQ("val: value initialized incorrectly\n", PrettyFormat(report)); + ASSERT_EQ("val: value initialized incorrectly", PrettyFormat(report)); } TEST(ValidatedTypes, ReportUninitializedOptionalType) { @@ -344,7 +344,7 @@ TEST(ValidatedTypes, ReportIncorrectInitializedOptionalType) { ASSERT_FALSE(val.is_valid()); ValidationReport report("val"); val.ReportErrors(&report); - ASSERT_EQ("val: value initialized incorrectly\n", PrettyFormat(report)); + ASSERT_EQ("val: value initialized incorrectly", PrettyFormat(report)); } TEST(ValidatedTypes, ReportUninitializedNullableIntType) { @@ -352,7 +352,7 @@ TEST(ValidatedTypes, ReportUninitializedNullableIntType) { ASSERT_FALSE(val.is_valid()); ValidationReport report("val"); val.ReportErrors(&report); - ASSERT_EQ("val: value is not initialized\n", PrettyFormat(report)); + ASSERT_EQ("val: value is not initialized", PrettyFormat(report)); } TEST(ValidatedTypes, ReportNullInitializedNullableIntType) { @@ -369,7 +369,7 @@ TEST(ValidatedTypes, ReportNoninitializedIntArray) { ASSERT_FALSE(array.is_valid()); ValidationReport report("array"); array.ReportErrors(&report); - ASSERT_EQ("array: object is not initialized\n", PrettyFormat(report)); + ASSERT_EQ("array: object is not initialized", PrettyFormat(report)); } TEST(ValidatedTypes, ReportIncorrectlyInitializedIntArray1) { @@ -378,7 +378,7 @@ TEST(ValidatedTypes, ReportIncorrectlyInitializedIntArray1) { ASSERT_FALSE(array.is_valid()); ValidationReport report("array"); array.ReportErrors(&report); - ASSERT_EQ("array[0]: value initialized incorrectly\n", PrettyFormat(report)); + ASSERT_EQ("array[0]: value initialized incorrectly", PrettyFormat(report)); } TEST(ValidatedTypes, ReportIncorrectlyInitializedIntArray2) { @@ -390,7 +390,7 @@ TEST(ValidatedTypes, ReportIncorrectlyInitializedIntArray2) { ASSERT_FALSE(array.is_valid()); ValidationReport report("array"); array.ReportErrors(&report); - ASSERT_EQ("array: array has invalid size\n", PrettyFormat(report)); + ASSERT_EQ("array: array has invalid size", PrettyFormat(report)); } TEST(ValidatedTypes, ReportIncorrectlyInitializedArray3) { @@ -403,7 +403,7 @@ TEST(ValidatedTypes, ReportIncorrectlyInitializedArray3) { array.ReportErrors(&report); ASSERT_EQ( "array: array has invalid size\n" - "array[2]: value initialized incorrectly\n", + "array[2]: value initialized incorrectly", PrettyFormat(report)); } @@ -411,7 +411,7 @@ TEST(ValidatedTypes, ReportUninitializedMap) { Map<Integer<int8_t, 1, 10>, 1, 3> map; ValidationReport report("map"); map.ReportErrors(&report); - ASSERT_EQ("map: object is not initialized\n", PrettyFormat(report)); + ASSERT_EQ("map: object is not initialized", PrettyFormat(report)); } TEST(ValidatedTypes, ReportIncorrectlyInitializedMap1) { @@ -419,7 +419,7 @@ TEST(ValidatedTypes, ReportIncorrectlyInitializedMap1) { map["aha"] = 42; ValidationReport report("map"); map.ReportErrors(&report); - ASSERT_EQ("map[\"aha\"]: value initialized incorrectly\n", + ASSERT_EQ("map[\"aha\"]: value initialized incorrectly", PrettyFormat(report)); } @@ -433,7 +433,7 @@ TEST(ValidatedTypes, ReportIncorrectlyInitializedMap2) { map.ReportErrors(&report); ASSERT_EQ( "map[\"haha\"]: value initialized incorrectly\n" - "map[\"muhahaha\"]: value initialized incorrectly\n", + "map[\"muhahaha\"]: value initialized incorrectly", PrettyFormat(report)); } diff --git a/src/components/rpc_base/test/validation_report_test.cc b/src/components/rpc_base/test/validation_report_test.cc index 596bfdb20d..10effe7dd2 100644 --- a/src/components/rpc_base/test/validation_report_test.cc +++ b/src/components/rpc_base/test/validation_report_test.cc @@ -75,7 +75,7 @@ class ValidationReportTest : public testing::Test { } else { temp = ""; } - result = parent_name + temp + obj_name + ":" + " " + val_info + "\n"; + result = parent_name + temp + obj_name + ":" + " " + val_info; } void ClearValidationInfo() { diff --git a/src/components/smart_objects/include/smart_objects/always_false_schema_item.h b/src/components/smart_objects/include/smart_objects/always_false_schema_item.h index dfbf4ba43e..cdddcfed55 100644 --- a/src/components/smart_objects/include/smart_objects/always_false_schema_item.h +++ b/src/components/smart_objects/include/smart_objects/always_false_schema_item.h @@ -49,11 +49,20 @@ class CAlwaysFalseSchemaItem : public ISchemaItem { **/ static utils::SharedPtr<CAlwaysFalseSchemaItem> create(); /** + * @deprecated * @brief Validate smart object. * @param Object Object to validate. * @return Errors::ERROR **/ Errors::eType validate(const SmartObject& Object) OVERRIDE; + /** + * @brief Validate smart object. + * @param Object Object to validate. + * @param report__ object for reporting errors during validation + * @return Errors::ERROR + **/ + Errors::eType validate(const SmartObject& Object, + rpc::ValidationReport* report__) OVERRIDE; private: CAlwaysFalseSchemaItem(); diff --git a/src/components/smart_objects/include/smart_objects/always_true_schema_item.h b/src/components/smart_objects/include/smart_objects/always_true_schema_item.h index 3dd598d7bd..e078ae3240 100644 --- a/src/components/smart_objects/include/smart_objects/always_true_schema_item.h +++ b/src/components/smart_objects/include/smart_objects/always_true_schema_item.h @@ -49,11 +49,20 @@ class CAlwaysTrueSchemaItem : public ISchemaItem { **/ static utils::SharedPtr<CAlwaysTrueSchemaItem> create(); /** + * @deprecated * @brief Validate smart object. * @param Object Object to validate. * @return NsSmartObjects::Errors::eType **/ Errors::eType validate(const SmartObject& Object) OVERRIDE; + /** + * @brief Validate smart object. + * @param Object Object to validate. + * @param report__ object for reporting errors during validation + * @return NsSmartObjects::Errors::eType + **/ + Errors::eType validate(const SmartObject& Object, + rpc::ValidationReport* report__) OVERRIDE; private: CAlwaysTrueSchemaItem(); diff --git a/src/components/smart_objects/include/smart_objects/array_schema_item.h b/src/components/smart_objects/include/smart_objects/array_schema_item.h index 0d3a651d56..937979f2fa 100644 --- a/src/components/smart_objects/include/smart_objects/array_schema_item.h +++ b/src/components/smart_objects/include/smart_objects/array_schema_item.h @@ -63,6 +63,8 @@ class CArraySchemaItem : public ISchemaItem { TSchemaItemParameter<size_t>()); /** + * @deprecated + * * @brief Validate smart object. * * @param Object Object to validate. @@ -72,6 +74,18 @@ class CArraySchemaItem : public ISchemaItem { Errors::eType validate(const SmartObject& Object) OVERRIDE; /** + * @brief Validate smart object. + * + * @param Object Object to validate. + * @param report__ object for reporting errors during validation + * message if an error occurs + * + * @return NsSmartObjects::Errors::eType + **/ + Errors::eType validate(const SmartObject& Object, + rpc::ValidationReport* report__) OVERRIDE; + + /** * @brief Apply schema. * * @param Object Object to apply schema. diff --git a/src/components/smart_objects/include/smart_objects/default_shema_item.h b/src/components/smart_objects/include/smart_objects/default_shema_item.h index 857354a4e6..56952dbac1 100644 --- a/src/components/smart_objects/include/smart_objects/default_shema_item.h +++ b/src/components/smart_objects/include/smart_objects/default_shema_item.h @@ -50,11 +50,20 @@ class CDefaultSchemaItem : public ISchemaItem { public: typedef TSchemaItemParameter<Type> ParameterType; /** + * @deprecated * @brief Validate smart object. * @param Object Object to validate. - * @return NsSmartObjects::Errors::eType + * @return Errors::ERROR **/ Errors::eType validate(const SmartObject& Object) OVERRIDE; + /** + * @brief Validate smart object. + * @param Object Object to validate. + * @param report__ object for reporting errors during validation + * @return Errors::ERROR + **/ + Errors::eType validate(const SmartObject& Object, + rpc::ValidationReport* report__) OVERRIDE; /** * @brief Set default value to an object. @@ -99,8 +108,23 @@ CDefaultSchemaItem<Type>::CDefaultSchemaItem(const ParameterType& DefaultValue) template <typename Type> Errors::eType CDefaultSchemaItem<Type>::validate(const SmartObject& Object) { - return (getSmartType() == Object.getType()) ? Errors::OK - : Errors::INVALID_VALUE; + rpc::ValidationReport report("RPC"); + return validate(Object, &report); +} + +template <typename Type> +Errors::eType CDefaultSchemaItem<Type>::validate( + const SmartObject& Object, rpc::ValidationReport* report__) { + if (getSmartType() != Object.getType()) { + std::string validation_info = "Incorrect type, expected: " + + SmartObject::typeToString(getSmartType()) + + ", got: " + + SmartObject::typeToString(Object.getType()); + report__->set_validation_info(validation_info); + return Errors::INVALID_VALUE; + } else { + return Errors::OK; + } } template <typename Type> diff --git a/src/components/smart_objects/include/smart_objects/enum_schema_item.h b/src/components/smart_objects/include/smart_objects/enum_schema_item.h index a0d6d94017..524d966188 100644 --- a/src/components/smart_objects/include/smart_objects/enum_schema_item.h +++ b/src/components/smart_objects/include/smart_objects/enum_schema_item.h @@ -65,12 +65,21 @@ class TEnumSchemaItem : public CDefaultSchemaItem<EnumType> { const TSchemaItemParameter<EnumType>& DefaultValue = TSchemaItemParameter<EnumType>()); /** + * @deprecated * @brief Validate smart object. * @param Object Object to validate. * @return NsSmartObjects::Errors::eType **/ Errors::eType validate(const SmartObject& Object) OVERRIDE; /** + * @brief Validate smart object. + * @param Object Object to validate. + * @param report__ object for reporting errors during validation + * @return NsSmartObjects::Errors::eType + **/ + Errors::eType validate(const SmartObject& Object, + rpc::ValidationReport* report__) OVERRIDE; + /** * @brief Apply schema. * This implementation checks if enumeration is represented as string * and tries to convert it to integer according to element-to-string @@ -207,11 +216,32 @@ utils::SharedPtr<TEnumSchemaItem<EnumType> > TEnumSchemaItem<EnumType>::create( template <typename EnumType> Errors::eType TEnumSchemaItem<EnumType>::validate(const SmartObject& Object) { + rpc::ValidationReport report("RPC"); + return validate(Object, &report); +} + +template <typename EnumType> +Errors::eType TEnumSchemaItem<EnumType>::validate( + const SmartObject& Object, rpc::ValidationReport* report__) { if (SmartType_Integer != Object.getType()) { + std::string validation_info; + if (SmartType_String == Object.getType()) { + validation_info = "Invalid enum value: " + Object.asString(); + } else { + validation_info = "Incorrect type, expected: " + + SmartObject::typeToString(SmartType_Integer) + + " (enum), got: " + + SmartObject::typeToString(Object.getType()); + } + report__->set_validation_info(validation_info); return Errors::INVALID_VALUE; } if (mAllowedElements.find(static_cast<EnumType>(Object.asInt())) == mAllowedElements.end()) { + std::stringstream stream; + stream << "Invalid enum value: " << Object.asInt(); + std::string validation_info = stream.str(); + report__->set_validation_info(validation_info); return Errors::OUT_OF_RANGE; } return Errors::OK; diff --git a/src/components/smart_objects/include/smart_objects/number_schema_item.h b/src/components/smart_objects/include/smart_objects/number_schema_item.h index 01d6c08daa..d549b9891a 100644 --- a/src/components/smart_objects/include/smart_objects/number_schema_item.h +++ b/src/components/smart_objects/include/smart_objects/number_schema_item.h @@ -65,11 +65,20 @@ class TNumberSchemaItem : public CDefaultSchemaItem<NumberType> { TSchemaItemParameter<NumberType>()); /** + * @deprecated * @brief Validate smart object. * @param Object Object to validate. - * @return NsSmartObjects::Errors::eType + * @return Errors::ERROR **/ Errors::eType validate(const SmartObject& Object) OVERRIDE; + /** + * @brief Validate smart object. + * @param Object Object to validate. + * @param report__ object for reporting errors during validation + * @return Errors::ERROR + **/ + Errors::eType validate(const SmartObject& Object, + rpc::ValidationReport* report__) OVERRIDE; private: /** @@ -128,7 +137,21 @@ bool TNumberSchemaItem<NumberType>::isValidNumberType(SmartType type) { template <typename NumberType> Errors::eType TNumberSchemaItem<NumberType>::validate( const SmartObject& Object) { + rpc::ValidationReport report("RPC"); + return validate(Object, &report); +} + +template <typename NumberType> +Errors::eType TNumberSchemaItem<NumberType>::validate( + const SmartObject& Object, rpc::ValidationReport* report__) { if (!isValidNumberType(Object.getType())) { + SmartType expectedType = (typeid(double) == typeid(Object.getType())) + ? SmartType_Double + : SmartType_Integer; + std::string validation_info = + "Incorrect type, expected: " + SmartObject::typeToString(expectedType) + + ", got: " + SmartObject::typeToString(Object.getType()); + report__->set_validation_info(validation_info); return Errors::INVALID_VALUE; } NumberType value(0); @@ -148,10 +171,20 @@ Errors::eType TNumberSchemaItem<NumberType>::validate( NumberType rangeLimit; if (mMinValue.getValue(rangeLimit) && (value < rangeLimit)) { + std::stringstream stream; + stream << "Value too small, got: " << value + << ", minimum allowed: " << rangeLimit; + std::string validation_info = stream.str(); + report__->set_validation_info(validation_info); return Errors::OUT_OF_RANGE; } if (mMaxValue.getValue(rangeLimit) && (value > rangeLimit)) { + std::stringstream stream; + stream << "Value too large, got: " << value + << ", maximum allowed: " << rangeLimit; + std::string validation_info = stream.str(); + report__->set_validation_info(validation_info); return Errors::OUT_OF_RANGE; } return Errors::OK; diff --git a/src/components/smart_objects/include/smart_objects/object_schema_item.h b/src/components/smart_objects/include/smart_objects/object_schema_item.h index 549166e723..8922caba45 100644 --- a/src/components/smart_objects/include/smart_objects/object_schema_item.h +++ b/src/components/smart_objects/include/smart_objects/object_schema_item.h @@ -84,12 +84,21 @@ class CObjectSchemaItem : public ISchemaItem { **/ static utils::SharedPtr<CObjectSchemaItem> create(const Members& Members); /** + * @deprecated * @brief Validate smart object. * @param Object Object to validate. * @return NsSmartObjects::Errors::eType **/ Errors::eType validate(const SmartObject& Object) OVERRIDE; /** + * @brief Validate smart object. + * @param Object Object to validate. + * @param report__ object for reporting errors during validation + * @return NsSmartObjects::Errors::eType + **/ + Errors::eType validate(const SmartObject& Object, + rpc::ValidationReport* report__) OVERRIDE; + /** * @brief Apply schema. * @param Object Object to apply schema. * @param RemoveFakeParameters contains true if need to remove fake parameters diff --git a/src/components/smart_objects/include/smart_objects/schema_item.h b/src/components/smart_objects/include/smart_objects/schema_item.h index 08610f244e..446c7fa65f 100644 --- a/src/components/smart_objects/include/smart_objects/schema_item.h +++ b/src/components/smart_objects/include/smart_objects/schema_item.h @@ -34,6 +34,7 @@ #include <stdlib.h> #include "utils/shared_ptr.h" +#include "rpc_base/validation_report.h" #include "smart_objects/errors.h" @@ -47,13 +48,27 @@ class SmartObject; class ISchemaItem { public: /** - * @brief Validate object. + * @deprecated + * + * @brief Validate smart object. + * + * @param Object Object to validate. + * + * @return NsSmartObjects::Errors::eType + **/ + DEPRECATED virtual Errors::eType validate(const SmartObject& Object); + + /** + * @brief Validate smart object. * * @param Object Object to validate. + * @param report__ object for reporting errors during validation + * message if an error occurs * * @return NsSmartObjects::Errors::eType **/ - virtual Errors::eType validate(const SmartObject& Object); + virtual Errors::eType validate(const SmartObject& Object, + rpc::ValidationReport* report__); /** * @brief Set default value to an object. diff --git a/src/components/smart_objects/include/smart_objects/smart_object.h b/src/components/smart_objects/include/smart_objects/smart_object.h index 98e58fffd1..cc2bc7e22c 100644 --- a/src/components/smart_objects/include/smart_objects/smart_object.h +++ b/src/components/smart_objects/include/smart_objects/smart_object.h @@ -40,6 +40,7 @@ #include "smart_objects/smart_schema.h" #include "utils/custom_string.h" +#include "rpc_base/validation_report.h" namespace NsSmartDeviceLink { namespace NsSmartObjects { @@ -670,11 +671,20 @@ class SmartObject FINAL { bool isValid() const; /** + * @deprecated * @brief Validates object according to attached schema. * * @return Result of validation. */ - Errors::eType validate(); + DEPRECATED Errors::eType validate(); + + /** + * @brief Validates object according to attached schema. + * + * @param report__ object for reporting errors during validation + * @return Result of validation. + */ + Errors::eType validate(rpc::ValidationReport* report__); /** * @brief Sets new schema @@ -727,6 +737,35 @@ class SmartObject FINAL { return !(*this == Other); } + static std::string typeToString(SmartType type) { + switch (type) { + case SmartType_Null: + return "Null"; + case SmartType_Boolean: + return "Boolean"; + case SmartType_Integer: + return "Integer"; + case SmartType_Character: + return "Character"; + case SmartType_String: + return "String"; + case SmartType_Double: + return "Double"; + case SmartType_Map: + return "Object"; + case SmartType_Array: + return "Array"; + case SmartType_Binary: + return "Binary_Data"; + case SmartType_UInteger: + return "Unsigned_Integer"; + case SmartType_Invalid: + return "Invalid_Type"; + default: + return "Unknown_Type"; + } + } + protected: static std::string OperatorToTransform(const SmartMap::value_type& pair); /** diff --git a/src/components/smart_objects/include/smart_objects/smart_schema.h b/src/components/smart_objects/include/smart_objects/smart_schema.h index 52dfa12004..ada5646043 100644 --- a/src/components/smart_objects/include/smart_objects/smart_schema.h +++ b/src/components/smart_objects/include/smart_objects/smart_schema.h @@ -61,13 +61,26 @@ class CSmartSchema FINAL { explicit CSmartSchema(const ISchemaItemPtr SchemaItem); /** + * @deprecated + * * @brief Validate smart object. * - * @param Object SmartObject to validate. + * @param Object Object to validate. * - * @return Result of validation. - */ - Errors::eType validate(const SmartObject& Object) const; + * @return NsSmartObjects::Errors::eType + **/ + DEPRECATED Errors::eType validate(const SmartObject& Object) const; + + /** + * @brief Validate smart object. + * + * @param Object Object to validate. + * @param report__ object for reporting errors during validation + * + * @return NsSmartObjects::Errors::eType + **/ + Errors::eType validate(const SmartObject& Object, + rpc::ValidationReport* report__) const; /** * @brief Set new root schema item. diff --git a/src/components/smart_objects/include/smart_objects/string_schema_item.h b/src/components/smart_objects/include/smart_objects/string_schema_item.h index 7fad8491a5..6c98dcc3b3 100644 --- a/src/components/smart_objects/include/smart_objects/string_schema_item.h +++ b/src/components/smart_objects/include/smart_objects/string_schema_item.h @@ -62,11 +62,20 @@ class CStringSchemaItem : public CDefaultSchemaItem<std::string> { const TSchemaItemParameter<std::string>& DefaultValue = TSchemaItemParameter<std::string>()); /** + * @deprecated * @brief Validate smart object. * @param Object Object to validate. * @return NsSmartObjects::Errors::eType **/ Errors::eType validate(const SmartObject& Object) OVERRIDE; + /** + * @brief Validate smart object. + * @param Object Object to validate. + * @param report__ object for reporting errors during validation + * @return NsSmartObjects::Errors::eType + **/ + Errors::eType validate(const SmartObject& Object, + rpc::ValidationReport* report__) OVERRIDE; private: /** diff --git a/src/components/smart_objects/src/always_false_schema_item.cc b/src/components/smart_objects/src/always_false_schema_item.cc index 59e50e10c2..1893ed24d1 100644 --- a/src/components/smart_objects/src/always_false_schema_item.cc +++ b/src/components/smart_objects/src/always_false_schema_item.cc @@ -42,6 +42,13 @@ utils::SharedPtr<CAlwaysFalseSchemaItem> CAlwaysFalseSchemaItem::create() { } Errors::eType CAlwaysFalseSchemaItem::validate(const SmartObject& object) { + rpc::ValidationReport report("RPC"); + return validate(object, &report); +} + +Errors::eType CAlwaysFalseSchemaItem::validate( + const SmartObject& object, rpc::ValidationReport* report__) { + report__->set_validation_info("Generic error"); return Errors::ERROR; } } // namespace NsSmartObjects diff --git a/src/components/smart_objects/src/always_true_schema_item.cc b/src/components/smart_objects/src/always_true_schema_item.cc index a474b0e157..1e7115316d 100644 --- a/src/components/smart_objects/src/always_true_schema_item.cc +++ b/src/components/smart_objects/src/always_true_schema_item.cc @@ -43,5 +43,10 @@ Errors::eType CAlwaysTrueSchemaItem::validate(const SmartObject& object) { return Errors::OK; } +Errors::eType CAlwaysTrueSchemaItem::validate(const SmartObject& object, + rpc::ValidationReport* report__) { + return Errors::OK; +} + } // namespace NsSmartObjects } // namespace NsSmartDeviceLink diff --git a/src/components/smart_objects/src/array_schema_item.cc b/src/components/smart_objects/src/array_schema_item.cc index 105cacb25c..dca0a815e0 100644 --- a/src/components/smart_objects/src/array_schema_item.cc +++ b/src/components/smart_objects/src/array_schema_item.cc @@ -42,22 +42,45 @@ utils::SharedPtr<CArraySchemaItem> CArraySchemaItem::create( } Errors::eType CArraySchemaItem::validate(const SmartObject& Object) { + rpc::ValidationReport report("RPC"); + return validate(Object, &report); +} + +Errors::eType CArraySchemaItem::validate(const SmartObject& Object, + rpc::ValidationReport* report__) { if (SmartType_Array != Object.getType()) { + std::string validation_info = "Incorrect type, expected: " + + SmartObject::typeToString(SmartType_Array) + + ", got: " + + SmartObject::typeToString(Object.getType()); + report__->set_validation_info(validation_info); return Errors::INVALID_VALUE; } size_t sizeLimit; const size_t array_len = Object.length(); if (mMinSize.getValue(sizeLimit) && (array_len < sizeLimit)) { + std::stringstream stream; + stream << "Got array of size: " << array_len + << ", minimum allowed: " << sizeLimit; + std::string validation_info = stream.str(); + report__->set_validation_info(validation_info); return Errors::OUT_OF_RANGE; } if (mMaxSize.getValue(sizeLimit) && (array_len > sizeLimit)) { + std::stringstream stream; + stream << "Got array of size: " << array_len + << ", maximum allowed: " << sizeLimit; + std::string validation_info = stream.str(); + report__->set_validation_info(validation_info); return Errors::OUT_OF_RANGE; } for (size_t i = 0u; i < array_len; ++i) { - const Errors::eType result = - mElementSchemaItem->validate(Object.getElement(i)); + std::stringstream strVal; + strVal << i; + const Errors::eType result = mElementSchemaItem->validate( + Object.getElement(i), &report__->ReportSubobject(strVal.str())); if (Errors::OK != result) { return result; } diff --git a/src/components/smart_objects/src/object_schema_item.cc b/src/components/smart_objects/src/object_schema_item.cc index f0c17faaea..2bed3d9a26 100644 --- a/src/components/smart_objects/src/object_schema_item.cc +++ b/src/components/smart_objects/src/object_schema_item.cc @@ -57,7 +57,18 @@ utils::SharedPtr<CObjectSchemaItem> CObjectSchemaItem::create( } Errors::eType CObjectSchemaItem::validate(const SmartObject& object) { + rpc::ValidationReport report("RPC"); + return validate(object, &report); +} + +Errors::eType CObjectSchemaItem::validate(const SmartObject& object, + rpc::ValidationReport* report__) { if (SmartType_Map != object.getType()) { + std::string validation_info = "Incorrect type, expected: " + + SmartObject::typeToString(SmartType_Map) + + ", got: " + + SmartObject::typeToString(object.getType()); + report__->set_validation_info(validation_info); return Errors::INVALID_VALUE; } @@ -71,12 +82,15 @@ Errors::eType CObjectSchemaItem::validate(const SmartObject& object) { std::set<std::string>::const_iterator key_it = object_keys.find(key); if (object_keys.end() == key_it) { if (member.mIsMandatory) { + std::string validation_info = "Missing mandatory parameter: " + key; + report__->set_validation_info(validation_info); return Errors::MISSING_MANDATORY_PARAMETER; } continue; } const SmartObject& field = object.getElement(key); - const Errors::eType result = member.mSchemaItem->validate(field); + const Errors::eType result = + member.mSchemaItem->validate(field, &report__->ReportSubobject(key)); if (Errors::OK != result) { return result; } diff --git a/src/components/smart_objects/src/schema_item.cc b/src/components/smart_objects/src/schema_item.cc index 8c0bc0edb3..22735d40d5 100644 --- a/src/components/smart_objects/src/schema_item.cc +++ b/src/components/smart_objects/src/schema_item.cc @@ -35,7 +35,12 @@ namespace NsSmartDeviceLink { namespace NsSmartObjects { -Errors::eType ISchemaItem::validate(const SmartObject& object) { +Errors::eType ISchemaItem::validate(const SmartObject& Object) { + return Errors::ERROR; +} + +Errors::eType ISchemaItem::validate(const SmartObject& object, + rpc::ValidationReport* report__) { return Errors::ERROR; } diff --git a/src/components/smart_objects/src/smart_object.cc b/src/components/smart_objects/src/smart_object.cc index 5c90de5671..a0925eef05 100644 --- a/src/components/smart_objects/src/smart_object.cc +++ b/src/components/smart_objects/src/smart_object.cc @@ -869,11 +869,17 @@ bool SmartObject::erase(const std::string& Key) { } bool SmartObject::isValid() const { - return (Errors::OK == m_schema.validate(*this)); + rpc::ValidationReport report("RPC"); + return (Errors::OK == m_schema.validate(*this, &report)); } Errors::eType SmartObject::validate() { - return m_schema.validate(*this); + rpc::ValidationReport report("RPC"); + return validate(&report); +} + +Errors::eType SmartObject::validate(rpc::ValidationReport* report__) { + return m_schema.validate(*this, report__); } void SmartObject::setSchema(const CSmartSchema& schema) { diff --git a/src/components/smart_objects/src/smart_schema.cc b/src/components/smart_objects/src/smart_schema.cc index be24ceb076..7509ea80f1 100644 --- a/src/components/smart_objects/src/smart_schema.cc +++ b/src/components/smart_objects/src/smart_schema.cc @@ -40,8 +40,14 @@ CSmartSchema::CSmartSchema() : mSchemaItem(CAlwaysTrueSchemaItem::create()) {} CSmartSchema::CSmartSchema(const ISchemaItemPtr SchemaItem) : mSchemaItem(SchemaItem) {} -Errors::eType CSmartSchema::validate(const SmartObject& object) const { - return mSchemaItem->validate(object); +Errors::eType CSmartSchema::validate(const SmartObject& Object) const { + rpc::ValidationReport report("RPC"); + return validate(Object, &report); +} + +Errors::eType CSmartSchema::validate(const SmartObject& object, + rpc::ValidationReport* report__) const { + return mSchemaItem->validate(object, report__); } void CSmartSchema::setSchemaItem(const ISchemaItemPtr schemaItem) { diff --git a/src/components/smart_objects/src/string_schema_item.cc b/src/components/smart_objects/src/string_schema_item.cc index 3fac3a6cde..1e4c8372f0 100644 --- a/src/components/smart_objects/src/string_schema_item.cc +++ b/src/components/smart_objects/src/string_schema_item.cc @@ -46,7 +46,18 @@ utils::SharedPtr<CStringSchemaItem> CStringSchemaItem::create( } Errors::eType CStringSchemaItem::validate(const SmartObject& Object) { + rpc::ValidationReport report("RPC"); + return validate(Object, &report); +} + +Errors::eType CStringSchemaItem::validate(const SmartObject& Object, + rpc::ValidationReport* report__) { if (SmartType_String != Object.getType()) { + std::string validation_info = "Incorrect type, expected: " + + SmartObject::typeToString(SmartType_String) + + ", got: " + + SmartObject::typeToString(Object.getType()); + report__->set_validation_info(validation_info); return Errors::INVALID_VALUE; } @@ -54,9 +65,19 @@ Errors::eType CStringSchemaItem::validate(const SmartObject& Object) { size_t length; if (mMinLength.getValue(length) && (value.size() < length)) { + std::stringstream stream; + stream << "Got string of size: " << value.size() + << ", minimum allowed: " << length; + std::string validation_info = stream.str(); + report__->set_validation_info(validation_info); return Errors::OUT_OF_RANGE; } if (mMaxLength.getValue(length) && (value.size() > length)) { + std::stringstream stream; + stream << "Got string of size: " << value.size() + << ", maximum allowed: " << length; + std::string validation_info = stream.str(); + report__->set_validation_info(validation_info); return Errors::OUT_OF_RANGE; } return Errors::OK; diff --git a/src/components/smart_objects/test/AlwaysFalseSchemaItem_test.cc b/src/components/smart_objects/test/AlwaysFalseSchemaItem_test.cc index 85615d4911..9d88178598 100644 --- a/src/components/smart_objects/test/AlwaysFalseSchemaItem_test.cc +++ b/src/components/smart_objects/test/AlwaysFalseSchemaItem_test.cc @@ -52,38 +52,39 @@ TEST(test_AlwaysFalseSchemaItemTest, simple_test) { ISchemaItemPtr item = CAlwaysFalseSchemaItem::create(); obj = 5; - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::ERROR, resultType); EXPECT_EQ(5, obj.asInt()); obj = true; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::ERROR, resultType); EXPECT_TRUE(obj.asBool()); obj = "Test"; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::ERROR, resultType); EXPECT_EQ(std::string("Test"), obj.asString()); obj["First"] = "Some string"; obj["Second"] = 555; - resultType = item->validate(obj["First"]); + resultType = item->validate(obj["First"], &report); EXPECT_EQ(Errors::ERROR, resultType); - resultType = item->validate(obj["Second"]); + resultType = item->validate(obj["Second"], &report); EXPECT_EQ(Errors::ERROR, resultType); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::ERROR, resultType); EXPECT_EQ(std::string("Some string"), obj["First"].asString()); EXPECT_EQ(555, obj["Second"].asInt()); obj[0] = true; obj[1] = false; - resultType = item->validate(obj[0]); + resultType = item->validate(obj[0], &report); EXPECT_EQ(Errors::ERROR, resultType); - resultType = item->validate(obj[1]); + resultType = item->validate(obj[1], &report); EXPECT_EQ(Errors::ERROR, resultType); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::ERROR, resultType); EXPECT_TRUE(obj[0].asBool()); EXPECT_FALSE(obj[1].asBool()); diff --git a/src/components/smart_objects/test/AlwaysTrueSchemaItem_test.cc b/src/components/smart_objects/test/AlwaysTrueSchemaItem_test.cc index 7a87108cb0..40c827e17b 100644 --- a/src/components/smart_objects/test/AlwaysTrueSchemaItem_test.cc +++ b/src/components/smart_objects/test/AlwaysTrueSchemaItem_test.cc @@ -52,38 +52,39 @@ TEST(test_AlwaysTrueSchemaItemTest, simple_test) { ISchemaItemPtr item = CAlwaysTrueSchemaItem::create(); obj = 5; - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); EXPECT_EQ(5, obj.asInt()); obj = true; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); EXPECT_TRUE(obj.asBool()); obj = "Test"; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); EXPECT_EQ(std::string("Test"), obj.asString()); obj["First"] = "Some string"; obj["Second"] = 555; - resultType = item->validate(obj["First"]); + resultType = item->validate(obj["First"], &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj["Second"]); + resultType = item->validate(obj["Second"], &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); EXPECT_EQ(std::string("Some string"), obj["First"].asString()); EXPECT_EQ(555, obj["Second"].asInt()); obj[0] = true; obj[1] = false; - resultType = item->validate(obj[0]); + resultType = item->validate(obj[0], &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj[1]); + resultType = item->validate(obj[1], &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); EXPECT_TRUE(obj[0].asBool()); EXPECT_FALSE(obj[1].asBool()); diff --git a/src/components/smart_objects/test/ArraySchemaItem_test.cc b/src/components/smart_objects/test/ArraySchemaItem_test.cc index fa42813f8d..9831f08442 100644 --- a/src/components/smart_objects/test/ArraySchemaItem_test.cc +++ b/src/components/smart_objects/test/ArraySchemaItem_test.cc @@ -66,28 +66,29 @@ TEST(test_no_default_value, test_ArraySchemaItemTest) { EXPECT_FALSE(obj[3][1].asBool()); EXPECT_EQ(std::string("Another String"), obj[3][2].asString()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj[0]); + resultType = item->validate(obj[0], &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resultType = item->validate(obj[1]); + resultType = item->validate(obj[1], &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resultType = item->validate(obj[2]); + resultType = item->validate(obj[2], &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resultType = item->validate(obj[3]); + resultType = item->validate(obj[3], &report); EXPECT_EQ(Errors::OK, resultType); item->applySchema(obj, false); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj[0]); + resultType = item->validate(obj[0], &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resultType = item->validate(obj[1]); + resultType = item->validate(obj[1], &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resultType = item->validate(obj[2]); + resultType = item->validate(obj[2], &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resultType = item->validate(obj[3]); + resultType = item->validate(obj[3], &report); EXPECT_EQ(Errors::OK, resultType); EXPECT_EQ(38, obj[0].asInt()); @@ -101,19 +102,19 @@ TEST(test_no_default_value, test_ArraySchemaItemTest) { obj = "New valid string"; ASSERT_EQ(std::string("New valid string"), obj.asString()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); // Obj - bool obj = true; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); // Object - number obj = 3.1415926; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); } @@ -137,24 +138,25 @@ TEST(test_item_with_default_value, test_ArraySchemaItemTest) { EXPECT_EQ(std::string("true"), obj[1].asString()); EXPECT_EQ(std::string("New String"), obj[2].asString()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj[0]); + resultType = item->validate(obj[0], &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resultType = item->validate(obj[1]); + resultType = item->validate(obj[1], &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resultType = item->validate(obj[2]); + resultType = item->validate(obj[2], &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); item->applySchema(obj, false); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj[0]); + resultType = item->validate(obj[0], &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resultType = item->validate(obj[1]); + resultType = item->validate(obj[1], &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resultType = item->validate(obj[2]); + resultType = item->validate(obj[2], &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); EXPECT_EQ(std::string("Some String"), obj[0].asString()); @@ -169,14 +171,14 @@ TEST(test_item_with_default_value, test_ArraySchemaItemTest) { EXPECT_EQ(std::string("false"), obj[3][1].asString()); EXPECT_EQ(std::string("Another String"), obj[3][2].asString()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj[3]); + resultType = item->validate(obj[3], &report); EXPECT_EQ(Errors::OK, resultType); obj[3][3] = "Another very very loooooong String"; - resultType = item->validate(obj[3]); + resultType = item->validate(obj[3], &report); EXPECT_EQ(Errors::OK, resultType); } @@ -193,17 +195,18 @@ TEST(test_array_with_min_size, test_ArraySchemaItemTest) { obj[0] = "Some String"; - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); obj[1] = "true"; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); obj[2] = "New String"; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); EXPECT_EQ(std::string("Some String"), obj[0].asString()); @@ -226,22 +229,23 @@ TEST(test_array_with_max_size, test_ArraySchemaItemTest) { obj[0] = "Some String"; - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); obj[1] = "true"; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); obj[2] = "New String"; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); obj[3] = "Another String"; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); EXPECT_EQ(std::string("Some String"), obj[0].asString()); @@ -265,27 +269,28 @@ TEST(test_array_with_min_and_max_size, test_ArraySchemaItemTest) { obj[0] = "Some String"; - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); obj[1] = "true"; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); obj[2] = "New String"; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); obj[3] = "Another String"; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); obj[4] = "Out of array"; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); EXPECT_EQ(std::string("Some String"), obj[0].asString()); @@ -307,29 +312,30 @@ TEST(test_map_validate, test_ArraySchemaItemTest) { obj["array"][0] = "Some String"; - int resultType = item->validate(obj["array"]); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj["array"], &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); obj["array"][1] = "true"; - resultType = item->validate(obj["array"]); + resultType = item->validate(obj["array"], &report); EXPECT_EQ(Errors::OK, resultType); obj["array"][2] = "New String"; - resultType = item->validate(obj["array"]); + resultType = item->validate(obj["array"], &report); EXPECT_EQ(Errors::OK, resultType); obj["array"][3] = "Another String"; - resultType = item->validate(obj["array"]); + resultType = item->validate(obj["array"], &report); EXPECT_EQ(Errors::OK, resultType); obj["array"][4] = "Out of array"; - resultType = item->validate(obj["array"]); + resultType = item->validate(obj["array"], &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); EXPECT_EQ(std::string("Some String"), obj["array"][0].asString()); diff --git a/src/components/smart_objects/test/BoolSchemaItem_test.cc b/src/components/smart_objects/test/BoolSchemaItem_test.cc index 8e39af8e08..8d67aa59b2 100644 --- a/src/components/smart_objects/test/BoolSchemaItem_test.cc +++ b/src/components/smart_objects/test/BoolSchemaItem_test.cc @@ -63,14 +63,15 @@ TEST(test_no_default_value, test_BoolSchemaItemTest) { obj = 5; ASSERT_EQ(5, obj.asInt()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); obj = true; ASSERT_TRUE(obj.asBool()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); bool resDefault = item->setDefaultValue(obj); EXPECT_FALSE(resDefault); @@ -79,12 +80,12 @@ TEST(test_no_default_value, test_BoolSchemaItemTest) { obj = "Test"; ASSERT_EQ(std::string("Test"), obj.asString()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); resDefault = item->setDefaultValue(obj); EXPECT_FALSE(resDefault); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); } @@ -109,14 +110,15 @@ TEST(test_item_with_default_value, test_BoolSchemaItemTest) { obj = 5; ASSERT_EQ(5, obj.asInt()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); obj = true; ASSERT_TRUE(obj.asBool()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); bool resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); @@ -125,14 +127,14 @@ TEST(test_item_with_default_value, test_BoolSchemaItemTest) { obj = "Test"; ASSERT_EQ(std::string("Test"), obj.asString()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); EXPECT_FALSE(obj.asBool()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); EXPECT_FALSE(obj.asBool()); } @@ -147,10 +149,11 @@ TEST(test_map_validate, test_BoolSchemaItemTest) { obj["aa"] = true; ASSERT_TRUE(obj["aa"].asBool()); - int resultType = item->validate(obj["aa"]); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj["aa"], &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); @@ -162,11 +165,11 @@ TEST(test_map_validate, test_BoolSchemaItemTest) { EXPECT_TRUE(resDefault); EXPECT_FALSE(obj.asBool()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); obj["ind"] = true; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); } @@ -182,13 +185,14 @@ TEST(test_array_validate, test_BoolSchemaItemTest) { ASSERT_TRUE(obj[0].asBool()); ASSERT_FALSE(obj[1].asBool()); - int resultType = item->validate(obj[0]); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj[0], &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); - resultType = item->validate(obj[1]); + resultType = item->validate(obj[1], &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); @@ -200,13 +204,13 @@ TEST(test_array_validate, test_BoolSchemaItemTest) { EXPECT_FALSE(resDefault); EXPECT_FALSE(obj[1].asBool()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); obj = false; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); } diff --git a/src/components/smart_objects/test/CObjectSchemaItem_test.cc b/src/components/smart_objects/test/CObjectSchemaItem_test.cc index 7dd63ae6eb..523b25a8d8 100644 --- a/src/components/smart_objects/test/CObjectSchemaItem_test.cc +++ b/src/components/smart_objects/test/CObjectSchemaItem_test.cc @@ -155,7 +155,9 @@ TEST_F(ObjectSchemaItemTest, validation_correct) { obj[S_MSG_PARAMS][Keys::INFO] = "0123456789"; obj[S_MSG_PARAMS][Keys::SUCCESS] = true; - EXPECT_EQ(Errors::OK, schema_item->validate(obj)); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::OK, schema_item->validate(obj, &report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); } TEST_F(ObjectSchemaItemTest, validation_correct_skip_not_mandatory) { @@ -167,7 +169,9 @@ TEST_F(ObjectSchemaItemTest, validation_correct_skip_not_mandatory) { // skip non-mandatory obj[S_MSG_PARAMS][Keys::INFO] obj[S_MSG_PARAMS][Keys::SUCCESS] = false; - EXPECT_EQ(Errors::OK, schema_item->validate(obj)); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::OK, schema_item->validate(obj, &report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); } TEST_F(ObjectSchemaItemTest, validation_invalid_param) { @@ -175,7 +179,9 @@ TEST_F(ObjectSchemaItemTest, validation_invalid_param) { obj[S_PARAMS] = "some parameters"; obj[S_MSG_PARAMS] = "some message parameters"; - EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj)); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj, &report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); obj[S_PARAMS][S_FUNCTION_ID] = "some function"; obj[S_PARAMS][S_CORRELATION_ID] = "some correlation id"; @@ -183,23 +189,35 @@ TEST_F(ObjectSchemaItemTest, validation_invalid_param) { obj[S_MSG_PARAMS][Keys::RESULT_CODE] = "some result"; obj[S_MSG_PARAMS][Keys::SUCCESS] = 0xABC; - EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj)); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj, &report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); obj[S_PARAMS][S_FUNCTION_ID] = 1; - EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj)); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj, &report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); obj[S_PARAMS][S_CORRELATION_ID] = -0xFF1; - EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj)); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj, &report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); obj[S_PARAMS][S_PROTOCOL_VERSION] = 2; - EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj)); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj, &report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); obj[S_MSG_PARAMS][Keys::RESULT_CODE] = 1; - EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj)); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj, &report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); obj[S_MSG_PARAMS][Keys::SUCCESS] = false; - EXPECT_EQ(Errors::OK, schema_item->validate(obj)); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::OK, schema_item->validate(obj, &report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); } TEST_F(ObjectSchemaItemTest, validation_invalid_not_mandatory_param) { SmartObject obj; @@ -211,18 +229,26 @@ TEST_F(ObjectSchemaItemTest, validation_invalid_not_mandatory_param) { // invalid non-mandatory obj[S_MSG_PARAMS][Keys::INFO] obj[S_MSG_PARAMS][Keys::INFO] = 0x10; - EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj)); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj, &report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); // invalid non-mandatory obj[S_MSG_PARAMS][Keys::INFO] obj[S_MSG_PARAMS][Keys::INFO] = true; - EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj)); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj, &report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); // invalid non-mandatory obj[S_MSG_PARAMS][Keys::INFO] obj[S_MSG_PARAMS][Keys::INFO] = SmartObject(); - EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj)); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj, &report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); obj[S_MSG_PARAMS][Keys::INFO] = "info"; - EXPECT_EQ(Errors::OK, schema_item->validate(obj)); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::OK, schema_item->validate(obj, &report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); } TEST_F(ObjectSchemaItemTest, validation_missing_mandatory) { @@ -234,18 +260,29 @@ TEST_F(ObjectSchemaItemTest, validation_missing_mandatory) { obj[S_MSG_PARAMS][Keys::INFO] = "123"; obj[S_MSG_PARAMS][Keys::SUCCESS] = false; - EXPECT_EQ(Errors::MISSING_MANDATORY_PARAMETER, schema_item->validate(obj)); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::MISSING_MANDATORY_PARAMETER, + schema_item->validate(obj, &report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); obj[S_PARAMS][S_FUNCTION_ID] = 2; // S_CORRELATION_ID and S_PROTOCOL_VERSION is still missed - EXPECT_EQ(Errors::MISSING_MANDATORY_PARAMETER, schema_item->validate(obj)); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::MISSING_MANDATORY_PARAMETER, + schema_item->validate(obj, &report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); obj[S_PARAMS][S_CORRELATION_ID] = 0XFF2; // S_PROTOCOL_VERSION is still missed - EXPECT_EQ(Errors::MISSING_MANDATORY_PARAMETER, schema_item->validate(obj)); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::MISSING_MANDATORY_PARAMETER, + schema_item->validate(obj, &report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); obj[S_PARAMS][S_PROTOCOL_VERSION] = 1; - EXPECT_EQ(Errors::OK, schema_item->validate(obj)); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::OK, schema_item->validate(obj, &report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); } TEST_F(ObjectSchemaItemTest, validation_unexpected_param) { @@ -263,15 +300,21 @@ TEST_F(ObjectSchemaItemTest, validation_unexpected_param) { obj[fake1] = SmartObject(static_cast<int64_t>(0)); // any fake parameter is OK - EXPECT_EQ(Errors::OK, schema_item->validate(obj)); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::OK, schema_item->validate(obj, &report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); obj[S_PARAMS][fake2] = SmartObject("123"); // any fake parameters are OK - EXPECT_EQ(Errors::OK, schema_item->validate(obj)); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::OK, schema_item->validate(obj, &report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); obj[S_MSG_PARAMS][fake3] = true; // any fake parameters are OK - EXPECT_EQ(Errors::OK, schema_item->validate(obj)); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::OK, schema_item->validate(obj, &report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); } TEST_F(ObjectSchemaItemTest, validation_unexpected_param_remove) { @@ -297,7 +340,9 @@ TEST_F(ObjectSchemaItemTest, validation_unexpected_param_remove) { EXPECT_TRUE(obj.keyExists(fake1)); EXPECT_TRUE(obj[S_PARAMS].keyExists(fake2)); EXPECT_TRUE(obj[S_MSG_PARAMS].keyExists(fake3)); - EXPECT_EQ(Errors::OK, schema_item->validate(obj)); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::OK, schema_item->validate(obj, &report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); // Check apply schema, remove fake parameter schema_item->applySchema(obj, true); @@ -310,7 +355,9 @@ TEST_F(ObjectSchemaItemTest, validation_unexpected_param_remove) { EXPECT_TRUE(obj[S_MSG_PARAMS].keyExists(Keys::RESULT_CODE)); EXPECT_TRUE(obj[S_MSG_PARAMS].keyExists(Keys::INFO)); EXPECT_TRUE(obj[S_MSG_PARAMS].keyExists(Keys::SUCCESS)); - EXPECT_EQ(Errors::OK, schema_item->validate(obj)); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::OK, schema_item->validate(obj, &report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); obj[fake1] = SmartObject(static_cast<int64_t>(0)); obj[S_PARAMS][fake2] = SmartObject("123"); @@ -324,7 +371,9 @@ TEST_F(ObjectSchemaItemTest, validation_unexpected_param_remove) { EXPECT_FALSE(obj[S_PARAMS].keyExists(fake2)); EXPECT_FALSE(obj[S_MSG_PARAMS].keyExists(fake3)); // Invalide state after enum convertion - EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj)); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj, &report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); } TEST_F(ObjectSchemaItemTest, validation_empty_params) { @@ -338,14 +387,20 @@ TEST_F(ObjectSchemaItemTest, validation_empty_params) { obj[S_MSG_PARAMS]["FAKE_PARAM2"] = SmartObject(0x1); obj[S_MSG_PARAMS]["FAKE_PARAM3"] = SmartObject("2"); - EXPECT_EQ(Errors::OK, schema_item->validate(obj)); + rpc::ValidationReport report("RPC"); + EXPECT_EQ(Errors::OK, schema_item->validate(obj, &report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); schema_item->applySchema(obj, false); - EXPECT_EQ(Errors::OK, schema_item->validate(obj)); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::OK, schema_item->validate(obj, &report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); schema_item->unapplySchema(obj); // Invalide state after enum convertion - EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj)); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::INVALID_VALUE, schema_item->validate(obj, &report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); } TEST_F(ObjectSchemaItemTest, test_strings_to_enum_conversion) { @@ -380,10 +435,14 @@ TEST_F(ObjectSchemaItemTest, test_strings_to_enum_conversion) { object[S_MSG_PARAMS][Keys::RESULT_CODE] = result_type_str; // S_FUNCTION_ID and RESULT_CODE are not converted to int - EXPECT_NE(Errors::OK, schema_item->validate(object)); + rpc::ValidationReport report("RPC"); + EXPECT_NE(Errors::OK, schema_item->validate(object, &report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); schema_item->applySchema(object, false); - EXPECT_EQ(Errors::OK, schema_item->validate(object)); + report = rpc::ValidationReport("RPC"); + EXPECT_EQ(Errors::OK, schema_item->validate(object, &report)); + EXPECT_EQ(std::string(""), rpc::PrettyFormat(report)); // check conversion result EXPECT_EQ(function_type, object[S_PARAMS][S_FUNCTION_ID].asInt()); @@ -391,7 +450,9 @@ TEST_F(ObjectSchemaItemTest, test_strings_to_enum_conversion) { schema_item->unapplySchema(object); // S_FUNCTION_ID and RESULT_CODE are string - EXPECT_NE(Errors::OK, schema_item->validate(object)); + report = rpc::ValidationReport("RPC"); + EXPECT_NE(Errors::OK, schema_item->validate(object, &report)); + EXPECT_NE(std::string(""), rpc::PrettyFormat(report)); // check conversion result EXPECT_EQ(function_str, object[S_PARAMS][S_FUNCTION_ID].asString()); diff --git a/src/components/smart_objects/test/EnumSchemaItem_test.cc b/src/components/smart_objects/test/EnumSchemaItem_test.cc index e5ac013f86..9914167e5a 100644 --- a/src/components/smart_objects/test/EnumSchemaItem_test.cc +++ b/src/components/smart_objects/test/EnumSchemaItem_test.cc @@ -92,7 +92,8 @@ TEST_F(EnumSchemaItemTest, test_item_with_default_value) { // Object - valid enum obj = TestType::BLUETOOTH_OFF; - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); bool resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); @@ -101,7 +102,7 @@ TEST_F(EnumSchemaItemTest, test_item_with_default_value) { // Obj - bool obj = true; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); @@ -110,7 +111,7 @@ TEST_F(EnumSchemaItemTest, test_item_with_default_value) { // Object - number obj = 3.1415926; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); resDefault = item->setDefaultValue(obj); @@ -119,7 +120,7 @@ TEST_F(EnumSchemaItemTest, test_item_with_default_value) { // Object - string obj = "Some string"; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); resDefault = item->setDefaultValue(obj); @@ -142,7 +143,8 @@ TEST_F(EnumSchemaItemTest, test_item_without_default_value) { // Object - valid enum obj = TestType::BLUETOOTH_OFF; - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); bool resDefault = item->setDefaultValue(obj); EXPECT_FALSE(resDefault); @@ -151,7 +153,7 @@ TEST_F(EnumSchemaItemTest, test_item_without_default_value) { // Obj - bool obj = true; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); resDefault = item->setDefaultValue(obj); EXPECT_FALSE(resDefault); @@ -160,7 +162,7 @@ TEST_F(EnumSchemaItemTest, test_item_without_default_value) { // Object - number obj = 3.1415926; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); resDefault = item->setDefaultValue(obj); @@ -169,7 +171,7 @@ TEST_F(EnumSchemaItemTest, test_item_without_default_value) { // Object - string obj = "Some string"; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); resDefault = item->setDefaultValue(obj); @@ -178,12 +180,12 @@ TEST_F(EnumSchemaItemTest, test_item_without_default_value) { // Object - int in range of enum obj = 6; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); // Object - int out of enum range obj = 15; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); } @@ -199,31 +201,32 @@ TEST_F(EnumSchemaItemTest, test_apply_unapply_schema) { // Object - valid enum obj = TestType::BLUETOOTH_OFF; - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); bool resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); EXPECT_EQ(TestType::FACTORY_DEFAULTS, obj.asInt()); item->unapplySchema(obj); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); EXPECT_EQ(std::string("FACTORY_DEFAULTS"), obj.asString()); item->applySchema(obj, false); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); EXPECT_EQ(TestType::FACTORY_DEFAULTS, obj.asInt()); obj = "TOO_MANY_REQUESTS"; item->applySchema(obj, false); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); EXPECT_EQ(TestType::TOO_MANY_REQUESTS, obj.asInt()); obj = "ENOUGH_REQUESTS"; item->applySchema(obj, false); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); EXPECT_EQ(std::string("ENOUGH_REQUESTS"), obj.asString()); } diff --git a/src/components/smart_objects/test/NumberSchemaItem_test.cc b/src/components/smart_objects/test/NumberSchemaItem_test.cc index c9e183ca4a..0315bcedb3 100644 --- a/src/components/smart_objects/test/NumberSchemaItem_test.cc +++ b/src/components/smart_objects/test/NumberSchemaItem_test.cc @@ -61,20 +61,21 @@ TEST(test_int_no_default_value, test_NumberSchemaItemTest) { obj = 5; ASSERT_EQ(5, obj.asInt()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); // Obj bool obj = true; ASSERT_TRUE(obj.asBool()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); // Set default value bool resDefault = item->setDefaultValue(obj); EXPECT_FALSE(resDefault); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); EXPECT_TRUE(obj.asBool()); @@ -82,11 +83,11 @@ TEST(test_int_no_default_value, test_NumberSchemaItemTest) { obj = "Test"; ASSERT_EQ(std::string("Test"), obj.asString()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); resDefault = item->setDefaultValue(obj); EXPECT_FALSE(resDefault); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); } @@ -105,21 +106,22 @@ TEST(test_int_min_value, test_NumberSchemaItemTest) { obj = 15; ASSERT_EQ(15, obj.asInt()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); // Object int incorrect obj = 9; ASSERT_EQ(9, obj.asInt()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); // Object int correct obj = 10; ASSERT_EQ(10, obj.asInt()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); } @@ -139,21 +141,22 @@ TEST(test_int_max_value, test_NumberSchemaItemTest) { obj = 749; ASSERT_EQ(749, obj.asInt()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); // Object int incorrect obj = 750; ASSERT_EQ(750, obj.asInt()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); // Object int correct obj = -750; ASSERT_EQ(-750, obj.asInt()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); } @@ -173,28 +176,29 @@ TEST(test_int_min_max_value, test_NumberSchemaItemTest) { obj = 749; ASSERT_EQ(749, obj.asInt()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); // Object int incorrect obj = 750; ASSERT_EQ(750, obj.asInt()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); // Object int correct obj = -949; ASSERT_EQ(-949, obj.asInt()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); // Object int incorrect obj = -950; ASSERT_EQ(-950, obj.asInt()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); } @@ -215,44 +219,45 @@ TEST(test_int_correct_default_value, test_NumberSchemaItemTest) { obj = -12000; ASSERT_EQ(-12000, obj.asInt()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); // Object int incorrect obj = -12001; ASSERT_EQ(-12001, obj.asInt()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); // Object int correct obj = 100; ASSERT_EQ(100, obj.asInt()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); // Object int incorrect obj = 101; ASSERT_EQ(101, obj.asInt()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); // Set default value bool resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); EXPECT_EQ(-38, obj.asInt()); // Object string obj = "string"; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); EXPECT_EQ(-38, obj.asInt()); } @@ -274,44 +279,45 @@ TEST(test_int_default_value_out_of_range, test_NumberSchemaItemTest) { obj = 90; ASSERT_EQ(90, obj.asInt()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); // Object int incorrect obj = 89; ASSERT_EQ(89, obj.asInt()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); // Object int correct obj = 100; ASSERT_EQ(100, obj.asInt()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); // Object int incorrect obj = 101; ASSERT_EQ(101, obj.asInt()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); // Set default value bool resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); EXPECT_EQ(50, obj.asInt()); // Object string obj = "string"; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); EXPECT_EQ(50, obj.asInt()); } @@ -331,15 +337,16 @@ TEST(test_int_map_validate, test_NumberSchemaItemTest) { obj["max"] = 100; obj["out_of_max"] = 101; - int resultType = item->validate(obj["min"]); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj["min"], &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj["max"]); + resultType = item->validate(obj["max"], &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj["out_of_min"]); + resultType = item->validate(obj["out_of_min"], &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - resultType = item->validate(obj["out_of_max"]); + resultType = item->validate(obj["out_of_max"], &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); // Set default value @@ -351,13 +358,13 @@ TEST(test_int_map_validate, test_NumberSchemaItemTest) { EXPECT_TRUE(resDefault); EXPECT_EQ(-38, obj.asInt()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj["min"]); + resultType = item->validate(obj["min"], &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); } @@ -376,21 +383,22 @@ TEST(test_int_array_validate, test_NumberSchemaItemTest) { obj[2] = 100; obj[3] = 101; - int resultType = item->validate(obj[0]); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj[0], &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OUT_OF_RANGE, resultType); - resultType = item->validate(obj[1]); + resultType = item->validate(obj[1], &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); - resultType = item->validate(obj[2]); + resultType = item->validate(obj[2], &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); - resultType = item->validate(obj[3]); + resultType = item->validate(obj[3], &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OUT_OF_RANGE, resultType); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); @@ -402,14 +410,14 @@ TEST(test_int_array_validate, test_NumberSchemaItemTest) { EXPECT_TRUE(resDefault); EXPECT_EQ(-38, obj.asInt()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); - resultType = item->validate(obj[0]); + resultType = item->validate(obj[0], &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); } @@ -433,20 +441,21 @@ TEST(test_double_no_default_value, test_NumberSchemaItemTest) { obj = 5.79; ASSERT_EQ(5.79, obj.asDouble()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); // Obj bool obj = true; ASSERT_TRUE(obj.asBool()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); // Set default value bool resDefault = item->setDefaultValue(obj); EXPECT_FALSE(resDefault); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); EXPECT_TRUE(obj.asBool()); @@ -454,13 +463,13 @@ TEST(test_double_no_default_value, test_NumberSchemaItemTest) { obj = "Test"; ASSERT_EQ(std::string("Test"), obj.asString()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); // Set default value resDefault = item->setDefaultValue(obj); EXPECT_FALSE(resDefault); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); } @@ -479,21 +488,22 @@ TEST(test_double_min_value, test_NumberSchemaItemTest) { obj = 10.000001; ASSERT_EQ(10.000001, obj.asDouble()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); // Object double incorrect obj = 9.999999; ASSERT_EQ(9.999999, obj.asDouble()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); /* //Object int obj = 10; ASSERT_EQ(10, obj.asInt()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType);*/ } @@ -513,21 +523,22 @@ TEST(test_double_max_value, test_NumberSchemaItemTest) { obj = 749.0; ASSERT_EQ(749.0, obj.asDouble()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); // Object double incorrect obj = 749.0001; ASSERT_EQ(749.0001, obj.asDouble()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); // Object double correct obj = -750.0; ASSERT_EQ(-750.0, obj.asDouble()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); } @@ -547,28 +558,29 @@ TEST(test_double_min_max_value, test_NumberSchemaItemTest) { obj = 749.0; ASSERT_EQ(749.0, obj.asDouble()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); // Object double incorrect obj = 749.001; ASSERT_EQ(749.001, obj.asDouble()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); // Object double correct obj = -949.0; ASSERT_EQ(-949.0, obj.asDouble()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); // Object double incorrect obj = -949.00001; ASSERT_EQ(-949.00001, obj.asDouble()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); } @@ -589,44 +601,45 @@ TEST(test_double_correct_default_value, test_NumberSchemaItemTest) { obj = -12000.0; ASSERT_EQ(-12000.0, obj.asDouble()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); // Object double incorrect obj = -12000.01; ASSERT_EQ(-12000.01, obj.asDouble()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); // Object double correct obj = 100.0; ASSERT_EQ(100.0, obj.asDouble()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); // Object double incorrect obj = 100.001; ASSERT_EQ(100.001, obj.asDouble()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); // Set default value bool resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); EXPECT_EQ(-38.0, obj.asDouble()); // Object string obj = "string"; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); EXPECT_EQ(-38.0, obj.asDouble()); } @@ -648,44 +661,45 @@ TEST(test_double_default_value_out_of_range, test_NumberSchemaItemTest) { obj = 90.0; ASSERT_EQ(90.0, obj.asDouble()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); // Object double incorrect obj = 89.999; ASSERT_EQ(89.999, obj.asDouble()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); // Object double correct obj = 100.0; ASSERT_EQ(100.0, obj.asDouble()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); // Object double incorrect obj = 100.001; ASSERT_EQ(100.001, obj.asDouble()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); // Set default value bool resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); EXPECT_EQ(50.0, obj.asDouble()); // Object string obj = "string"; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); EXPECT_EQ(50.0, obj.asDouble()); } @@ -705,15 +719,16 @@ TEST(test_double_map_validate, test_NumberSchemaItemTest) { obj["max"] = 100.0; obj["out_of_max"] = 100.001; - int resultType = item->validate(obj["min"]); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj["min"], &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj["max"]); + resultType = item->validate(obj["max"], &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj["out_of_min"]); + resultType = item->validate(obj["out_of_min"], &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - resultType = item->validate(obj["out_of_max"]); + resultType = item->validate(obj["out_of_max"], &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); bool resDefault = item->setDefaultValue(obj["aa"]); @@ -724,13 +739,13 @@ TEST(test_double_map_validate, test_NumberSchemaItemTest) { EXPECT_TRUE(resDefault); EXPECT_EQ(-38.0, obj.asDouble()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj["min"]); + resultType = item->validate(obj["min"], &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); } @@ -749,21 +764,22 @@ TEST(test_double_array_validate, test_NumberSchemaItemTest) { obj[2] = 100.0; obj[3] = 100.000001; - int resultType = item->validate(obj[0]); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj[0], &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OUT_OF_RANGE, resultType); - resultType = item->validate(obj[1]); + resultType = item->validate(obj[1], &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); - resultType = item->validate(obj[2]); + resultType = item->validate(obj[2], &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); - resultType = item->validate(obj[3]); + resultType = item->validate(obj[3], &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OUT_OF_RANGE, resultType); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); @@ -775,14 +791,14 @@ TEST(test_double_array_validate, test_NumberSchemaItemTest) { EXPECT_TRUE(resDefault); EXPECT_EQ(-38.0, obj.asDouble()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); - resultType = item->validate(obj[0]); + resultType = item->validate(obj[0], &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); } @@ -799,7 +815,8 @@ TEST(test_int_double_value, test_NumberSchemaItemTest) { obj = value; ASSERT_EQ(value, obj.asDouble()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); } @@ -815,7 +832,8 @@ TEST(test_double_int_value, test_NumberSchemaItemTest) { obj = value; ASSERT_EQ(value, obj.asInt()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); } diff --git a/src/components/smart_objects/test/StringSchemaItem_test.cc b/src/components/smart_objects/test/StringSchemaItem_test.cc index d19d8518fe..4e4688d354 100644 --- a/src/components/smart_objects/test/StringSchemaItem_test.cc +++ b/src/components/smart_objects/test/StringSchemaItem_test.cc @@ -59,7 +59,8 @@ TEST(test_no_default_value, test_StringSchemaItemTest) { obj = "New valid string"; ASSERT_EQ(std::string("New valid string"), obj.asString()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); bool resDefault = item->setDefaultValue(obj); EXPECT_FALSE(resDefault); @@ -68,7 +69,7 @@ TEST(test_no_default_value, test_StringSchemaItemTest) { // Obj - bool obj = true; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); resDefault = item->setDefaultValue(obj); EXPECT_FALSE(resDefault); @@ -77,12 +78,12 @@ TEST(test_no_default_value, test_StringSchemaItemTest) { // Object - number obj = 3.1415926; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); resDefault = item->setDefaultValue(obj); EXPECT_FALSE(resDefault); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); EXPECT_EQ(3.1415926, obj.asDouble()); } @@ -110,7 +111,8 @@ TEST(test_item_with_default_value, test_StringSchemaItemTest) { obj = "New valid string"; ASSERT_EQ(std::string("New valid string"), obj.asString()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); bool resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); @@ -119,7 +121,7 @@ TEST(test_item_with_default_value, test_StringSchemaItemTest) { // Obj - bool obj = true; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); @@ -128,12 +130,12 @@ TEST(test_item_with_default_value, test_StringSchemaItemTest) { // Object - number obj = 3.1415926; - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); EXPECT_EQ(std::string("Default string"), obj.asString()); } @@ -154,7 +156,8 @@ TEST(test_item_with_max_length, test_StringSchemaItemTest) { obj = "New valid string"; ASSERT_EQ(std::string("New valid string"), obj.asString()); - int resultType = item->validate(obj); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); bool resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); @@ -164,13 +167,13 @@ TEST(test_item_with_max_length, test_StringSchemaItemTest) { obj = "New very very loooooong string"; ASSERT_EQ(std::string("New very very loooooong string"), obj.asString()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); EXPECT_EQ(std::string("Default string"), obj.asString()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); } @@ -188,19 +191,20 @@ TEST(test_map_validate, test_StringSchemaItemTest) { obj["bool"] = true; obj["num"] = 3.14; - int resultType = item->validate(obj["str"]); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj["str"], &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj["long"]); + resultType = item->validate(obj["long"], &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - resultType = item->validate(obj["bool"]); + resultType = item->validate(obj["bool"], &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resultType = item->validate(obj["num"]); + resultType = item->validate(obj["num"], &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); bool resDefault = item->setDefaultValue(obj["str"]); @@ -215,23 +219,23 @@ TEST(test_map_validate, test_StringSchemaItemTest) { EXPECT_TRUE(resDefault); EXPECT_EQ(std::string("Default string"), obj["num"].asString()); - resultType = item->validate(obj["str"]); + resultType = item->validate(obj["str"], &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj["long"]); + resultType = item->validate(obj["long"], &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - resultType = item->validate(obj["bool"]); + resultType = item->validate(obj["bool"], &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj["num"]); + resultType = item->validate(obj["num"], &report); EXPECT_EQ(Errors::OK, resultType); resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); EXPECT_EQ(std::string("Default string"), obj.asString()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); } @@ -250,22 +254,23 @@ TEST(test_array_validate, test_StringSchemaItemTest) { obj[3] = 3.14; obj[4] = "New valid string"; - int resultType = item->validate(obj[0]); + rpc::ValidationReport report("RPC"); + int resultType = item->validate(obj[0], &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj[1]); + resultType = item->validate(obj[1], &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - resultType = item->validate(obj[2]); + resultType = item->validate(obj[2], &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resultType = item->validate(obj[3]); + resultType = item->validate(obj[3], &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resultType = item->validate(obj[4]); + resultType = item->validate(obj[4], &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); bool resDefault = item->setDefaultValue(obj[0]); @@ -284,24 +289,24 @@ TEST(test_array_validate, test_StringSchemaItemTest) { EXPECT_EQ(std::string("Default string"), obj[4].asString()); EXPECT_EQ(std::string("Default string"), obj[5].asString()); - resultType = item->validate(obj[0]); + resultType = item->validate(obj[0], &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj[1]); + resultType = item->validate(obj[1], &report); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - resultType = item->validate(obj[2]); + resultType = item->validate(obj[2], &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj[3]); + resultType = item->validate(obj[3], &report); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resultType = item->validate(obj[4]); + resultType = item->validate(obj[4], &report); EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj[5]); + resultType = item->validate(obj[5], &report); EXPECT_EQ(Errors::OK, resultType); resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); EXPECT_EQ(std::string("Default string"), obj.asString()); - resultType = item->validate(obj); + resultType = item->validate(obj, &report); EXPECT_EQ(Errors::OK, resultType); } diff --git a/src/components/telemetry_monitor/test/CMakeLists.txt b/src/components/telemetry_monitor/test/CMakeLists.txt index d72b89f0e1..960985e45c 100644 --- a/src/components/telemetry_monitor/test/CMakeLists.txt +++ b/src/components/telemetry_monitor/test/CMakeLists.txt @@ -65,7 +65,7 @@ set(LIBRARIES ) if (BUILD_USB_SUPPORT) - list(APPEND LIBRARIES Libusb-1.0.16) + list(APPEND LIBRARIES libusb-1.0.so) endif() if (BUILD_BT_SUPPORT) diff --git a/src/components/transport_manager/CMakeLists.txt b/src/components/transport_manager/CMakeLists.txt index 8cd3fe617c..4fa224393d 100644 --- a/src/components/transport_manager/CMakeLists.txt +++ b/src/components/transport_manager/CMakeLists.txt @@ -40,7 +40,6 @@ include_directories ( ${COMPONENTS_DIR}/resumption/include ${POLICY_GLOBAL_INCLUDE_PATH}/ ${JSONCPP_INCLUDE_DIRECTORY} - ${LIBUSB_INCLUDE_DIRECTORY} ${LOG4CXX_INCLUDE_DIRECTORY} ) @@ -73,9 +72,7 @@ if(BUILD_USB_SUPPORT) ${COMPONENTS_DIR}/transport_manager/include/transport_manager/usb/qnx ${COMPONENTS_DIR}/transport_manager/src/usb/qnx ) - list(APPEND LIBRARIES - Libusb-1.0.16 - ) + elseif(CMAKE_SYSTEM_NAME STREQUAL "QNX") set(EXCLUDE_PATHS ${COMPONENTS_DIR}/transport_manager/include/transport_manager/usb/libusb diff --git a/src/components/transport_manager/include/transport_manager/usb/libusb/platform_usb_device.h b/src/components/transport_manager/include/transport_manager/usb/libusb/platform_usb_device.h index 1aa6881b38..baec1938b1 100644 --- a/src/components/transport_manager/include/transport_manager/usb/libusb/platform_usb_device.h +++ b/src/components/transport_manager/include/transport_manager/usb/libusb/platform_usb_device.h @@ -37,7 +37,7 @@ #define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_LIBUSB_PLATFORM_USB_DEVICE_H_ #include <string> -#include <libusb/libusb.h> +#include <libusb-1.0/libusb.h> namespace transport_manager { diff --git a/src/components/transport_manager/include/transport_manager/usb/libusb/usb_handler.h b/src/components/transport_manager/include/transport_manager/usb/libusb/usb_handler.h index b2ebd3a977..bed631ea2e 100644 --- a/src/components/transport_manager/include/transport_manager/usb/libusb/usb_handler.h +++ b/src/components/transport_manager/include/transport_manager/usb/libusb/usb_handler.h @@ -36,7 +36,7 @@ #ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_LIBUSB_USB_HANDLER_H_ #define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_LIBUSB_USB_HANDLER_H_ -#include <libusb/libusb.h> +#include <libusb-1.0/libusb.h> #include "transport_manager/transport_adapter/transport_adapter.h" #include "transport_manager/usb/usb_control_transfer.h" diff --git a/src/components/transport_manager/src/usb/libusb/usb_connection.cc b/src/components/transport_manager/src/usb/libusb/usb_connection.cc index 3e59bdf40b..e9ab2bae8e 100644 --- a/src/components/transport_manager/src/usb/libusb/usb_connection.cc +++ b/src/components/transport_manager/src/usb/libusb/usb_connection.cc @@ -34,7 +34,7 @@ #include <unistd.h> #include <iomanip> -#include <libusb/libusb.h> +#include <libusb-1.0/libusb.h> #include <sstream> diff --git a/src/components/transport_manager/test/CMakeLists.txt b/src/components/transport_manager/test/CMakeLists.txt index 184d546f15..41aae296ac 100644 --- a/src/components/transport_manager/test/CMakeLists.txt +++ b/src/components/transport_manager/test/CMakeLists.txt @@ -59,7 +59,7 @@ set(LIBRARIES ) if (BUILD_USB_SUPPORT) - list(APPEND LIBRARIES Libusb-1.0.16) + list(APPEND LIBRARIES libusb-1.0.so) endif() if (BUILD_BT_SUPPORT) |