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

Вниз

Flow control в BCD   Найти похожие ветки 

 
anton1209   (2006-07-18 11:47) [0]

в настройках ком порта есть параметр flow control у меня он выставлен Xon / Xoff, как указать это в структуре BCD?

procedure PortInit;
var
  nb :DWORD;
  ov :TOVERLAPPED;
begin

 KolByte:=0;

 CommHandle := CreateFile("COM1",
                          GENERIC_WRITE,
                          0,
                          nil,
                          OPEN_EXISTING,
                          FILE_ATTRIBUTE_NORMAL,
                          0);

 if CommHandle = INVALID_HANDLE_VALUE then
   begin
       ShowMessage("Error opening port ");
       Exit;
   end;

  GetCommState(CommHandle,DCB);
  DCB.BaudRate:=CBR_9600;
  DCB.Parity:=ODDPARITY;
  DCB.ByteSize:=7;
  DCB.StopBits:=OneStopBit;
 
  SetCommState(CommHandle, DCB);

  WriteFile(CommHandle, "#DCL#@@@@@@", 11, nb, @Ovr);

  CloseHandle(CommHandle);

 end;


 
tesseract ©   (2006-07-18 13:59) [1]

Переписать DCB из msdn. Delphi структура от неё отличается.

выглядит так :

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;


 
anton1209   (2006-07-18 14:33) [2]

если честно не понял


 
tesseract ©   (2006-07-18 14:37) [3]

в описании DCB в Delphi  нет возможности контроля потока. Его надо подправить.


 
medved_68 ©   (2006-07-18 18:16) [4]


> в описании DCB в Delphi  нет возможности контроля потока.
>  Его надо подправить

Там есть такая штука как DCB.Flags. Практически повторяет [1].

> anton1209

Хлопаешь нужную маску и привет. 8:)))


 
tesseract ©   (2006-07-18 21:36) [5]

> Там есть такая штука как DCB.Flags. Практически повторяет
> [1].

ИМХО проще структурку переписать. Инфы больше.


 
Ketmar ©   (2006-07-18 21:55) [6]

>tesseract ©   (18.07.06 21:36) [5]
ну и как в D7, например, сделать битовые поля?


 
medved_68 ©   (2006-07-19 09:17) [7]


> 2tesseract


> ИМХО проще структурку переписать. Инфы больше.

А зачем корячиться если все необходимое сделано???? И по DCB.Flags в нете инфы полно.

> 2Ketmar


> ну и как в D7, например, сделать битовые поля?

Извратиться всегда можно. Другое дело когда я создал аналог Сишного DCB в виде рекорда и попробовал указатель на него передать в АРИ функцию работы с портом компилятор у меня начал ругаться и на несоответствие типов и еще на черт знает что. Хотя все было по инфе и размер DCB бил в копеечку и указатель смотрел куда надо. Так и остался в непонятках 8:((( Единственное что опосля пришло на ум что борландовский ТDCB класс обертка может здесь какие то навороты????


 
Ketmar ©   (2006-07-19 11:41) [8]

>medved_68 ©   (19.07.06 09:17) [7]
"навороты" в проверке типов языка. две одинаковых по размерам (и даже по полям) записи, объявленые под разными именами одинаковыми не считаются.


 
medved_68 ©   (2006-07-19 12:16) [9]


> Ketmar

Дело в том что практически в большинстве АРИ работающих с портом передаются указатели на DCB (оговариваются что DCB должен быть создан (выделена память под него) и в поле размера должен стоять размер DCB ). Так вот я выполнял все эти условия но компилятор ругался и на несоответствие типов и еще не помню на что.

> объявленые под разными именами одинаковыми не считаются.

Но ведь в АРИ функции передаются указатели на область памяти причем тут имена??? Поясни если не трудно.


 
Ketmar ©   (2006-07-19 16:58) [10]

>medved_68 ©   (19.07.06 12:16) [9]
указатели тоже имеют типы.



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

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

Наверх





Память: 0.48 MB
Время: 0.078 c
8-1145877105
us
2006-04-24 15:11
2006.12.03
анализатор звука


2-1163438458
Troan_81
2006-11-13 20:20
2006.12.03
Работа с директориями


15-1163760087
Ш-К
2006-11-17 13:41
2006.12.03
Кто-нибудь юэает ModelMaker Code Explorer 4.20?


2-1163508999
Дева
2006-11-14 15:56
2006.12.03
древовидная структура базы данных


15-1163085117
furyz
2006-11-09 18:11
2006.12.03
FreeBSD и мышь





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский