Witam.
Mam problem z odczytem danych z portu com.
Uzywam takich funkcji:
static BOOL ReadData(HANDLE port,LPBYTE buffer,DWORD size,BOOL blocking);
static BOOL ReadData(HANDLE port,LPBYTE buffer,DWORD size,BOOL blocking)
{
DWORD read = 0;
int x;
if (ReadFile(port,buffer,size,&read,NULL))
{
if (read!=size)
{
char xx[100];
wsprintf(xx,"Size mismatch %d %d",buffer[0],buffer[1]);
MessageBox(NULL,xx,"Error",MB_ICONEXCLAMATION|MB_OK);
}
return (read == size);
}
else
{
switch (x=GetLastError())
{
case ERROR_IO_PENDING:
if (blocking)
{
while (!GetOverlappedResult(port,&Rov,&read,TRUE)) // wait until read completes!
{
if(GetLastError() != ERROR_IO_INCOMPLETE) // "incomplete" is normal result if not finished
{
MessageBox(NULL,"Something went wrong when calling Windows to read from comport.","Message",MB_ICONEXCLAMATION|MB_OK);
break; // an error occurred, try to recover
}
}
return (read == size);
}
else
{
// CancelIo(comPort);
return FALSE;
}
default:
// CancelIo(comPort);
return FALSE;
}
}
}
Jak teraz ustawic zmienne do ReadData(), jakie typy itd.
DARO
admin(_at_)statsms.net
Mam problem z odczytem danych z portu com.
Uzywam takich funkcji:
static BOOL ReadData(HANDLE port,LPBYTE buffer,DWORD size,BOOL blocking);
static BOOL ReadData(HANDLE port,LPBYTE buffer,DWORD size,BOOL blocking)
{
DWORD read = 0;
int x;
if (ReadFile(port,buffer,size,&read,NULL))
{
if (read!=size)
{
char xx[100];
wsprintf(xx,"Size mismatch %d %d",buffer[0],buffer[1]);
MessageBox(NULL,xx,"Error",MB_ICONEXCLAMATION|MB_OK);
}
return (read == size);
}
else
{
switch (x=GetLastError())
{
case ERROR_IO_PENDING:
if (blocking)
{
while (!GetOverlappedResult(port,&Rov,&read,TRUE)) // wait until read completes!
{
if(GetLastError() != ERROR_IO_INCOMPLETE) // "incomplete" is normal result if not finished
{
MessageBox(NULL,"Something went wrong when calling Windows to read from comport.","Message",MB_ICONEXCLAMATION|MB_OK);
break; // an error occurred, try to recover
}
}
return (read == size);
}
else
{
// CancelIo(comPort);
return FALSE;
}
default:
// CancelIo(comPort);
return FALSE;
}
}
}
Jak teraz ustawic zmienne do ReadData(), jakie typy itd.
DARO
admin(_at_)statsms.net