Resulta que el envio me funciona perfectamente, pero la recepcion de datos no me va ni hacia atras.
El trabajo tiene que ser echo en Borland C++ y utilizando los API's de windows.
El tema que teoricamente de falla seria este:
Código:
Esto es lo que uso, si alguien tiene una diea me haria un favor.bool llegir_port(DWORD); // Declaració anònima // Accions a realitzar pel thread DWORD WINAPI ThreadFunc(LPVOID Param) { // Anirem llegint indefinidament caràcter a caràcter pel port sèrie // i el mostrarem per pantalla while(1) { if(llegir_port(1)) { Form1->rebre->Text=Form1->rebre->Text+(char)(sBuffer[0]+32); } } } bool llegir_port(DWORD num_dades) { if(conect==1) { DWORD iBytes; if (!ReadFile(hCom, &sBuffer, num_dades, &iBytes, NULL)) { // lectura Application->MessageBoxA("No es pot llegir el port","Error",MB_OK|MB_ICONINFORMATION); return false; } if (iBytes != num_dades) { // comprovem dades rebudes return false; } return true; // si tot esta correcte, retorna cert } else return false; } void __fastcall TForm1::Button3Click(TObject *Sender) { if (obrir_port()) { Form1->Button3->Enabled=false; Form1->Button2->Enabled=true; Form1->barra_estat->SimpleText="Connectat"; Form1->rebre->Text=Form1->rebre->Text+sBuffer[0]; // Quan creem la finestra també creem el Thread DWORD Id; Thread = CreateThread(0, 0, ThreadFunc,Form1->Handle, CREATE_SUSPENDED, &Id); if(!Thread) //Si no s'ha creat correctament { Application->MessageBoxA("Error! No s'ha pogut crear el thread","Thread",MB_OK|MB_ICONWARNING); Application->Terminate(); } //Engeguem ja el thread de lectura continuada del port sèrie ResumeThread(Thread); } }
gracias