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

First StartService isn't always V1 #1837

Closed
kshala-ford opened this issue Nov 3, 2020 · 0 comments
Closed

First StartService isn't always V1 #1837

kshala-ford opened this issue Nov 3, 2020 · 0 comments
Labels
bug A defect in the library protocol Relating to the protocol layer
Projects

Comments

@kshala-ford
Copy link
Contributor

Bug Report

Upon iAP connect, the SDL library should always send a V1 StartService request for RPC service. However on subsequent iAP connects, the library sends a V2. This this isn't a big issue as long as the same car is used. Also with V1 being basically obsolete it's a low priority bug, however the behavior is incorrect according to the protocol spec, that's why I created the issue. If we would ever create a V3 frame type this issue would become critical for multi car use cases (like families share two cars).

Reproduction Steps
  1. Install Hello SDL
  2. Connect to any SDL system and track first StartService request
  3. Disconnect from the SDL system
  4. Reconnect to the SDL system and track first StartService request
Expected Behavior

Both requests should be V1 frames like

TX: 10070100 00000020          200000000270726F746F636F6C56657273696F6E0006000000352E332E300000
Observed Behavior

The first request is a V1 frame like expected. The second however is a V2 frame.

TX: 30070100 00000020 00000000 200000000270726F746F636F6C56657273696F6E0006000000352E332E300000
OS & Version Information
  • iOS Version: Any
  • SDL iOS Version: 7.0.0 RC3 (also visible in previous versions)
  • Testing Against: SDL Example, Ford SYNC3 test bench

Comment

In this code https://github.com/smartdevicelink/sdl_ios/blob/7.0.0-rc.3/SmartDeviceLink/private/SDLProtocol.m#L508 the library sets the maximum head unit protocol version. The SDLGlobal class overwrites the protocol version (see https://github.com/smartdevicelink/sdl_ios/blob/7.0.0-rc.3/SmartDeviceLink/private/SDLGlobals.m#L84). The issue is that the library doesn't reset the version objects on disconnect.

A simple reset on disconnect should solve the problem.

@joeljfischer joeljfischer added bug A defect in the library protocol Relating to the protocol layer labels Nov 5, 2020
@joeljfischer joeljfischer added this to To do in v7.1.0 via automation Nov 30, 2020
v7.1.0 automation moved this from To do to Done Dec 3, 2020
@joeljfischer joeljfischer mentioned this issue Mar 15, 2021
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug A defect in the library protocol Relating to the protocol layer
Projects
No open projects
Development

No branches or pull requests

2 participants