//********************************************************************* public Boolean MediumHaveAIRWork(RFDevice device) { if (this.getPacketsFound() < 1) { return(false); } Key Pk = new Key(device.getOperateBand(), device.getOperateChannel(), device.getMACAddress()); Key Pk2 = new Key(device.getOperateBand(), device.getOperateChannel(), "FF:FF:FF:FF:FF:FF"); if (_packets != null && (_packets.ContainsKey(Pk) || _packets.ContainsKey(Pk2))) { return(true); } return(false); }
//********************************************************************* public IPacket ReceiveData(RFDevice device) { Key Pk = null; String errPrefix = ""; try { if (_packets != null) { lock (_packets) { errPrefix = " Packets "; Pk = new Key(device.getOperateBand(), device.getOperateChannel(), device.getMACAddress()); if (_packets.ContainsKey(Pk)) { ArrayList LocalPackets = (ArrayList)_packets[Pk]; foreach (object pack in LocalPackets) { if (pack != null) { SimulatorPacket _LocalPack = (SimulatorPacket)pack; if (_LocalPack.Source != device.getMACAddress() && getDistance(device.x, device.y, _LocalPack.X, _LocalPack.Y) < _Radius + _Radius) { //LocalPackets.Remove(pack); return(_LocalPack); } } // loop body } } } Pk = new Key(device.getOperateBand(), device.getOperateChannel(), "FF:FF:FF:FF:FF:FF"); if (_packets.ContainsKey(Pk)) { errPrefix = " Beacons "; ArrayList LocalPackets = (ArrayList)_packets[Pk]; foreach (object pack in LocalPackets) { if (pack != null) { SimulatorPacket _LocalPack = (SimulatorPacket)pack; if (_LocalPack.Source != device.getMACAddress() && getDistance(device.x, device.y, _LocalPack.X, _LocalPack.Y) < _Radius + _Radius) { return(_LocalPack); } } // loop body } } else { //AddToLog("Packet not found"); } } } catch (Exception ex) { AddToLog("[ReceiveData][" + errPrefix + "]:" + ex.Message); } return(null); }