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

Put SDL queues at the highest priority #1833

Merged
merged 5 commits into from
Jan 5, 2021

Conversation

joeljfischer
Copy link
Contributor

@joeljfischer joeljfischer commented Oct 30, 2020

Fixes #1778

Risk

This PR makes no API changes.

Testing Plan

  • I have verified that I have not introduced new warnings in this PR (or explain why below)
  • I have run the unit tests with this PR
  • I have tested this PR against Core and verified behavior (if applicable, if not applicable, explain why below).

Unit Tests

No unit tests were needed

Core Tests

Verified lots of screen manager behavior with SDL Core. Slight improvements are possible, but it's not super easy to tell, especially if testing against Sync.

Core version / branch / commit hash / module tested against: Sync Gen 3.4
HMI name / version / branch / commit hash / module tested against: Sync Gen 3.4

Summary

This update moves SDL queues to be at the highest priority level instead of the second-highest priority level, and additionally changes the soft button operations to always send Show.mainField1 even if it should be blank.

Changelog

Bug Fixes
  • SDL code now runs at the highest priority level. Note that this may delay calls to the main thread, which may impact UI performance. However, because SDL code only runs when an SDL app is connected, this should be okay and should improve SDL performance and lag.
  • SDL soft button operations now always send Show.mainField1, which works around a bug on Ford Sync head units.

Tasks Remaining:

  • Additional testing with video streaming apps
  • See if any metrics can be generated

CLA

@joeljfischer joeljfischer added bug A defect in the library manager-lifecycle Relating to the manager layer - lifecycle manager labels Oct 30, 2020
@codecov
Copy link

codecov bot commented Oct 30, 2020

Codecov Report

Merging #1833 (7ace673) into develop (361db38) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff            @@
##           develop    #1833   +/-   ##
========================================
  Coverage    84.65%   84.65%           
========================================
  Files          418      418           
  Lines        20971    20977    +6     
========================================
+ Hits         17753    17759    +6     
  Misses        3218     3218           

@joeljfischer joeljfischer marked this pull request as ready for review November 18, 2020 20:22
@NicoleYarroch
Copy link
Contributor

This PR did not break anything, however, the responsiveness of the soft buttons on SYNC 3.0 did not improve for me.

I noticed in the SDLSoftButtonManager header that the currentMainField1 has this documentation HAX: This is necessary due to a Ford Sync 3 bug that doesn't like Show requests without a main field being set (it will accept them, but with a GENERIC_ERROR, and 10-15 seconds late...). In the library's Swift and Obj-C example apps, if the Show's mainField1 is cleared I get the GENERIC_ERROR 10 second delay because currentMainField1 is set to nil in the SDLSoftButtonManager. I tried intercepting the nil values for currentMainField1 and set an empty string @"", and I no longer experienced soft button update delays. Perhaps this is the issue the bug reporter was experiencing?

Copy link
Contributor

@NicoleYarroch NicoleYarroch left a comment

Choose a reason for hiding this comment

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

I did some investigating and I think I might have found the issue...

@NicoleYarroch
Copy link
Contributor

@rbright55 Can you please try this PR to see if it resolves your issue (#1778)? Thanks!

@joeljfischer joeljfischer merged commit c700e6f into develop Jan 5, 2021
@joeljfischer joeljfischer deleted the bugfix/issue-1778-softbutton-delay branch January 5, 2021 20:23
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 manager-lifecycle Relating to the manager layer - lifecycle manager
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants