j'espere que quelqu'Un d'entre vous pourra m'aider.
Aufait J'aimerais desactiver l'affichage automatique de données d'un appareil connecté a mon ordinateur par RS232 en lui envoyant le signal "online=off". Une fois le signal bien recu l'appareil me renvoit le meme message c'est á dire "online=off".
mon probleme actuellement est de savoir comment afficher le message recu sur mon Comport.
Merci pour votre aide
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <pthread.h>
#include "protocol.h"
#include "rs232.h"
#define RS232_PORTNR 9
static BYTE CRC;
int SetComport(int Cport_nr)
{
int i,auswahl1;
for (i=1; i<=RS232_PORTNR; i++)
{
printf("%i:COM%i\n",i,i);
}
scanf("%i", &auswahl1);
switch(auswahl1)
{
case 1:
Cport_nr = 0;
break;
case 2:
Cport_nr = 1;
break;
case 3:
Cport_nr = 2;
break;
case 4:
Cport_nr = 3;
break;
case 5:
Cport_nr = 4;
break;
default:
Cport_nr = 0;
break;
}
return Cport_nr;
}
int SetBaudrate(int baudrate)
{
int auswahl;
printf("\n1:19200\n");
printf("\n2:38400\n");
printf("\n3:57600\n");
printf("\n4:115200\n");
scanf("%i", &auswahl);
switch (auswahl)
{
case 1:
baudrate = 19200;
break;
case 2:
baudrate = 38400;
break;
case 3:
baudrate = 57600;
break;
case 4:
baudrate = 115200;
break;
default:
baudrate = 115200;
break;
}
return baudrate;
}
int main(int argc, char *argv[])
{
int Cport_nr, baudrate, auswahl, auswahl1, i,n ;
unsigned char buf[4096];
char mode[]={'8','N','1',0};
char disable[20] ="/online=off\r\n";
char CRLF[10]= "\r\n";
char text[50];
Cport_nr = SetComport(auswahl1);
baudrate = SetBaudrate(auswahl);
if(RS232_OpenComport(Cport_nr, baudrate, mode))
{
printf("Can not open comport\n");
return(0);
}
else
{
#ifdef _WIN32
printf("Com Port %i opened with %i Baud.\n", Cport_nr+1, baudrate);
#else
printf("Com Port %i opened with %i Baud.\n", Cport_nr, baudrate);
#endif
}
RS232_flushRX(Cport_nr);
RS232_flushTX(Cport_nr);
RS232_SendBuf(Cport_nr, disable, sizeof(disable));
RS232_flushTX(Cport_nr);
//Mes Problemes commencent a ce niveau...
#ifdef _WIN32
Sleep (30);
# else
unsleep (3000); /*sleep for 100 milliseconds*/
#endif
sleep(2000);
RS232_CloseComport(Cport_nr);
return 0;
}
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
la connaissance est une chose qui ne nous appauvrit pas quand on la partage.
Mon GitHub