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

📄 irdahw.h

📁 收集到的orion_ep93xx_wince_bsp_1-3-507红外收发驱动源码,未作测试
💻 H
字号:
//**********************************************************************
//                                                                      
// Filename: irdahw.h
//                                                                      
// Description: contains the IRDA hardware class.
//
// 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) Cirrus Logic Corporation 2001, All Rights Reserved                       
//                                                                      
//**********************************************************************

#ifndef _H_IRDAHW
#define _H_IRDAHW

enum  IRDA_MODE
{
        MODE_SIR,
        MODE_MIR,
        MODE_FIR
};

//
// 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;

typedef   struct BAUDRATE_INFO * PBAUDRATE_INFO;
extern const BAUDRATE_INFO v_rgSupportedBaudRates[];

class IRMiniport;

void CompleteSentPacket
(
    PNDIS_PACKET    pNdisPacket,
    NDIS_HANDLE     hNdisAdapter,
    NDIS_STATUS     status
);


class IrdaHW
{
    public:
        IrdaHW();
        ~IrdaHW();
        
        //
        // Function to Initialize the IRDA Hardware.
        //
        NDIS_STATUS     InitializeIrdaHW();
        
        //
        // Reset HW.
        //
        NDIS_STATUS     ResetHW();
        
        //
        // Functions to Get and set the baud rate.
        //
        NDIS_STATUS     SetHWBaudRate( ULONG ulBaudRate);
        NDIS_STATUS     BaudRateSupported(ULONG ulBaudRate);
        ULONG           GetCurrentBaudRate()    { return m_ulBaudRate; }
        
        //
        // Set Iir to Recieve or transmit.  Only used for MIR or FIR.
        //
        void            IirTransmit( );
        void            IirRecieve( );
        void            IirSuspend();
        
        //
        // Get the current IRDA mode.
        //
        IRDA_MODE       GetIRDAMode() { return (eIrdaMode);}
        
        //
        // Function to Return stats.
        //
        ULONG           RxPackets()         { return m_SirState.PacketsRecieved();}
        ULONG           RxPacketsDropped()  { return m_SirState.PacketsDropped(); }
        ULONG           RxPacketsOverflowed() { return m_SirState.PacketsOverflowed(); }
        ULONG           TxPackets()         { return m_ulPacketsTx; }
        ULONG           TxPacketsDropped()  { return m_ulPacketsTxDropped;}
        void            ClearStatistics();   
        
        //
        // Is a packet currently being sent
        //
        //BOOL            MiddleOfSentPacket(){return(m_pCurrentSentNDisPacket?TRUE:FALSE) ;}
        
        
        //
        // Interrupt Handler.  
        //
        friend DWORD WINAPI SIRInterruptHandler(LPVOID Handle);
        
    protected:
    
        //
        // Information about the current NDIS packet being sent.
        //
        PNDIS_PACKET        m_pSIRTransmitNDisPacket;
        UCHAR *             m_pSendBuf;              
        ULONG               m_ulSendCurPos;
        ULONG               m_ulSendBufSize;


        //
        // Since all of the members are private, this is somewhat safe.
        //
        ReceivedSirState    m_SirState;
          
        //
        // Current mode.
        //
        IRDA_MODE           eIrdaMode;
                
        //
        // Sir interrupt thread and events.
        //      
        HANDLE              m_hSirEvent;
        HANDLE              m_hSirInterruptThread;
        
        //
        // Current Baud rate.
        //
        ULONG               m_ulBaudRate;
        
        //
        // This class holds the SIR recieve state machine.
        //
        BOOL                m_bSirExiting;
        
        //
        // This flags when set tells us to add bofs.
        // A change from receiving to sending packets has occured.
        //
        BOOL                m_fMinTATRequired;
        
        //
        // Packets Stats.
        //        
        ULONG               m_ulPacketsTxDropped;
        ULONG               m_ulPacketsTx;
       
};




#endif // _H_IRDAHW

⌨️ 快捷键说明

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