Здравствуйте, Nine, Вы писали:
N>Я кажется не правильно сформулировал вопрос. То есть сообщение состоит из самих данных и кончается символом EofChar, как я понял. Ну и вот: нужно ли мне знать EofChar, что бы считать все сообщение?
Никаких eofChar тебе не нужно трогать, входящее сообщение кончается когда будет принято заданное тобой в ReadFile() кол-во байт, или превышен интервал между отдельными байтами.
Порт можно настроить так:
HANDLE OpenPort(int nPort)
{
char szPort[10];
sprintf(szPort, "COM%d", nPort);
HANDLE hPort = CreateFile( szPort,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
0);
if (INVALID_HANDLE_VALUE == hPort) return hPort;
//
// Изменение настроек СОМ-порта
DCB dcb;
dcb.DCBlength = sizeof(DCB);
//
BOOL err = GetCommState(hPort, &dcb);
if (FALSE == err) return INVALID_HANDLE_VALUE;
//
dcb.BaudRate = 115200;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
//
err = SetCommState(hPort, &dcb);
if (FALSE == err) return INVALID_HANDLE_VALUE;
//
return hPort;
}