salut les pots actuellement je travail sur un projet en visuel c++ sur la communication en port serie DB9, j'arrive à faire passer une chaine de caractaire mais mon blm c que j'y parvien seulement si je fait l'allocation tableau de type char.
je voudrais eviter cette allocation car je suis limité par le nombre de case allouées dans ce tableau .
de ma part je vous invites à voir une partie de mon source, la partie qui s'occupe de la transmition et de la reception:
------------transmition d'une chaine-----------------------
bool comserie::ecrireport(char* trame)
{
char p[129];
strcpy(p,trame);
DWORD dwNumBytesWritten;
if(!WriteFile(Com, p, 170, &dwNumBytesWritten, NULL))
return 0;
else
return 1;
}
-----------reception de la chaine----------------------
char* comserie::lectport()
{
char *e;
e = new char[129];
SetCommMask (Com,EV_RXCHAR );
// attend un evenement
WaitCommEvent (Com,&dwCommStatus,0);
ReadFile (Com,e,170,&dwBytesTransferred,0);
return e;
}
------------------------------------------------------------
j'ai associer 2 bouttons qui declanchent la lecture et l'ecriture
voici le code:
-----------------------reception-----------------------
void CPrmfcView::OnRead()
{
// TODO: Add your control notification handler code here
m_affich = k.lectport(); //m_affiche variable associée au boutton de lecture
UpdateData(false);
}
-------------------envoie--------------------------------
void CPrmfcView::OnWrite()
{
// TODO: Add your control notification handler code here
bool s;
UpdateData(true);
char p[170];//♥ c ca le problem je veu pas d'allocation ♥
sprintf(p,"%s",m_saisie);
s = k.ecrireport(p);
if (!s)
{
m_test3 = "error";
UpdateData(false);
}
else
{
m_test3 = "ok";
UpdateData(false);
}
}
si quelqun a déja travailler sur les port serie qu'in se manifeste
merci d'avance
glaive l'epée de la justice et du jeu video