summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJackLivio <jack@livio.io>2017-07-13 10:42:20 -0400
committerJackLivio <jack@livio.io>2017-07-13 10:42:20 -0400
commit2c325e18c2ee1db4efb17f330440423a00514f79 (patch)
tree8f90df627c94255134a2fc03b1eff705d124b999
parentb453e3b7f800a2ebcbd40a458ad4a8b7334a147e (diff)
downloadsdl_core-2c325e18c2ee1db4efb17f330440423a00514f79.tar.gz
Add system capabilities to HMI RPC UI.getCapabilitiesResponse
-rwxr-xr-xsrc/appMain/hmi_capabilities.json20
-rw-r--r--src/components/application_manager/include/application_manager/smart_object_keys.h3
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_get_capabilities_response.cc9
-rw-r--r--src/components/application_manager/src/hmi_capabilities_impl.cc30
-rw-r--r--src/components/application_manager/src/smart_object_keys.cc3
-rw-r--r--src/components/interfaces/HMI_API.xml29
-rw-r--r--src/components/interfaces/MOBILE_API.xml2
7 files changed, 69 insertions, 27 deletions
diff --git a/src/appMain/hmi_capabilities.json b/src/appMain/hmi_capabilities.json
index a849dc86d7..f5e88fe370 100755
--- a/src/appMain/hmi_capabilities.json
+++ b/src/appMain/hmi_capabilities.json
@@ -292,7 +292,16 @@
"longPressAvailable": true,
"upDownAvailable": true,
"imageSupported": true
- }]
+ }],
+ "systemCapabilities": {
+ "navigationCapability": {
+ "sendLocationEnabled": true,
+ "getWayPointsEnabled": true
+ },
+ "phoneCapability": {
+ "dialNumberEnabled": true
+ }
+ }
},
"VR": {
"capabilities": ["TEXT"],
@@ -415,14 +424,5 @@
"SyncMessageVersion": {
"majorVersion": 3,
"minorVersion": 0
- },
- "SystemCapabilities": {
- "NavigationCapability": {
- "sendLocationEnabled": true,
- "getWayPointsEnabled": true
- },
- "PhoneCapability": {
- "dialNumberEnabled": true
- }
}
} \ No newline at end of file
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 9f9cee99cf..9b8acd0675 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
@@ -169,6 +169,9 @@ extern const char* audio_pass_thru_icon;
extern const char* way_points;
extern const char* system_capability;
extern const char* system_capability_type;
+extern const char* system_capabilities;
+extern const char* navigation_capability;
+extern const char* phone_capability;
// PutFile
extern const char* sync_file_name;
diff --git a/src/components/application_manager/src/commands/hmi/ui_get_capabilities_response.cc b/src/components/application_manager/src/commands/hmi/ui_get_capabilities_response.cc
index de0a2f2157..bf89b3d5a7 100644
--- a/src/components/application_manager/src/commands/hmi/ui_get_capabilities_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_get_capabilities_response.cc
@@ -79,6 +79,15 @@ void UIGetCapabilitiesResponse::Run() {
msg_params[strings::hmi_capabilities][strings::phone_call].asBool());
}
}
+
+ if(msg_params.keyExists(strings::system_capabilities)) {
+ if(msg_params[strings::system_capabilities].keyExists(strings::navigation_capability)) {
+ hmi_capabilities.set_navigation_capability(msg_params[strings::system_capabilities][strings::navigation_capability]);
+ }
+ if(msg_params[strings::system_capabilities].keyExists(strings::phone_capability)) {
+ hmi_capabilities.set_phone_capability(msg_params[strings::system_capabilities][strings::phone_capability]);
+ }
+ }
}
} // namespace commands
diff --git a/src/components/application_manager/src/hmi_capabilities_impl.cc b/src/components/application_manager/src/hmi_capabilities_impl.cc
index 6ffc501439..9b4d62ed2d 100644
--- a/src/components/application_manager/src/hmi_capabilities_impl.cc
+++ b/src/components/application_manager/src/hmi_capabilities_impl.cc
@@ -988,6 +988,21 @@ bool HMICapabilitiesImpl::load_capabilities_from_file() {
soft_button_capabilities, soft_button_capabilities_so);
set_soft_button_capabilities(soft_button_capabilities_so);
}
+ if(check_existing_json_member(ui, "systemCapabilities")) {
+ Json::Value system_capabilities = ui.get("systemCapabilities", "");
+ if (check_existing_json_member(system_capabilities, "navigationCapability")) {
+ Json::Value navigation_capability = system_capabilities.get("navigationCapability","");
+ smart_objects::SmartObject navigation_capability_so;
+ Formatters::CFormatterJsonBase::jsonValueToObj(navigation_capability, navigation_capability_so);
+ set_navigation_capability(navigation_capability_so);
+ }
+ if (check_existing_json_member(system_capabilities, "phoneCapability")) {
+ Json::Value phone_capability = system_capabilities.get("phoneCapability","");
+ smart_objects::SmartObject phone_capability_so;
+ Formatters::CFormatterJsonBase::jsonValueToObj(phone_capability, phone_capability_so);
+ set_phone_capability(phone_capability_so);
+ }
+ }
} // UI end
// VR
@@ -1093,21 +1108,6 @@ bool HMICapabilitiesImpl::load_capabilities_from_file() {
vehicle_type_so);
set_vehicle_type(vehicle_type_so);
} // VehicleType end
- if(check_existing_json_member(root_json, "SystemCapabilities")) {
- Json::Value system_capabilities = root_json.get("SystemCapabilities", "");
- if (check_existing_json_member(system_capabilities, "NavigationCapability")) {
- Json::Value navigation_capability = system_capabilities.get("NavigationCapability","");
- smart_objects::SmartObject navigation_capability_so;
- Formatters::CFormatterJsonBase::jsonValueToObj(navigation_capability, navigation_capability_so);
- set_navigation_capability(navigation_capability_so);
- }
- if (check_existing_json_member(system_capabilities, "PhoneCapability")) {
- Json::Value phone_capability = system_capabilities.get("PhoneCapability","");
- smart_objects::SmartObject phone_capability_so;
- Formatters::CFormatterJsonBase::jsonValueToObj(phone_capability, phone_capability_so);
- set_phone_capability(phone_capability_so);
- }
- }
} catch (...) {
return false;
}
diff --git a/src/components/application_manager/src/smart_object_keys.cc b/src/components/application_manager/src/smart_object_keys.cc
index 2a86c6c1c0..7f8fd5d00f 100644
--- a/src/components/application_manager/src/smart_object_keys.cc
+++ b/src/components/application_manager/src/smart_object_keys.cc
@@ -136,6 +136,9 @@ const char* audio_pass_thru_icon = "audioPassThruIcon";
const char* way_points = "wayPoints";
const char* system_capability = "systemCapability";
const char* system_capability_type = "systemCapabilityType";
+const char* system_capabilities = "systemCapabilities";
+const char* navigation_capability = "navigationCapability";
+const char* phone_capability = "phoneCapability";
// PutFile
const char* sync_file_name = "syncFileName";
diff --git a/src/components/interfaces/HMI_API.xml b/src/components/interfaces/HMI_API.xml
index 0d6d5fad3d..10660f982d 100644
--- a/src/components/interfaces/HMI_API.xml
+++ b/src/components/interfaces/HMI_API.xml
@@ -2086,6 +2086,30 @@
</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="SystemCapabilities">
+ <param name="navigationCapability" type="NavigationCapability" mandatory="false">
+ </param>
+ <param name="phoneCapability" type="PhoneCapability" mandatory="false">
+ </param>
+ </struct>
+
</interface>
<interface name="Buttons" version="1.2.0" date="2017-04-27">
@@ -2953,7 +2977,7 @@
<description>Optional text to label an app menu button (for certain touchscreen platforms).</description>
</param>
<param name="menuIcon" type="Common.Image" mandatory="false">
- <description>>Optional icon to draw on an app menu button (for certain touchscreen platforms).</description>
+ <description>Optional icon to draw on an app menu button (for certain touchscreen platforms).</description>
</param>
<param name="keyboardProperties" type="Common.KeyboardProperties" mandatory="false">
<description>On-screen keybaord configuration (if available).</description>
@@ -3000,6 +3024,9 @@
<param name="hmiCapabilities" type="Common.HMICapabilities" mandatory="false">
<description>Specifies the HMI’s capabilities. See HMICapabilities.</description>
</param>
+ <param name="systemCapabilities" type="Common.SystemCapabilities" mandatory="false">
+ <description>Specifies system capabilities. See SystemCapabilities</description>
+ </param>
</function>
<function name="ChangeRegistration" messagetype="request">
<description>Request from SmartDeviceLink to HMI to change language for app.</description>
diff --git a/src/components/interfaces/MOBILE_API.xml b/src/components/interfaces/MOBILE_API.xml
index 347623a6e3..cac520d349 100644
--- a/src/components/interfaces/MOBILE_API.xml
+++ b/src/components/interfaces/MOBILE_API.xml
@@ -2407,7 +2407,7 @@
</param>
</struct>
- <struct name="SystemCapability">
+ <struct name="SystemCapability">
<description>The systemCapabilityType indicates which type of data should be changed and identifies which data object exists in this struct. For example, if the SystemCapability Type is NAVIGATION then a "navigationCapability" should exist</description>
<param name="systemCapabilityType" type="SystemCapabilityType" mandatory="true">
</param>