PDA

Просмотр полной версии : COM порт - как юзать бит чётности????



AlexNor
24.09.2004, 23:15
Проблема в чём: для передачи байта



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 возвращает токо сам байт!

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