--- a/src/devices/mesh/mesh-wifi-beacon-timing-element.cc Tue Mar 17 10:57:10 2009 +0300
+++ b/src/devices/mesh/mesh-wifi-beacon-timing-element.cc Tue Mar 17 13:21:37 2009 +0300
@@ -92,15 +92,15 @@
//Firs we lookup if this element already exists
for (NeighboursTimingUnitsList::iterator i = m_neighbours.begin(); i!= m_neighbours.end(); i++)
if (
- ((*i)->GetAID() == AID_TO_U8(aid))
- && ((*i)->GetLastBeacon() == TIMESTAMP_TO_U16(last_beacon))
- && ((*i)->GetBeaconInterval() == BEACON_INTERVAL_TO_U16(beacon_interval))
+ ((*i)->GetAID() == AidToU8(aid))
+ && ((*i)->GetLastBeacon() == TimestampToU16(last_beacon))
+ && ((*i)->GetBeaconInterval() == BeaconIntervalToU16(beacon_interval))
)
return;
Ptr<WifiBeaconTimingElementUnit>new_element = Create<WifiBeaconTimingElementUnit>();
- new_element->SetAID(AID_TO_U8(aid));
- new_element->SetLastBeacon(TIMESTAMP_TO_U16(last_beacon));
- new_element->SetBeaconInterval(BEACON_INTERVAL_TO_U16(beacon_interval));
+ new_element->SetAID(AidToU8(aid));
+ new_element->SetLastBeacon(TimestampToU16(last_beacon));
+ new_element->SetBeaconInterval(BeaconIntervalToU16(beacon_interval));
m_neighbours.push_back(new_element);
m_numOfUnits++;
}
@@ -114,9 +114,9 @@
{
for (NeighboursTimingUnitsList::iterator i = m_neighbours.begin(); i!= m_neighbours.end(); i++)
if (
- ((*i)->GetAID() == AID_TO_U8(aid))
- && ((*i)->GetLastBeacon() == TIMESTAMP_TO_U16(last_beacon))
- && ((*i)->GetBeaconInterval() == BEACON_INTERVAL_TO_U16(beacon_interval))
+ ((*i)->GetAID() == AidToU8(aid))
+ && ((*i)->GetLastBeacon() == TimestampToU16(last_beacon))
+ && ((*i)->GetBeaconInterval() == BeaconIntervalToU16(beacon_interval))
)
{
m_neighbours.erase(i);
@@ -187,4 +187,22 @@
}
return i;
};
+
+uint16_t
+WifiBeaconTimingElement::TimestampToU16(Time x)
+{
+ return ((uint16_t)((x.GetMicroSeconds() >> 8)&0xffff));
+};
+
+uint16_t
+WifiBeaconTimingElement::BeaconIntervalToU16(Time x)
+{
+ return ((uint16_t)(x.GetMicroSeconds() >>10)&0xffff);
+};
+
+uint8_t
+WifiBeaconTimingElement::AidToU8(uint16_t x)
+{
+ return (uint8_t)(x&0xff);
+};
} //namespace ns3
--- a/src/devices/mesh/mesh-wifi-beacon-timing-element.h Tue Mar 17 10:57:10 2009 +0300
+++ b/src/devices/mesh/mesh-wifi-beacon-timing-element.h Tue Mar 17 13:21:37 2009 +0300
@@ -89,18 +89,6 @@
Time beacon_interval //MicroSeconds!
);
void ClearTimingElement();
- uint16_t TIMESTAMP_TO_U16(Time x)
- {
- return ((uint16_t)((x.GetMicroSeconds() >> 8)&0xffff));
- };
- uint16_t BEACON_INTERVAL_TO_U16(Time x)
- {
- return ((uint16_t)(x.GetMicroSeconds() >>10)&0xffff);
- };
- uint8_t AID_TO_U8(uint16_t x)
- {
- return (uint8_t)(x&0xff);
- };
//Serialize-deserialize methods:
uint32_t GetSerializedSize () const;
Buffer::Iterator Serialize (Buffer::Iterator i) const;
@@ -109,6 +97,9 @@
static uint8_t ElementId() {
return (uint8_t)IE11S_BEACON_TIMING;
}
+ static uint16_t TimestampToU16(Time x);
+ static uint16_t BeaconIntervalToU16(Time x);
+ static uint8_t AidToU8(uint16_t x);
NeighboursTimingUnitsList m_neighbours;
//The maximum size of this element:
const static uint16_t DEFAULT_MAX_SIZE = 255*5 +2;