Salut,
Je suis débutant en C. J'ai surtout fait du matlab jusqu'à aujourd'hui.
Je ne sais pas codé avec un vrai language de programmation.
Je suis en train de réaliser une liaison série avec deux radios, reliés à des arduino uno, par deux chips modem qui fonctionnent en modulation FSK.
La partie matérielle fonctionne très bien.
Mais pour donner plus de robustesse à la liaison, j'aurais voulu inclure un code de Hamming.
J'ai téléchargé des librairies toutes faites pour arduino : l'une à du mal à détecter les messages entrants, fonctionne sur des messages courts, mais cela s'arrête là (la laison série directe, dans des conditions identitques marche bcp bcp bcp mieux !) :
Les autres sont trop compliqués pour moi : il n'y a pas d'exemples d'application, des variables de type class, des fichiers partout, etc. Cela me dépasse : GitHub - bkeevil/HammingSerial: A serial port for Arduino with Hamming code error correction and packetization.
Ma question est la suivante :
Lorsque on code en Hamming 8 4 4, sur 256 possibles, on en garde 16 possibles signifiants.
Cela veut dire que chaque groupe de 4 bit peut être codé de 16 manières différentes seulement.
Pourquoi ne pas faire une simple table de correspondance ?
Chaque octet reçu correspond à 4 bit + une info sur l'erreur de transmission.
Chaque octet émis correspond à un octet.
Il suffit donc d'avoir un tableau avec 16 entrées pour l'émission.
Et un tableau avec 256 entrée pour la réception.
Est-il possible d'avoir une telle approche des codes de Hamming ? Ca fonctionne bien bit à bit ?
Si oui, comment obtenir de manière simple ces tableaux ?
Si oui encore, comment programmer de manière rapide et élégante la comparaison d'un octet dans une liste de 256 valeurs (je suppose qu'on peut faire mieux que 256 "if" en cascade) ?
Merci à vous !