Bonjour,
Je vous propose un bon vieux casse-tête comme on n'en fait plus, un de ceux qu'on nous servait il y a bien longtemps, quand les ordinateurs avaient encore des dents et rugissaient fort dans la savane...
Bref, je récupère via une interface série un flux de bits : des zéros et des uns, qui se suivent à la queue-leu-leu.
Je connais les caractéristiques de ma liaison série : 7 bits (important), parité PAIRE, 1 bit de STOP. Pour aider, je sais que la plupart des infos transmises sont des caractères ASCII mais pas que (checksum et controle aussi). Concernant un éventuel bit de START, je suppose qu'il existe mais ce n'est pas précisé.
Le challenge sur lequel je me casse les dents bien fort : comment trouver le début d'un caractère dans le flux ?
Rien ne vaut un exemple : voila un partiel de mon flux, attention ça pique.
Je ne suis pas dépendant d'un langage, seul l'algorithme m'interesse. Ca sera éventuellement codé en C par la suite, ou assembleur (pas x86
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 1111010000110010110100100010100001000110000100100000110000101001111001011000100010011010011010000101100100 0010110100001101011000101110110001001001001010001010011010000111000001110101010010100010100001010011000010 1101010000100010100111000101001001110000000101100101001011010000000000110100011000101010110100100011010101 0101101010110001110110101100010100011001111001010001110011100011000000010110001100010101001010010001000000 1000100000010101000110001100000110000011000100010000010011010001001110101011000011000010100000000010011000 0111001101001001010001001010101001001101100111001100010000001010010000010101110100001001001100100010000100 0110100100100100010001011010010000010110100001000100001110100101010110001010010111100010101010000101000110 1101011110001010000010110100111001000010110110000010111011010011000010000000101000001000010011010111100001 0001001000100001010011010110100000010000010000000010110110010010010010001000101111101100101001100001000100 0001001101011001110011100011011010000010100101100101001000000100000100100011000001011010010000001001000000 0100010100001000100101110100101000110101001011101111011101111000001001010010111101100111000110001010010100 1011011111101000011000011010010000010000100011000000010000011000010100101000100100000000001001100101000001 0101100000001010000110101100010110011000100110101101100101001101000011100000101010101000110001010011101001 0000010110101100110001010001100010100000101000001010110010010100101000000000011010101100010110011010010100 1010101001010101011001111011010000001010011100111100011000110001010000100101101011100101001110000101001000 1010000100010100001010100001000110100111000101100010001001101001101000000110010010100001000010010100001001 1011000101100110100000101000101101010100010111110111001110001010000101001100001010110000000100101010010001 0100100011010010010110010000101101001000000011000000100010001111010011101111011101001011101001010101011010 1000110000100111100101000101001010011101000001011000000001010011101001000100000000001000000100010001101011 1000001000001100010001011001101111010000101010001100000101011011000001001001000100010011010110010100010000 1000100000100110011100110001000000101011000001010111110010101100100010001010010001010000101001000000000110 100100) si je le sens.
Partager