Condividi tramite


Struttura DCB (winbase.h)

Definisce l'impostazione del controllo per un dispositivo di comunicazione seriale.

Sintassi

typedef struct _DCB {
  DWORD DCBlength;
  DWORD BaudRate;
  DWORD fBinary : 1;
  DWORD fParity : 1;
  DWORD fOutxCtsFlow : 1;
  DWORD fOutxDsrFlow : 1;
  DWORD fDtrControl : 2;
  DWORD fDsrSensitivity : 1;
  DWORD fTXContinueOnXoff : 1;
  DWORD fOutX : 1;
  DWORD fInX : 1;
  DWORD fErrorChar : 1;
  DWORD fNull : 1;
  DWORD fRtsControl : 2;
  DWORD fAbortOnError : 1;
  DWORD fDummy2 : 17;
  WORD  wReserved;
  WORD  XonLim;
  WORD  XoffLim;
  BYTE  ByteSize;
  BYTE  Parity;
  BYTE  StopBits;
  char  XonChar;
  char  XoffChar;
  char  ErrorChar;
  char  EofChar;
  char  EvtChar;
  WORD  wReserved1;
} DCB, *LPDCB;

Members

DCBlength

Lunghezza della struttura, in byte. Il chiamante deve impostare questo membro su sizeof(DCB).

BaudRate

Velocità in baud con cui opera il dispositivo di comunicazione. Questo membro può essere un valore di velocità baud effettivo o uno degli indici seguenti.

Valore Significato
CBR_110
110
110 bps
CBR_300
300
300 bps
CBR_600
600
600 bps
CBR_1200
1200
1200 bps
CBR_2400
2400
2400 bps
CBR_4800
4800
4800 bps
CBR_9600
9600
9600 bps
CBR_14400
14400
14400 bps
CBR_19200
19200
19200 bps
CBR_38400
38400
38400 bps
CBR_57600
57600
57600 bps
CBR_115200
115200
115200 bps
CBR_128000
128000
128000 bps
CBR_256000
256000
256000 bps

fBinary

Se questo membro è TRUE, la modalità binaria è abilitata. Windows non supporta i trasferimenti in modalità nonbinary, pertanto questo membro deve essere TRUE.

fParity

Se questo membro è TRUE, viene eseguito il controllo della parità e vengono segnalati errori.

fOutxCtsFlow

Se questo membro è TRUE, il segnale CTS (clear-to-send) viene monitorato per il controllo del flusso di output. Se questo membro è TRUE e CTS viene disattivato, l'output viene sospeso fino a quando CTS non viene inviato di nuovo.

fOutxDsrFlow

Se questo membro è TRUE, il segnale DSR (data-set-ready) viene monitorato per il controllo del flusso di output. Se questo membro è TRUE e la richiesta dell'interessato è disattivata, l'output viene sospeso fino a quando la richiesta dell'interessato non viene inviata di nuovo.

fDtrControl

Controllo del flusso DTR (data-terminal-ready). Questo membro può essere uno dei valori seguenti.

Valore Significato
DTR_CONTROL_DISABLE
0x00
Disabilita la riga DTR quando il dispositivo viene aperto e lo lascia disabilitato.
DTR_CONTROL_ENABLE
0x01
Abilita la linea DTR quando il dispositivo viene aperto e lo lascia acceso.
DTR_CONTROL_HANDSHAKE
0x02
Abilita l'handshaking DTR. Se l'handshaking è abilitato, si tratta di un errore per l'applicazione di regolare la riga usando la funzione EscapeCommFunction .

fDsrSensitivity

Se questo membro è TRUE, il driver di comunicazione è sensibile allo stato del segnale DSR. Il driver ignora tutti i byte ricevuti, a meno che la linea di input del modem DSR non sia elevata.

fTXContinueOnXoff

Se questo membro è TRUE, la trasmissione continua dopo che il buffer di input è compreso tra XoffLim byte di pieno e il driver ha trasmesso il carattere XoffChar per interrompere la ricezione dei byte. Se questo membro è FALSE, la trasmissione non continua finché il buffer di input non è compreso in byte XonLim di essere vuoto e il driver ha trasmesso il carattere XonChar per riprendere la ricezione.

fOutX

Indica se il controllo del flusso XON/XOFF viene utilizzato durante la trasmissione. Se questo membro è TRUE, la trasmissione viene arrestata quando viene ricevuto il carattere XoffChar e viene avviato di nuovo quando viene ricevuto il carattere XonChar .

fInX

Indica se il controllo flusso XON/XOFF viene utilizzato durante la ricezione. Se questo membro è TRUE, il carattere XoffChar viene inviato quando il buffer di input rientra in XoffLim byte di essere pieno e il carattere XonChar viene inviato quando il buffer di input rientra in XonLim byte vuoti.

fErrorChar

Indica se i byte ricevuti con errori di parità vengono sostituiti con il carattere specificato dal membro ErrorChar . Se questo membro è TRUE e il membro fParity è TRUE, viene eseguita la sostituzione.

fNull

Se questo membro è TRUE, i byte Null vengono eliminati al momento della ricezione.

fRtsControl

Controllo del flusso RTS (request-to-send). Questo membro può essere uno dei valori seguenti.

Valore Significato
RTS_CONTROL_DISABLE
0x00
Disabilita la riga RTS quando il dispositivo viene aperto e lo lascia disabilitato.
RTS_CONTROL_ENABLE
0x01
Abilita la riga RTS quando il dispositivo viene aperto e lo lascia acceso.
RTS_CONTROL_HANDSHAKE
0x02
Abilita l'handshaking RTS. Il driver genera la riga RTS quando il buffer "type-ahead" (input) è minore di una metà pieno e riduce la linea RTS quando il buffer è più di tre quarti pieno. Se l'handshaking è abilitato, è un errore per l'applicazione per regolare la riga usando la funzione EscapeCommFunction .
RTS_CONTROL_TOGGLE
0x03
Specifica che la linea RTS sarà elevata se i byte sono disponibili per la trasmissione. Dopo l'invio di tutti i byte buffer, la riga RTS sarà bassa.

fAbortOnError

Se questo membro è TRUE, il driver termina tutte le operazioni di lettura e scrittura con stato di errore se si verifica un errore. Il driver non accetta ulteriori operazioni di comunicazione finché l'applicazione non ha riconosciuto l'errore chiamando la funzione ClearCommError .

fDummy2

Riservati; non usare.

wReserved

Riservati; deve essere zero.

XonLim

Numero minimo di byte in uso consentito nel buffer di input prima che il controllo del flusso venga attivato per consentire la trasmissione dal mittente. Ciò presuppone che il controllo del flusso di input XON/XOFF, RTS o DTR sia specificato nei membri fInX, fRtsControl o fDtrControl .

XoffLim

Numero minimo di byte liberi consentiti nel buffer di input prima che il controllo del flusso venga attivato per inibire il mittente. Si noti che il mittente può trasmettere caratteri dopo l'attivazione del segnale di controllo del flusso, quindi questo valore non deve mai essere zero. Ciò presuppone che il controllo del flusso di input XON/XOFF, RTS o DTR sia specificato nei membri fInX, fRtsControl o fDtrControl . Il numero massimo di byte in uso consentito viene calcolato sottraendo questo valore dalle dimensioni, in byte, del buffer di input.

ByteSize

Numero di bit nei byte trasmessi e ricevuti.

Parity

Schema di parità da usare. Questo membro può essere uno dei valori seguenti.

Valore Significato
EVENPARITY
2
Anche parità.
MARKPARITY
3
Parità di contrassegno.
NOPARITY
0
Nessuna parità.
ODDPARITY
1
Parità dispari.
SPACEPARITY
4
Parità di spazio.

StopBits

Numero di bit di arresto da usare. Questo membro può essere uno dei valori seguenti.

Valore Significato
ONESTOPBIT
0
1 bit di arresto.
ONE5STOPBITS
1
1,5 bit di arresto.
TWOSTOPBITS
2
2 bit di arresto.

XonChar

Valore del carattere XON per la trasmissione e la ricezione.

XoffChar

Valore del carattere XOFF per la trasmissione e la ricezione.

ErrorChar

Valore del carattere utilizzato per sostituire i byte ricevuti con un errore di parità.

EofChar

Valore del carattere utilizzato per segnalare la fine dei dati.

EvtChar

Valore del carattere utilizzato per segnalare un evento.

wReserved1

Riservati; non usare.

Commenti

Quando viene usata una struttura DCB per configurare la versione 8250, le restrizioni seguenti si applicano ai valori specificati per i membri ByteSize e StopBits :

  • Il numero di bit di dati deve essere compreso tra 5 e 8 bit.
  • L'uso di 5 bit di dati con 2 bit di arresto è una combinazione non valida, come è 6, 7 o 8 bit di dati con 1,5 bit di arresto.

Requisiti

Requisito Valore
Client minimo supportato Windows XP
Server minimo supportato Windows Server 2003
Intestazione winbase.h (include Windows.h)

Vedi anche

BuildCommDCB

ClearCommError

EscapeCommFunction

GetCommState

SetCommState