![]()  | 
![]() ![]() ![]() ![]()  | 
   
 | 
Структура DCBDelphi , Файловая система , ПортыСтруктура DCB определяет установку управления для последовательного порта ввода-вывода (нам она понадобится для разбора примера с программой управления весами ПетрВес) Примечание : В местах где нельзя дать точный перевод будет дано определение на английском из MSDK и приблизительный его перевод Описание в эквиваленте C 
typedef struct _DCB { // dcb  
    DWORD DCBlength;           // Размер DCB
    DWORD BaudRate;            // Скорость пересылки данных в бодах; 
                               // текущая скорость в бодах 
    DWORD fBinary: 1;          // binary mode, no EOF check 
                               // двоичный режим , не проверять конец 
                               // данных (по умолчанию значение = 1)
    DWORD fParity: 1;          // Включить проверку четность (по умолчанию
                               // значение = 1)
    DWORD fOutxCtsFlow:1;      // CTS управление потоком выхода 
    DWORD fOutxDsrFlow:1;      // DSR управление потоком выхода 
    DWORD fDtrControl:2;       // DTR Тип управления потоком скорости 
                               // передачи данных
    DWORD fDsrSensitivity:1;   // DSR sensitivity (чувствительность)
    DWORD fTXContinueOnXoff:1; // XOFF continues Tx (стоп-сигнал 
                               // продалжает выполнение)
    DWORD fOutX: 1;            // XON/XOFF out flow control (СТАРТ-  
                               // СИГНАЛ / СТОП-СИГНАЛ для управления 
                               // выходящим потоком (по умолчанию
                               // значение = 1)
    DWORD fInX: 1;             // XON/XOFF in flow control (СТАРТ-
                               // СИГНАЛ / СТОП-СИГНАЛ для управления 
                               // входящим потоком (по умолчанию
                               // значение = 1)
    DWORD fErrorChar: 1;       // enable error replacement (включить 
                               // проверку погрешностей по умолчанию=1)
    DWORD fNull: 1;            // enable null stripping (отвергать
                               // пустой поток данных (по умолчанию=1))
    DWORD fRtsControl:2;       // RTS управление потоком данных
    DWORD fAbortOnError:1;     // abort reads/writes on error  
                               // (проверять операции чтения/записи 
                               // по умолчанию=1)
    DWORD fDummy2:17;          // reserved ЗАРЕЗЕРВИРОВАНО 
    WORD wReserved;            // not currently used НЕ ДЛЯ 
                               // ИСПОЛЬЗОВАНИЯ 
    WORD XonLim;               // transmit XON threshold (порог 
                               // чувствительности старт-сигнала)
    WORD XoffLim;              // transmit XOFF threshold (порог
                               // чувствительности стоп-сигнала)
    BYTE ByteSize;             // Бит в байте  (обычно 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; 
Пример : with Mode do begin BaudRate := 9600; ByteSize := 8; Parity := NOPARITY; StopBits := ONESTOPBIT; // одиночный стоп-бит Flags := EV_RXCHAR + EV_EVENT2; end; Параметры : 
DCBlength  
BaudRate  CBR_110 CBR_19200 CBR_300 CBR_38400 CBR_600 CBR_56000 CBR_1200 CBR_57600 CBR_2400 CBR_115200 CBR_4800 CBR_128000 CBR_9600 CBR_256000 CBR_14400 
fBinary  
Примечание: 
fParity  
fOutxCtsFlow  
fOutxDsrFlow  
fDtrControl  Принимает следующие значения : 
DTR_CONTROL_DISABLE 
DTR_CONTROL_ENABLE  
DTR_CONTROL_HANDSHAKE  Допускает подтверждению связи передачи данных Если подтверждение связи допускается, это - погрешность для того чтобы регулировать(корректировать) линию связи, используя функцию EscapeCommFunction. 
fDsrSensitivity  Определяет возможна ли по порту двухсторонняя передача в ту и в другую сторону сигнала. 
fTXContinueOnXoff  
fOutX  
fInX  
fErrorChar  
fNull  
fRtsControl  
RTS_CONTROL_DISABLE  
RTS_CONTROL_ENABLE  
RTS_CONTROL_HANDSHAKE  Допускает RTS подтверждение связи. Драйвер управляет потоком пересылки.RTS выравнивается , когда входной буфер - меньше чем половина полного и понижается, когда буфер - больше 2/3 полного .Если подтверждение связи допускается, это используется для регулирования передачи данных EscapeCommFunction. 
RTS_CONTROL_TOGGLE  
FAbortOnError  Если этот параметр ИСТИНЕН, драйвер закрывает все операции чтения/записи с состоянием погрешности при возникновении оной. Драйвер не будет принимать никакие дальнейшие действия, пока не дождется подтверждения погрешности в передоваемых (принимаемых) данных, вызывая функцию ClearCommError. 
fDummy2  
wReserved  
XonLim  
XoffLim  
ByteSize  
Parity  
EVENPARITY	 Этот параметр может быть одним из следующих значений: 
ONESTOPBIT	1 stop bit 
XonChar  
XoffChar  
ErrorChar  
EofChar  
EvtChar  
wReserved1  
Дополнение: Число информационных разрядов должно быть от 5 до 8 битов. Использование 5 информационных разрядов с 2 стоповыми битами - недопустимая комбинация, как - 6, 7, или 8 информационных разрядов с 1.5 стоповыми битами. Структура DCB определяет установку управления для последовательного порта ввода-вывода и используется для настройки параметров передачи данных, включая скорость передачи, тип четности, количество стоповых битов и управление потоком. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш  
  | 
||||
 ©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007  | ||||