path_loss.hpp

来自「RFID reader 语 tag 模拟器」· HPP 代码 · 共 119 行

HPP
119
字号
 #ifndef PATH_LOSS_H #define PATH_LOSS_H #include <math.h> #include <boost/shared_ptr.hpp> #include <boost/utility.hpp> class WirelessCommSignal; class PhysicalLayer; class PathLoss : boost::noncopyable { public:    typedef boost::shared_ptr<PathLoss> PathLossPtr;    virtual ~PathLoss();    virtual double getRecvdStrength(const WirelessCommSignal& signal,       const PhysicalLayer& receiver) const = 0; protected:    static const bool m_DEBUG_SIGNAL_STRENGTH = false;    PathLoss(); private: }; typedef boost::shared_ptr<PathLoss> PathLossPtr; class FreeSpace : public PathLoss { public:    typedef boost::shared_ptr<FreeSpace> FreeSpacePtr;    static inline FreeSpacePtr create();    static inline FreeSpacePtr create(double lossFactor);    virtual double getRecvdStrength(const WirelessCommSignal& signal,       const PhysicalLayer& receiver) const; protected:    FreeSpace();    FreeSpace(double lossFactor); protected:    static const double m_DEFAULT_LOSS_FACTOR;    double m_lossFactor; private: }; typedef boost::shared_ptr<FreeSpace> FreeSpacePtr; class TwoRay : public FreeSpace { public:    typedef boost::shared_ptr<TwoRay> TwoRayPtr;    static inline TwoRayPtr create();    static inline TwoRayPtr create(double lossFactor);    virtual double getRecvdStrength(const WirelessCommSignal& signal,       const PhysicalLayer& receiver) const; protected:    TwoRay();    TwoRay(double lossFactor); private:    static const double m_DEFAULT_ANTENNA_HEIGHT;    double m_antennaHeight; }; typedef boost::shared_ptr<TwoRay> TwoRayPtr; // Inline Functions inline FreeSpacePtr FreeSpace::create() {    FreeSpacePtr p(new FreeSpace());    return p; } inline FreeSpacePtr FreeSpace::create(double lossFactor) {    FreeSpacePtr p(new FreeSpace(lossFactor));    return p; } inline TwoRayPtr TwoRay::create() {    TwoRayPtr p(new TwoRay());    return p; } inline TwoRayPtr TwoRay::create(double lossFactor) {    TwoRayPtr p(new TwoRay(lossFactor));    return p; } // Overloaded Operators #endif // PATH_LOSS_H

⌨️ 快捷键说明

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