src/wifi/model/interference-helper.h
changeset 10139 17a71cd49da3
parent 7600 57ba46094a0d
child 10483 e3a02ed14587
equal deleted inserted replaced
10138:2f8e35b43d11 10139:17a71cd49da3
    26 #include "wifi-mode.h"
    26 #include "wifi-mode.h"
    27 #include "wifi-preamble.h"
    27 #include "wifi-preamble.h"
    28 #include "wifi-phy-standard.h"
    28 #include "wifi-phy-standard.h"
    29 #include "ns3/nstime.h"
    29 #include "ns3/nstime.h"
    30 #include "ns3/simple-ref-count.h"
    30 #include "ns3/simple-ref-count.h"
       
    31 #include "ns3/wifi-tx-vector.h"
    31 
    32 
    32 namespace ns3 {
    33 namespace ns3 {
    33 
    34 
    34 class ErrorRateModel;
    35 class ErrorRateModel;
    35 
    36 
    43   class Event : public SimpleRefCount<InterferenceHelper::Event>
    44   class Event : public SimpleRefCount<InterferenceHelper::Event>
    44   {
    45   {
    45 public:
    46 public:
    46     Event (uint32_t size, WifiMode payloadMode,
    47     Event (uint32_t size, WifiMode payloadMode,
    47            enum WifiPreamble preamble,
    48            enum WifiPreamble preamble,
    48            Time duration, double rxPower);
    49            Time duration, double rxPower, WifiTxVector txvector);
    49     ~Event ();
    50     ~Event ();
    50 
    51 
    51     Time GetDuration (void) const;
    52     Time GetDuration (void) const;
    52     Time GetStartTime (void) const;
    53     Time GetStartTime (void) const;
    53     Time GetEndTime (void) const;
    54     Time GetEndTime (void) const;
    54     double GetRxPowerW (void) const;
    55     double GetRxPowerW (void) const;
    55     uint32_t GetSize (void) const;
    56     uint32_t GetSize (void) const;
    56     WifiMode GetPayloadMode (void) const;
    57     WifiMode GetPayloadMode (void) const;
    57     enum WifiPreamble GetPreambleType (void) const;
    58     enum WifiPreamble GetPreambleType (void) const;
       
    59     WifiTxVector GetTxVector (void) const;
    58 private:
    60 private:
    59     uint32_t m_size;
    61     uint32_t m_size;
    60     WifiMode m_payloadMode;
    62     WifiMode m_payloadMode;
    61     enum WifiPreamble m_preamble;
    63     enum WifiPreamble m_preamble;
    62     Time m_startTime;
    64     Time m_startTime;
    63     Time m_endTime;
    65     Time m_endTime;
    64     double m_rxPowerW;
    66     double m_rxPowerW;
       
    67     WifiTxVector m_txVector;
    65   };
    68   };
    66   struct SnrPer
    69   struct SnrPer
    67   {
    70   {
    68     double snr;
    71     double snr;
    69     double per;
    72     double per;
    88   Time GetEnergyDuration (double energyW);
    91   Time GetEnergyDuration (double energyW);
    89 
    92 
    90 
    93 
    91   Ptr<InterferenceHelper::Event> Add (uint32_t size, WifiMode payloadMode,
    94   Ptr<InterferenceHelper::Event> Add (uint32_t size, WifiMode payloadMode,
    92                                       enum WifiPreamble preamble,
    95                                       enum WifiPreamble preamble,
    93                                       Time duration, double rxPower);
    96                                       Time duration, double rxPower, WifiTxVector txvector);
    94 
    97 
    95   struct InterferenceHelper::SnrPer CalculateSnrPer (Ptr<InterferenceHelper::Event> event);
    98   struct InterferenceHelper::SnrPer CalculateSnrPer (Ptr<InterferenceHelper::Event> event);
    96   void NotifyRxStart ();
    99   void NotifyRxStart ();
    97   void NotifyRxEnd ();
   100   void NotifyRxEnd ();
    98   void EraseEvents (void);
   101   void EraseEvents (void);