From b09a57c27cb4e831eb4a78728fa5adaade3357e4 Mon Sep 17 00:00:00 2001 From: LitvinenkoIra Date: Fri, 11 Dec 2020 15:10:08 +0200 Subject: [PATCH 1/3] Add systemHardwareVersion parameter --- proposals/0293-vehicle-type-filter.md | 29 +++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/proposals/0293-vehicle-type-filter.md b/proposals/0293-vehicle-type-filter.md index d4adc6723e..374b2ff1e2 100644 --- a/proposals/0293-vehicle-type-filter.md +++ b/proposals/0293-vehicle-type-filter.md @@ -1,9 +1,9 @@ # Enable OEM exclusive apps support * Proposal: [SDL-0293](0293-vehicle-type-filter.md) -* Author: [Ashwin Karemore](https://github.com/ashwink11) +* Author: [Ashwin Karemore](https://github.com/ashwink11) and [Iryna Lytvynenko](https://github.com/LitvinenkoIra) * Status: **Accepted with Revisions** -* Impacted Platforms: [Core / iOS / Java Suite / Protocol / JavaScript Suite] +* Impacted Platforms: [Core / iOS / Java Suite / Protocol / JavaScript Suite / HMI / RPC] ## Introduction @@ -67,6 +67,31 @@ The BSON payload of this message will have the following info. |systemSoftwareVersion|String| Vehicle system software version | |systemHardwareVersion|String| Vehicle system hardware version | +### MOBILE_API Changes + +#### Addition of "RegisterAppInterface" function + +```xml + + : + + The hardware version of the system + + +``` +### HMI_API Changes + +#### Addition of "GetSystemInfo" function + +```xml + + : + + The hardware version of the system + + +``` + ### iOS, JavaScript Suite, and Java Suite App Library Changes The libraries will need to implement the above-mentioned protocol changes. In addition to implementing a protocol message, it will need the additional implementation to propagate vehicle type info to the application layer. From 22d9777cc48588a7a47ec6d74a86e995668ba8de Mon Sep 17 00:00:00 2001 From: LitvinenkoIra Date: Thu, 28 Jan 2021 10:55:56 +0200 Subject: [PATCH 2/3] Add agreed-upon revisions --- proposals/0293-vehicle-type-filter.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/proposals/0293-vehicle-type-filter.md b/proposals/0293-vehicle-type-filter.md index 374b2ff1e2..9ac40f7fa1 100644 --- a/proposals/0293-vehicle-type-filter.md +++ b/proposals/0293-vehicle-type-filter.md @@ -74,8 +74,17 @@ The BSON payload of this message will have the following info. ```xml : - - The hardware version of the system + + Specifies the vehicle's type. See VehicleType. + + + + + + The software version of the system that implements the SmartDeviceLink core. + + + ``` From 0ccbbcaf6530f18b390f0e0e1eb6cd8db82f3e30 Mon Sep 17 00:00:00 2001 From: Vladyslav Mustafin Date: Thu, 28 Jan 2021 17:04:16 +0200 Subject: [PATCH 3/3] update the proposal to reflect the agreed-upon revisions --- proposals/0293-vehicle-type-filter.md | 60 ++++++++++++++++++++++----- 1 file changed, 49 insertions(+), 11 deletions(-) diff --git a/proposals/0293-vehicle-type-filter.md b/proposals/0293-vehicle-type-filter.md index 9ac40f7fa1..a111cc8437 100644 --- a/proposals/0293-vehicle-type-filter.md +++ b/proposals/0293-vehicle-type-filter.md @@ -113,36 +113,74 @@ The libraries will need to implement the above-mentioned protocol changes. In ad In JavaScript Suite App Library: ```javascript - /** + class SystemInfo { + + /** + * Initializes an instance of SystemInfo. + * @class + * @param {VehicleType} vehicleType + * @param {String} systemSoftwareVersion + * @param {String} systemHardwareVersion + */ + constructor (vehicleType = null, systemSoftwareVersion = null, systemHardwareVersion = null) { + this._vehicleType = vehicleType; + this._systemSoftwareVersion = systemSoftwareVersion; + this._systemHardwareVersion = systemHardwareVersion; + } + + setVehicleType(vehicleType) {} + getVehicleType() {} + + setSystemSoftwareVersion(SystemSoftwareVersion) {} + getSystemSoftwareVersion() {} + + setSystemHardwareVersion(SystemHardwareVersion) {} + getSystemHardwareVersion() {} + } + + /** * A way to determine if this SDL session should continue to be active while - * connected to the determined vehicle type. - * @param {SdlManager} sdlManager - A reference to an SdlManager instance. - * @param {VehicleType} vehicleType - the type of vehicle that this session is currently active on. + * connected to the determined system information of the vehicle. + * @param {SystemInfo} systemInfo - the system information of the vehicle that this session is currently active on. * @returns {Boolean} Return true if this session should continue, false if the session should end */ - onVehicleTypeReceived (sdlManager, vehicleType) {} + onSystemInfoReceived (systemInfo) {} ``` In iOS App Library: ```objective-c + @interface SDLSystemInfo + + @property (strong, nonatomic, readonly) SDLVehicleType *vehicleType; + @property (strong, nonatomic, readonly) NSString *systemSoftwareVersion; + @property (strong, nonatomic, readonly) NSString *systemHardwareVersion; + + @end + /** * A way to determine if this SDL session should continue to be active while - * connected to the determined vehicle type. - * @param {SDLVehicleType} vehicleType - the type of vehicle that this session is currently active on. + * connected to the determined system information of the vehicle. + * @param {SDLSystemInfo} systemInfo - the system information of the vehicle that this session is currently active on. * @returns {BOOL}Return true if this session should continue, false if the session should end */ - - (BOOL)didReceiveVehicleType:(SDLVehicleType *)type ; + - (BOOL)didReceiveSystemInfo:(SDLSystemInfo *)systemInfo; ``` In Java SE and Java EE App Libraries: ```java + class SystemInfo { + VehicleType vehicleType + String systemSoftwareVersion, + String systemHardwareVersion + } + /** * A way to determine if this SDL session should continue to be active while - * connected to the determined vehicle type. - * @param {VehicleType} vehicleType - the type of vehicle that this session is currently active on. + * connected to the determined system information of the vehicle. + * @param {SystemInfo} systemInfo - the system information of the vehicle that this session is currently active on. * @returns {boolean}Return true if this session should continue, false if the session should end */ - boolean onVehicleTypeReceived(VehicleType type); + boolean onSystemInfoReceived(SystemInfo systemInfo); ``` #### Android App Library Changes