smartdevicelink / sdl_hmi_integration_guidelines Goto Github PK
View Code? Open in Web Editor NEWIntegration Guidelines for SDL Core into the vehicle HMI
Home Page: smartdevicelink.com
License: BSD 3-Clause "New" or "Revised" License
Integration Guidelines for SDL Core into the vehicle HMI
Home Page: smartdevicelink.com
License: BSD 3-Clause "New" or "Revised" License
Possibly an artifact of an older version, but ApplicationExitReason
is the correct name for this enum. In addition, UNAUTHORIZED_TRANSPORT_REGISTRATION
and UNSUPPORTED_HMI_RESOURCE
are missing from this enum.
No diagrams or mentions of behavior for what an alert is to do when an alert KEEP_CONTEXT soft button is pressed.
Proposal: Add preferred FPS to VideoStreamingCapability
This proposal extends SDL video streaming feature by adding preferred FPS to
VideoStreamingCapability
, so that frame rate of video streaming can be adjusted per OEM.
Review: smartdevicelink/sdl_evolution#913
Steering Committee Decision:
The Steering Committee voted to accept this proposal with revisions. The revisions will include the items listed in this comment from the author.
The proposal .md file was updated to reflect these revisions on 2/10/2020.
In SetDisplayLayout
index.md file, the link Common.DisplayCapabilities, Common.ButtonCapabilities, Common.SoftButtonCapabilities and Common.PresetBankCapabilities are all broken, because the link address should be "Common/Structs/index.md#" instead of "common/structs/#"
None of the description fields are populated
Missing vrHelp parameter for PerformInteraction here: https://smartdevicelink.com/en/docs/hmi/master/vr/performinteraction/.
The vrHelp parameter is included here (https://smartdevicelink.com/en/docs/hmi/master/ui/performinteraction/) just not under the VR section.
SetVideoConfig is included in the UI interface documentation, but it is part of the navigation interface
With SDL 4.1 some new RPC's were introduced. The description of those RPC's is missing in the Integration Guidelines. The following RPC's are affected.
OnSystemInfoChanged
OnEventChanged
OnSystemError
AddStatisticsInfo
Issue moved from: smartdevicelink/sdl_core_guides#18
Impacted RPCs:
SDL.OnStatusUpdate
BC.PolicyUpdate
SDL.GetURLs
BC.OnSystemRequest
BC.SystemRequest
SDL.OnReceivedPolicyUpdate
See issue: smartdevicelink/sdl_core#541 (comment)
Parameter boundary do not align:
Proposal: WebEngine support for SDL JavaScript
This proposal is adding a new transport to the SDL JavaScript library to support (progressive) web apps to run on a WebEngine or a browser.
Review: smartdevicelink/sdl_evolution#767
Steering Committee Decision:
The Steering Committee voted to accept this proposal with the following revisions:
locales
in the manifest.json
file, use standard (RFC 5646), and convert locale strings when necessary.The proposal .md file was updated to reflect these revisions on 12/19/19.
License file should be updated from "Copyright (c) 2017 SmartDeviceLink Consortium, Inc." to "Copyright (c) 2017 - 2020 SmartDeviceLink Consortium, Inc."
If the app gets revoked by Policies update - SDL should notify HMI about the event, keep such app registered and in NONE level and disallow its activation.
The documentation defect (diagram 13.1.4.2) must be fixed to align with the above.
Raised by issue smartdevicelink/sdl_core#798
These messages are marked as Notification
RPCs, but they are Request
RPCs
The message OnEventChanged
is missing from the documentation and should be added.
Proposal: Add preferred FPS to VideoStreamingCapability
This proposal extends SDL video streaming feature by adding preferred FPS to
VideoStreamingCapability
, so that frame rate of video streaming can be adjusted per OEM.
Review: smartdevicelink/sdl_evolution#913
Steering Committee Decision:
The Steering Committee voted to accept this proposal with revisions. The revisions will include the items listed in this comment from the author.
The proposal .md file was updated to reflect these revisions on 2/10/2020.
There are a few broken links within the HMI Integration Guidelines.
Location: SDL/OnStatusUpdate - "BC.PolicyUpdate" link in Notification
section.
Location: UI/AddCommand - "menuLength" link in first MUST
section.
Location: TTS/GetCapabilities - "Common.PrerecordedSpeech" link in first NOTE
section.
Location: BasicCommunication/ActivateApp - "VR.AddCommand" link in Behavior
section.
Location: Buttons/OnButtonPress - "Buttons.OnButtonSubscription" link in first paragraph.
Location: BasicCommunication/OnSystemCapabilityUpdated - "Create Window" link in Notification
section.
Describe SDL behaviour in cases:
IsReady(available: false)
IsReady(available: true)
Impacted interfaces:
Need to add a License file for sdl_hmi_integration_guidelines with the following content:
Copyright (c) 2017, SmartDeviceLink Consortium, Inc.
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 2017, SmartDeviceLink Consortium, Inc. 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.
New OnEventChanged
notification replaces OnEmergencyEvent, OnDeactivateHMI, OnPhoneCall
+ introduces new events AUDIO_SOURCE, EMBEDDED_NAVI
.
The above needs to be properly described in Guidelines.
also discussed here: smartdevicelink/sdl_core/issues/831
Update documentation to reflect the new flow of the proposal described and linked below:
Proposal: HMI Policy Table Update using vehicle modem
This proposal describes an enhanced policy table update PTU sequence where the IVI system sends the policy table snapshots (PTS) directly to the policy server using the in-vehicle modem and returns a policy table update (PTU) back to SDL Core without using any
SystemRequest
RPC.
Review: smartdevicelink/sdl_evolution#813
Steering Committee Decision:
The Steering Committee voted to accept this proposal with the following revisions:
SDL.GetURLs
as deprecated, and add GetPolicyConfigurationData
The proposal .md file was updated to reflect these revisions on 9/3/19.
While Jack and I were working on an SDL HMI integration we found that there were two ways for an application to be activated by the HMI.
In the first, the HMI sends BasicCommunication.OnAppActivated to SDL, SDL sends BasicCommunication.ActivateApp to HMI and HMI returns with a success to SDL. In our testing, we found that activating applications using this flow only worked for some applications.
The other way to activate an application is to send a message called "SDL.ActivateApp" to SDL and get a response with information about the application that was activated. This approach seemed to work for all the applications that we tested.
The differences in these APIs should be documented. If the OnAppActivated API does not work for whatever reason, it should be removed so that it can't be used by future HMI integrations with SDL.
https://smartdevicelink.com/en/guides/hmi/ui/addcommand/
In the sequence diagram for "AddCommand positions"
It shows this:
However, if this is what the app sent thyen the menu would be
Test_3
Test_1
Test_2
I think you should ujst update the signal being sent from the app to say
UI.AddCommand {appID_1, cmdID_3, position: 1, menuName: "Test_3"}
This shows a good use of the position field
This parameter was removed from these RPCs in smartdevicelink/sdl_core#152, the docs should be updated accordingly
In the Ford developer portal, there is a static list of supported icons when using AddCommand
and Show
. These are missing from the HMI integration guidelines.
Reference: https://developer.ford.com/pages/supported-icons-for-developers-android
Currently, links from API description (example) to related Enums and Structs of Common Interface lead to "Page not found" by the reason:
-> current link: https://github.com/smartdevicelink/sdl_hmi_integration_guidelines/blob/master/docs/common/structs/index.md#image
-> should be: https://github.com/smartdevicelink/sdl_hmi_integration_guidelines/blob/master/docs/Common/Structs/index.md#image
The whole Guideline document is impacted.
I havne't been able to find any documentation on the following:
OnDeactivateHMI
OnEventChanged (Understading issue #19 was raised)
ShowCustomForm
We need to include these ASAP.
Embedded nav services should stop their route if they stop being the active nav service.
For more info: smartdevicelink/sdl_evolution#942
Missing SetGlobalProperties_TTS_UI_VR.png
The following items need to be updated in the SDL HMI Integration Guidelines:
from from
in docs/BasicCommunication/DialNumber/index.md should be from
distinguish distinguish
in docs/BasicCommunication/OnAppUnregistered/index.md should be distinguish
Remote Control Consent
should be https://smartdevicelink.com/en/guides/core/feature-documentation/remote-control/#consentsubMenuDepth
should be ../../common/structs/#driverdistractioncapabilitythe the
in docs/UI/SetAppIcon/index.md should be the
then
in docs/UI/SetMediaClockTimer/index.md should be than
<DefaultTimeout>
should be https://smartdevicelink.com/en/guides/core/getting-started/ini-configuration/A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.