From 9a8247714278df96037e54570a267c44aa48216c Mon Sep 17 00:00:00 2001 From: Konstantin Kolodiy Date: Thu, 10 Apr 2014 12:01:54 +0400 Subject: [PATCH] APPLINK-6593: - Implemente SDL.UpdateSDL from HMI API --- .../application_manager/policies/policy_handler.h | 6 ++++++ .../application_manager/src/hmi_command_factory.cc | 13 ++++++------- .../application_manager/src/message_helper.cc | 20 ++++++++++++++++++++ .../src/policies/policy_handler.cc | 16 +++++++++++----- 4 files changed, 43 insertions(+), 12 deletions(-) diff --git a/src/components/application_manager/include/application_manager/policies/policy_handler.h b/src/components/application_manager/include/application_manager/policies/policy_handler.h index 0801c7e..07fef5e 100644 --- a/src/components/application_manager/include/application_manager/policies/policy_handler.h +++ b/src/components/application_manager/include/application_manager/policies/policy_handler.h @@ -115,6 +115,12 @@ class PolicyHandler : public utils::Singleton, void PTExchangeAtIgnition(); /** + * Initializes PT exchange at user request + * @param correlation_id correlation id of request + */ + void PTExchangeAtUserRequest(uint32_t correlation_id); + + /** * @brief Save device info for specific device to policy table * @param device_id Device mac address * @param device_info Device params diff --git a/src/components/application_manager/src/hmi_command_factory.cc b/src/components/application_manager/src/hmi_command_factory.cc index d45baf6..2cbb6d8 100644 --- a/src/components/application_manager/src/hmi_command_factory.cc +++ b/src/components/application_manager/src/hmi_command_factory.cc @@ -1069,15 +1069,14 @@ CommandSharedPtr HMICommandFactory::CreateCommand( command.reset(new commands::OnSDLConsentNeededNotification(message)); break; } - /* case hmi_apis::FunctionID::SDL_UpdateSDL: { - if (is_response) { - command.reset(new commands::UpdateSDLResponse(message)); - } else { - command.reset(new commands::UpdateSDLRequest(message)); + if (is_response) { + command.reset(new commands::UpdateSDLResponse(message)); + } else { + command.reset(new commands::UpdateSDLRequest(message)); + } + break; } - break; - */ case hmi_apis::FunctionID::BasicCommunication_OnIgnitionCycleOver: { command.reset(new commands::OnIgnitionCycleOverNotification(message)); break; diff --git a/src/components/application_manager/src/message_helper.cc b/src/components/application_manager/src/message_helper.cc index f59ae15..0a47e7a 100644 --- a/src/components/application_manager/src/message_helper.cc +++ b/src/components/application_manager/src/message_helper.cc @@ -1328,6 +1328,26 @@ void MessageHelper::SendPolicyUpdate( ApplicationManagerImpl::instance()->ManageHMICommand(message); } +void MessageHelper::SendUpdateSDLResponse(const std::string& result, + uint32_t correlation_id) { + smart_objects::SmartObject* message = new smart_objects::SmartObject( + smart_objects::SmartType_Map); + if (!message) { + return; + } + + (*message)[strings::params][strings::function_id] = + hmi_apis::FunctionID::SDL_UpdateSDL; + (*message)[strings::params][strings::message_type] = + MessageType::kResponse; + (*message)[strings::params][strings::correlation_id] = correlation_id; + (*message)[strings::params][hmi_response::code] = 0; + + (*message)[strings::msg_params]["result"] = result; + + ApplicationManagerImpl::instance()->ManageHMICommand(message); +} + void MessageHelper::SendGetUserFriendlyMessageResponse( const std::vector& msg, uint32_t correlation_id) { diff --git a/src/components/application_manager/src/policies/policy_handler.cc b/src/components/application_manager/src/policies/policy_handler.cc index c775377..7346f9d 100644 --- a/src/components/application_manager/src/policies/policy_handler.cc +++ b/src/components/application_manager/src/policies/policy_handler.cc @@ -451,8 +451,6 @@ bool PolicyHandler::ReceiveMessageFromSDK(const BinaryMessage& pt_string) { event_observer_.get()->subscribe_on_event( hmi_apis::FunctionID::VehicleInfo_GetVehicleData, correlation_id); application_manager::MessageHelper::CreateGetDeviceData(correlation_id); - // TODO(KKolodiy): when we must reset counter of ignition cyles, update days - // and kms? } return ret; } @@ -498,9 +496,6 @@ void PolicyHandler::StartPTExchange(bool skip_device_selection) { } } - // TODO(KKolodiy): when we must reset counter of ignition cyles, - // update days and kms? - retry_sequence_lock_.Ackquire(); retry_sequence_.stop(); policy_manager_->ResetRetrySequence(); @@ -636,6 +631,17 @@ void PolicyHandler::PTExchangeAtOdometer(int kilometers) { } } +void PolicyHandler::PTExchangeAtUserRequest(uint32_t correlation_id) { + LOG4CXX_TRACE(logger_, "PT exchange at user request"); + policy::PolicyTableStatus status = policy_manager_->GetPolicyTableStatus(); + if (status == policy::StatusUpdateRequired) { + OnPTExchangeNeeded(); + status = policy::StatusUpdatePending; + } + application_manager::MessageHelper::SendUpdateSDLResponse( + ConvertUpdateStatus(status), correlation_id); +} + void PolicyHandler::OnPTExchangeNeeded() { StartPTExchange(); } -- 2.7.4