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

  FORUM HardWare.fr
  Programmation
  C++

  transmission de donnees via le port serie

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

transmission de donnees via le port serie

n°1518062
seignseife​r
Posté le 22-02-2007 à 06:45:34  profilanswer
 

Bonjour tout le monde,  
j'ai fait un petit programme en  C++ sous Borland C++6.0, car je veux envoyer via le port serie, des information a un analyseur de sprectre. Le but est de pouvoir le commander a partir de l'ordi. ( et apres de recevoir les info qu'il envoie)
Par exemple, la doc de programmation de l'analyseur , me dit " Send the enter remotemode Byte #69, to the spectrum analyser to enter remote mode.  
Donc j'ai tape la ligne de code suivante :  
 WriteFile(handle,"69",2,&nbecrit,NULL);
 
Mais rien ne se passe.L'analyseur ne bouge pas d'un pouce
AVez vous des idees ?
 
Mon programme en entier donne ca :
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <stdio.h>
#include <windows.h>
#include <windef.h>
#include <stdlib.h>
 
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
int main()
{
 
 HANDLE handle;
 DCB dcb;
 COMMTIMEOUTS timeouts={0};
 BOOL fSuccess;
 
 
 unsigned long nBytesRead;
 int NbOctet;
 char c;
 BOOL bResult,PortReady;
 char *inBuffer;
 
 /* pour le remote mode */
 char buf[56];
 char buf2[56];
 DWORD nblu=0,nbecrit;
 
 
 
 /*--------------------------------------------------------------------*/
 /*   Ouverture du port de communication pour l'ANALYSEUR DE SPECTRE   */
 /*--------------------------------------------------------------------*/
 
 
 handle = CreateFile(
    "COM1",
    GENERIC_READ | GENERIC_WRITE , // acces pour lire et ecrire sur le port
    0,
    NULL,
   OPEN_EXISTING,
    0,
    NULL
    ) ;
 
 
 if(handle == INVALID_HANDLE_VALUE)
  {
   printf("Impossible d'ouvrir le port  (erreur %d)\n", GetLastError());
    return 0;
 
 
  }  
   
/*-----------------------------------------------------------*/
/*                  Ajustement des parametres                */
/*-----------------------------------------------------------*/
 
 
PortReady=SetupComm(handle,5000,5000);
 
 
fSuccess = GetCommState(handle, &dcb);
 
 if (!fSuccess)
  {
    printf("probleme 1" );
 
      getchar();
  }
 
       
dcb.BaudRate = CBR_9600 ;   /*  vitesse */
dcb.ByteSize =8 ; /* nombre de bits */
dcb.Parity=NOPARITY;
dcb.StopBits = ONESTOPBIT;
dcb.fNull=FALSE;
dcb.fRtsControl=RTS_CONTROL_ENABLE;
dcb.fInX=FALSE;
dcb.fOutX=FALSE;
dcb.fDtrControl=DTR_CONTROL_ENABLE;
 
 
/*-----------------------------------------------------------*/
/*     on applique les changements au port COM1              */
/*-----------------------------------------------------------*/
PortReady=SetCommState(handle,&dcb);
 
if(!SetCommState(handle,&dcb))
{
   printf("probleme 1" );
      getchar();
 
}
 
 
 
 
 
/*-----------------------------------------------------------*/
/*                  Les timeouts                             */
/*-----------------------------------------------------------*/
 
timeouts.ReadIntervalTimeout=MAXDWORD;
timeouts.ReadTotalTimeoutMultiplier=0;
timeouts.ReadTotalTimeoutConstant=0;
timeouts.WriteTotalTimeoutMultiplier=0;
timeouts.WriteTotalTimeoutConstant=0;
 
/* On applique ces changements au port COM1*/
 SetCommTimeouts(handle,&timeouts);
if(!SetCommTimeouts(handle,&timeouts))
                {
                  printf("Impossible d'initialiser les timeouts  (erreur %d)\n", GetLastError());
                  return 0;
                }
 
                       
 
   
/*-----------------------------------------------------------*/
/*             test du remote mode                           */
/*-----------------------------------------------------------*/
 
 
 WriteFile(handle,"69",2,&nbecrit,NULL);
 
 
 getchar();
        CloseHandle(handle);
 return(fSuccess);
}
//---------------------------------------------------------------------------

mood
Publicité
Posté le 22-02-2007 à 06:45:34  profilanswer
 

n°1518063
seignseife​r
Posté le 22-02-2007 à 06:59:45  profilanswer
 

non c'est bon j'ai resolu le probleme ^^


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

  transmission de donnees via le port serie

 

Sujets relatifs
récuperer données vbs dans .htalecture du port serie dans test bench vhdl
Emuler un rebranchement sur le port USBcomment recuperer et traiter des données d'un formulaire html?
MySQL : Impossible de récupérer données après restauration[.NET 2.0] Mettre à jour la base de données à partir d'une DataTable
[VB.Net] Mis à Jour d'une base de données commune à 2 formulaires...[WAS]Ip et port du server pour déploiement Axis
Connections à la base de données 
Plus de sujets relatifs à : transmission de donnees via le port serie


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