Aller au contenu
  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.

Messages recommandés

Posté(e)

J'ai fait l'achat, il y a qq semaines, d'un câble HEX CAN USB avec un VCDS 11.11.1 pour faire qq modifs que j'avais identifié comme possible, découvrir un peu plus mon A6 C6 Avant et me faire plaisir en apprenant des choses nouvelles en mécatronic en me connectant à une voiture...

 

Je me suis rapidement retrouvé confronté à des valeurs de code en mémoire ... comment dire.. pas très sexy à déchiffrer : en effet si pour 35, j'y arrive... la décomposition est 1, 2 et 32.. pour 783 ou 5484 comme valeur indiquée en mémoire, c'est déjà plus casse-tête de savoir quels sont les composants ou fonctions activés (ou pas)...:confused4:

 

Du coup, j'ai demandé à mon gamin de me faire une petite appli pour faire la décomposition de ces valeurs de code en suite de multiple de 2.

Exemple pour 5484, çà donne : 4096 + 1024 + 256 + 64 + 32 + 8 + 4. (voir la photo)

Il reste a se reporter à la liste de la fenêtre d'info de VCDS

 

C'est codé en C-Sharp et encapsulé dans un petit exécutable (5 ko) pour pouvoir être lancé sur PC. Ca marche sous W7 et W8 (pas testé sous XP et Vista) avec un "Microsoft .NET Framework" en version v4.0.30319 minimum (.NET Framework est forcément installé sur votre PC).

 

N'hésitez pas à m'envoyer un MP si vous êtes intéressé !!

Posté(e) (modifié)

Salut Karoutcho,

 

Juste pour te dire qu'il est bon ton fillot! :marcelpoire:

Modifié par uruk haï d2
Posté(e) (modifié)

Salut,

 

Le problème est savoir à quoi correspond chaque puissance de 2 (donc chaque bit) du codage logiciel et qu'est ce que l'on va activer en changeant la valeur d'un bit... Si on ne le sait pas, c'est dommage !

 

Pour connaître la signification de chaque bit, il faut soit consulter le site VAG.COM (partie pages applications / voir lien ci-dessous), soit ouvrir le fichier label sous VCDS en espérant que le codage logiciel du calculateur est bien décortiqué comme montré par exemple ici pour le codage du verrouillage centralisé :

http://www.vag.com.fr/audi35.htm

 

Le calcul du codage logiciel peut se faire manuellement ainsi, comme a du le faire ton fils en établissant son programme :

On sait que le poids binaire pour chaque bit en fonction de son rang est :

1 pour le bit le plus à droite (le LSB ou Low Significative Bit),

2 pour le 2ème bit en partant de la droite.

4 pour le 3ème bit...

On multiplie ensuite par 2 le poids binaire précédent à chaque fois qu'on incrémente le rang du bit.

 

On a donc au final les poids binaires 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096... (le poids binaire st compté si le bit correspondant est à 1. S'il est à 0, le poids binaire vaut 0).

 

Si on prend un nombre quelconque, par exemple 3140, on voit que 3140 se situe entre 2048 et 4096, et de ce fait 2048 sera donc un bit actif dont le bit correspondant est à la valeur "1".

Ensuite, on effectue la soustraction de 3140 - 2048 = 1092

Le reste 1092 est compris entre 1024 et 2048, donc 1024 sera lui aussi un bit actif

On effectue de même la soustraction 1092 - 1024 = 68

Le reste 68 est compris entre 64 et 128, donc 64 est un bit actif

Enfin 68- 64 = 4 ; 4 étant le dernier bit actif.

 

On s'aperçoit au final que 3140 est bien l'addition de 2048 + 1024 + 64 + 4.

Le nombre binaire correspondant à 3140 sera : 110001000100

 

Pour transformer 3140 en hexadécimal, on prend le nombre binaire et on fait des paquet de 4 en partant de la droite :

On obtient donc 1100 0100 0100.

 

pour la transformation binaire vers hexa :

 

0000 = 0

0001 = 1

0010 = 2

0011 = 3

0100 = 4

0101 = 5

0110 = 6

0111 = 7

1000 = 8

1001 = 9

1010 = A

1011 = B

1100 = C

1101 = D

1110 = E

1111 = F

 

Donc, on en déduit que notre nombre 3140 (base 10)vaut 1100 0100 0100 en binaire (base 2) et "C44" en hexadécimal (base 16).

 

Enfin, si on veut connaître la valeur en octal (base 8) du nombre décimal 3140 (base 10), au lieu de faire des paquets de 4 à partir du nombre binaire, on fait des paquets de 3,

ce qui donne 110 001 000 100 soit la valeur "6104" en Octal.

@+

Modifié par WAUZZZ
Posté(e)

Aaaah... ouiii! :MdrDevil:

 

Plus sérieusement, merci pour l'explication WAUZZZ!

 

A +

Posté(e) (modifié)

WAUZZZ nous offre une explication très pédagogique et vraiment claire !!

 

Pas mieux !!! :marcelpoire:

 

Merci à toi ... çà me rappèle ma première programmation d'un micropross en pas à pas avec un ch'tit programme hexadécimal à rentrer sur 8 bits... dans le début des années 80... arghhh déjà !! On oubli parfois que les PC n'ont pas toujours existé...

 

Mon carrosse n'a pas de codage long, du coup, je n'ai pas accès au binaire, j'utilise le poids binaire (ou codage dit "court" si j'ai bien compris chez VCDS) qui est donné pour chaque "channel".

Pour connaitre les fonctions actives ou pas, je relève la valeur du poids binaire en mémoire et j'ouvre le fichier label correspondant sous VCDS pour déterminer les fonctions (ou bit) d'activer.... c'est là que le fichier du fiston intervient... plus pratique que de me taper le calcul avec mon tél... sauf pour le LSB :lol:

 

Par exemple, je n'ai pas trouvé comment était codé le clignotement de confort (pour passer de 3 à 5) en codage court alors que celà semble facile en codage long (mais si je n'ai pas vu de opie d'écran VCDS).

 

Merci pour ton lien vers Ross-Tech, je vois qu'il me reste encore des choses à explorer même si j'en ai déjà fait pas mal...

Modifié par Karoutcho
  • 2 mois plus tard...
  • 2 ans plus tard...

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...