/// <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; }
/// <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; }