Structure DCB (winbase.h)

Définit le paramètre de contrôle pour un appareil de communication série.

Syntaxe

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;

Membres

DCBlength

Longueur de la structure, en octets. L’appelant doit définir ce membre sur sizeof(DCB).

BaudRate

Débit en bauds auquel l’appareil de communication fonctionne. Ce membre peut être une valeur de débit de bauds réelle ou l’un des index suivants.

Valeur Signification
CBR_110
110
110 points de base
CBR_300
300
300 bps
CBR_600
600
600 bps
CBR_1200
1200
1200 points de base
CBR_2400
2 400
2400 bps
CBR_4800
4 800
4800 bps
CBR_9600
9 600
9600 bps
CBR_14400
14400
14400 bps
CBR_19200
19 200
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 ce membre a la valeur TRUE, le mode binaire est activé. Windows ne prend pas en charge les transferts en mode non-binaire. Ce membre doit donc avoir la valeur TRUE.

fParity

Si ce membre a la valeur TRUE, la vérification de la parité est effectuée et les erreurs sont signalées.

fOutxCtsFlow

Si ce membre a la valeur TRUE, le signal CTS (clear-to-send) est surveillé pour le contrôle du flux de sortie. Si ce membre a la valeur TRUE et que CTS est désactivé, la sortie est suspendue jusqu’à ce que CTS soit à nouveau envoyée.

fOutxDsrFlow

Si ce membre a la valeur TRUE, le signal DSR (data set-ready) est surveillé pour le contrôle du flux de sortie. Si ce membre a la valeur TRUE et que DSR est désactivé, la sortie est suspendue jusqu’à ce que DSR soit à nouveau envoyée.

fDtrControl

Contrôle de flux DTR (data-terminal-ready). Ce membre peut être l’une des valeurs suivantes.

Valeur Signification
DTR_CONTROL_DISABLE
0x00
Désactive la ligne DTR lorsque l’appareil est ouvert et le laisse désactivé.
DTR_CONTROL_ENABLE
0x01
Active la ligne DTR lorsque l’appareil est ouvert et le laisse activé.
DTR_CONTROL_HANDSHAKE
0x02
Active la négociation DTR. Si la négociation est activée, l’application a dû ajuster la ligne à l’aide de la fonction EscapeCommFunction .

fDsrSensitivity

Si ce membre a la valeur TRUE, le pilote de communication est sensible à l’état du signal DSR. Le pilote ignore tous les octets reçus, sauf si la ligne d’entrée du modem DSR est élevée.

fTXContinueOnXoff

Si ce membre a la valeur TRUE, la transmission se poursuit une fois que la mémoire tampon d’entrée a été remplie en octets XoffLim et que le pilote a transmis le caractère XoffChar pour arrêter de recevoir des octets. Si ce membre a la valeur FALSE, la transmission ne se poursuit pas tant que la mémoire tampon d’entrée n’est pas vide et que le pilote n’a pas transmis le caractère XonChar pour reprendre la réception.

fOutX

Indique si le contrôle de flux XON/XOFF est utilisé pendant la transmission. Si ce membre a la valeur TRUE, la transmission s’arrête lorsque le caractère XoffChar est reçu et redémarre lorsque le caractère XonChar est reçu.

fInX

Indique si le contrôle de flux XON/XOFF est utilisé pendant la réception. Si ce membre a la valeur TRUE, le caractère XoffChar est envoyé lorsque la mémoire tampon d’entrée est en octets XoffLim d’être pleine, et le caractère XonChar est envoyé lorsque la mémoire tampon d’entrée se trouve dans les octets XonLim d’être vide.

fErrorChar

Indique si les octets reçus avec des erreurs de parité sont remplacés par le caractère spécifié par le membre ErrorChar . Si ce membre a la valeur TRUE et que le membre fParity a la valeur TRUE, le remplacement se produit.

fNull

Si ce membre a la valeur TRUE, les octets null sont ignorés lorsqu’ils sont reçus.

fRtsControl

Contrôle de flux RTS (request-to-send). Ce membre peut être l’une des valeurs suivantes.

Valeur Signification
RTS_CONTROL_DISABLE
0x00
Désactive la ligne RTS lorsque l’appareil est ouvert et le laisse désactivé.
RTS_CONTROL_ENABLE
0x01
Active la ligne RTS lorsque l’appareil est ouvert et le laisse activé.
RTS_CONTROL_HANDSHAKE
0x02
Active la négociation RTS. Le pilote lève la ligne RTS lorsque la mémoire tampon « type-ahead » (entrée) est inférieure à la moitié de la quantité et abaisse la ligne RTS lorsque la mémoire tampon est saturée de plus de trois quarts. Si l’établissement d’une liaison est activé, l’application peut ajuster la ligne à l’aide de la fonction EscapeCommFunction .
RTS_CONTROL_TOGGLE
0x03
Spécifie que la ligne RTS sera élevée si des octets sont disponibles pour la transmission. Une fois que tous les octets mis en mémoire tampon ont été envoyés, la ligne RTS est faible.

fAbortOnError

Si ce membre a la valeur TRUE, le pilote met fin à toutes les opérations de lecture et d’écriture avec une erreur status si une erreur se produit. Le pilote n’accepte pas d’autres opérations de communication tant que l’application n’a pas reconnu l’erreur en appelant la fonction ClearCommError .

fDummy2

Réservé ; ne pas utiliser.

wReserved

Réservés au; doit être égal à zéro.

XonLim

Nombre minimal d’octets utilisés autorisé dans la mémoire tampon d’entrée avant l’activation du contrôle de flux pour autoriser la transmission par l’expéditeur. Cela suppose que le contrôle de flux d’entrée XON/XOFF, RTS ou DTR est spécifié dans les membres fInX, fRtsControl ou fDtrControl .

XoffLim

Nombre minimal d’octets libres autorisés dans la mémoire tampon d’entrée avant l’activation du contrôle de flux pour inhiber l’expéditeur. Notez que l’expéditeur peut transmettre des caractères après l’activation du signal de contrôle de flux. Cette valeur ne doit donc jamais être égale à zéro. Cela suppose que le contrôle de flux d’entrée XON/XOFF, RTS ou DTR est spécifié dans les membres fInX, fRtsControl ou fDtrControl . Le nombre maximal d’octets en utilisation autorisé est calculé en soustrayant cette valeur de la taille, en octets, de la mémoire tampon d’entrée.

ByteSize

Nombre de bits dans les octets transmis et reçus.

Parity

Schéma de parité à utiliser. Ce membre peut être l’une des valeurs suivantes.

Valeur Signification
EVENPARITY
2
Même la parité.
MARKPARITY
3
Marquer la parité.
NOPARITY
0
Pas de parité.
ODDPARITY
1
Parité impaire.
SPACEPARITY
4
Parité spatiale.

StopBits

Nombre de bits d’arrêt à utiliser. Ce membre peut être l’une des valeurs suivantes.

Valeur Signification
ONESTOPBIT
0
1 bit d’arrêt.
ONE5STOPBITS
1
1,5 bits d’arrêt.
TWOSTOPBITS
2
2 bits d’arrêt.

XonChar

Valeur du caractère XON pour la transmission et la réception.

XoffChar

Valeur du caractère XOFF pour la transmission et la réception.

ErrorChar

Valeur du caractère utilisé pour remplacer les octets reçus par une erreur de parité.

EofChar

Valeur du caractère utilisé pour signaler la fin des données.

EvtChar

Valeur du caractère utilisé pour signaler un événement.

wReserved1

Réservé ; ne pas utiliser.

Remarques

Lorsqu’une structure DCB est utilisée pour configurer le 8250, les restrictions suivantes s’appliquent aux valeurs spécifiées pour les membres ByteSize et StopBits :

  • Le nombre de bits de données doit être compris entre 5 et 8 bits.
  • L’utilisation de 5 bits de données avec 2 bits d’arrêt n’est pas une combinaison non valide, tout comme 6, 7 ou 8 bits de données avec 1,5 bits d’arrêt.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP
Serveur minimal pris en charge Windows Server 2003
En-tête winbase.h (inclure Windows.h)

Voir aussi

BuildCommDCB

ClearCommError

EscapeCommFunction

GetCommState

SetCommState