summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Oleynik <AOleynik@luxoft.com>2014-04-09 18:35:46 +0300
committerJustin Dickow <jjdickow@gmail.com>2014-07-09 14:11:13 -0400
commitac6c148be3aef7d1eb4f940d58f45ff9fbb54a5d (patch)
tree71ac481dc8f9ad670887aca5d65ef50e50792eb8
parentfeb253556bca194d16a451917244f9a5489c356c (diff)
downloadsmartdevicelink-ac6c148be3aef7d1eb4f940d58f45ff9fbb54a5d.tar.gz
APPLNIK-6608. GetSystemInfo request/response implementation.
-rw-r--r--src/components/application_manager/include/application_manager/policies/policy_handler.h15
-rw-r--r--src/components/application_manager/src/hmi_command_factory.cc20
-rw-r--r--src/components/application_manager/src/message_helper.cc21
-rw-r--r--src/components/application_manager/src/policies/policy_handler.cc12
m---------src/components/policy0
5 files changed, 59 insertions, 9 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 3695c6a66..0801c7e85 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
@@ -179,6 +179,21 @@ class PolicyHandler : public utils::Singleton<PolicyHandler>,
void OnSystemInfoChanged(const std::string& language);
/**
+ * @brief Save data from GetSystemInfo request to policy table
+ * @param ccpu_version CCPU version
+ * @param wers_country_code WERS country code
+ * @param language System language
+ */
+ void OnGetSystemInfo(const std::string& ccpu_version,
+ const std::string& wers_country_code,
+ const std::string& language);
+
+ /**
+ * @brief Send request to HMI to get update on system parameters
+ */
+ virtual void OnSystemInfoUpdateRequired();
+
+ /**
* Adds statistics info
* @param type type of info
*/
diff --git a/src/components/application_manager/src/hmi_command_factory.cc b/src/components/application_manager/src/hmi_command_factory.cc
index 34db1df71..51b3e513b 100644
--- a/src/components/application_manager/src/hmi_command_factory.cc
+++ b/src/components/application_manager/src/hmi_command_factory.cc
@@ -69,6 +69,8 @@
#include "application_manager/commands/hmi/on_put_file_notification.h"
#include "application_manager/commands/hmi/on_ignition_cycle_over_notification.h"
#include "application_manager/commands/hmi/on_system_info_changed_notification.h"
+#include "application_manager/commands/hmi/get_system_info_request.h"
+#include "application_manager/commands/hmi/get_system_info_response.h"
#include "application_manager/commands/hmi/close_popup_request.h"
#include "application_manager/commands/hmi/close_popup_response.h"
#include "application_manager/commands/hmi/button_get_capabilities_request.h"
@@ -306,6 +308,14 @@ CommandSharedPtr HMICommandFactory::CreateCommand(
}
break;
}
+ case hmi_apis::FunctionID::BasicCommunication_GetSystemInfo: {
+ if (is_response) {
+ command.reset(new commands::GetSystemInfoResponse(message));
+ } else {
+ command.reset(new commands::GetSystemInfoRequest(message));
+ }
+ break;
+ }
case hmi_apis::FunctionID::SDL_ActivateApp: {
if (is_response) {
command.reset(new commands::SDLActivateAppResponse(message));
@@ -1067,15 +1077,7 @@ CommandSharedPtr HMICommandFactory::CreateCommand(
command.reset(new commands::UpdateSDLRequest(message));
}
break;
- }
- case hmi_apis::FunctionID::BasicCommunication_OnAppPermissionChanged: {
- command.reset(new commands::OnAppPermissionChangedNotification(message));
- break;
- }
- case hmi_apis::FunctionID::BasicCommunication_OnAllowApp: {
- command.reset(new commands::OnAllowAppNotification(message));
- 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 7994cf20f..0fb26cb4f 100644
--- a/src/components/application_manager/src/message_helper.cc
+++ b/src/components/application_manager/src/message_helper.cc
@@ -1898,6 +1898,27 @@ void MessageHelper::SendOnStatusUpdate(const std::string& status) {
ApplicationManagerImpl::instance()->ManageHMICommand(message);
}
+void MessageHelper::SendGetSystemInfoRequest() {
+ smart_objects::SmartObject* message = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ if (!message) {
+ return;
+ }
+
+ (*message)[strings::params][strings::function_id] =
+ hmi_apis::FunctionID::BasicCommunication_GetSystemInfo;
+ (*message)[strings::params][strings::message_type] =
+ MessageType::kRequest;
+ (*message)[strings::params][strings::correlation_id] =
+ ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
+ (*message)[strings::params][strings::protocol_version] =
+ commands::CommandImpl::protocol_version_;
+ (*message)[strings::params][strings::protocol_type] =
+ commands::CommandImpl::hmi_protocol_type_;
+
+ ApplicationManagerImpl::instance()->ManageHMICommand(message);
+}
+
mobile_apis::Result::eType MessageHelper::VerifyImageFiles(
smart_objects::SmartObject& message, ApplicationConstSharedPtr app) {
if (NsSmartDeviceLink::NsSmartObjects::SmartType_Array == message.getType()) {
diff --git a/src/components/application_manager/src/policies/policy_handler.cc b/src/components/application_manager/src/policies/policy_handler.cc
index ebb87f16e..f20ef96fe 100644
--- a/src/components/application_manager/src/policies/policy_handler.cc
+++ b/src/components/application_manager/src/policies/policy_handler.cc
@@ -323,6 +323,18 @@ void PolicyHandler::OnSystemInfoChanged(const std::string& language) {
policy_manager_->SetSystemLanguage(language);
}
+void PolicyHandler::OnGetSystemInfo(const std::string& ccpu_version,
+ const std::string& wers_country_code,
+ const std::string& language) {
+ LOG4CXX_INFO(logger_, "OnGetSystemInfo");
+ policy_manager_->SetSystemInfo(ccpu_version, wers_country_code, language);
+}
+
+void PolicyHandler::OnSystemInfoUpdateRequired() {
+ LOG4CXX_INFO(logger_, "OnSystemInfoUpdateRequired");
+ application_manager::MessageHelper::SendGetSystemInfoRequest();
+}
+
void PolicyHandler::OnAppRevoked(const std::string& policy_app_id) {
LOG4CXX_INFO(logger_, "OnAppRevoked");
if (!policy_manager_) {
diff --git a/src/components/policy b/src/components/policy
-Subproject bb04121e5d947c2cffb395b840d5faf83797d97
+Subproject a39fc98a0f29a115834c6acdad7288824e4b2e7