Пример #1
0
        //*********************************************************************
        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);
        }
Пример #2
0
        //*********************************************************************
        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);
        }