[C] Pb affichage de données hexa ds buffer
Résolu
Thib42
Messages postés
12
Statut
Membre
-
Thib42 Messages postés 12 Statut Membre -
Thib42 Messages postés 12 Statut Membre -
Bonjour tous le monde !
Je suis entrain de faire une application en C permettant la communication avec un GPS Bluetooth (j'utilise le port serie virtuel), et j'ai un soucis quand je cherche à afficher ou traiter les données que je recois.
Voila un bout de code qui explique le problème :
Je recois la trame suivante : [b]0xAA,0x55,0x02,0x00,0x47,0x00,0x47,0x33,0xCC[/b] (je verifie en direct sur un sniffer)
et le programme affiche le texte suivant :
Le compilateur gueule un peu aussi sur les comparaisons sur le premier et le dernier octets :
Donc apparemment le premier et le dernier octet posent problème, une explication ? Pourquoi le premier et le dernier et pas les autres ??
Merci d'avance !
Je suis entrain de faire une application en C permettant la communication avec un GPS Bluetooth (j'utilise le port serie virtuel), et j'ai un soucis quand je cherche à afficher ou traiter les données que je recois.
Voila un bout de code qui explique le problème :
int nBytesRead,i;
char buffer[9];
if(!ReadCOM(buffer, 9, &nBytesRead)) // Va recevoir nBytesRead octets (normalement 9) et les stocker dans buffer.
printf("Problème lecture.\r\n");
printf("%d octets lus\n",nBytesRead);
for (i=0; i < 9; i++)
printf("%.2X",buffer[i]);
printf("\n");
if (buffer[0] == 0xAA) printf("0xAA -> OK\n");
else printf("0xAA -> KO\n");
if (buffer[1] == 0x55) printf("0x55 -> OK\n");
else printf("0x55 -> KO\n");
if (buffer[8] == 0xCC) printf("0xCC -> OK\n");
else printf("0xCC -> KO\n");
Je recois la trame suivante : [b]0xAA,0x55,0x02,0x00,0x47,0x00,0x47,0x33,0xCC[/b] (je verifie en direct sur un sniffer)
et le programme affiche le texte suivant :
9 octets lus FFFFFFAA55020047004733FFFFFFCC 0xAA -> KO 0x55 -> OK 0xCC -> KO
Le compilateur gueule un peu aussi sur les comparaisons sur le premier et le dernier octets :
[Warning] comparison is always false due to limited range of data type
Donc apparemment le premier et le dernier octet posent problème, une explication ? Pourquoi le premier et le dernier et pas les autres ??
Merci d'avance !
A voir également:
- [C] Pb affichage de données hexa ds buffer
- Fuite données maif - Guide
- Supprimer les données de navigation - Guide
- Affichage double ecran - Guide
- Trier des données excel - Guide
- Windows 11 affichage classique - Guide