seignseifer
Messages postés5Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 5 mars 2007
-
22 févr. 2007 à 06:33
seignseifer
Messages postés5Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 5 mars 2007
-
26 févr. 2007 à 01:46
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 de spectre ne bouge pas d'un pouce...
AVez vous des idees ?
Mon programme en entier donne ca :
//---------------------------------------------------------------------------
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 */
/*-----------------------------------------------------------*/
/*-----------------------------------------------------------*/
/* on applique les changements au port COM1 */
/*-----------------------------------------------------------*/
PortReady=SetCommState(handle,&dcb);
/* 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 */
/*-----------------------------------------------------------*/
seignseifer
Messages postés5Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 5 mars 2007 26 févr. 2007 à 01:42
ok merci, ca marche . L'analyseur de spectre se met bien en mode remote. Mais maintenant, le probleme est qu'il devrait me renvoyer son numero de serie ( entre autre : MDS234598) quand je lui dit de se mettre en remote mode. Mais mon programme m'affiche n'inporte quoi.
Il doit y avoir un probleme avec mon "buf2", mais j'arrive pas a voir quoi.
Merci
seignseifer
Messages postés5Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 5 mars 2007 26 févr. 2007 à 01:46
ah j'ai oublie d'ajouter la ligne dans mon programme du dessous, desole :
/*-----------------------------------------------------------*/
/* test du remote mode */
/*-----------------------------------------------------------*/