Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revise SDL-0221 Remote Control - Allow Multiple Modules per Module Type #786

Conversation

LuxoftAKutsan
Copy link
Contributor

@LuxoftAKutsan LuxoftAKutsan commented Jul 18, 2019

Introduction

Update SDL-0221 Remote Control - Allow Multiple Modules per Module Type with changes :

  1. Make SeatControlData::id parameter not mandatory for compatibility with the MOBILE_API. The RPC Spec has deprecated the SeatControlData::id parameter.

  2. Change rules for processing ModuleType::SEAT when the SeatControlData::id parameter is missing from the mobile request. This change is for backward compatibility with older apps

Motivation

The accepted proposal does not provide backwards compatibility for older SDL apps that do not use the Seat module parameter moduleId

Proposed solution

Old :

If a mobile app uses the SupportedSeat id and no moduleId in a RPC request, SDL shall forward the request as is to the HMI. The HMI shall automatically convert seat id=DRIVER to the moduleId that corresponds to the driver’s seat module, and seat id=FRONT_PASSENGER to the moduleId that corresponds to the front passenger's seat. If a mobile app includes both id and moduleId in a RPC request, id shall be ignored since moduleId has a higher priority.

New :

If a mobile app uses the SupportedSeat id and omits moduleId in a RPC request, SDL shall add the moduleId parameter to HMI request according to the following rules:

  • if id = DRIVER then moduleId = moduleId of first published module in seatControlCapabilities

  • if id = FRONT_PASSENGER then moduleId = moduleId of second published module in seatControlCapabilities

If a mobile app includes both SupportedSeat id and moduleId in a RPC request, SDL shall forward the request as is to HMI.

New :

Add to HMI_API

<struct name="SeatControlData">
    <description>Seat control data corresponds to "SEAT" ModuleType. </description>
-   <param name="id" type="SupportedSeat" mandatory="true"></param>
+   <param name="id" type="SupportedSeat" mandatory="false"></param>
    ...
</struct>

@mrapitis
Copy link
Contributor

@theresalech this is ready for review

Copy link
Contributor

@theresalech theresalech left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @LuxoftAKutsan - this proposal was a bit difficult to follow, so we've provided some substantial feedback below in an effort to assist SDLC members when the proposal enters review this week. Please let us know if you have any questions about these suggestions. We were not 100% sure on some of the items, so please review the suggestions for accuracy, and let us know if you have any questions (cc @JackLivio).

  • In the "Introduction" section, please bullet the items after changes: since you are inferring the start of a list.

Make SeatControlData::id parameter not mandatory for compatibility with new MOBILE_API. Because updated mobile API deprecating SeatControlData::id parameter.

We recommend updating to "Make SeatControlData::id parameter not mandatory for compatibility with the MOBILE_API. The RPC Spec has deprecated the SeatControlData::id parameter."

Change rules of Seat module type processing if module_id parameter is missed in mobile request (for backward compatibility with older versions of mobile apps)

We recommend updating to "Change rules for processing ModuleType:SEAT when the parameter is missing from the mobile request. This change is for backward compatibility with older apps."

The current design provides no ability for SDL to process SEAT module type module allocation for older apps, that does not use 'module-id' parameter.

We recommend updating to "The accepted proposal does not provide backwards compatibility for older SDL apps that do not use the Seat module parameter "module-id"."

If a mobile app uses the SupportedSeat id and no module_id in a RPC request, SDL shall forward the request as is to HMI, HMI shall automatically convert seat id=DRIVER to the module_id that corresponds to the driver’s seat module, and seat id=FRONT_PASSENGER to the module_id that corresponds to the front passenger's seat. If a mobile app includes both SupportedSeat id and module_id in a RPC request, id shall be ignored since module_id has a higher priority.

We recommend updating to "If a mobile app uses the SupportedSeat id and no module_id in a RPC request, SDL shall forward the request as is to the HMI. The HMI shall automatically convert seat id=DRIVER to the module_id that corresponds to the driver’s seat module, and seat id=FRONT_PASSENGER to the module_id that corresponds to the front passenger's seat. If a mobile app includes both SupportedSeat id and module_id in a RPC request, id shall be ignored since module_id has a higher priority."

If a mobile app uses the SupportedSeat id and no module_id in a RPC request, SDL shall add the module_id parameter to HMI request according to next rule:

We recommend updating to the following:
"If a mobile app uses the SupportedSeat id and omits module_id in a RPC request, SDL shall add the module_id parameter to HMI request according to the following rules:

  • if id = DRIVER then moduleId =
  • if id = FRONT_PASSENGER then moduleId = "

@LitvinenkoIra LitvinenkoIra force-pushed the 0221-rc-allow-multiple-modules_revision branch from 1ea5bac to 6548af9 Compare July 23, 2019 10:24
@LuxoftAKutsan
Copy link
Contributor Author

@theresalech revision updated according to comments

@LitvinenkoIra LitvinenkoIra force-pushed the 0221-rc-allow-multiple-modules_revision branch from 87a2c0a to 16b9b2c Compare July 31, 2019 15:32
@LuxoftAKutsan
Copy link
Contributor Author

@theresalech proposal updated according to revisions

@theresalech theresalech merged commit f81e53c into smartdevicelink:master Aug 1, 2019
LitvinenkoIra pushed a commit to smartdevicelink/sdl_hmi_integration_guidelines that referenced this pull request Aug 5, 2019
ShobhitAd pushed a commit to smartdevicelink/sdl_hmi_integration_guidelines that referenced this pull request Sep 10, 2019
* Stucts
1 add new ModuleInfo struct
2 ModuleData -> add `moduleId` param
3 add new Grid struct
4 add struct SeatLocation
5 add new struct SeatLocationCapability
6. ClimateControlCapabilities -> add `moduleInfo`
7. RadioControlCapabilities -> add `moduleInfo`
8. ButtonCapabilities  -> add `moduleInfo`
9. AudioControlCapabilities  -> add `moduleInfo`
10. HMISettingsControlCapabilities  -> add `moduleInfo`
11. LightControlCapabilities -> add `moduleInfo`
12. SeatControlCapabilities -> add `moduleInfo`
13. SeatControlData - remove `id` param
14. SystemCapability struct - > add "seatLocationCapability"

Enums
1. remove SupportedSeat
2. SystemCapabilityType -> add SEAT_LOCATION

Functions
1. GetInteriorVehicleData_request -> add `moduleId`, add `subscribe` description
2. ButtonPress add "moduleId"
3. GetInteriorVehicleDataConsent_request -> add `moduleIds`
4. GetInteriorVehicleDataConsent_response -> "allowed" add array="true"
5. TTS.SetGlobalProperties_request -> add param `userLocation`
6. RC.GetCapabilities_response -> add param name="seatLocationCapability"

* Update RC.GetCapabilities must section

* added `id` mandatory=false to SeatControlData

added per revision smartdevicelink/sdl_evolution#786

* upd GetCapabilities, GetInteriorVehicleData, OnInteriorVehicleData, OnRCStatus index

* upd Consent diagr;GetCapabilities,GetInteriorVehicleData index minor improvments

* Apply suggestions from code review

Co-Authored-By: Shobhit Adlakha <ShobhitAd@users.noreply.github.com>

* remove `userLocation` from TTS.SetGlobalProperties

* remove `defvalue` for `subscribe` param

Co-Authored-By: Shobhit Adlakha <ShobhitAd@users.noreply.github.com>

* formatting !!! MUST

* fix typos in diagr (concent ->consent)

* add SetGlobalProperties index

* SetGlobalProperties index

* add RC_SetGlobalProperties.png,RC_SetGlobalProperties.gliffy

* add SetGlobalProperties to RC

* Apply suggestions from code review

Co-Authored-By: Shobhit Adlakha <ShobhitAd@users.noreply.github.com>

* remove p.2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants