Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по структуре DCB при работе с СОМ портом   Найти похожие ветки 

 
Андрей Пл   (2006-08-19 09:42) [0]

Прошу подсказать следующее:
в хелпе я нашел описание структуры DCB:
typedef struct _DCB { // dcb  
   DWORD DCBlength;           // sizeof(DCB)
   DWORD BaudRate;            // current baud rate
   DWORD fBinary: 1;          // binary mode, no EOF check
   DWORD fParity: 1;          // enable parity checking
   DWORD fOutxCtsFlow:1;      // CTS output flow control
   DWORD fOutxDsrFlow:1;      // DSR output flow control
   DWORD fDtrControl:2;       // DTR flow control type
   DWORD fDsrSensitivity:1;   // DSR sensitivity

   DWORD fTXContinueOnXoff:1; // XOFF continues Tx
   DWORD fOutX: 1;            // XON/XOFF out flow control
   DWORD fInX: 1;             // XON/XOFF in flow control
   DWORD fErrorChar: 1;       // enable error replacement
   DWORD fNull: 1;            // enable null stripping
   DWORD fRtsControl:2;       // RTS flow control
   DWORD fAbortOnError:1;     // abort reads/writes on error
   DWORD fDummy2:17;          // reserved
   WORD wReserved;            // not currently used

   WORD XonLim;               // transmit XON threshold
   WORD XoffLim;              // transmit XOFF threshold
   BYTE ByteSize;             // number of bits/byte, 4-8
   BYTE Parity;               // 0-4=no,odd,even,mark,space
   BYTE StopBits;             // 0,1,2 = 1, 1.5, 2
   char XonChar;              // Tx and Rx XON character
   char XoffChar;             // Tx and Rx XOFF character
   char ErrorChar;            // error replacement character

   char EofChar;              // end of input character
   char EvtChar;              // received event character
   WORD wReserved1;           // reserved; do not use
} DCB;


реально описано:

 _DCB = packed record
   DCBlength: DWORD;
   BaudRate: DWORD;
   Flags: Longint;
   wReserved: Word;
   XonLim: Word;
   XoffLim: Word;
   ByteSize: Byte;
   Parity: Byte;
   StopBits: Byte;
   XonChar: CHAR;
   XoffChar: CHAR;
   ErrorChar: CHAR;
   EofChar: CHAR;
   EvtChar: CHAR;
   wReserved1: Word;
 end;


значит битовые поля
  DWORD fBinary: 1;          // binary mode, no EOF check
   DWORD fParity: 1;          // enable parity checking
   DWORD fOutxCtsFlow:1;      // CTS output flow control
   DWORD fOutxDsrFlow:1;      // DSR output flow control
   DWORD fDtrControl:2;       // DTR flow control type
   DWORD fDsrSensitivity:1;   // DSR sensitivity
   DWORD fTXContinueOnXoff:1; // XOFF continues Tx
   DWORD fOutX: 1;            // XON/XOFF out flow control
   DWORD fInX: 1;             // XON/XOFF in flow control
   DWORD fErrorChar: 1;       // enable error replacement
   DWORD fNull: 1;            // enable null stripping
   DWORD fRtsControl:2;       // RTS flow control
   DWORD fAbortOnError:1;     // abort reads/writes on error
   DWORD fDummy2:17;          // reserved    WORD

размещены в одном поле
Flags: Longint
Вопрос:  Как мне установить одноиз битовых полей - допустим поле fRtsControl в значение RTS_CONTROL_TOGGLE


 
medved_68 ©   (2006-08-20 15:07) [1]

Андрей Пл    На чем работаешь??? Если Delphi то см. класс TDCB, поле TDCB.Flags. Битовые маски хлопаются обычным OR

> Вопрос:  Как мне установить одно из битовых полей - допустим
> поле fRtsControl в значение RTS_CONTROL_TOGGLE


var
 DR:TDCB;
begin
//Открываем порт
GetCommState(HCom,DR);
DR.Flags:=DR.Flags or $3000
//Это и будет RTS_CONTROL_TOGGLE
//Если нужны другие значения то хлопаем $0000 - $2000
//По умолчанию RTS_CONTROL_HANDSHAKE
SetCommState(HCom,DR);
И все!!! 8:)))


 
Андрей Пл   (2006-08-22 15:33) [2]

спасибо получилось!



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.042 c
15-1165585217
Сатир
2006-12-08 16:40
2006.12.31
Удалиние лишних bpl-ок


8-1147104191
Dstr
2006-05-08 20:03
2006.12.31
Stream и звук


15-1165815285
Knight
2006-12-11 08:34
2006.12.31
Раз уж появилась ветка про Java...


2-1165787910
ZiTRaX
2006-12-11 00:58
2006.12.31
Проблемы с отображением содержимого таблиц


2-1166020242
dis12345
2006-12-13 17:30
2006.12.31
перебор Label ов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский