/// <summary> /// Removes an Application Framework message listener that was previously added with the addAFMessageListener method /// /// <param name="listener">a class that implements the <see cref="ApplicationFrameworkMessageListener"> interface</param> /// <returns>true if the listener was added</returns> /// </summary> public bool RemoveAFMessageListener(IApplicationFrameworkMessageListener listener) { bool result; lock (_messageListeners) { result = _messageListeners.Remove(listener); } if (_messageListeners.Count == 0 && IsHardwareReady()) { if (_commandInterface.RemoveAsynchronousCommandListener(_afMessageListenerFilter)) { Log.Verbose("Removed AsynchrounsCommandListener {Type} to ZigBeeSerialInterface", _afMessageListenerFilter.GetType().Name); } else { Log.Warning("Could not remove AsynchrounsCommandListener {} to ZigBeeSerialInterface", _afMessageListenerFilter.GetType().Name); } } if (result) { Log.Verbose("Removed ApplicationFrameworkMessageListener {}:{}", listener, listener.GetType().Name); return(true); } else { Log.Warning("Could not remove ApplicationFrameworkMessageListener {}:{}", listener, listener.GetType().Name); return(false); } }
/// <summary> /// Adds an Application Framework message listener /// /// <param name="listener">a class that implements the <see cref="ApplicationFrameworkMessageListener"> interface</param> /// <returns>true if the listener was added</returns> /// </summary> public bool AddAFMessageListener(IApplicationFrameworkMessageListener listener) { lock (_messageListeners) { if (_messageListeners.Contains(listener)) { return(true); } } if (_messageListeners.Count == 0 && IsHardwareReady()) { if (_commandInterface.AddAsynchronousCommandListener(_afMessageListenerFilter)) { Log.Verbose("Added AsynchrounsCommandListener {} to ZigBeeSerialInterface", _afMessageListenerFilter.GetType().Name); } else { Log.Verbose("Could not add AsynchrounsCommandListener {} to ZigBeeSerialInterface", _afMessageListenerFilter.GetType().Name); } } lock (_messageListeners) { _messageListeners.Add(listener); } Log.Verbose("Added ApplicationFrameworkMessageListener {}:{}", listener, listener.GetType().Name); return(true); }