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

Общие вопросы, не зависящие от языка реализации.

Модераторы: Duncon, Hawk, Romeo, Eugie

Ответить
AlexNor
Сообщения: 1
Зарегистрирован: 24 сен 2004, 23:02

24 сен 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
Сообщения: 15
Зарегистрирован: 01 окт 2004, 18:23
Откуда: Киев

01 окт 2004, 20:27

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