[an error occurred while processing this directive]
|
Делается это примерно так:
// открывается порт
HANDLE port = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL);
// через DCB струкруру устанавливаются параметры порта (скорость,
// количество байт, четность и т.д.
...
// читаем ответ
OVERLAPPED ovp;
vp.Offset = 0;
ovp.OffsetHigh = 0;
ovp.hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
char reply[128];
DWORD rc;
ReadFile(port, reply, sizeof(reply), &rc, &ovp);
WaitForSingleObject(ovp_rd.hEvent, INFINITE);
// здесь оказываемся только после того как получим данные
// по последовательному порту, или если произойдет ошибка
...
А вообще, смотреть MSDN на тему CreateFile, SetCommState, ReadFile,
WaitForSingleObject, GetOverlappedResult и т.д.
Да и в инете, на соответствующих ресурсах примеров работы с последовательным портом навалом.
E-mail: info@telesys.ru