Example #1
0
 /// <summary>
 /// Обработчик события получение из сети запроса от мастера
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="args"></param>
 private void EventHandler_Connection_RequestWasRecived(
     object sender, MessageEventArgs args)
 {
     if (args.Message.Address == 0)
     {
         // Рассылаем принятое сообщение по устройствам
         foreach (Device device in _Devices)
         {
             device.GetIncommingMessage(args.Message);
         }
     }
     else
     {
         if (Devices.Contains(args.Message.Address) == true)
         {
             // Устройство с указанным адресом в запросе существует.
             // Направляем ему данный запрос
             lock (SyncRoot)
             {
                 Devices[args.Message.Address].GetIncommingMessage(args.Message);
             }
         }
     }
     return;
 }
Example #2
0
        /// <summary>
        /// Генерирует событие отправки сообщения
        /// </summary>
        /// <param name="args">Аргументы события</param>
        private void OnResponseWasSent(MessageEventArgs args)
        {
            EventHandleResponseWasSent handler = ResponseWasSent;

            if (handler != null)
            {
                foreach (EventHandleResponseWasSent singleCast in handler.GetInvocationList())
                {
                    System.ComponentModel.ISynchronizeInvoke syncInvoke = singleCast.Target as
                        System.ComponentModel.ISynchronizeInvoke;
                    
                    if (syncInvoke != null)
                    { 
                        if (syncInvoke.InvokeRequired)
                        {
                            syncInvoke.Invoke(singleCast, new Object[] { this, args });
                        }
                        else
                        {
                            singleCast(this, args);
                        }
                    }
                    else
                    {
                        singleCast(this, args);
                    }
                }
            }
            return;
        }