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

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

?? physical_layer.hpp

?? RFID reader 語 tag 模擬器
?? HPP
字號:
 #ifndef PHYSICAL_LAYER_H #define PHYSICAL_LAYER_H #include <map> #include <boost/shared_ptr.hpp> #include "utility.hpp" #include "communication_layer.hpp" #include "wireless_comm_signal.hpp" #include "wireless_channel_manager.hpp" #include "log_stream_manager.hpp" #include "node.hpp" #include "timer.hpp" typedef map<WirelessCommSignalPtr,double> SignalStrengthMap; class PhysicalLayer : public CommunicationLayer { friend class SignalRecvEvent; public:    typedef boost::shared_ptr<PhysicalLayer> PhysicalLayerPtr;    virtual ~PhysicalLayer();    virtual PhysicalLayerPtr thisPhysicalLayer() = 0;    inline void setWirelessChannelManager(       WirelessChannelManagerPtr wirelessChannelManager);    bool recvPendingSignal(WirelessCommSignalPtr signal,       double recvdSignalStrength);    virtual bool sendSignal(WirelessCommSignalPtr signal);    bool isTransmitting() const;    inline void setSignalSendingDelay(SimTime signalSendingDelay);    inline SimTime getSignalSendingDelay() const;    bool recvFromLayer(CommunicationLayer::Directions direction,       PacketPtr packet, t_uint sendingLayerIdx);    Location getLocation() const;    void addSignal(WirelessCommSignalPtr signal,       double signalStrength);    void removeSignal(WirelessCommSignalPtr signal);    bool pendingSignalIsWeak();    bool captureSignal(double signalStrength) const;    double getCulmulativeSignalStrength() const;    inline double getNoiseFloor() const;    void setPendingSignal(WirelessCommSignalPtr signal);    inline void setPendingSignalError(bool hasError);    inline bool getPendingSignalError() const;    ConstWirelessCommSignalPtr getPendingSignal() const;    double getPendingSignalStrength();    double getPendingSignalSinr();    void resetPendingSignal();    void resetRecvSignals();    bool channelCarrierSensedBusy() const;    inline void setCurrentTxPower(double txPower);    inline double getCurrentTxPower() const;    inline double getMaxTxPower() const;    inline void setRxThreshold(double rxThreshold);    inline double getRxThreshold() const;    inline void setCsThreshold(double csThreshold);    inline double getCsThreshold() const;    inline void setCaptureThreshold(double captureThreshold);    inline double getCaptureThreshold() const;    inline void setMinimumSignalStrength(double minimumSignalStrength);    inline double getMinimumSignalStrength() const;    inline void setDataRate(double dataRate);    inline double getDataRate() const;    inline void setBandwidth(double bandwidth);    inline double getBandwidth() const;    inline double getGain() const;    inline double getWavelength() const;    inline CommunicationLayer::Types getLayerType() const; protected:    WirelessChannelManagerPtr m_wirelessChannelManagerPtr;    PhysicalLayer(NodePtr node);    virtual void recvdErrorFreeSignal(WirelessCommSignalPtr signal,       double recvdSignalStrength);    inline void setMaxTxPower(double txPower);    bool scheduleSignal(WirelessCommSignalPtr signal); private:    static const double m_DEFAULT_TX_POWER;    static const double m_DEFAULT_MAX_TX_POWER;    static const double m_DEFAULT_RX_THRESHOLD;    static const double m_DEFAULT_CS_THRESHOLD;    static const double m_DEFAULT_CAPTURE_THRESHOLD;    static const double m_DEFAULT_MINIMUM_SIGNAL_STRENGTH;    static const double m_DEFAULT_DATA_RATE;    static const double m_DEFAULT_BANDWIDTH;    static const double m_RADIO_TEMPERATURE;    static const double m_RADIO_NOISE_FACTOR;    static const double m_BOLTZMANNS_CONSTANT;    static const t_uint m_PHYSICAL_QUEUE_LENGTH;    static const bool m_DEBUG_SIGNAL_CAPTURE = true;    static const bool m_DEBUG_TRANSMIT_POWER = true;    double m_currentTxPower;    double m_maxTxPower;    double m_rxThreshold;    double m_csThreshold;    double m_captureThreshold;    double m_minimumSignalStrength;    double m_dataRate;    double m_bandwidth;    bool m_pendingRecvSignalError;    SignalStrengthMap m_signalStrengths;    WirelessCommSignalPtr m_pendingRecvSignal;    SimTime m_signalSendingDelay;    TimerPtr m_transmittingTimer; }; typedef boost::shared_ptr<PhysicalLayer> PhysicalLayerPtr; // Inline Functions inline void PhysicalLayer::setWirelessChannelManager(    WirelessChannelManagerPtr wirelessChannelManager) {    m_wirelessChannelManagerPtr = wirelessChannelManager; } inline void PhysicalLayer::setCurrentTxPower(double txPower) {    assert(txPower > 0.0);    m_currentTxPower = txPower; } inline double PhysicalLayer::getCurrentTxPower() const {    return m_currentTxPower; } inline void PhysicalLayer::setMaxTxPower(double txPower) {    assert(txPower > 0.0);    m_maxTxPower = txPower;    m_currentTxPower = min(m_currentTxPower, m_maxTxPower); } inline double PhysicalLayer::getMaxTxPower() const {    return m_maxTxPower; } inline void PhysicalLayer::setRxThreshold(double rxThreshold) {    assert(rxThreshold > 0.0);    m_rxThreshold = rxThreshold; } inline double PhysicalLayer::getRxThreshold() const {    return m_rxThreshold; } inline void PhysicalLayer::setCsThreshold(double csThreshold) {    assert(csThreshold > 0.0);    m_csThreshold = csThreshold; } inline double PhysicalLayer::getCsThreshold() const {    return m_csThreshold; } inline void PhysicalLayer::setCaptureThreshold(double captureThreshold) {    assert(captureThreshold > 0.0);    m_captureThreshold = captureThreshold; } inline double PhysicalLayer::getCaptureThreshold() const {    return m_captureThreshold; } inline void PhysicalLayer::setMinimumSignalStrength(    double minimumSignalStrength) {    assert(minimumSignalStrength > 0.0);    m_minimumSignalStrength = minimumSignalStrength; } inline double PhysicalLayer::getMinimumSignalStrength() const {    return m_minimumSignalStrength; } inline void PhysicalLayer::setDataRate(double dataRate) {    assert(dataRate > 0.0);    m_dataRate = dataRate; } inline double PhysicalLayer::getDataRate() const {    return m_dataRate; } inline void PhysicalLayer::setBandwidth(double bandwidth) {    assert(bandwidth > 0.0);    m_bandwidth = bandwidth; } inline double PhysicalLayer::getBandwidth() const {    return m_bandwidth; } inline double PhysicalLayer::getNoiseFloor() const {    return (m_RADIO_NOISE_FACTOR * m_BOLTZMANNS_CONSTANT *       m_RADIO_TEMPERATURE * getBandwidth()); } inline double PhysicalLayer::getGain() const {    // This is just a placeholder function for now.    return 1.0; } inline void PhysicalLayer::setPendingSignalError(bool hasError) {    m_pendingRecvSignalError = hasError; } inline bool PhysicalLayer::getPendingSignalError() const {    return m_pendingRecvSignalError; } inline double PhysicalLayer::getWavelength() const {    return (SPEED_OF_LIGHT / m_bandwidth); } inline void PhysicalLayer::setSignalSendingDelay(    SimTime signalSendingDelay) {    m_signalSendingDelay = signalSendingDelay; } inline SimTime PhysicalLayer::getSignalSendingDelay() const {    return m_signalSendingDelay; } inline CommunicationLayer::Types PhysicalLayer::getLayerType() const {    return CommunicationLayer::Types_Physical; } // Overloaded Operators // Event Subclasses class SignalRecvEvent : public Event { public:    typedef boost::shared_ptr<SignalRecvEvent> SignalRecvEventPtr;    SignalRecvEvent(WirelessChannelManagerPtr channelManager,          PhysicalLayerPtr sender, WirelessCommSignalPtr signal)          : Event(), m_channelManager(channelManager),          m_sender(sender), m_signal(signal)    {       assert(m_channelManager.get() != 0);    }    void execute()    {       assert(m_channelManager.get() != 0);       LogStreamManager::instance()->logPktSendItem(          m_sender->getNodeId(), m_sender->getLayerType(),          *(m_signal->getPacketPtr()));       assert(m_sender->m_transmittingTimer.get() != 0);       assert(!m_sender->m_transmittingTimer->isRunning());       // Start a timer so we know if the layer is in the process       // of sending a packet.       m_sender->m_transmittingTimer->reschedule(m_signal->getDuration());       m_channelManager->recvSignal(m_sender, m_signal);    } private:    WirelessChannelManagerPtr m_channelManager;    PhysicalLayerPtr m_sender;    WirelessCommSignalPtr m_signal; }; typedef boost::shared_ptr<SignalRecvEvent> SignalRecvEventPtr; #endif // PHYSICAL_LAYER_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费看片在线观看| 一色桃子久久精品亚洲| 2020国产精品自拍| 国产欧美日韩亚州综合| 中文字幕在线不卡国产视频| 一区二区三区中文字幕电影 | 国产精品影视网| 成人av在线播放网址| 欧美在线播放高清精品| 日韩手机在线导航| 亚洲国产岛国毛片在线| 亚洲综合丝袜美腿| 精品一区二区国语对白| 成人激情电影免费在线观看| 欧美三级欧美一级| 久久看人人爽人人| 亚洲国产欧美在线人成| 国产在线一区观看| 色天天综合久久久久综合片| 欧美videossexotv100| 国产精品少妇自拍| 日韩成人免费看| 不卡av免费在线观看| 在线成人小视频| 国产精品久久久久毛片软件| 日韩国产精品久久久| 成人中文字幕合集| 日韩亚洲欧美一区| 亚洲视频一区二区免费在线观看| 天堂在线亚洲视频| aaa欧美大片| 欧美xxx久久| 亚洲国产一区二区在线播放| 国产成人免费网站| 7777精品伊人久久久大香线蕉超级流畅 | 日韩欧美国产小视频| 亚洲色图视频免费播放| 国产一区日韩二区欧美三区| 在线观看免费视频综合| 亚洲国产精品成人久久综合一区| 天天色图综合网| 91丨porny丨国产入口| 久久这里只有精品首页| 日韩av在线播放中文字幕| 99国产精品视频免费观看| 精品久久久久久综合日本欧美 | 精品第一国产综合精品aⅴ| 亚洲精品视频在线看| 国产精品一区免费在线观看| 51精品视频一区二区三区| 亚洲欧美日韩在线播放| 国产91对白在线观看九色| 日韩精品资源二区在线| 亚洲高清免费观看 | 一区二区免费在线播放| 成人国产亚洲欧美成人综合网| 精品少妇一区二区三区视频免付费 | 国产高清不卡二三区| 欧美一级一区二区| 午夜精品国产更新| 在线观看成人免费视频| 亚洲摸摸操操av| eeuss鲁片一区二区三区| 国产亚洲精品aa| 国产在线精品不卡| 精品国产1区二区| 六月丁香综合在线视频| 91精品国产高清一区二区三区蜜臀| 亚洲午夜三级在线| 91福利区一区二区三区| 一区二区三区不卡视频| 色哟哟国产精品| 亚洲激情图片一区| 91精品福利视频| 一区二区激情视频| 色综合久久天天综合网| 亚洲视频网在线直播| 91精彩视频在线| 亚洲综合一区二区| 欧美亚洲丝袜传媒另类| 亚洲国产精品久久人人爱| 在线免费观看视频一区| 亚洲一区二区影院| 欧美日韩亚洲综合一区二区三区| 亚洲午夜电影在线观看| 欧美美女一区二区| 日本不卡的三区四区五区| 欧美一区二区三区四区五区 | 精品日韩一区二区| 国产永久精品大片wwwapp| 久久久久国产精品人| 岛国精品在线观看| 综合欧美亚洲日本| 欧美主播一区二区三区| 五月天婷婷综合| 欧美一区二区三区电影| 国产自产高清不卡| 亚洲6080在线| 日韩免费视频一区二区| 国产精品亚洲综合一区在线观看| 1区2区3区欧美| 欧美日韩综合不卡| 久久99国内精品| 国产精品久久久久久久久免费相片 | 亚洲精品一区在线观看| 成人一二三区视频| 亚洲综合一二区| 精品女同一区二区| 丁香一区二区三区| 亚洲影视资源网| 91精品国产综合久久久蜜臀图片| 国产精品一线二线三线| 一区二区中文视频| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲精品一区二区三区四区高清| 韩国欧美国产1区| 亚洲国产精品99久久久久久久久| 国产成人在线视频网址| 国产精品乱码一区二区三区软件| 成人免费视频国产在线观看| 亚洲欧洲av色图| 欧美日本一区二区| 久草精品在线观看| 亚洲激情一二三区| 日韩一二三区视频| 成人精品小蝌蚪| 亚洲综合色婷婷| 欧美酷刑日本凌虐凌虐| 国产精品小仙女| 亚洲欧美成人一区二区三区| 欧美日韩成人激情| 国产999精品久久| 夜夜嗨av一区二区三区中文字幕 | 2023国产精华国产精品| 99久久精品一区二区| 亚洲午夜精品在线| 欧美精品v日韩精品v韩国精品v| 国产成人av网站| 亚洲午夜免费视频| 久久亚洲综合av| 色婷婷狠狠综合| 精品在线亚洲视频| 亚洲国产成人av网| 久久精品一区二区三区四区| 99久久精品免费看国产| 青青草97国产精品免费观看 | 中文在线一区二区| 欧美日韩精品一二三区| 国产精品一区在线| 亚洲国产aⅴ天堂久久| 亚洲精品一区二区三区在线观看| 欧美日韩国产综合一区二区三区 | 国产亚洲欧美激情| 欧美三级日韩三级| 成人午夜在线视频| 丝袜美腿亚洲一区二区图片| 欧美激情一区三区| 91精品国产一区二区三区| jlzzjlzz欧美大全| 美洲天堂一区二卡三卡四卡视频| 亚洲精品你懂的| 国产欧美日韩在线观看| 欧美一级一区二区| 在线国产亚洲欧美| 粉嫩av一区二区三区| 国内不卡的二区三区中文字幕 | 欧美性淫爽ww久久久久无| 国产露脸91国语对白| 三级成人在线视频| 国产精品乱人伦| 国产精品美女久久久久高潮| 欧美一级理论片| 色综合久久中文字幕综合网| 99综合电影在线视频| 国产福利不卡视频| 国产精品香蕉一区二区三区| 美女在线一区二区| 免费精品视频在线| 亚洲国产成人tv| 欧美成人一区二区三区| hitomi一区二区三区精品| 久久奇米777| 九九精品一区二区| 久久久久国色av免费看影院| 精品成a人在线观看| 91麻豆精品国产无毒不卡在线观看| 欧美色老头old∨ideo| 国产一区二区三区日韩| 黄色日韩网站视频| 国模无码大尺度一区二区三区| 日韩不卡在线观看日韩不卡视频| 日日骚欧美日韩| 亚洲成人av在线电影| 视频一区二区中文字幕| 亚洲成人你懂的| 日本成人在线电影网| 婷婷综合另类小说色区| 午夜精品福利久久久| 蜜桃久久久久久久| 久久国产剧场电影|