SDL Core 8.0.0 no longer supports Ubuntu 16. Supported versions of SDL Core are Ubuntu 18.04 and Ubuntu 20.04.
SDL Core 8.0.0 dropped support for libssl1.0. Developers should install libssl-dev
instead of libssl1.0-dev
.
ENABLE_HMI_PTU_DECRYPTION
ENABLE_HMI_PTU_DECRYPTION
was removed from the build configuration. Behaviors defined by ON/OFF options are now both supported without the need for this build flag.
The default logger is still using LOG4CXX but the option is now available to use Boost for the logger. When porting SDL Core to different Linux environments, the LOG4CXX logger was known to cause dependency issues. Boost is offered as an alternative logger in hopes of making porting SDL Core to different environments easier.
set(LOGGER_NAME "LOG4CXX" CACHE STRING "Logging library to use (BOOST, LOG4CXX)")
This parameter was added to the smartDeviceLink.ini configuration to compensate for transfer and processing time of requests. This value is added to the DefaultTimeout
parameter when calculating the RPC request timeout. Previously, specific requests such as Alert were hardcoded to extend their default timeout, now timeout compensation is configurable and applied to all requests.
; Extra time to compensate default timeout due to external delays DefaultTimeoutCompensation = 1000
The default parameter AppIconsFolder
was updated to use a directory named “icons”. This value used to be “storage”.
; Specify a dedicated folder, as old files in this folder can be automatically removed AppIconsFolder = icons
SDL Core 8.0.0 no longer automatically subscribes to CUSTOM_BUTTON
. If an HMI supports soft buttons, it must include an entry for CUSTOM_BUTTON
in its button capabilities in order for mobile to receive OnButtonPress
and OnButtonEvent
notifications.
The behavior of the PHONE_CALL
event was changed to only affect the audioStreamingState
of an app. Rather than automatically deactivating the active app, SDL Core will now only change the audioStreamingState
of all apps to NOT_AUDIBLE
when BC.OnEventChanged(PHONE_CALL, active=true)
is sent, leaving each app's hmiLevel
unchanged. This allows the HMI to start a phone call in the background without leaving the app screen, if desired.
The HMI can still control the hmiLevel
of the app during a phone call event by sending BC.OnAppDeactivated(appID)
and BC.OnAppActivated(appID)
where appropriate.
Buttons.OnButtonSubscription
notification was replaced by Buttons.SubscribeButton
request and response.
<function name="SubscribeButton" messagetype="request"> <description> Subscribes to buttons. </description> <param name="appID" type="Integer" mandatory="true"> <description>The ID of the application requesting this button subscription. </description> </param> <param name="buttonName" type="ButtonName" mandatory="true"> <description>Name of the button to subscribe.</description> </param> </function> <function name="SubscribeButton" messagetype="response"> </function>
Buttons.UnsubscribeButton
request and response were added to allow SDL Core to request that the HMI unsubscribes an application from a specific button.
<function name="UnsubscribeButton" messagetype="request"> <description> Unsubscribes from buttons. </description> <param name="appID" type="Integer" mandatory="true"> <description>The ID of the application requesting this button unsubscription. </description> </param> <param name="buttonName" type="ButtonName" mandatory="true"> <description>Name of the button to unsubscribe.</description> </param> </function> <function name="UnsubscribeButton" messagetype="response"></function>
UI.OnResetTimeout
and TTS.OnResetTimeout
were removed in place of using a broader RPC, BasicCommunication.OnResetTimeout
.
This updated OnResetTimeout
RPC can be used across all interfaces for all request functions.
The parameters in the notification have also changed:
- The parameter requestID
is used instead of appID
to identify which specific request should have its timeout extended.
- The parameter methodName
should include the interface name and the RPC. For example: ”TTS.Speak”
.
- The parameter resetPeriod
allows the HMI to specify how long Core should delay the application request’s timeout.
<interface name="BasicCommunication"> ... <function name="OnResetTimeout" messagetype="notification" since="X.Y"> <description> HMI must send this notification to SDL for method instance for which timeout needs to be reset </description> <param name="requestID" type="Integer" mandatory="true"> <description> Id between HMI and SDL which SDL used to send the request for method in question, for which timeout needs to be reset. </description> </param> <param name="methodName" type="String" mandatory="true"> <description> Name of the function for which timeout needs to be reset </description> </param> <param name="resetPeriod" type="Integer" minvalue="0" maxvalue="1000000" mandatory="false"> <description> Timeout period in milliseconds, for the method for which timeout needs to be reset. If omitted, timeout would be reset by defaultTimeout specified in smartDeviceLink.ini </description> </param> </function> … </interface>