-
Notifications
You must be signed in to change notification settings - Fork 121
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
Revise SDL-0221 Remote Control - Allow Multiple Modules per Module Type #786
Conversation
@theresalech this is ready for review |
There was a problem hiding this 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 = "
1ea5bac
to
6548af9
Compare
@theresalech revision updated according to comments |
6548af9
to
87a2c0a
Compare
87a2c0a
to
16b9b2c
Compare
@theresalech proposal updated according to revisions |
added per revision smartdevicelink/sdl_evolution#786
* 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
Introduction
Update SDL-0221 Remote Control - Allow Multiple Modules per Module Type with changes :
Make
SeatControlData::id
parameter not mandatory for compatibility with the MOBILE_API. The RPC Spec has deprecated theSeatControlData::id
parameter.Change rules for processing
ModuleType::SEAT
when theSeatControlData::id
parameter is missing from the mobile request. This change is for backward compatibility with older appsMotivation
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 nomoduleId
in a RPC request, SDL shall forward the request as is to the HMI. The HMI shall automatically convert seatid=DRIVER
to themoduleId
that corresponds to the driver’s seat module, and seatid=FRONT_PASSENGER
to themoduleId
that corresponds to the front passenger's seat. If a mobile app includes bothid
andmoduleId
in a RPC request,id
shall be ignored sincemoduleId
has a higher priority.New :
If a mobile app uses the
SupportedSeat
id
and omitsmoduleId
in a RPC request, SDL shall add themoduleId
parameter to HMI request according to the following rules:if
id = DRIVER
thenmoduleId
=moduleId of first published module in seatControlCapabilities
if
id = FRONT_PASSENGER
thenmoduleId
=moduleId of second published module in seatControlCapabilities
If a mobile app includes both
SupportedSeat
id
andmoduleId
in a RPC request, SDL shall forward the request as is to HMI.New :
Add to HMI_API