Exemplo n.º 1
0
        /// <summary>
        /// Notifies subscribed explicit data receive listeners that a new XBee explicit data packet has been
        /// received in form of an <see cref="ExplicitXBeeMessage"/>.
        /// </summary>
        /// <param name="explicitXBeeMessage">The XBee message to be sent to subscribed XBee data listeners.</param>
        /// <seealso cref="ExplicitXBeeMessage"/>
        private void NotifyExplicitDataReceived(ExplicitXBeeMessage explicitXBeeMessage)
        {
            if (ExplicitDataReceived == null)
            {
                return;
            }

            if (explicitXBeeMessage.IsBroadcast)
            {
                logger.InfoFormat(connectionInterface.ToString() + "Broadcast explicit data received from {0} >> {1}.",
                                  explicitXBeeMessage.Device.XBee64BitAddr, HexUtils.PrettyHexString(explicitXBeeMessage.Data));
            }
            else
            {
                logger.InfoFormat(connectionInterface.ToString() + "Explicit data received from {0} >> {1}.",
                                  explicitXBeeMessage.Device.XBee64BitAddr, HexUtils.PrettyHexString(explicitXBeeMessage.Data));
            }

            try
            {
                lock (ExplicitDataReceived)
                {
                    var handler = ExplicitDataReceived;
                    if (handler != null)
                    {
                        var args = new ExplicitDataReceivedEventArgs(explicitXBeeMessage);

                        handler.GetInvocationList().AsParallel().ForAll((action) =>
                        {
                            action.DynamicInvoke(this, args);
                        });
                    }
                }
            }
            catch (Exception e)
            {
                logger.Error(e.Message, e);
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// Programmatic trigger for ExplicitDataReceived event
 /// </summary>
 /// <param name="message">Message containing data received, the sender, the time, and the explicit data message parameters</param>
 protected virtual void OnExplicitDataReceived(ExplicitXBeeMessage message)
 {
     ExplicitDataReceived?.Invoke(this, message);
 }
 /// <summary>
 /// Instantiates a <see cref="ExplicitDataReceivedEventArgs"/> object with the provided parameters.
 /// </summary>
 /// <param name="explicitXBeeMessage">The received Explicit XBee message.</param>
 public ExplicitDataReceivedEventArgs(ExplicitXBeeMessage explicitXBeeMessage)
 {
     ExplicitDataReceived = explicitXBeeMessage;
 }