Estrutura dcb (winbase.h)

Define a configuração de controle para um dispositivo de comunicação serial.

Sintaxe

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;

Membros

DCBlength

O comprimento da estrutura, em bytes. O chamador deve definir esse membro como sizeof(DCB).

BaudRate

A taxa de bugigangas na qual o dispositivo de comunicações opera. Esse membro pode ser um valor de taxa de baud real ou um dos índices a seguir.

Valor Significado
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 esse membro for TRUE, o modo binário estará habilitado. O Windows não dá suporte a transferências de modo não binário, portanto, esse membro deve ser TRUE.

fParity

Se esse membro for TRUE, a verificação de paridade será executada e os erros serão relatados.

fOutxCtsFlow

Se esse membro for TRUE, o sinal CTS (desmarcado para enviar) será monitorado para o controle de fluxo de saída. Se esse membro for TRUE e o CTS estiver desativado, a saída será suspensa até que o CTS seja enviado novamente.

fOutxDsrFlow

Se esse membro for TRUE, o sinal DSR (pronto para conjunto de dados) será monitorado para o controle de fluxo de saída. Se esse membro for TRUE e a DSR estiver desativada, a saída será suspensa até que a DSR seja enviada novamente.

fDtrControl

O controle de fluxo DTR (pronto para terminal de dados). Esse membro pode ser um dos valores a seguir.

Valor Significado
DTR_CONTROL_DISABLE
0x00
Desabilita a linha DTR quando o dispositivo é aberto e o deixa desabilitado.
DTR_CONTROL_ENABLE
0x01
Habilita a linha DTR quando o dispositivo é aberto e o deixa ligado.
DTR_CONTROL_HANDSHAKE
0x02
Habilita o handshaking de DTR. Se o handshaking estiver habilitado, será um erro para o aplicativo ajustar a linha usando a função EscapeCommFunction .

fDsrSensitivity

Se esse membro for TRUE, o driver de comunicações será sensível ao estado do sinal DSR. O driver ignora todos os bytes recebidos, a menos que a linha de entrada do modem DSR seja alta.

fTXContinueOnXoff

Se esse membro for TRUE, a transmissão continuará depois que o buffer de entrada tiver entrado em bytes XoffLim de estar cheio e o driver tiver transmitido o caractere XoffChar para parar de receber bytes. Se esse membro for FALSE, a transmissão não continuará até que o buffer de entrada esteja dentro de bytes XonLim de estar vazio e o driver tenha transmitido o caractere XonChar para retomar a recepção.

fOutX

Indica se o controle de fluxo XON/XOFF é usado durante a transmissão. Se esse membro for TRUE, a transmissão será interrompida quando o caractere XoffChar for recebido e será iniciada novamente quando o caractere XonChar for recebido.

fInX

Indica se o controle de fluxo XON/XOFF é usado durante a recepção. Se esse membro for TRUE, o caractere XoffChar será enviado quando o buffer de entrada chegar dentro de bytes XoffLim de estar cheio e o caractere XonChar for enviado quando o buffer de entrada chegar dentro de bytes XonLim de estar vazio.

fErrorChar

Indica se os bytes recebidos com erros de paridade são substituídos pelo caractere especificado pelo membro ErrorChar . Se esse membro for TRUE e o membro fParity for TRUE, ocorrerá a substituição.

fNull

Se esse membro for TRUE, bytes nulos serão descartados quando recebidos.

fRtsControl

O controle de fluxo RTS (solicitação para enviar). Esse membro pode ser um dos valores a seguir.

Valor Significado
RTS_CONTROL_DISABLE
0x00
Desabilita a linha RTS quando o dispositivo é aberto e o deixa desabilitado.
RTS_CONTROL_ENABLE
0x01
Habilita a linha RTS quando o dispositivo é aberto e o deixa ligado.
RTS_CONTROL_HANDSHAKE
0x02
Habilita o handshaking rts. O driver aciona a linha RTS quando o buffer "type-ahead" (entrada) está menos de metade cheio e reduz a linha RTS quando o buffer está mais de três quartos cheio. Se o handshaking estiver habilitado, será um erro para o aplicativo ajustar a linha usando a função EscapeCommFunction .
RTS_CONTROL_TOGGLE
0x03
Especifica que a linha RTS será alta se os bytes estiverem disponíveis para transmissão. Depois que todos os bytes armazenados em buffer forem enviados, a linha RTS será baixa.

fAbortOnError

Se esse membro for TRUE, o driver encerrará todas as operações de leitura e gravação com um erro status se ocorrer um erro. O driver não aceitará mais nenhuma operação de comunicação até que o aplicativo confirme o erro chamando a função ClearCommError .

fDummy2

Reservado; não use.

wReserved

Reservados; deve ser zero.

XonLim

O número mínimo de bytes em uso permitido no buffer de entrada antes que o controle de fluxo seja ativado para permitir a transmissão pelo remetente. Isso pressupõe que o controle de fluxo de entrada XON/XOFF, RTS ou DTR seja especificado nos membros fInX, fRtsControl ou fDtrControl .

XoffLim

O número mínimo de bytes livres permitidos no buffer de entrada antes que o controle de fluxo seja ativado para inibir o remetente. Observe que o remetente pode transmitir caracteres depois que o sinal de controle de fluxo tiver sido ativado, portanto, esse valor nunca deve ser zero. Isso pressupõe que o controle de fluxo de entrada XON/XOFF, RTS ou DTR seja especificado nos membros fInX, fRtsControl ou fDtrControl . O número máximo de bytes em uso permitidos é calculado subtraindo esse valor do tamanho, em bytes, do buffer de entrada.

ByteSize

O número de bits nos bytes transmitidos e recebidos.

Parity

O esquema de paridade a ser usado. Esse membro pode ser um dos valores a seguir.

Valor Significado
EVENPARITY
2
Paridade mesmo.
MARKPARITY
3
Marcar paridade.
NOPARITY
0
Sem paridade.
ODDPARITY
1
Paridade estranha.
SPACEPARITY
4
Paridade de espaço.

StopBits

O número de bits de parada a serem usados. Esse membro pode ser um dos valores a seguir.

Valor Significado
ONESTOPBIT
0
1 bit de parada.
ONE5STOPBITS
1
1,5 bits de parada.
TWOSTOPBITS
2
2 bits de parada.

XonChar

O valor do caractere XON para transmissão e recepção.

XoffChar

O valor do caractere XOFF para transmissão e recepção.

ErrorChar

O valor do caractere usado para substituir bytes recebidos por um erro de paridade.

EofChar

O valor do caractere usado para sinalizar o fim dos dados.

EvtChar

O valor do caractere usado para sinalizar um evento.

wReserved1

Reservado; não use.

Comentários

Quando uma estrutura DCB é usada para configurar o 8250, as seguintes restrições se aplicam aos valores especificados para os membros ByteSize e StopBits :

  • O número de bits de dados deve ser de 5 a 8 bits.
  • O uso de 5 bits de dados com 2 bits de parada é uma combinação inválida, assim como 6, 7 ou 8 bits de dados com 1,5 bits de parada.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP
Servidor mínimo com suporte Windows Server 2003
Cabeçalho winbase.h (incluir Windows.h)

Confira também

BuildCommDCB

Clearcommerror

EscapeCommFunction

GetCommState

Setcommstate