Tom's Guide > Forum > Programmation > [C] Affichage étrange de données hexa contenues dans un buffer [Résolu]

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

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

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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 :

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

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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

char buffer[9];
devient
unsigned char buffer[9];

Répondre à ThibB
Tom's Guide > Forum > Programmation > [C] Affichage étrange de données hexa contenues dans un buffer [Résolu]
Aller à :

Il y a 2257 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens