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

Тема в разделе "WASM.WIN32", создана пользователем ChelL, 25 сен 2004.

  1. ChelL

    ChelL New Member

    Публикаций:
    0
    Регистрация:
    1 сен 2004
    Сообщения:
    12
    Проблема в чём: для передачи байта



    Код:

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

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    AFAIK, если чётность не совпадает, то ReadFile никакой байт не вернёт!
     
  3. ChelL

    ChelL New Member

    Публикаций:
    0
    Регистрация:
    1 сен 2004
    Сообщения:
    12
    Quantum - так я при приёме SetCommState'ом тоже устанавливаю режим не проверять содержания бита чётности (хотя и передаю его) и принимает байты - как за родину. Вот токо проверить с каким битом чётности пришёл байт - вот проблема!
     
  4. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Точно! Невнимательно прочитал. Извиняюсь.