This guide will explain how the BasicCommunication.OnServiceUpdate RPC is used within SDL Core. At a high level, this RPC is used by SDL Core to inform the HMI of the status of the system or what steps to take in case of an error. For example, when a mobile navigation application is activated and sends a request to start a Video Service, a series of steps are taken: getting the system time, performing a policy table update, and finally decrypting and validating certificates. SDL Core sends BC.OnServiceUpdate notifications to the HMI throughout each of these steps to provide information on the status of the system. These notifications may cause the HMI to display a popup providing this status information in a readable format to the user, or inform the user of what steps to take in case of an error.
The OnServiceUpdate notification has three parameters:
This parameter is mandatory and will contain a value from the ServiceType enum, indicating the type of service that this update is for:
This parameter is not mandatory and will be a value from the ServiceEvent enum, indicating the status of the StartService request:
This parameter is not mandatory and will be a member of the ServiceStatusUpdateReason enum, indicating the type of error that occurred while attempting to start the service:
SystemTime from the HMIThis parameter is not mandatory but will be included with each request after the RegisterAppInterface message for this application has been received.
More documentation on the message flow for BC.OnServiceUpdate and its parameters can be found in the HMI Integration Guidelines.
To better understand how the OnServiceUpdate notification is propagated within SDL Core, please take a look at the following Sequence Diagrams:
View on GitHub.com