Форум: "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