IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Probléme affichage Hexa


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut Probléme affichage Hexa
    Salut,

    je souhaite transmettre des trames à une carte par liaison série
    la première chose à faire est donc de vérifier sa présence en envoyant 0xAA et la carte revoie 0xAA
    mais le soucis c'est que lorsque j'affiche la trame envoyer j'obtiens FFFFFFAA

    donc voila une partie du main:
    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
     
           //...
     
           /*verifier la présence de la carte*/
    	Presence[0]=0xAA;
    	Presence[1]='\0';
    	Envoyer=SendTrame(Presence);
     
    	if(Envoyer==1)
    		Etat=ReceiveTrame(chaineRecue);
     
    	Carte=strcmp(Presence,chaineRecue);
    	if(Carte!=0)
    		std::cout<<"\nCarte absente\n";
     
    	system("pause");
    	/*********************************/
            /...
    et ma fonction qui envoie les trame

    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
    24
    25
    26
    27
    28
    29
    int SendTrame(char ChaineEnvoie[50])
    {
    	HANDLE hSerie; 
    	int NbOctet,i;
    	unsigned long nBytesWrite;
     
     
    	//Ouverture du port de communiucation 
    	hSerie = CreateFile(L"COM1",
    						GENERIC_READ | GENERIC_WRITE,
    						0,
    						NULL,
    						OPEN_EXISTING,
    						0,
    						NULL);
     
     
     
    	NbOctet = strlen(ChaineEnvoie);  //compte le nombre d'octet à envoyer
    	for(i=0;i<=NbOctet-1;i++)
    		printf(" %02X",ChaineEnvoie[i]);
     
     
    	WriteFile(hSerie,ChaineEnvoie,NbOctet,&nBytesWrite,NULL);
     
    	CloseHandle(hSerie);
     
    	return(1);
    }
    je suppose que c'est un probleme de signe mais je vois pas comment faire...

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    1/ Rien à voir, mais...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::cout<<"\nCarte absente\n";
    n'est pas du C. Si ça compile, c'est que tu ne compiles pas en C mais en C++, ce qui n'est pas du tout recommandé.

    2/ Il manque ta fonction ReceiveTrame.

  3. #3
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    J'utilise visual studio donc les morceau de C++ ne gène pas
    je n'ai pas mis la fonction ReceiveTrame car pour l'instant je me relie pas à la carte mais juste à un pc sur lequel je regarde les trames reçu avec hyperterminal.
    Mais si il y en a besoin je peux toujours la mettre

  4. #4
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int SendTrame(unsigned char ChaineEnvoie[])

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    J'utilise visual studio donc les morceau de C++ ne gène pas
    Ce n'est pas un problème d'IDE mais de programmation.

  6. #6
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    Citation Envoyé par jeroman Voir le message
    Ce n'est pas un problème d'IDE mais de programmation.
    euh je connais pas la différence alors j'ai toujours mélangé du C et du C++ en fonction de mes besoins et j'ai pas eu de problème jusqu'à présent

  7. #7
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    j'ai deja essayé mais sa pose pas mal de probléme dans le programme avec d'autre fonction, il faudrait que je réécrive en bonne partie mon programme

    mais apparemment la carte me répond bien AA donc sa marche mais c'est juste pour l'affichage

  8. #8
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Oui, tu envoies le bon code de toute façon, puisque tu écris directement les bytes de ta chaine.
    Sinon pour l'affichage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf(" %02X",(unsigned char)ChaineEnvoie[i]);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 08/06/2009, 11h30
  2. problème affichage image
    Par thealpacino dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 30/05/2005, 13h56
  3. Problème affichage primitive
    Par goutbouyo dans le forum DirectX
    Réponses: 4
    Dernier message: 29/12/2004, 18h25
  4. [Plugin][VE] Problème affichage
    Par sebb84 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/07/2004, 14h50
  5. [DOS] Problème affichage de DOS dans un Memo
    Par Pedro dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 25/06/2004, 13h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo