Страница 1 из 1

COM порт - как юзать бит чётности????

Добавлено: 24 сен 2004, 23:15
AlexNor
Проблема в чём: для передачи байта

Код: Выделить всё

GetCommState(hComPort, &dcb);
dcb.fParity = false;  // сами будем устанавливать этот бит
dcb.Parity = MARKPARITY;  // установим бит чётности
SetCommState(hComPort,&dcb)
DWORD writen = 0;
BYTE bt = 0x35;
WriteFile(hComPort, &bt, 1, &writen, 0);

GetCommState(hComPort, &dcb);
dcb.fParity = false;  // сами будем устанавливать этот бит
dcb.Parity = SPACEPARITY  // сбросим бит чётности
SetCommState(hComPort,&dcb)
writen = 0;
bt = 0x12;
WriteFile(hComPort, &bt, 1, &writen, 0);
т.е. я хочу передать один байт с установленым битом чётности а другой нет.

Но возникает проблема а при приёме как мне узнать у какого из принятых байт установлен бит чётности, а у какого нет???

Ведь ReadFile возвращает токо сам байт!

Добавлено: 01 окт 2004, 20:27
Dragonfly
А зачем тебе? Т.е. непонятен резон. Бит четности обрабатывается на низком уровне, насколько я знаю. Т.е. просто для дополнительной верификации. А на аппаратном вообще код Хемминга может реализовываться. Т.е. подразумевается, что на весь сеанс установлена одна настройка, более того - твоя прога или использует бит четности или нет. Разве что будешь первым байтом булеан посылать :)