smartdevicelink / sdl_hmi Goto Github PK
View Code? Open in Web Editor NEWLicense: BSD 3-Clause "New" or "Revised" License
License: BSD 3-Clause "New" or "Revised" License
Currently there is the following communication between SDL and HMI during Policy Table Update sequence in case of EXTERNAL_PROPRIETARY flow.
SDL->HMI: BC.PolicyUpdate(file)
HMI->SDL: BC.OnSystemRequest(file)
where file
is path to policy table snapshot file
It is assumed for EXTERNAL_PROPRIETARY
that HTTP header is added by HMI
However for PROPRIETARY
this header is added by SDL Core
Always
BC.OnSystemRequest
from HMIPTS file contains HTTP header
PTS file does not contain HTTP header => SPT is unable to send appropriate SystemRequest
HTTP header is
{
"HTTPRequest": {
"body": "<policy_table>",
"headers": {
"ConnectTimeout": <int value from policy table:timeout_after_x_seconds>,
"Content-Length": <value of the length of the "body" string>,
"ContentType": "application/json",
"DoInput": true,
"DoOutput": true,
"InstanceFollowRedirects": false,
"ReadTimeout": <int value from policy table:timeout_after_x_seconds>,
"RequestMethod": "POST",
"UseCaches": false,
"charset": "utf-8"
}
}
}
Preconditions:
Steps to reproduce:
Actual result:
HMI sends an OnDriverDistraction notification to the SDL twice, and the mobile application receives two notifications
- HMI→SDL: "OnDriverDistraction"( "DD_ON" )
HMI→SDL: "OnDriverDistraction"( "DD_ON" )
SDL→MOB: "OnDriverDistraction"( "DD_ON")
SDL→MOB: "OnDriverDistraction"( "DD_ON")
HMI→SDL: "OnDriverDistraction"( "DD_OFF" )
HMI→SDL: "OnDriverDistraction"( "DD_OFF" )
SDL→MOB: "OnDriverDistraction"( "DD_OFF")
SDL→MOB: "OnDriverDistraction"( "DD_OFF")
Expected result:
HMI sends one OnDriverDistraction notification to the SDL, and the mobile application receives one notification:
- HMI→SDL: "OnDriverDistraction"( "DD_ON" )
SDL→MOB: "OnDriverDistraction"( "DD_ON")
HMI→SDL: "OnDriverDistraction"( "DD_OFF" )
SDL→MOB: "OnDriverDistraction"( "DD_OFF")
Proposal: Navigation Subscription Buttons
This proposal adds support for new subscription buttons (like the existing Play/Pause, Next, Previous, etc.) specifically designed for navigation scenarios.
Review: smartdevicelink/sdl_evolution#712
Steering Committee Decision:
The Steering Committee voted to accept this proposal with the following revisions:
Additionally, there was a question in the Steering Committee meeting about requiring applications to be compatible with this proposal. It was advised that this requirement is out of the scope of SDL, and OEMs would need to ask application developers to implement this proposal once it's available in the library for developers to implement.
The proposal .md file was updated to reflect these revisions on 5/20/19.
HMI does not send heatingLevel in OnInteriorVehicleData after update from HMI
Once
HMI sends OnInteriorVehicleData notification with heatingLevel with updated value and SDL transfer notification to mobile app
HMI does not send heatingLevel in OnInteriorVehicleData after update
Proposal: SDL shall not put RC applications to HMI level NONE when user disables RC in HMI
SDL shall not put
REMOTE_CONTROL
appHMIType
applications to HMI levelNONE
when user disables remote control in HMI.
If in this repository the GitHub pages are enabled (go to repository Settings) to serve up Master branch then automagically the index.html herein will be reachable from the Web for evaluation, like this: https://smartdevicelink.github.io/sdl_hmi/
See the example on my fork: https://gunnarx.github.io/sdl_hmi/
which is nothing more than the repo itself: https://github.com/gunnarx/sdl_hmi/
Proposal: Remote Control - Radio and Climate Parameter Update
This proposal changes the minimum index of HD radio sub-channels from 1 to 0.
In addition, we propose to add a new parameter climateEnable to ClimateControlData which will allow an application to power climate control on or off.
smartdevicelink/sdl_evolution#643
Steering Committee Decision:
The Steering Committee voted to accept this proposal with revisions. The author is to update this proposal to state that
availableHDs
andavailableHdsAvailable
are deprecated entirely if the functionality is subsumed byavailableHDChannels
as finalized in this comment.
Revisions were made on 2019-01-02
Matches core issue: smartdevicelink/sdl_core#1815 and accepted evolution proposal smartdevicelink/sdl_evolution#303
HMI does not support remote control SEAT in capability
App get SEAT module data
app get UNSUPPORTED_RESOURCE error.
Also there is no seat related capability in the GetSystemCapability response
Bug Report
HMI must put applications to HMI level "LIMITED"
Precondition:
Steps:
Go to menu Apps.
Expected Behavior:
HMI level of application becomes LIMITED
Observed Behavior:
HMI level of application still FULL or BACKGROUND
When I connect android phone with sdl core, the error occurred while playing music from the phone apk. The errors are follow:
ERROR!!! /usr/src/debug/sdl-core/4.4.1-r0/git/src/3rd_party-static/message_broker/src/server/mb_tcpserver.cpp:96 Received 4096 actual data length 4916
ERROR!!! /usr/src/debug/sdl-core/4.4.1-r0/git/src/3rd_party-static/message_broker/src/server/mb_tcpserver.cpp:97 Incomplete messageERROR!!!
How to solve the problem?
The sdl-core was runned on AGL platform.
sdl core version is : 4.4.0
Thanks
Proposal: Service Status Update to HMI
This proposal is about adding a new RPC called 'OnServiceUpdate' which will be used by the HMI layer to know the status of certain services from SDL Core.
Review: smartdevicelink/sdl_evolution#641
Steering Committee Decision:
The Steering Committee voted to accept this proposal with revisions on 2018-12-18. The author is to update the proposal to include both the Audio and RPC services discussed in this comment and adding an optional 'appID' parameter to the OnServiceUpdate RPC as noted in this comment.
Revisions were made on 2018-12-20
Precondition: SDL must be built with EXTERNAL_PROPRIETARY flag
Steps to reproduce:
Expected result: The list of app permissions for defined app is empty
Actual result: The list contains 2 records from previous update and they can be pressed and HMI sends some invalid message {"jsonrpc":"2.0","method":"SDL.OnAppPermissionConsent","params":{"source":"GUI","consentedFunctions":[{"allowed":true},{}],"appID":0}}
SDL branch: smartdevicelink/sdl_core@17c3f51
Mobile app version: 4.6.3 20180912
OS version: Ubuntu 16.04
Files for update:
files_for_ptu.tar.gz
Currently there is the following communication between SDL and HMI during Policy Table Update sequence in case of PROPRIETARY and EXTERNAL_PROPRIETARY flows.
SDL->HMI: BC.SystemRequest(file)
HMI->SDL: SDL.OnReceivedPolicyUpdate(file)
where file
is path to policy table update file
It is assumed that policy update file is provided by cloud with data
root element in case of PROPRIETARY and EXTERNAL_PROPRIETARY flows.
And HMI has to remove this root data
element before sending SDL.OnReceivedPolicyUpdate
notification to SDL.
Always
SDL.OnReceivedPolicyUpdate
from HMIPTU file doesn't contain root data
element
PTU file contains root data
element => SDL couldn't apply PTU
When a navigation app connects and start streaming the HMI shows a popup (
Line 318 in 822b808
We should remove the popup as it does not provide any benefit to the user.
Proposal: Add Ability to Reuse a SyncFileName for a PutFile
Currently, when a developer tries to reuse the same syncFileName for a PutFile with image data, the HMI is not updated to show the new image. This is due to Core only sending a notification to the HMI when the PutFile is a system file. To remedy this issue, Core needs to send a notification to the HMI when it receives any type of PutFile.
smartdevicelink/sdl_evolution#642
Steering Committee Decision:
The Steering Committee voted to accept this proposal with revisions on 2018-12-18. The author is to updated this proposal to include an additional parameter name of the updated file to the HMI notification as called out in this comment.
Revisions were made on 1.17.19
Proposal: SetAudioStreamingIndicator RPC
The proposal is about adding a new RPC for media apps to indicate the action of a play/pause button.
Review: smartdevicelink/sdl_evolution#334
Steering Committee Decision:
The Steering Committee voted to accept this proposal with the revisions outlined in the last comment from kshala-ford.
<function name="SetMediaClockTimer" messagetype="request">
<param name="audioStreamingIndicator" type="AudioStreamingIndicator" mandatory="false" />
:
</function>
The Steering Committee also discussed the scenario when a head unit doesn't receive an update from the app, and it was determined that the head unit would fall back to old behavior in this case.
The proposal .md was updated on March 14, 2018 to include the agreed upon revisions.
Resumption.Application data is not restored on HMI after unexpected disconnect and connect are performed
1.SDL and HMI are started
2. App1is registered
3. App1 added AddCommand
4. Unexpected disconnect and connect are performed
SDL sends data for resuming after sending "BasicCommunication.OnAppRegistered" to the HMI
SDL sends data for resuming before sending "BasicCommunication.OnAppRegistered" to the HMI and On HMI does not display all data for applications
Proposal: Display name parameter
This proposal is about deprecating the parameter
displayType
and replace it withdisplayName
.
Review: smartdevicelink/sdl_evolution#184
Steering Committee Decision:
This proposal has been accepted by the Steering Committee. After much discussion about the
displayName
parameter, it was decided that the parameter should be kept as there are specific use cases where the parameter is helpful for OEMs, notably OEM-created apps. In the future, we may want to have thedisplayName
s for certified head units recorded publicly for reference.
HMI responds 'REJECTED' to a request from SDL on RC.ButtonPress from the App2
HMI must update values on SEAT form according to changes in SetInteriorVD requets
HMI responds 'REJECTED' to a request from SDL on RC.ButtonPress from the App2
HMI responds 'SUCCESS' to a request from SDL on RC.ButtonPress from the App2
HMI shall not send a OnInteriorVehicleData notification if a parameter is included in the request but the value is the same as the current value (i.e. no change).
(This issue is applicable to all types of modules)
Steps:
Expected:
HMI doesn't send OnInteriorVehicleData notification because the params values are the same as the current values
Observed:
HMI send OnInteriorVehicleData notification
Proposal: CloseApplication RPC
This proposal is about adding a new RPC called
CloseApplication
which can be used by an app to send itself intoHMI_NONE
.
sdl_hmi/app/model/sdl/Abstract/Model.js
Line 182 in 795be41
In W3C, 'timestamp' of event is the number of milliseconds since midnight of January 1, 1970
(reference : https://www.w3schools.com/jsref/event_timestamp.asp)
However the max value 'ts' of TouchEvent that is for UI.OnTouchEvent is 2147483647. Maybe in Core, ts is seconds since midnight of January 1, 1970.
(reference : https://smartdevicelink.com/en/docs/hmi/master/common/structs/#touchevent)
The issue is that wrong value is passed to core when FFW.UI.onTouchEvent.
HMI shall show media app template instead of Navigation Panel when activates a media remote control app.
HMI shows media app template
HMI shows Navigation Panel
Get the error after receiving a send location request from core.
NavigationController.js:52 Uncaught TypeError: this.model.push is not a function
HMI sometimes sends Inaccurate supported text fields in DisplayCapability
in both RAI
response and SetDisplayLayoutResponse
. So for example, if we use MEDIA
for the app HMI type, the display capability in RAI
response says that textfield4 is supported. While practically, the default template cannot actually display the text field 4.
Proposal: SDL must transfer RPC’s with invalid image reference parameters to the HMI
Update SDL Core behavior to more gracefully handle RPC requests that provide an invalid image reference. Any RPC that provides a reference to an image that is not located in the AppStoreFolder is considered invalid (the AppStoreFolder is specified in the SmartDeviceLink.ini.)
Review: smartdevicelink/sdl_evolution#128
Steering Committee Decision:
The Steering Committee has agreed to accept this proposal. They also recommended that an additional proposal be submitted for the additional post loading of content.
On HMI not displayed the second App
HMI must update values on SEAT form according to changes in SetInteriorVD requets
On HMI displayed only one app of two
On HMI displayed both apps
Steps to reproduce:
SEAT
module type is preset in preloaded_pt, "Remote_control" is assigned to appRC
app and activate itGetSystemCapability
(remote_control)Expected result: HMI sends seat capabilities in GetSystemCapability
response
Actual result: HMI does not send seat capabilities in GetSystemCapability
response
Proposal: Button Subscription response from HMI
This proposal is to replace
OnButtonSubscription
notification
withSubscribeButton
request/response,UnsubscribeButton
request/response to HMI.
Review: smartdevicelink/sdl_evolution#568
Steering Committee Decision:
The Steering Committee voted to accept this proposal with the following revisions:
The proposal .md file was updated to reflect these revisions on 8/13/18.
Proposal: Interior Vehicle Data Resumption
This proposal is to restore Interior data subscriptions on application registration after unexpected disconnect or ignition cycle.
Review: smartdevicelink/sdl_evolution#554
Steering Committee Decision:
The Steering Committee accepted this proposal with revisions on 8/1/2018. Revisions were made on 10/9/18.
Proposal: Template Improvements: Color Scheme
This proposal enables apps to provide a custom color scheme. This will allow OEMs to still strictly control layout and design while allowing apps some amount of branding and customization.
Review: smartdevicelink/sdl_evolution#422
Steering Committee Decision:
The Steering Committee has voted to accept this proposal with the revisions noted in this comment.
The proposal .md was updated on March 21, 2018 to include the agreed upon revisions.
Proposal: Media Skip Indicators
This feature is similar to SDL-0109 Audio Streaming Indicator except that it affects the next and previous buttons. These buttons should have the ability to show time skip buttons that are commonly used by podcast & audiobook media.
Review: smartdevicelink/sdl_evolution#596
Steering Committee Decision:
The Steering Committee voted to accept this proposal with the following revisions:
SeekIndicatorType
are documented, as requested in this comment.The proposal .md file was updated to reflect these revisions on 9/20/18.
Proposal: Adding GPS Shift support
To add shifted param for GPS data struct so that HMI can communicate to app when GPS data is shifted using an algorithm
Review: smartdevicelink/sdl_evolution#598
Steering Committee Decision:
The Steering Committee fully agreed to accept this proposal on 2018-09-25.
When I use sdl_hmi as my hmi-level software, I cannot view the video.
Android APP: Sygic Car Navi.
Core version: 4.5.0
HMI version: newest now
Steps:
1, I edit the smartDeviceLink.ini and set 'VideoStreamConsumer = pipe' and 'AudioStreamConsumer = pipe ' and started up core using command: 'smartDeviceLinkCore'.
2, Then I used Chome and viewed the hmi 'sdl_hmi/index.html'.
3, Connect the android phone to PC with USB.
4, Click the ICON in sdl_hmi and activite the 'Sygic Car Navi' App.
No map or other video can be viewed.
Could anyone help to teach me where the steps above was wrong, or any suggestions?
Thanks a lot !
Hello,
I am running SDL core on Ubuntu, and I have loaded the HTML page which shows the head unit mock-up. What exactly does this web HMI do? How do I know if this is connected with the running SDL core? And what I can do with this web HMI to demonstrate core functions?
Thank you!!
Steps to reproduce:
Expected result: all apps are registered and shown on HMI.
Actual result: App_2 from device_2 is registered, but is not shown on HMI.
Proposal: Static Icon Capability
Add a capability for app developers to know if static icons are available on a connected head unit.
Review: smartdevicelink/sdl_evolution#636
Steering Committee Decision:
The Steering Committee voted to accept this proposal with the revisions on 2018-12-11. The author will alter his proposal to match his last comment but with the array maximum size as 1000.
The author has made the requested revisions on 2018-12-20
Sending an RC.ButtonPress RPC for the radio button "SOURCE" leaves the HMI in a bad state. Any displayed text disappears and interacting with the app causes this error.
Controller.js:133 Uncaught TypeError: Cannot read property 'set' of null
Relevant logs:
Message received: {"id":65,"jsonrpc":"2.0","method":"Buttons.ButtonPress","params":{"appID":754384191,"buttonName":"SOURCE","buttonPressMode":"SHORT","moduleType":"RADIO"}}
ButtonsRPC.js:130 FFW.Buttons.onRPCRequest
ButtonsRPC.js:133 FFW.Buttons.ButtonPress Reqeust
BasicCommunicationRPC.js:1197 FFW.BasicCommunication.OnEventChanged
RPCClient.js:247 {"jsonrpc":"2.0","method":"BasicCommunication.OnEventChanged","params":{"eventName":"AUDIO_SOURCE","isActive":true}}
RPCClient.js:249 6:48:22:49
RCRPC.js:568 FFW.RC.OnInteriorVehicleData Notification
RPCClient.js:247 {"jsonrpc":"2.0","method":"RC.OnInteriorVehicleData","params":{"moduleData":{"moduleType":"AUDIO","audioControlData":{"source":"USB"}}}}
RPCClient.js:249 6:48:22:50
BasicCommunicationRPC.js:1197 FFW.BasicCommunication.OnEventChanged
RPCClient.js:247 {"jsonrpc":"2.0","method":"BasicCommunication.OnEventChanged","params":{"eventName":"AUDIO_SOURCE","isActive":false}}
RPCClient.js:249 6:48:22:56
AlertManeuver pop-up with softButtons is not shown on HMI
HMI shows AlertManeuver pop-up with softButtons
HMI does not show AlertManeuver pop-up with softButtons and sends response right after request is received.
Add markdown file containing list of third party libraries information used within repo.
Proposal: AutoCompleteList
The AutoCompleteList will give apps the ability to have multiple listing options while searching for things like destination and information; instead of giving a single suggestion.
From sandeepf184 (smartdevicelink/sdl_core#838):
According to the HMI flow, when we send messages like dialnumber it should check for high priority events like Alert and Emergency Call etc. But I have seen in web hmi that when alert message is displayed and made a request for dialnumber , the dialnumber popup is displayed over alert message. Can anyone please check with it and help me with that.
HMI does not update LIGHT rgb color
"moduleData":{"moduleType":"LIGHT","lightControlData":{"lightState":[{"id":"FRONT_LEFT_HIGH_BEAM","density":0,"sRGBColor":{"blue":0,"green":0,"red":0},"status":"ON"}]}}
color of FRONT_LEFT_HIGH_BEAM
shall get updated on HMI
app get success response, but color is not update to new value.
Proposal: Support running the same app from multiple devices at the same time
This proposal proposes that SDL shall support running the same app from multiple devices at the same time. Currently, SDL only allows one instance of the same app to register with SDL. However, there are valid use cases for running the same app from two or more devices at the same time.
Review: smartdevicelink/sdl_evolution#618
Steering Committee Decision:
The Steering Committee voted to accept this proposal with revisions. The revisions will include updating the descriptions of ttName and vrSynonyms as discussed in this comment.
In addition, the author will address numbers 2 and 4 in this comment.
• 2. I would specify in proposal that after policy update, it will be applied for both of registered applications
• 4. Application on different device should share same usage statistics, because they use same policy app_id. this should be added to the proposal.
Revisions were made on 11/21/18
As the title says - what are the license conditions for the code (and images) in this repository?
Update: Some (most?) but not all files have headers with license information. It would still help to have a LICENSE file in the root. Also, what about the image files?
in the Html HMI, after clicking the app "syncproxytest", a popup showing "Activation in progress...", but the app does not get activated.
HMI does not update values in drop-down list on SEAT form in case values are updated via SetInteriorVD
Sometimes
HMI must update values on SEAT form according to changes in SetInteriorVD requets
HMI does not update values on SEAT form, but sends actual values in OnInteriorVD and in SetInteriorVD response
When app needs to SetDisplayLayout with template "GRAPHIC_WITH_TEXT", connected and tested with sdl_core and sdl_hmi, it response "UNSUPPORTED_REQUEST".
We searched in this repo, seems here only one template in UI.GetCapabilities that hmi can response for app request, whatever hmi_capabilities template supported in sdl_core side. Actually, totally 15 standard templates should be supported in hmi.
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.