Coment récuperer données du RS232 et les mettre dans fichier texte

kenzo10 Messages postés 3 Date d'inscription vendredi 24 juin 2005 Statut Membre Dernière intervention 4 juillet 2005 - 4 juil. 2005 à 11:32
ricky78 Messages postés 126 Date d'inscription jeudi 5 juin 2003 Statut Membre Dernière intervention 11 juillet 2006 - 4 juil. 2005 à 13:50
Bonjour, je suis en stage et je recherche un moyen de récuperer les données sortie du port RS232 et les mettre dans un fichier texte mais je ne suis pas trop fort en C++ donc si quelqu'un a des informations merci de me le faire savoir

1 réponse

ricky78 Messages postés 126 Date d'inscription jeudi 5 juin 2003 Statut Membre Dernière intervention 11 juillet 2006
4 juil. 2005 à 13:50
bonjour

Gestion de la com en synchrone

HANDLE hPort= INVALID_HANDLE_VALUE;

DCB ParametrePort;
COMMTIMEOUTS time;


BOOL erreur;
DWORD dwWritten,dwRead;
unsigned char WrBuf,RdBuf;

CloseHandle(hPort);

hPort=CreateFile("com1", GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,0,OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL ,0);

GetCommState(hPort,&ParametrePort);
ParametrePort.DCBlength =sizeof(DCB);
ParametrePort.BaudRate = CBR_57600;


ParametrePort.fBinary=TRUE;
ParametrePort.fParity=0;
ParametrePort.Parity=NOPARITY;
ParametrePort.fOutxCtsFlow=FALSE;
ParametrePort.fOutxDsrFlow=0;
ParametrePort.fDtrControl=DTR_CONTROL_ENABLE;
ParametrePort.fDsrSensitivity=FALSE;
ParametrePort.fRtsControl=RTS_CONTROL_DISABLE;
ParametrePort.ByteSize=8;
ParametrePort.Parity=NOPARITY;
ParametrePort.StopBits=ONESTOPBIT;





ParametrePort.fAbortOnError=FALSE;
ParametrePort.fDummy2=FALSE;
ParametrePort.wReserved=FALSE;
ParametrePort.fErrorChar=FALSE;
ParametrePort.fNull=FALSE;
ParametrePort.ErrorChar=0;
ParametrePort.EofChar=0;
ParametrePort.EvtChar=0;


ParametrePort.XonLim=512;
ParametrePort.XoffLim=1024;
ParametrePort.fTXContinueOnXoff=FALSE;

ParametrePort.fOutX=FALSE;
ParametrePort.fInX=FALSE;

ParametrePort.XonChar=17;
ParametrePort.XoffChar=19;






SetCommState(hPort,&ParametrePort);

time.ReadIntervalTimeout=100;
time.ReadTotalTimeoutMultiplier=100;
time.ReadTotalTimeoutConstant=100;
time.WriteTotalTimeoutMultiplier=100;
time.WriteTotalTimeoutConstant=100;

SetCommTimeouts(hPort,&time);


SetupComm(hPort,2048,2048);

Lecture des infos sur le port serie avec fonction

BOOL ReadFile(
HANDLE [ hFile] ,
LPVOID [ lpBuffer],
DWORD [ nNumberOfBytesToRead],
LPDWORD [ lpNumberOfBytesRead],
LPOVERLAPPED [ lpOverlapped]
);


=/library/en-us/fileio/fs/readfile.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/readfile.asp

pour ecriture dans fichier

CFile f;
CFileException e;
CString co;

co.Format("coucou");


if( f.Open( "c:\\monfichier.txt", CFile::modeCreate | CFile::modeWrite, &e ) )
{
f.Write(co,co.GetLength());
f.Close();

bon courage

TOCHE
0
Rejoignez-nous