亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rfid_reader_mac.hpp

?? RFID reader 語 tag 模擬器
?? HPP
字號:
 #ifndef RFID_READER_MAC_H #define RFID_READER_MAC_H #include <vector> using namespace std; #include <boost/shared_ptr.hpp> #include "simulator.hpp" #include "mac_protocol.hpp" #include "packet.hpp" class RfidTagMacData; typedef boost::shared_ptr<RfidTagMacData> RfidTagMacDataPtr; class RfidReaderApp; typedef boost::shared_ptr<RfidReaderApp> RfidReaderAppPtr; // PacketData Subclass class RfidReaderMacData : public PacketData { friend ostream& operator<< (ostream& s, const RfidReaderMacData& data); public:    typedef boost::shared_ptr<RfidReaderMacData> RfidReaderMacDataPtr;    enum Types {       Types_Generic,       Types_Request,       Types_Ack,       Types_Select    };    static inline RfidReaderMacDataPtr create();    static inline RfidReaderMacDataPtr create(       const RfidReaderMacData& rhs);    virtual inline t_uint getSizeInBytes() const;    void setSenderId(const NodeId& nodeId);    NodeId getSenderId() const;    void setReceiverId(const NodeId& nodeId);    NodeId getReceiverId() const;    inline void setType(Types type);    inline Types getType() const;    inline void setNumberOfSlots(t_uchar numberOfSlots);    inline t_uchar getNumberOfSlots() const;    inline ostream& print(ostream& s) const; protected:    RfidReaderMacData();    RfidReaderMacData(const RfidReaderMacData& rhs);    virtual PacketDataPtr clone() const; private:    static const t_uint m_senderIdBytes = 4;    static const t_uint m_receiverIdBytes = 12;    static const t_uint m_typeBytes = 1;    static const t_uint m_numberOfSlotsBytes = 1;    t_uchar m_senderId[m_senderIdBytes];    t_uchar m_receiverId[m_receiverIdBytes];    t_uchar m_numberOfSlots;    Types m_type; }; typedef boost::shared_ptr<RfidReaderMacData> RfidReaderMacDataPtr; // RfidReaderMac Class class RfidReaderMac : public SlottedMac { friend class RfidMacCycleEvent; public:    typedef boost::shared_ptr<RfidReaderMac> RfidReaderMacPtr;    virtual ~RfidReaderMac();    static inline RfidReaderMacPtr create(NodePtr node,       RfidReaderAppPtr readerApp);    virtual inline RfidReaderMacPtr thisRfidReaderMac();    virtual inline SlottedMacPtr thisSlottedMac();    virtual inline MacProtocolPtr thisMacProtocol();    virtual inline SimulationEndListenerPtr thisSimulationEndListener();    virtual void simulationEndHandler();    bool handleRecvdMacPacket(PacketPtr packet, t_uint sendingLayerIdx);    bool handleRecvdUpperLayerPacket(PacketPtr packet,       t_uint sendingLayerIdx);    virtual void handleChannelBusy(PacketPtr packet);    virtual void handlePacketSent(PacketPtr packet); protected:    static const double m_READER_IFS;    static const t_uint m_DEFAULT_NUMBER_OF_SLOTS;    static const double m_DEFAULT_CYCLE_TIME;    static const t_uint m_MISSED_READ_THRESHOLD;    static const string m_MISSED_READ_TOTAL_STRING;    static const string m_MISSED_READ_SLOT_AVG_STRING;    static const string m_WINNING_SLOT_AVG_STRING;    bool m_doResetSlot;    t_uint m_resetSlotNumber;    bool m_doEntireReadCycle;    t_uint m_missedReadCount;    TimerPtr m_cycleTimer;    PacketPtr m_currentAppReadPacket;    t_uint m_nextCycleNumberOfSlots;    SimTime m_nextCycleTime;    RfidReaderAppPtr m_readerApp;    vector<pair<NodeId,t_uint> > m_winningSlotNumbers;    vector<t_uint> m_missedReads;    RfidReaderMac(NodePtr node, RfidReaderAppPtr readerApp);    virtual void beginSlotEvent();    virtual void endRequestCycleEvent();    PacketPtr createRequestPacket() const;    PacketPtr createAckPacket(NodeId destination) const;    void addGenericHeader(PacketPtr packet, NodeId receiverId) const;    void addSelectHeader(PacketPtr packet, NodeId receiverId) const;    bool packetIsForMe(RfidTagMacDataPtr macData) const;    bool isEnoughTimeForContentionCycle() const;    void startNextContentionCycle();    bool isPacketType(PacketPtr packet,       RfidReaderMacData::Types type) const; private:    static const bool m_DEBUG = true;    static const bool m_DEBUG_CONTENTION_CYCLE_TIME = false;    boost::weak_ptr<RfidReaderMac> m_weakThis; }; typedef boost::shared_ptr<RfidReaderMac> RfidReaderMacPtr; // Event Subclasses class RfidMacCycleEvent : public Event { public:    typedef boost::shared_ptr<RfidMacCycleEvent>       RfidMacCycleEventPtr;    static inline RfidMacCycleEventPtr create(       RfidReaderMacPtr rfidReaderMac)    {       RfidMacCycleEventPtr p(          new RfidMacCycleEvent(rfidReaderMac));       return p;    }    void execute()    {       m_rfidReaderMac->endRequestCycleEvent();    } protected:    RfidMacCycleEvent(RfidReaderMacPtr rfidReaderMac)       : Event()    {       m_rfidReaderMac = rfidReaderMac;    } private:    RfidReaderMacPtr m_rfidReaderMac; }; typedef boost::shared_ptr<RfidMacCycleEvent>    RfidMacCycleEventPtr; // Back to RfidReaderMac // Inline Functions inline RfidReaderMacPtr RfidReaderMac::create(NodePtr node,    RfidReaderAppPtr readerApp) {    RfidReaderMacPtr p(new RfidReaderMac(node, readerApp));    // weakThis *must* be set before the this* functions are called.    p->m_weakThis = p;    SlottedMacSlotEventPtr slotEvent =       SlottedMacSlotEvent::create(p->thisSlottedMac());    p->m_slotTimer = Timer::create(p->getNode(), slotEvent);    p->m_slotTimer->start(SimTime(0.0));    RfidMacCycleEventPtr cycleEvent =       RfidMacCycleEvent::create(p->thisRfidReaderMac());    p->m_cycleTimer = Timer::create(p->getNode(), cycleEvent);    Simulator::instance()->addSimulationEndListener(       p->thisSimulationEndListener());    return p; } inline RfidReaderMacPtr RfidReaderMac::thisRfidReaderMac() {    RfidReaderMacPtr p(m_weakThis);    return p; } inline SlottedMacPtr RfidReaderMac::thisSlottedMac() {    SlottedMacPtr p(m_weakThis);    return p; } inline MacProtocolPtr RfidReaderMac::thisMacProtocol() {    MacProtocolPtr p(m_weakThis);    return p; } inline SimulationEndListenerPtr RfidReaderMac::thisSimulationEndListener() {    SimulationEndListenerPtr p(m_weakThis);    return p; } // Overloaded Operators // RfidReaderMacData Inline Functions inline RfidReaderMacDataPtr RfidReaderMacData::create() {    RfidReaderMacDataPtr p(new RfidReaderMacData());    return p; } inline RfidReaderMacDataPtr RfidReaderMacData::create(    const RfidReaderMacData& rhs) {    RfidReaderMacDataPtr p =       boost::dynamic_pointer_cast<RfidReaderMacData>(rhs.clone());    // If the shared_ptr is empty, then the cast failed.    assert(p.get() != 0);    return p; } inline t_uint RfidReaderMacData::getSizeInBytes() const {    t_uint byteCount = (m_senderIdBytes + m_receiverIdBytes + m_typeBytes);    switch(getType()) {    case Types_Request:       byteCount += m_numberOfSlotsBytes;       break;    default:       break;    }    return byteCount; } inline void RfidReaderMacData::setType(RfidReaderMacData::Types type) {    m_type = type; } inline RfidReaderMacData::Types RfidReaderMacData::getType() const {    return m_type; } inline void RfidReaderMacData::setNumberOfSlots(t_uchar numberOfSlots) {    m_numberOfSlots = numberOfSlots; } inline t_uchar RfidReaderMacData::getNumberOfSlots() const {    return m_numberOfSlots; } // Overloaded Operators inline ostream& operator<< (ostream& s,       const RfidReaderMacData::Types& dataType) {    switch(dataType) {    case RfidReaderMacData::Types_Generic:       s << "GENERIC";       break;    case RfidReaderMacData::Types_Request:       s << "REQUEST";       break;    case RfidReaderMacData::Types_Ack:       s << "ACK";       break;    case RfidReaderMacData::Types_Select:       s << "SELECT";       break;    }    return s; } inline ostream& RfidReaderMacData::print(ostream& s) const {    s << "type=" << m_type << ", " <<       "senderId=" <<       NodeId(m_senderId, m_senderIdBytes) << ", " <<       "receiverId=" <<       NodeId(m_receiverId, m_receiverIdBytes) << ", " <<       "numberOfSlots=" << static_cast<t_uint>(m_numberOfSlots);    return s; } #endif // RFID_READER_MAC_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲h动漫在线| xnxx国产精品| 一区二区三区中文在线观看| 成人av网址在线| 国产精品剧情在线亚洲| 99久久99久久久精品齐齐| 一区二区在线观看视频| 欧美日韩精品一区二区天天拍小说| 亚洲已满18点击进入久久| 欧美精品国产精品| 黄网站免费久久| 中文字幕日本乱码精品影院| 91国偷自产一区二区开放时间 | 精品久久久久久无| 国产成人日日夜夜| 亚洲欧美另类图片小说| 欧美影视一区在线| 精品一区二区三区视频在线观看| 久久嫩草精品久久久久| 91麻豆国产福利精品| 婷婷中文字幕综合| 国产午夜亚洲精品羞羞网站| 色哟哟精品一区| 免费成人在线播放| 中文字幕在线观看一区| 在线播放国产精品二区一二区四区| 日本中文在线一区| 国产精品国产a| 欧美一区二区三区小说| av中文字幕在线不卡| 日本不卡一二三区黄网| 中文字幕一区二区三| 91精品国产91热久久久做人人| 国产69精品久久久久毛片| 亚洲电影一区二区三区| 国产日韩欧美亚洲| 欧美精品在线视频| 成人av网站在线| 精品无人区卡一卡二卡三乱码免费卡 | 激情国产一区二区| 亚洲乱码国产乱码精品精的特点 | 久久久午夜精品理论片中文字幕| 97aⅴ精品视频一二三区| 精品一区二区免费看| 亚洲一区二区av电影| 亚洲国产精品二十页| 91麻豆精品91久久久久久清纯| 99综合影院在线| 激情久久五月天| 三级在线观看一区二区| 亚洲乱码中文字幕| 国产精品欧美久久久久一区二区 | 久久婷婷国产综合国色天香| 欧美午夜精品免费| 99久久久久久99| 国产不卡视频在线观看| 久久国产乱子精品免费女| 亚洲国产日产av| 亚洲精品视频自拍| 国产精品萝li| 国产日韩精品一区二区三区| 欧美一区二区福利在线| 欧美日韩国产美女| 欧美性高清videossexo| 91影视在线播放| 99久久精品免费观看| 成人激情黄色小说| 国产成人精品免费网站| 国产在线不卡视频| 精彩视频一区二区| 精品午夜一区二区三区在线观看| 麻豆国产精品777777在线| 免费观看日韩电影| 秋霞电影网一区二区| 婷婷成人综合网| 婷婷成人激情在线网| 日日摸夜夜添夜夜添精品视频| 亚洲一区二区三区四区五区黄| 亚洲一二三区不卡| 午夜精品在线看| 日韩激情在线观看| 精油按摩中文字幕久久| 国产一区在线观看麻豆| 国产福利一区二区三区视频在线| 国产激情视频一区二区在线观看| 狠狠网亚洲精品| 麻豆国产欧美日韩综合精品二区| 精品一区二区久久| 国产成人综合网| 成人av网站免费| 欧美午夜精品免费| 日韩免费一区二区三区在线播放| 欧美电视剧在线看免费| 久久久久国色av免费看影院| 亚洲国产岛国毛片在线| 亚洲婷婷综合色高清在线| 一区二区三区不卡视频在线观看 | 日本大胆欧美人术艺术动态 | 国产一区二区三区在线观看免费 | 国内成人免费视频| 成人美女视频在线观看18| 国产精华液一区二区三区| 成人午夜视频网站| 欧美综合一区二区三区| 9191成人精品久久| 久久精品视频在线免费观看| 国产精品美女一区二区| 亚洲精品国产视频| 日欧美一区二区| 国产高清一区日本| 在线视频一区二区三区| 日韩免费高清电影| 国产精品人成在线观看免费 | 精品国产乱码久久久久久图片| 欧美国产视频在线| 天堂av在线一区| 国产a久久麻豆| 精品污污网站免费看| 久久一区二区三区国产精品| 自拍偷拍国产亚洲| 欧美96一区二区免费视频| 成人免费视频视频在线观看免费| 欧美丝袜丝交足nylons图片| 久久久久久电影| 日韩一区欧美二区| 国产98色在线|日韩| 91.xcao| 亚洲欧洲日韩综合一区二区| 日本sm残虐另类| 91亚洲国产成人精品一区二区三 | 性久久久久久久| 成人一区在线观看| 91精品国产麻豆国产自产在线| 国产精品日韩成人| 久久精品国产99国产| 日本精品一区二区三区高清 | 亚洲国产另类av| 成人永久免费视频| 精品国产亚洲在线| 五月激情综合色| 色综合欧美在线视频区| 国产亚洲一区二区三区四区 | 亚洲a一区二区| 成人动漫av在线| 欧美精品一区二区三区蜜臀| 性久久久久久久| 欧美亚洲国产一区二区三区| 国产精品久久久久久亚洲伦 | 欧美va在线播放| 婷婷丁香激情综合| 欧美午夜精品一区二区蜜桃| 亚洲视频你懂的| 国产大陆亚洲精品国产| 精品久久五月天| 麻豆精品视频在线观看视频| 欧美日本乱大交xxxxx| 伊人开心综合网| 日本韩国欧美在线| 亚洲美女淫视频| 91无套直看片红桃| 亚洲欧洲国产专区| 成人app在线观看| 国产精品国产自产拍在线| 国产999精品久久久久久绿帽| 久久久综合视频| 国产剧情av麻豆香蕉精品| 久久久久久夜精品精品免费| 狠狠色丁香婷婷综合| 欧美xxxx在线观看| 精品一区二区在线看| 精品国产99国产精品| 精久久久久久久久久久| 国产亚洲精久久久久久| 国产激情视频一区二区在线观看| 国产亚洲欧美一级| 国产成人综合网| 最新国产の精品合集bt伙计| 色综合久久九月婷婷色综合| 一区二区三区在线观看视频| 欧美伊人精品成人久久综合97| 亚洲二区在线视频| 欧美一级在线观看| 激情图片小说一区| 国产精品三级av| 日本乱码高清不卡字幕| 日韩成人一区二区三区在线观看| 精品国产三级电影在线观看| 国产精品一品视频| 亚洲视频在线观看三级| 欧美午夜片在线观看| 久久爱另类一区二区小说| 久久精品视频免费| 91碰在线视频| 日韩极品在线观看| 久久色在线视频| 成人一区在线观看| 午夜视频一区在线观看| 精品国产一区二区三区久久久蜜月 | 欧美mv日韩mv国产| 国产suv精品一区二区6|