The ASYNC_SETBAUDRATE function sets the bit rate of a communications port.

The following code fragment sets the bit rate of COM1 to 9600 bits per second:

    #define INCL_DOSFILEMGR    /* File System values */
    #define INCL_DOSDEVIOCTL   /* DosDevIOCtl values */
    #include <os2.h>

    HFILE   hf;                /* File handle for the device           */
    USHORT  usBPS = 9600;      /* Bit rate to set the COM port to      */
    ULONG   ulParmLen = 2;     /* Maximum size of the parameter packet */
    ULONG   ulAction;          /* Action taken by DosOpen              */
    APIRET  ulrc;              /* Return code                          */

    ulrc = DosOpen("COM1",
                   &hf,
                   &ulAction,
                   0,
                   FILE_NORMAL,
                   FILE_OPEN,
                   OPEN_ACCESS_READWRITE |
                   OPEN_SHARE_DENYNONE,
                   (PEAOP2) NULL);

    ulrc = DosDevIOCtl(hf,                /* Device handle                  */
                       IOCTL_ASYNC,       /* Serial-device control          */
                       ASYNC_SETBAUDRATE, /* Sets bit rate                  */
                       (PULONG) &usBPS,   /* Points at bit rate             */
                       sizeof(usBPS),     /* Maximum size of parameter list */
                       &ulParmLen,        /* Size of parameter packet       */
                       NULL,              /* No data packet                 */
                       0,                 /* Maximum size of data packet    */
                       NULL);             /* Size of data packet            */
    .
    .   /* Use the COM port here. */
    .

    ulrc = DosClose(hf);


[Back] [Next]