⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dongle.h

📁 WinCE 3.0 BSP, 包含Inter SA1110, Intel_815E, Advantech_PCM9574 等
💻 H
字号:
/*++
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
Copyright (c) 1995-1998  Microsoft Corporation

Module Name:

    dongle.h

Abstract:

    This file implements the IrDA Serial IR NDIS MAC driver standard UART
    init, deinit and set speed functions as well as standard dongle 
    definitions and data types to control the dongles.  This is provided 
    as a sample to platform writers and is
    expected to be able to be used without modification on most (if not
    all) hardware platforms.

Functions:

    StdUartInit
    StdUardDeinit
    StdUartSetSpeed

Notes:


--*/

#ifndef _DONGLE_H_
#define _DONGLE_H_

//
// Dongles may have minor differences which require special treatment.
// We will get the dongle type from the registry so that we can support
// each dongle type. We create a dongle interface so that the driver
// really doesn't have to differentiate between dongles, except in the
// initialization code.
//

//
// IR_TRANSCEIVER_TYPE - Enumerates the types of known dongles.
//                       NUM_IR_TRANCEIVER_TYPES is the number of know 
//                       dongles.
//

typedef enum _IR_TRANSCEIVER_TYPE
{
    STANDARD_UART = 0,
    ESI_9680, 
    NUM_IR_TRANSCEIVER_TYPES
} IR_TRANSCEIVER_TYPE;

//
// IRDA speed masks.
//

#define NDIS_IRDA_SPEED_2400        (1 << 0) // Slow IR...
#define NDIS_IRDA_SPEED_9600        (1 << 1) 
#define NDIS_IRDA_SPEED_19200       (1 << 2) 
#define NDIS_IRDA_SPEED_38400       (1 << 3)
#define NDIS_IRDA_SPEED_57600       (1 << 4)
#define NDIS_IRDA_SPEED_115200      (1 << 5)
#define NDIS_IRDA_SPEED_576K        (1 << 6) // Medium IR...
#define NDIS_IRDA_SPEED_1152K       (1 << 7)
#define NDIS_IRDA_SPEED_4M          (1 << 8) // Fast IR...

#define ALL_SLOW_IRDA_SPEEDS ( NDIS_IRDA_SPEED_2400     | \
                               NDIS_IRDA_SPEED_9600     | \
                               NDIS_IRDA_SPEED_19200    | \
                               NDIS_IRDA_SPEED_38400    | \
                               NDIS_IRDA_SPEED_57600    | \
                               NDIS_IRDA_SPEED_115200   | \
                               NDIS_IRDA_SPEED_576K     | \
                               NDIS_IRDA_SPEED_1152K    | \
                               NDIS_IRDA_SPEED_4M         \
                               )

//
// BAUDRATES - Enumeration of baud rates to index into array.
//             NUM_BAUDRATES is the number of rates in the array.
//

typedef enum _BAUDRATES
{
    BAUDRATE_2400 = 0,
    BAUDRATE_9600,
    BAUDRATE_19200,
    BAUDRATE_38400,
    BAUDRATE_57600,
    BAUDRATE_115200,
    BAUDRATE_576K,
    BAUDRATE_1152K,
    BAUDRATE_4M,
    NUM_BAUDRATES
} BAUDRATES;

//
// BAUDRATE_INFO - Struct for array to maintain supported baud rates.
//

typedef struct _BAUDRATE_INFO
{
    DWORD dwBPS;
    DWORD dwSpeedMask;     // NDIS_IRDA_SPEED_Xxx mask.
    DWORD dwCommSpeedMask; // Speed mask from GetCommProperties.
#ifdef DEBUG
    TCHAR *lpszDbgSpeed;
#endif 
} BAUDRATE_INFO, *PBAUDRATE_INFO;

extern const BAUDRATE_INFO v_rgSupportedBaudRates[NUM_BAUDRATES];

//
// DONGLE_CAPS - Supported dongle capabilities.
//

typedef struct _DONGLE_CAPS
{
    // Speed mask. NDIS_IRDA_SPEED_*
    DWORD dwSpeedMask;

    // TAT in usec that must transpire between transmit and receive.
    DWORD dwTAT_usec;

    // Extra BOFs required at beginning of each frame.
    DWORD dwExtraBOFs;
} DONGLE_CAPS, *PDONGLE_CAPS;

//
// IRSIR_INIT_HANDLER     - Function prototype for dongle init interface.
// IRSIR_DEINIT_HANDLER   - Function prototype for dongle deinit interface.
// IRSIR_SETSPEED_HANDLER - Function prototype for dongle setspeed interface.
//

typedef 
NDIS_STATUS (*IRSIR_INIT_HANDLER)(
    IN HANDLE hSerialDevObj
    );

typedef 
NDIS_STATUS (*IRSIR_DEINIT_HANDLER)(
    IN HANDLE hSerialDevObj
    );

typedef 
NDIS_STATUS (*IRSIR_SETSPEED_HANDLER)(
    IN     HANDLE  hSerialDevObj,
    IN OUT DCB    *pDcb,
    IN     DWORD   dwNewSpeed
    );

typedef 
NDIS_STATUS (*IRSIR_GETCAPS_HANDLER)(
    OUT PDONGLE_CAPS pDongleCaps
    );

//
// DONGLE_INTERFACE - Encapsulates all dongle interface functions.
//

typedef struct _DONGLE_INTERFACE
{
    IRSIR_INIT_HANDLER      Initialize;
    IRSIR_SETSPEED_HANDLER  SetSpeed;
    IRSIR_GETCAPS_HANDLER   GetCaps;
    IRSIR_DEINIT_HANDLER    Deinitialize;
} DONGLE_INTERFACE, *PDONGLE_INTERFACE;


#endif // _DONGLE_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -