begin process at 2012 05 30 12:34:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

writefile et transmition de trame en hexadécimal


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

writefile et transmition de trame en hexadécimal

mardi 9 juin 2009 à 14:26:59 | writefile et transmition de trame en hexadécimal

gossover

bonjour,

je transforme un programme de comRS232 que j'ai eu ici sur ce site il es très bien il gère les paramètres du port, fermeture ouverture. Moi je souhaite envoyer une série de trame en hexa pour un appareil de mesure et en retour recevoir  les hexa. J'ai vu beaucoup de commentaire la dessus mais mon probléme c'est que je doit avoir un probléme de place memoire car le programme plante dès que j'envoie la valeur.

   DWORD NumBytes;
   unsigned char trame[] ={0x2F,0x00,0x00,0x00,0x00};
   int Tailletrame=sizeof(trame);
                                                                                             //int Tailletrame= strlen(trame); 
                                                                                             // printf("\n Taille de la chaine : %d \n", Tailletrame) ;   
   if(g_hCom != NULL)
   {
      //Emission de la Chaine
      if  (WriteFile(g_hCom,trame,sizeof(trame),&NumBytes,NULL)==0)
      {
         printf ("\n Erreur emission.\n") ;
         return FALSE ;
      }
      else
      {
         printf("\n Chaine envoyee : %x.\n",Tailletrame) ;
         return TRUE ;
      }  
   }
   else
      return FALSE ;

pouriez vous me dire comment faire pour gérer cette émission de chaine ?
merci
mardi 16 juin 2009 à 16:55:23 | Re : writefile et transmition de trame en hexadécimal

SebLinck

Salut,

Il plante  à quel moment ton programme ?

Cordialement,
Sébastien.
lundi 22 juin 2009 à 13:57:42 | Re : writefile et transmition de trame en hexadécimal

gossover

j'ai trouvé l'erreur, il faut remplacer strlen par sizeof.

 char trame10[16] = {0x68,0x0A,0x0A,0x68,0x73,0x01,0x00,0xCC,0x01,0x05,0x01,0x00,0x86,0x01,0xCE,0x16};
  
   DWORD NumBytes=0;
   int TailleChaine=0;
   switch(i)
   {         
              case 10:
              TailleChaine = sizeof(trame10);
              printf("\n Taille de la chaine : %d \n", TailleChaine) ;
     
              if(g_hCom != NULL)
              {
              //Emission de la Chaine
                         if  (WriteFile(g_hCom,trame10, TailleChaine,&NumBytes,NULL)==0)
                         {
                            printf ("\n Erreur emission.\n") ;
                             return FALSE ;
                         }
                         else
                         {
                             printf("\n Chaine envoyee : %c.\n", trame10) ;
                             return TRUE ;
                         } 
     
              }
              else   return FALSE ;
            
             break;
jeudi 3 septembre 2009 à 12:04:56 | Re : writefile et transmition de trame en hexadécimal

weil



Salut,

comment fais tu pour décoder ce que tu recois en ASCII ?

jeudi 3 septembre 2009 à 12:20:46 | Re : writefile et transmition de trame en hexadécimal

gossover

je reçois des hexa et pas des ascii dsl

jeudi 3 septembre 2009 à 12:33:10 | Re : writefile et transmition de trame en hexadécimal

weil




Désolé, ma question n'était pas claire.

Je recois aussi de l'héxadécimal, mais comment tu procèdes pour l'afficher par exemple.
J'ai pa pu faire fonctionner le ReadFile
Merci

jeudi 3 septembre 2009 à 12:48:36 | Re : writefile et transmition de trame en hexadécimal

gossover

je ne l'ai pas affiché je mettais mes trames au fur et a mesure dans un tableau et traitait certaines infos de la trame par des calcules et j'affichai seulement ce que j'avais besoin. Si tu me laisses ton adresse mail je peux t'envoyer mon prog j'aurai enlever certaine partie qui sont propre a mon étude et ne doive pas etre utilisé mais ce prog a été fait en tres peux de tps et est plein de bug il faudrai le retaper en C++.

jeudi 3 septembre 2009 à 12:58:32 | Re : writefile et transmition de trame en hexadécimal

weil



Merci

Mon problème provient du ReadFile, car il s'arrete qd il croise un "00". Je suis sur de recevoir les trames mais je dois les consulter en entier.
Et pour le moment j'ai pas pu mettre ma trame entière dans un fichier et la visualiser.


mon mail: weilbs@hotmail.fr

vendredi 4 septembre 2009 à 21:26:31 | Re : writefile et transmition de trame en hexadécimal

SebLinck


Salut,

En langage C:

pour afficher un caractère ASCII a partir d'un caractère Hexadécimal,
il faut faire:
printf("Ma chaine Hexa en ASCII: %x\n",ValeurEnHexa);

pour l'écrire das un fichier:
FILE *fp;
fp = fopen(...,a);
fprintf(fp,"Ma chaine Hexa en ASCII: %x\n",ValeurEnHexa);

Cordialement,
Sébastien.



Cette discussion est classée dans : chaine, trame, writefile, 0x00, tailletrame


Répondre à ce message

Sujets en rapport avec ce message

envoyer differente trame sur l appui d un bouton [ par wylly ] bonjour j ai besoin d aide.je dois commander un variateur leroysomer avec le protocole modbus.j ai deux boutons un bouton (+) et un bouton (-)pour fai chaine [ par TGTG ] bonjour,j'aimerais savoir comment utiliser le contenu d'une chaine (ex "char test;") comme code.comment pourrais je faire ?merci d'avance classe [ par cyrinelahsini ] Salut, j'ai défini deux classes : class tableau et class chaine. dans la class chaine, j'ai défini une fonction chtab qui convertitune chaine en un ta Probleme Key [ par mehdithe ] Bonjour a tous, Je travaille sous visual studio en C++, je declare une key (cle}) comme une chaine de caractere de cette facon : std::string KeyTemp insertion d'un int dans une chaine de caractère (string) [ par Apache_31 ] Bonjour j'ai un problème avec ma requête MYSQL.en effet j'utilise la fonction mysql_query(Connection,"insert into table values (valeur 1, valeur 2) ") lire une chaine de caractere dans un fichier et la camparer aux autres chaines dans le meme fichier [ par leiloula ] j'ai pa pu programmé un truc qui me permet de lire une chaine de caractere dans un fichier et la camparer aux autres chaines dans le meme fichier et v convertir un int en chaine [ par alphaone ] Voila je cherche à envoyer un int dans:CreateWindowEx(WS_EX_CLIENTEDGE,"Edit", "",WS_CHILD | WS_VISIBLE,120, 2, 50, 20,hwnd, (HMENU)ID_EDIT1,hThisInst Envoyer une trame de commande sur une webcam [ par mathkhel ] Boujour, un petit point:Je possede une webcam usb possedant deux moteur capable de la faire pivoter, sur les axes droite gauche, et haut bas.Marque de ligne de commande en Unicode [ par cesquerr ] Bonjour,j'ai un probleme avec le passage a l'unicode de certains logiciels. Lorsque je veux les ouvrir a partir d'une ligne de commande, comme j'ai de


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,040 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales