problème de récupération de trame
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.
:cry:
Pourriez vous me dire ce qui ne va pas dans mon code SVP?
Citation:
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();