Coucou à tous.

Voici la situation.

je dois communiquer avec un matériel par une connexion RS232
pour gérer la communication je me suis inspiré de la classe "SerialCom" situé
http://c.developpez.com/faq/vc/?page...WithSerialPort.

Lorsque l'on en voit une trame au matériel, celui ci envois une trame pour confirmer la réception.

Mon problème est que je ne par vient pas à récupérer cette trame.


Pourriez vous me dire ce qui ne va pas dans mon code SVP?

CCom com;

unsigned char *buffer;
DWORD EvtMask =EV_BREAK ;

com.PortOpen(1,19200,'N',8,1);
com.UseRtsCts(false);
com.UseDtrDsr(false);
com.UseXonXoff(false);
com.SetCommMask(EvtMask);
com.PurgeCom();

//initialise la bar de progress
m_progress.SetRange(0,nombrefonction);
m_progress.SetPos(0);

//met tous les voyants en rouge
for(int i=0; i<nombrefonction; i++)
{
voyant[i].SetBkColor(RGB(255,0,0));
UpdateData(FALSE);

}

//pour chaque fontion
for(i=0; i<nombrefonction; i++)
{
creerTrame(&nomcommande[i]);
calculerPoidBits(trame[1]);

com.WriteBuffer(trame);

com.StartThread(com.m_pParent);
AfxMessageBox(com.GetStringError());

buffer = new unsigned char[100];
com.ReadBuffer(buffer,sizeof(buffer));
AfxMessageBox(com.GetStringError());

//si la réponse est correcte mettre le voyant en vert
if(buffer[0]==129)
{
voyant[i].SetBkColor(RGB(0,255,0));
m_progress.SetPos(i+1);
UpdateData(FALSE);
RedrawWindow();
}
com.StopThread();
}

AfxMessageBox("test terminé");
com.PortClose();