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

📄 llserial.h

📁 dm642网络传输程序
💻 H
字号:
//
// llserial.h
//
// Useful equates for a serial driver
//

//
// Pre-Pad Packet Data Offset
//
// The TCP/IP stack library requires that every packet device
// include enough L2 header room for all supported headers. In
// order to support PPPoE, this requires a 22 byte L2 header.
// Thus, since standard PPP is only 4 bytes, we must add
// on an additional 18 byte offset, or PPPoE can not function
// with our driver.
//
#define PKT_PREPAD          18

// Local character mode buffering
#define CHAR_MAX            256
#define RX_MAX              1506

//
// Packet device information
//
typedef struct _sdinfo {
    uint            PhysIdx;        // Physical index of this device (0 to n-1)
    uint            Open;           // Open counter used by llSerial
    HANDLE          hHDLC;          // Handle to logical driver (NULL when closed)
    STKEVENT_Handle hEvent;         // Handle to scheduler event object
    UINT32          PeerMap;        // 32 bit character escape map (for HDLC)
    uint            Ticks;          // Track timer ticks
    uint            Baud;           // Baud rate
    uint            Mode;           // Data bits, stop bits, parity
    uint            FlowCtrl;       // Flow Control Mode
    uint            TxFree;         // Transmitter "free" flag
    PBMQ            PBMQ_tx;        // Tx queue (one for each SER device)
    PBMQ            PBMQ_rx;        // Rx queue (one for each SER device)

    PBM_Handle      hRxPend;        // Packet being rx'd
    UINT8           *pRxBuf;        // Pointer to write next char
    uint            RxCount;        // Number of bytes received
    UINT16          RxCRC;          // Receive CRC
    UINT8           RxFlag;         // Flag to "un-escape" character

    PBM_Handle      hTxPend;        // Packet being tx'd
    UINT8           *pTxBuf;        // Pointer to next char to send
    uint            TxCount;        // Number of bytes left to send
    UINT16          TxCRC;          // Transmit CRC
    UINT8           TxFlag;         // Flag to insert character
    UINT8           TxChar;         // Insert character

    void (*cbRx)(char);             // Charmode callback (when open)
    void (*cbTimer)(HANDLE h);        // HDLC Timer callback (when open)
    void (*cbInput)(PBM_Handle hPkt); // HDLC Input callback (when open)
    uint            CharReadIdx;    // Charmode read index
    uint            CharWriteIdx;   // Charmode write index
    uint            CharCount;      // Number of charmode bytes waiting
    UINT8           CharBuf[CHAR_MAX]; // Character mode recv data buffer
} SDINFO;

//
// Functions Provided by Hw specific code
//
extern uint HwSerInit();
extern void HwSerShutdown();
extern uint HwSerOpen( SDINFO *pi );
extern void HwSerClose( SDINFO *pi );
extern void HwSerTxNext( SDINFO *pi );
extern void HwSerSetConfig( SDINFO *pi );
extern void _HwSerPoll( SDINFO *pi,uint fTimerTick );

⌨️ 快捷键说明

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