public XBeeResponse[] EndReceive(int timeout = -1) { if (_finished) throw new InvalidOperationException("EndReceive can be called only once!"); try { return _responseListener.GetPackets(timeout); } finally { _xbee.RemovePacketListener(_responseListener); _responseListener = null; _xbee = null; _finished = true; } }
internal AsyncSendResult(XBeeApi xbee, IPacketListener responseListener) { _xbee = xbee; _responseListener = responseListener; }
public void AddPacketListener(IPacketListener listener) { lock (_packetListeners) _packetListeners.Add(listener); Logger.LowDebug("New listener added to parser"); }
public void RemovePacketListener(IPacketListener listener) { lock (_packetListeners) _packetListeners.Remove(listener); Logger.LowDebug("Parser removed finished listener"); }
public void RemovePacketListener(IPacketListener listener) { _parser.RemovePacketListener(listener); }
/// <summary>装载包处理器 /// </summary> /// <param name="listener">The listener.</param> public void InstallProcessor(IPacketListener listener) { listeners.Add(listener); }
public void EnableModemStatusEvent() { if (_modemStatusEventEnabled) return; if (_modemStatusListener == null) _modemStatusListener = new PacketListener(new PacketTypeFilter(typeof(ModemStatusResponse)), -1, OnModemStatusReceived); AddPacketListener(_modemStatusListener); _modemStatusEventEnabled = true; }
public void EnableDataReceivedEvent() { if (_dataReceivedEventEnabled) return; if (_dataReceivedListener == null) _dataReceivedListener = new PacketListener(new DataPacketFilter(), -1, OnDataReceived); AddPacketListener(_dataReceivedListener); _dataReceivedEventEnabled = true; }
public void EnableAddressLookup() { if (_addressLookupEnabled) return; if (AddressLookup == null) AddressLookup = new Hashtable(); if (_addressLookupListener == null) _addressLookupListener = new PacketListener(new AddressPacketFilter(), -1, OnAddressReceived); AddPacketListener(_addressLookupListener); _addressLookupEnabled = true; }
public void AddPacketListener(IPacketListener listener) { _parser.AddPacketListener(listener); }
/// <summary> /// Registers a new packet listener. The packet listener will be called when a packet should be redirected from one end point to the other /// </summary> /// <param name="listener"> The packet listener which should be called on incoming packets </param> public void RegisterPacketListener(IPacketListener listener) { _packetListener.Add(listener); }