diff options
author | Yana Chernysheva <ychernysheva@luxoft.com> | 2020-12-23 17:06:14 +0200 |
---|---|---|
committer | LitvinenkoIra <ilytvynenko@luxoft.com> | 2021-02-02 11:24:11 +0200 |
commit | 347cf5a88bb63c7fb2b1182192f5319365f770de (patch) | |
tree | 8e2cb30414745e1324589566179690eb4c4c5efa | |
parent | cfde90ce22afb9653eacc6ee5aa9dc13a22eb114 (diff) | |
download | sdl_core-347cf5a88bb63c7fb2b1182192f5319365f770de.tar.gz |
Support new hardware version param
9 files changed, 91 insertions, 11 deletions
diff --git a/src/components/application_manager/include/application_manager/hmi_capabilities_impl.h b/src/components/application_manager/include/application_manager/hmi_capabilities_impl.h index 0bc98827c8..f646c66ca1 100644 --- a/src/components/application_manager/include/application_manager/hmi_capabilities_impl.h +++ b/src/components/application_manager/include/application_manager/hmi_capabilities_impl.h @@ -81,6 +81,10 @@ class HMICapabilitiesImpl : public HMICapabilities { const std::string& ccpu_version() const OVERRIDE; + void set_hardware_version(const std::string& hardware_version) OVERRIDE; + + const std::string& hardware_version() const OVERRIDE; + bool attenuated_supported() const OVERRIDE; void set_attenuated_supported(const bool state) OVERRIDE; @@ -476,6 +480,7 @@ class HMICapabilitiesImpl : public HMICapabilities { bool is_rc_supported_; bool is_driver_distraction_supported_; std::string ccpu_version_; + std::string hardware_version_; smart_objects::SmartObjectSPtr navigation_capability_; smart_objects::SmartObjectSPtr phone_capability_; smart_objects::SmartObjectSPtr video_streaming_capability_; diff --git a/src/components/application_manager/include/application_manager/smart_object_keys.h b/src/components/application_manager/include/application_manager/smart_object_keys.h index c96c9ebe69..e3730480b7 100644 --- a/src/components/application_manager/include/application_manager/smart_object_keys.h +++ b/src/components/application_manager/include/application_manager/smart_object_keys.h @@ -336,6 +336,7 @@ extern const char* video_streaming; extern const char* remote_control; extern const char* sdl_version; extern const char* system_software_version; +extern const char* system_hardware_version; extern const char* priority; extern const char* engine_oil_life; extern const char* oem_custom_data_type; diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/get_system_info_response.h b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/get_system_info_response.h index 2d3c40c3f3..5254d641de 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/get_system_info_response.h +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/hmi/get_system_info_response.h @@ -45,6 +45,7 @@ struct SystemInfo { std::string ccpu_version; std::string wers_country_code; std::string language; + std::string hardware_version; }; /** diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/get_system_info_response.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/get_system_info_response.cc index 8229e1978c..50fb41a551 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/get_system_info_response.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/get_system_info_response.cc @@ -59,6 +59,8 @@ void GetSystemInfoResponse::Run() { (*message_)[strings::params][hmi_response::code].asInt()); hmi_capabilities_.set_ccpu_version(policy_handler_.GetCCPUVersionFromPT()); + hmi_capabilities_.set_hardware_version( + policy_handler_.GetHardwareVersionFromPT()); if (hmi_apis::Common_Result::SUCCESS != code) { SDL_LOG_WARN("GetSystemError returns an error code " << code); @@ -72,6 +74,11 @@ void GetSystemInfoResponse::Run() { policy_handler_.OnGetSystemInfo( info.ccpu_version, info.wers_country_code, info.language); + if (!info.hardware_version.empty()) { + policy_handler_.OnHardwareVersionReceived(info.hardware_version); + hmi_capabilities_.set_hardware_version(info.hardware_version); + } + hmi_capabilities_.OnSoftwareVersionReceived(info.ccpu_version); } @@ -89,6 +96,12 @@ const SystemInfo GetSystemInfoResponse::GetSystemInfo() const { info.language = application_manager::EnumToString( static_cast<hmi_apis::Common_Language::eType>(lang_code)); + if ((*message_)[strings::msg_params].keyExists( + strings::system_hardware_version)) { + info.hardware_version = + (*message_)[strings::msg_params][strings::system_hardware_version] + .asString(); + } return info; } diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/get_system_info_response_test.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/get_system_info_response_test.cc index 8cdce4fa74..3e01849807 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/get_system_info_response_test.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/get_system_info_response_test.cc @@ -68,6 +68,7 @@ typedef NiceMock< namespace { const uint32_t kConnectionKey = 2u; const std::string ccpu_version("4.1.3.B_EB355B"); +const std::string kHardwareVersion("1.1.1.1"); const std::string wers_country_code("WAEGB"); const std::string lang_code("EN-US"); } // namespace @@ -82,14 +83,36 @@ class GetSystemInfoResponseTest (*command_msg)[strings::msg_params]["ccpu_version"] = ccpu_version; (*command_msg)[strings::msg_params]["wersCountryCode"] = wers_country_code; (*command_msg)[strings::msg_params]["language"] = lang_code; - return command_msg; } + void SetHardwareVersionFromPT() { + const std::string hardware_version_from_pt = "1.1.1.0"; + ON_CALL(mock_policy_handler_, GetHardwareVersionFromPT()) + .WillByDefault(Return(hardware_version_from_pt)); + EXPECT_CALL(mock_hmi_capabilities_, + set_hardware_version(hardware_version_from_pt)); + } + SmartObject capabilities_; }; -TEST_F(GetSystemInfoResponseTest, GetSystemInfo_SUCCESS) { +TEST_F(GetSystemInfoResponseTest, GetSystemInfo_UNSUCCESS) { + MessageSharedPtr command_msg = CreateCommandMsg(); + (*command_msg)[strings::params][hmi_response::code] = + hmi_apis::Common_Result::WRONG_LANGUAGE; + (*command_msg)[strings::msg_params][hmi_response::capabilities] = + (capabilities_); + + ResponseFromHMIPtr command(CreateCommand<GetSystemInfoResponse>(command_msg)); + + EXPECT_CALL(mock_hmi_capabilities_, UpdateCachedCapabilities()); + EXPECT_CALL(mock_policy_handler_, SetPreloadedPtFlag(false)); + + command->Run(); +} + +TEST_F(GetSystemInfoResponseTest, GetSystemInfo_UpdateCapabilities_Called) { MessageSharedPtr command_msg = CreateCommandMsg(); (*command_msg)[strings::params][hmi_response::code] = hmi_apis::Common_Result::SUCCESS; @@ -98,28 +121,35 @@ TEST_F(GetSystemInfoResponseTest, GetSystemInfo_SUCCESS) { ResponseFromHMIPtr command(CreateCommand<GetSystemInfoResponse>(command_msg)); - EXPECT_CALL(mock_policy_handler_, - OnGetSystemInfo(ccpu_version, wers_country_code, lang_code)); + EXPECT_CALL(mock_hmi_capabilities_, OnSoftwareVersionReceived(ccpu_version)); + ASSERT_TRUE(command->Init()); command->Run(); } -TEST_F(GetSystemInfoResponseTest, GetSystemInfo_UNSUCCESS) { +TEST_F(GetSystemInfoResponseTest, + GetSystemInfo_SaveHardwareVersionToHMICapabilitiesIfPresentInResponse) { MessageSharedPtr command_msg = CreateCommandMsg(); (*command_msg)[strings::params][hmi_response::code] = - hmi_apis::Common_Result::WRONG_LANGUAGE; + hmi_apis::Common_Result::SUCCESS; (*command_msg)[strings::msg_params][hmi_response::capabilities] = (capabilities_); + (*command_msg)[strings::msg_params][strings::system_hardware_version] = + kHardwareVersion; ResponseFromHMIPtr command(CreateCommand<GetSystemInfoResponse>(command_msg)); - EXPECT_CALL(mock_hmi_capabilities_, UpdateCachedCapabilities()); - EXPECT_CALL(mock_policy_handler_, SetPreloadedPtFlag(false)); + SetHardwareVersionFromPT(); + EXPECT_CALL(mock_policy_handler_, OnHardwareVersionReceived(_)); + EXPECT_CALL(mock_hmi_capabilities_, set_hardware_version(kHardwareVersion)); + ASSERT_TRUE(command->Init()); command->Run(); } -TEST_F(GetSystemInfoResponseTest, GetSystemInfo_UpdateCapabilities_Called) { +TEST_F( + GetSystemInfoResponseTest, + GetSystemInfo_DontSaveHardwareVersionToHMICapabilitiesIfAbsentInResponse) { MessageSharedPtr command_msg = CreateCommandMsg(); (*command_msg)[strings::params][hmi_response::code] = hmi_apis::Common_Result::SUCCESS; @@ -128,7 +158,10 @@ TEST_F(GetSystemInfoResponseTest, GetSystemInfo_UpdateCapabilities_Called) { ResponseFromHMIPtr command(CreateCommand<GetSystemInfoResponse>(command_msg)); - EXPECT_CALL(mock_hmi_capabilities_, OnSoftwareVersionReceived(ccpu_version)); + SetHardwareVersionFromPT(); + EXPECT_CALL(mock_policy_handler_, OnHardwareVersionReceived(_)).Times(0); + EXPECT_CALL(mock_hmi_capabilities_, set_hardware_version(kHardwareVersion)) + .Times(0); ASSERT_TRUE(command->Init()); command->Run(); diff --git a/src/components/application_manager/src/hmi_capabilities_impl.cc b/src/components/application_manager/src/hmi_capabilities_impl.cc index 1390a3ae2c..b4dc9a6b1e 100644 --- a/src/components/application_manager/src/hmi_capabilities_impl.cc +++ b/src/components/application_manager/src/hmi_capabilities_impl.cc @@ -1860,6 +1860,15 @@ const std::string& HMICapabilitiesImpl::ccpu_version() const { return ccpu_version_; } +void HMICapabilitiesImpl::set_hardware_version( + const std::string& hardware_version) { + hardware_version_ = hardware_version; +} + +const std::string& HMICapabilitiesImpl::hardware_version() const { + return hardware_version_; +} + void HMICapabilitiesImpl::convert_json_languages_to_obj( const Json::Value& json_languages, smart_objects::SmartObject& languages) const { diff --git a/src/components/application_manager/src/smart_object_keys.cc b/src/components/application_manager/src/smart_object_keys.cc index f95476b7a6..4db386692a 100644 --- a/src/components/application_manager/src/smart_object_keys.cc +++ b/src/components/application_manager/src/smart_object_keys.cc @@ -303,6 +303,7 @@ const char* video_streaming = "videoStreaming"; const char* remote_control = "remoteControl"; const char* sdl_version = "sdlVersion"; const char* system_software_version = "systemSoftwareVersion"; +const char* system_hardware_version = "systemHardwareVersion"; const char* priority = "priority"; const char* engine_oil_life = "engineOilLife"; const char* oem_custom_data_type = "oemCustomDataType"; diff --git a/src/components/application_manager/test/include/application_manager/mock_hmi_capabilities.h b/src/components/application_manager/test/include/application_manager/mock_hmi_capabilities.h index 2f9f40ad2a..e40197cc13 100644 --- a/src/components/application_manager/test/include/application_manager/mock_hmi_capabilities.h +++ b/src/components/application_manager/test/include/application_manager/mock_hmi_capabilities.h @@ -212,6 +212,8 @@ class MockHMICapabilities : public ::application_manager::HMICapabilities { MOCK_CONST_METHOD0(ccpu_version, const std::string&()); MOCK_METHOD1(set_ccpu_version, void(const std::string& ccpu_version)); + MOCK_CONST_METHOD0(hardware_version, const std::string&()); + MOCK_METHOD1(set_hardware_version, void(const std::string& hardware_version)); MOCK_METHOD1(OnSoftwareVersionReceived, void(const std::string& ccpu_version)); MOCK_METHOD0(UpdateCachedCapabilities, void()); diff --git a/src/components/include/application_manager/hmi_capabilities.h b/src/components/include/application_manager/hmi_capabilities.h index 56ac807d63..e7d7aa485b 100644 --- a/src/components/include/application_manager/hmi_capabilities.h +++ b/src/components/include/application_manager/hmi_capabilities.h @@ -97,11 +97,26 @@ class HMICapabilities { /** * @brief Returns software version of the target - * @return TRUE if it supported, otherwise FALSE + * @return string representation of software version if supported, otherwise + * empty string */ virtual const std::string& ccpu_version() const = 0; /** + * @brief Interface used to store information about hardware version of the + * target + * @param hardware_version Received system/hmi hardware version + */ + virtual void set_hardware_version(const std::string& hardware_version) = 0; + + /** + * @brief Returns hardware version of the target + * @return string representation of hardware version if supported, otherwise + * empty string + */ + virtual const std::string& hardware_version() const = 0; + + /** * @brief Retrieves if mixing audio is supported by HMI * (ie recording TTS command and playing audio) * @return Current state of the mixing audio flag |