Compartir a través de


Estructura DCB (winbase.h)

Define la configuración de control para un dispositivo de comunicaciones serie.

Sintaxis

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;

Miembros

DCBlength

Longitud de la estructura, en bytes. El llamador debe establecer este miembro en sizeof(DCB).

BaudRate

Velocidad en baudios a la que opera el dispositivo de comunicaciones. Este miembro puede ser un valor real de velocidad en baudios o uno de los índices siguientes.

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

Si este miembro es TRUE, el modo binario está habilitado. Windows no admite transferencias de modo nobinario, por lo que este miembro debe ser TRUE.

fParity

Si este miembro es TRUE, se realiza la comprobación de paridad y se notifican errores.

fOutxCtsFlow

Si este miembro es TRUE, la señal CTS (clear-to-send) se supervisa para el control de flujo de salida. Si este miembro es TRUE y CTS está desactivado, la salida se suspende hasta que se envía CTS de nuevo.

fOutxDsrFlow

Si este miembro es TRUE, la señal de DSR (lista para el conjunto de datos) se supervisa para el control de flujo de salida. Si este miembro es TRUE y DSR está desactivado, la salida se suspende hasta que DSR se envíe de nuevo.

fDtrControl

Control de flujo DTR (listo para el terminal de datos). Este miembro puede ser uno de los valores siguientes.

Valor Significado
DTR_CONTROL_DISABLE
0x00
Deshabilita la línea DTR cuando se abre el dispositivo y la deja deshabilitada.
DTR_CONTROL_ENABLE
0x01
Habilita la línea DTR cuando se abre el dispositivo y lo deja activado.
DTR_CONTROL_HANDSHAKE
0x02
Habilita el protocolo de enlace DTR. Si el protocolo de enlace está habilitado, es un error para que la aplicación ajuste la línea mediante la función EscapeCommFunction .

fDsrSensitivity

Si este miembro es TRUE, el controlador de comunicaciones es sensible al estado de la señal DSR. El controlador omite los bytes recibidos, a menos que la línea de entrada del módem DSR sea alta.

fTXContinueOnXoff

Si este miembro es TRUE, la transmisión continúa después de que el búfer de entrada haya llegado a XoffLim bytes de estar lleno y el controlador ha transmitido el carácter XoffChar para dejar de recibir bytes. Si este miembro es FALSE, la transmisión no continúa hasta que el búfer de entrada está dentro de los bytes XonLim de estar vacío y el controlador ha transmitido el carácter XonChar para reanudar la recepción.

fOutX

Indica si se usa el control de flujo XON/XOFF durante la transmisión. Si este miembro es TRUE, la transmisión se detiene cuando se recibe el carácter XoffChar y se inicia de nuevo cuando se recibe el carácter XonChar .

fInX

Indica si se usa el control de flujo XON/XOFF durante la recepción. Si este miembro es TRUE, el carácter XoffChar se envía cuando el búfer de entrada entra en bytes XoffLim de estar lleno y el carácter XonChar se envía cuando el búfer de entrada entra en bytes XonLim de estar vacío.

fErrorChar

Indica si los bytes recibidos con errores de paridad se reemplazan por el carácter especificado por el miembro ErrorChar . Si este miembro es TRUE y el miembro fParity es TRUE, se produce el reemplazo.

fNull

Si este miembro es TRUE, los bytes NULL se descartan cuando se reciben.

fRtsControl

Control de flujo RTS (solicitud a envío). Este miembro puede ser uno de los valores siguientes.

Valor Significado
RTS_CONTROL_DISABLE
0x00
Deshabilita la línea RTS cuando se abre el dispositivo y la deja deshabilitada.
RTS_CONTROL_ENABLE
0x01
Habilita la línea RTS cuando se abre el dispositivo y lo deja activado.
RTS_CONTROL_HANDSHAKE
0x02
Habilita el protocolo de enlace RTS. El controlador genera la línea RTS cuando el búfer de "escritura anticipada" (entrada) es menor que una mitad llena y reduce la línea RTS cuando el búfer está lleno de más de tres cuartos. Si el protocolo de enlace está habilitado, es un error para que la aplicación ajuste la línea mediante la función EscapeCommFunction .
RTS_CONTROL_TOGGLE
0x03
Especifica que la línea RTS será alta si hay bytes disponibles para la transmisión. Una vez enviados todos los bytes almacenados en búfer, la línea RTS será baja.

fAbortOnError

Si este miembro es TRUE, el controlador finaliza todas las operaciones de lectura y escritura con un estado de error si se produce un error. El controlador no aceptará ninguna otra operación de comunicación hasta que la aplicación haya confirmado el error mediante una llamada a la función ClearCommError .

fDummy2

Reservado; no usar.

wReserved

Reservados; debe ser cero.

XonLim

Número mínimo de bytes en uso permitido en el búfer de entrada antes de activar el control de flujo para permitir la transmisión por parte del remitente. Se supone que se especifica el control de flujo de entrada XON/XOFF, RTS o DTR en los miembros fInX, fRtsControl o fDtrControl .

XoffLim

El número mínimo de bytes libres permitidos en el búfer de entrada antes de activar el control de flujo para impedir al remitente. Tenga en cuenta que el remitente puede transmitir caracteres después de activar la señal de control de flujo, por lo que este valor nunca debe ser cero. Se supone que se especifica el control de flujo de entrada XON/XOFF, RTS o DTR en los miembros fInX, fRtsControl o fDtrControl . El número máximo de bytes en uso permitido se calcula restando este valor del tamaño, en bytes, del búfer de entrada.

ByteSize

Número de bits de los bytes transmitidos y recibidos.

Parity

Esquema de paridad que se va a usar. Este miembro puede ser uno de los valores siguientes.

Valor Significado
EVENPARITY
2
Paridad.
MARKPARITY
3
Marcar paridad.
NOPARITY
0
Sin paridad.
ODDPARITY
1
Paridad impar.
SPACEPARITY
4
Paridad del espacio.

StopBits

Número de bits de detención que se van a usar. Este miembro puede ser uno de los valores siguientes.

Valor Significado
ONESTOPBIT
0
1 bit de detención.
ONE5STOPBITS
1
1,5 bits de detención.
TWOSTOPBITS
2
2 bits de detención.

XonChar

Valor del carácter XON para la transmisión y la recepción.

XoffChar

Valor del carácter XOFF para transmisión y recepción.

ErrorChar

Valor del carácter utilizado para reemplazar los bytes recibidos por un error de paridad.

EofChar

Valor del carácter utilizado para indicar el final de los datos.

EvtChar

Valor del carácter utilizado para indicar un evento.

wReserved1

Reservado; no usar.

Comentarios

Cuando se usa una estructura DCB para configurar la versión 8250, se aplican las restricciones siguientes a los valores especificados para los miembros ByteSize y StopBits :

  • El número de bits de datos debe ser de 5 a 8 bits.
  • El uso de 5 bits de datos con 2 bits de detención es una combinación no válida, ya que es 6, 7 o 8 bits de datos con 1,5 bits de detención.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP
Servidor mínimo compatible Windows Server 2003
Encabezado winbase.h (incluye Windows.h)

Consulte también

BuildCommDCB

ClearCommError

EscapeCommFunction

GetCommState

SetCommState