Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1496 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Porbleme super urgent de port série !!!!!!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Porbleme super urgent de port série !!!!!!

n°430797
KarmaKille​r
Posté le 17-06-2003 à 16:44:40  profilanswer
 

J'ai un programme censé faire communiquer un PC et une carte par le port série. Voila le code concernant les différents bloc de code assurant la gestion de cette communication:
 
 
configuration et création du port:

Code :
  1. //initialisation du RS232
  2. WCHAR pwchLicenseKey[] = 
  3.    { 
  4.      0x0043, 0x006F, 0x0070, 0x0079, 0x0072, 0x0069, 
  5.      0x0067, 0x0068, 0x0074, 0x0020, 0x0028, 0x0063, 
  6.      0x0029, 0x0020, 0x0031, 0x0039, 0x0039, 0x0034, 
  7.      0x0020 
  8.    }; 
  9.    
  10.    BSTR bstrLicense = ::SysAllocStringLen(pwchLicenseKey, sizeof(pwchLicenseKey)/sizeof(WCHAR));
  11. comm1 = new CMSComm;
  12. comm1->Create(NULL,0,CRect(0,0,0,0),this,IDC_MSCOMM1, NULL, FALSE, bstrLicense);
  13. comm1->SetCommPort(1);
  14. comm1->SetSettings("2400 //vitesse de 2400 bauds
  15.                            ,o    //parité impaire
  16.                            ,8    //nombre de bit à lire
  17.                            ,1" ); //nombre de bit de stop
  18. comm1->SetInputLen(1);  //nombre de caractére lu à la fois
  19. comm1->SetPortOpen(true);


 
 
Voila ma fonction d'écriture

Code :
  1. void ecrire(char c)              /* ‚criture sur le port s‚rie */
  2.     {VARIANT var;
  3. CString macs;
  4. macs=""+c;
  5. var=(VARIANT)(_variant_t) _bstr_t(macs);
  6. comm1->SetOutput(var);
  7. }


 
 
Demande d'allocation de la ligne à la carte par l'envoi d'un octet null:

Code :
  1. ecrire(0);


 
 
Envoie des parametres:

Code :
  1. ecrire(3);           /*demande de lecture*/
  2. ecrire(65);          /*envoi de divers parametres*/
  3. ecrire(pw1);         
  4. ecrire(pw2);         
  5. ecrire(ecr1);         
  6. ecrire(ecr2);


 
 
lecture sur le port série

Code :
  1. tagVARIANT tempp;
  2. CString recep;
  3. char * tenta="";
  4. //on récupere le premier caratére présent sur le port série
  5. //la donnée reçue est de type VARIANT
  6. tempp=comm1->GetInput();
  7. //multi castage permettant de convertir notre VARIANT en CString
  8. recep.Format("%s",(char *)(_bstr_t) _variant_t(&tempp));
  9. //tant qu'on reçoit des données
  10. while(recep.IsEmpty()==0)               
  11. {
  12. //on ne recupere que le premier caractere de la CString  et on le stock dans un tableau
  13.         tab[i]=recep[0];
  14.         i++;
  15. //on récupere le caractére suivant présent sur le port série
  16. tempp=comm1->GetInput();
  17. //meme castage qu'au dessus
  18. recep.Format("%s",(char *)(_bstr_t) _variant_t(&tempp));
  19. }


 
 
Alors j'ai l'impression que mon programme lis sur le port com vu que je reçoit des valeurs; mais rien n'est moins sur...
En effet les valeurs héxa lues ( grace au watch du debugger) ne semblent pas conforme au valeurs que j'attendais. Ainsi je reçois des valeurs héxa allant 0 à 255 alors que normalement elles devraient tourner autour de 0,1,2,3 ou 4.
 
Donc sil vous plait si quelqu'un avait la moindre idée du problème faite le moi savoir. :-(
 
C'est super urgent, ce programme est mon sujet de stage et il doit être bouclé pour vendredi.  :cry:  
Le seul probleme vient de cette communication par port série!!!  :cry:  
 
merci
 
 

mood
Publicité
Posté le 17-06-2003 à 16:44:40  profilanswer
 

n°431869
KarmaKille​r
Posté le 18-06-2003 à 13:43:46  profilanswer
 

Personne ne peut m'aider?  :cry:  
 
Quelques précisions:
le type tagVARIANT est une structure renvoyée par la methode GetInput (on utilise l'activeX MScomm32), elle contiend les informations prevenant du port. C'est pour cela qu'on a recours a un multi castage afin de  convertir les donnée lu en CString afin de pouvoir les exploiter.
 
merci d'avance  :sweat:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Porbleme super urgent de port série !!!!!!

 

Sujets relatifs
[JS] comment tester une série de boutn radio RADIO?[C] Socket UDP connaitre le port source ???
Cherche aide programmation Pascal (assez urgent) ?!communication par port com
[urgent] filtre ISAPICommunication port parallèle
Registres associés au port parallèle[URGENT] [MSDE-SQLServer] Création d'une DB en ligne de commande
Connaitre le checksum (numero de serie?) d'un CD[JAVA] Port Paralléle [Résolu]
Plus de sujets relatifs à : Porbleme super urgent de port série !!!!!!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR