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

📄 sirstate.h

📁 收集到的orion_ep93xx_wince_bsp_1-3-507红外收发驱动源码,未作测试
💻 H
字号:
//**********************************************************************
//                                                                      
// Filename: sirstate.h 
//                                                                      
// Description: Header file for the set state function.
//
// 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_SIRSTATE
#define _H_SIRSTATE


// 
// States for the SIR recieve state machine.
//

enum RX_PROCESS_STATE
{
    RX_STATE_READY = 0,
    RX_STATE_BOF,
    RX_STATE_IN_ESC,
    RX_STATE_RX,
    RX_STATE_SHUTDOWN
};


//
// State machine for SIR recieve.
//
class ReceivedSirState
{
    public:
        ReceivedSirState(): m_bPacketAvaliable(0), 
                            m_pucBuffer(0),
                            m_pucCurrent(0),
                            m_pucEnd(0),
                            m_eRxState(RX_STATE_READY),
                            m_ulPacketsRxOverflow(0),
                            m_ulPacketsRxDropped(0),
                            m_ulPacketsRx(0),
                            m_ulPacketSize(0)
        {
        }                            

        void            ProcessByte( unsigned char uc);
        void            SetNextBuffer(PRX_BUFFER  pRxBuf);
        int             PacketAvailable() { return m_bPacketAvaliable; }
        ULONG           GetPacketSize()   { return m_ulPacketSize;     }
        ULONG           PacketsRecieved() { return m_ulPacketsRx;      }
        ULONG           PacketsDropped()  { return m_ulPacketsRxDropped; }
        ULONG           PacketsOverflowed()  { return m_ulPacketsRxOverflow; }
        
        void            ClearStats()
        {
            m_ulPacketsRxOverflow   = 0;
            m_ulPacketsRxDropped    = 0;
            m_ulPacketsRx           = 0;
        }

    private:
        BOOL                m_bPacketAvaliable;
        PUCHAR              m_pucBuffer;
        PUCHAR              m_pucCurrent;
        PUCHAR              m_pucEnd;
        RX_PROCESS_STATE    m_eRxState;
        PRX_BUFFER          m_pRxBuf;
        ULONG               m_ulPacketsRxOverflow;
        ULONG               m_ulPacketsRxDropped;
        ULONG               m_ulPacketSize;
        ULONG               m_ulPacketsRx;
};


#endif // _H_SIRSTATE

⌨️ 快捷键说明

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