Esempio n. 1
0
        /// <summary>
        /// Notifies subscribed IP data receive listeners that a new XBee IP packet has been received
        /// in form of an <see cref="IPMessage"/>.
        /// </summary>
        /// <param name="ipMessage">The message to be sent to subscribed data listeners.</param>
        /// <seealso cref="IPMessage"/>
        private void NotifyIPDataReceived(IPMessage ipMessage)
        {
            logger.InfoFormat(connectionInterface.ToString() + " IP message received from {0} >> {1}.",
                              ipMessage.IPAddress, ipMessage.DataString);

            try
            {
                lock (IPDataReceived)
                {
                    var handler = IPDataReceived;
                    if (handler != null)
                    {
                        var args = new IPDataReceivedEventArgs(ipMessage);

                        handler.GetInvocationList().AsParallel().ForAll((action) =>
                        {
                            action.DynamicInvoke(this, args);
                        });
                    }
                }
            }
            catch (Exception e)
            {
                logger.Error(e.Message, e);
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Programmatic trigger for IPDataReceived event
 /// </summary>
 /// <param name="message">Message containing the IP address the message belongs to, source and dest ports, IP protocol, and the content of the message</param>
 protected virtual void OnIPDataReceived(IPMessage message)
 {
     IPDataReceived?.Invoke(this, message);
 }
 /// <summary>
 /// Instantiates a <see cref="IPDataReceivedEventArgs"/> object with the provided parameters.
 /// </summary>
 /// <param name="ipMessage">The received IP Data message.</param>
 public IPDataReceivedEventArgs(IPMessage ipMessage)
 {
     IPDataReceived = ipMessage;
 }