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 + -
显示快捷键?