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); |