Skip to content

fix(volume): niveau de la bonne source et sourdine sur la pastille (#83) - #83

Merged
4 commits merged into
mainfrom
fix/volume-niveau-sourdine
Nov 15, 2026
Merged

4 commits merged into
mainfrom
fix/volume-niveau-sourdine

Conversation

@Jiraiya43

Copy link
Copy Markdown
Owner

S'appuie sur #82.

Lu dans HmiMain3D et libhmil6services.so (platform/volume_state.hpp) :

  • Le niveau (AudioMaster 0xC08) est un tableau, un enregistrement par écran ; seul le premier est celui de l'écran avant. L'iDrive range l'enregistrement selon son minimum : 0, le volume de la molette ; au-dessus, une autre source. La MINI F57 du F57 MINI COOPER 2018 #56 recevait à la connexion « 25 entre 25 et 100 » : la pastille s'ouvrait seule, barre vide. Ces niveaux ne l'ouvrent plus.
  • Un niveau répété sans changement n'ouvre plus la pastille, sauf juste après une touche de volume.
  • Sourdine : l'appui sur le bouton du volume (CECenterStack 0x15.0C, fonction 0xC04) la bascule dans l'iDrive, un cran de volume la lève. La pastille montre le haut-parleur barré.

Tests : test_volume_state (nouveau), test_evo_input (tableau, autre écran, bouton audio).

…#80)

La ligne [WifiLink] écrivait « signal 0 dBm » et « to the phone 1.0 Mbit/s »
sur toutes les voitures, G20 comprise.

- Le niveau du dernier paquet vaut 0 quand la puce WL18xx ne l'a pas mesuré :
  0 dBm n'est jamais un niveau reçu, il devient « pas de chiffre » et seule
  la moyenne est écrite (« average signal »).
- Le débit vers le téléphone est choisi par le microprogramme de la puce ;
  le pilote wlcore ne le connaît pas et donne 1 Mbit/s. Il n'est plus écrit.
  Le débit venant du téléphone, juste, reste.
- 16 trames chiffrées d'affilée qui ne se déchiffrent pas : le flux TLS est
  cassé (un enregistrement perdu ou coupé), aucune suivante ne passera. La
  session se termine au lieu d'attendre la limite de silence avec une image
  figée. Le compte repart à chaque trame lue.
- Une image perdue par le décodeur (pas de tampon libre à temps, trop grande,
  refusée) laisse l'image cassée jusqu'à la prochaine image complète du
  téléphone. La session lui en redemande une en retirant puis en rendant le
  focus vidéo, seulement quand Android Auto est à l'écran, pas dans les
  5 premières secondes de la vidéo et au plus une fois par 10 s
  (core/keyframe_request.hpp). EvoVideo::postVideoFrame dit maintenant ce
  qu'est devenue l'image (décodée, perdue, pas de flux).

Tests : session (16 trames illisibles, demande d'image complète et ses
délais), présentation vidéo ; relevé figé inchangé.
L'iDrive est codé avec sa marque (variante HMI_BRAND de libhmicoding.so :
va_HMI_BRAND_mini = 0x1F8, va_HMI_BRAND_bmw = 0x1F6). L'appli la lit au
démarrage auprès du même serveur de variantes que les touches et écrit
/tmp/entry-aad-brand (« MINI » ou « BMW ») ; le service la lit au départ.

- Le téléphone est informé de la marque : une MINI s'annonce « MINI »
  (voiture et unité) et non plus « BMW », sur l'icône de sortie d'Android
  Auto notamment. Sans le fichier (ancienne appli) : BMW, comme avant.
- L'entourage rond de l'écran des MINI cache environ 40 colonnes de chaque
  côté d'un écran de 1280 pixels de large, la même part d'un écran plus
  étroit (25 sur 800). Le téléphone est prié de garder ses boutons hors de
  ces bords (marges gauche et droite) ; l'image et le toucher ne changent pas.

hmiapp/controller_coding devient hmiapp/idrive_coding : un seul accès au
serveur de variantes pour les touches et la marque, écriture atomique commune.
Une BMW reçoit exactement la même description qu'avant (relevé figé
inchangé). Tests : test_evo_sdr (fichier de marque, marges, marque annoncée).
Lu dans HmiMain3D et libhmil6services.so (volume_state.hpp) :

- Le niveau (AudioMaster 0xC08) est un tableau, un enregistrement par écran ;
  seul le premier est celui de l'écran avant. L'iDrive range l'enregistrement
  selon son minimum : 0, le volume que tourne la molette ; au-dessus, celui
  d'une autre source. Une MINI F57 (#56) recevait à la connexion
  « 25 entre 25 et 100 » dix fois : la pastille s'ouvrait seule, barre vide.
  Ces niveaux ne l'ouvrent plus.
- Le même niveau revient sans que rien ne change : comme la barre de
  l'iDrive, la pastille ne s'ouvre que sur un changement ou juste après une
  touche de volume.
- Sourdine : l'appui sur le bouton du volume (CECenterStack 0x15.0C,
  fonction 0xC04 PushButtonAudio) la bascule dans l'iDrive, un cran de volume
  la lève ; le niveau de l'AudioMaster ne change pas. La pastille montre
  maintenant le haut-parleur barré (aussi sur la G20 de référence).

Le journal donne l'octet d'erreur quand l'AudioMaster refuse notre lecture.
Tests : test_volume_state (nouveau), test_evo_input (tableau, autre écran,
bouton audio).
@Jiraiya43
Jiraiya43 force-pushed the fix/volume-niveau-sourdine branch from 6397732 to add9669 Compare November 15, 2026 21:55
@Jiraiya43 Jiraiya43 closed this pull request by merging all changes into main in 2e0d55f Nov 15, 2026
@Jiraiya43
Jiraiya43 deleted the fix/volume-niveau-sourdine branch November 15, 2026 22:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant