@Thierryb
Dans chaque position du tableau can() il y a un octet stocké sur 2 caractères. .....
Si tu as plus de 2 hexa dans un can() c'est que les espaces intercalaires sont bouffés !
d'où la reflexion qui n'a rien à voir avec ta question (réflexion autour du débit d'une liaison bt):
On pourrait donc occuper deux fois moins de place, voire même trois fois car il peut y avoir un espace entre les séquences en hexa.... !
a) pour la paire d'octets hexa:
autant la convertir systématiquement, qu' elle soit utilisée ou non, lors de la réception de chaque trame.
càd mise en tableau d' entier systématique.
une valeur inacceptable invalidant la trame.
b) suppression des espaces:
dans le meilleur des cas, tu gagnes un peu moins d'un tiers 1/3 (prends une trame brute et compte les espaces que tu vires)
elle est souhaitable pour des raisons d'optimisation de débit.
elle ne facilite pas l'analyse de trame (truisme).
elle est utilisée par torque.
elle est utilisée dans les projet de guinness en java et le mien sous android.
avec les ELM327 ou assimilés, elle s'obtient avec le paramètre ats0 dans la chaine d'initialisation; cela ne marche pas avec les clones chinois.
je n'ai pas calculé l'incidence sur le débit, mais j'ai constaté une très sensible augmentation du nb de requêtes / sec en l'utilisant.
ps: normalement, à cette heure, je roupille, mais-là, j'étais descendu car j'avais soif....