Se connecter / S'enregistrer
Votre question

[C] Affichage étrange de données hexa contenues dans un buffer [Résolu]

Tags :
  • Bluetooth
  • Programmation
Dernière réponse : dans Programmation
26 Juillet 2006 14:55:27

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 :

  1. int nBytesRead,i;
  2. char buffer[9];
  3.  
  4. if(!ReadCOM(buffer, 9, &nBytesRead)) // Va recevoir nBytesRead octets (normalement 9) et les stocker dans buffer.
  5. printf("Problème lecture.\r\n");
  6.  
  7. printf("%d octets lus\n",nBytesRead);
  8. for (i=0; i < 9; i++)
  9. printf("%.2X",buffer[i]);
  10. printf("\n");
  11.  
  12. if (buffer[0] == 0xAA) printf("0xAA -> OK\n");
  13. else printf("0xAA -> KO\n");
  14. if (buffer[1] == 0x55) printf("0x55 -> OK\n");
  15. else printf("0x55 -> KO\n");
  16. if (buffer[8] == 0xCC) printf("0xCC -> OK\n");
  17. else printf("0xCC -> KO\n");


Je recois la trame suivante : 0xAA,0x55,0x02,0x00,0x47,0x00,0x47,0x33,0xCC (je verifie en direct sur un sniffer)
et le programme affiche le texte suivant :
Citation :
9 octets lus
FFFFFFFFFFFF

Le compilateur gueule un peu aussi sur les comparaisons sur le premier et le dernier octets :
Citation :
[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 !

Autres pages sur : affichage etrange donnees hexa contenues buffer resolu

26 Juillet 2006 15:58:45

Problème résolu : il faut simplement utiliser du "unsigned char" à la place du "char".

char buffer[9];
devient
unsigned char buffer[9];
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS