public override void SetCompositionRoot(ICompositionRoot root) { _compositionRoot = root; foreach (var gatewayControllerInfo in _gatewayControllerInfos) { _controllers.Add(new GateController(gatewayControllerInfo.Name)); } Log.Log("SetCompositionRoot завершен, подсистема БУМИЗ была найдена, контроллеры подсистемы: "); foreach (var controller in _controllers) { Log.Log(controller.Name); } _scadaPollGatewayPart = _compositionRoot.GetPartByName("PollGateWay"); _scadaInteleconGateway = _scadaPollGatewayPart as IInteleconGateway; if (_scadaInteleconGateway == null) { throw new Exception("Не удалось найти PollGateWay через composition root"); } _scadaPollGatewayPart.AddRef(); _scadaInteleconGateway.RegisterSubSystem(this); }
public override void SetCompositionRoot(ICompositionRoot root) { _compositionRoot = root; _scadaPollGatewayPart = _compositionRoot.GetPartByName("PollGateWay"); _scadaInteleconGateway = _scadaPollGatewayPart as IInteleconGateway; if (_scadaInteleconGateway == null) { throw new Exception("Не удалось найти PollGateWay через composition root"); } _scadaPollGatewayPart.AddRef(); _bumizIoManagerPart = _compositionRoot.GetPartByName("BumizIoSubSystem"); _bumizIoManager = _bumizIoManagerPart as IBumizIoManager; if (_bumizIoManager == null) { throw new Exception("Не удалось найти BumizIoSubSystem через composition root"); } _bumizIoManagerPart.AddRef(); _pulseCountersDataStoragePart = _compositionRoot.GetPartByName("BumizEvenSubSystem.PulseCounter"); _pulseCountersDataStorage = _pulseCountersDataStoragePart as IPulseCounterDataStorageHolder; if (_pulseCountersDataStorage == null) { throw new Exception("Не удалось найти держатель хранилища импульсных счетчиков через composition root"); } _pulseCountersDataStoragePart.AddRef(); _attachedControllersInfoSystemPart = _compositionRoot.GetPartByName("GatewayAttachedControllers"); _attachedControllersInfoSystem = _attachedControllersInfoSystemPart as IAttachedControllersInfoSystem; if (_attachedControllersInfoSystem == null) { throw new Exception("Не удалось найти GatewayAttachedControllers через composition root"); } _attachedControllersInfoSystemPart.AddRef(); _gatewayControllesManagerPart = _compositionRoot.GetPartByName("GatewayControllers"); _gatewayControllesManager = _gatewayControllesManagerPart as IGatewayControllerInfosSystem; if (_gatewayControllesManager == null) { throw new Exception("Не удалось найти GatewayControllers через composition root"); } _gatewayControllesManagerPart.AddRef(); foreach (var bumizControllerInfo in _bumizControllerInfos) { if (_bumizIoManager.BumizObjectExist(bumizControllerInfo.Name)) { _bumizControllers.Add(new BumizController(_bumizIoManager, _pulseCountersDataStorage, bumizControllerInfo)); } else { Log.Log("Не удалось найти информацию о связи по сети БУМИЗ для контроллера: " + bumizControllerInfo.Name); } } Log.Log("Подсистема подключаемых контроллеров БУМИЗ инициализирована, число контроллеров: " + _bumizControllers.Count); }
public override void SetCompositionRoot(ICompositionRoot root) { _compositionRoot = root; _scadaPollGatewayPart = _compositionRoot.GetPartByName("PollGateWay"); _scadaInteleconGateway = _scadaPollGatewayPart as IInteleconGateway; if (_scadaInteleconGateway == null) { throw new Exception("Не удалось найти PollGateWay через composition root"); } _scadaPollGatewayPart.AddRef(); }
public override void SetCompositionRoot(ICompositionRoot root) { _compositionRoot = root; _bumizIoManagerPart = _compositionRoot.GetPartByName("BumizIoSubSystem"); _bumizIoManager = _bumizIoManagerPart as IBumizIoManager; if (_bumizIoManager == null) { throw new Exception("Не удалось найти BumizIoSubSystem через composition root"); } _bumizIoManagerPart.AddRef(); foreach (var pulseCounterInfo in _counterInfos) { try { if (_bumizIoManager.BumizObjectExist(pulseCounterInfo.Key)) { _availableInfos.Add(pulseCounterInfo.Value); } else { Log.Log("Не удалось найти информацию о связи по каналу БУМИЗ с объектом " + pulseCounterInfo.Key); } } catch (Exception ex) { Log.Log("Не удалось связать информацию по импульсному счётчику " + pulseCounterInfo.Key + " с информацией о его сетевом расположении внутри сети БУМИЗ по причине:" + ex); } } // Поток обмена активируется при подключении родительской системы if (_counterInfos.Count > 0) { if (_bumizArchivePollThread.ThreadState == ThreadState.Unstarted) { _bumizArchivePollThread.Start(); } else { Log.Log("Странно, поток подсистемы чтения архивных данных уже был запущен!"); } } else { Log.Log("Подсистема не будет запущена, т.к. число контроллеров в конфигурации = 0"); } }
public override void SetCompositionRoot(ICompositionRoot root) { _compositionRoot = root; _bumizIoManagerPart = _compositionRoot.GetPartByName("BumizIoSubSystem"); _bumizIoManager = _bumizIoManagerPart as IBumizIoManager; if (_bumizIoManager == null) { throw new Exception("Не удалось найти BumizIoSubSystem через composition root"); } _bumizIoManagerPart.AddRef(); foreach (var objSyncInfo in _objectsToSync) { try { if (_bumizIoManager.BumizObjectExist(objSyncInfo)) { _bumizNames.Add(objSyncInfo); } else { Log.Log("Не удалось связать информацию по объекту " + objSyncInfo + " с информацией о его сетевом расположении внутри сети БУМИЗ, видимо конфигурация сетевого расположения отсутствует"); } } catch (Exception ex) { Log.Log("Не удалось связать информацию по объекту " + objSyncInfo + " с информацией о его сетевом расположении внутри сети БУМИЗ по причине:" + ex); } } if (_bumizNames.Count > 0) { if (_bumizTimeSyncThread.ThreadState == ThreadState.Unstarted) { _bumizTimeSyncThread.Start(); } else { Log.Log("Странно, поток подсистемы синхронизации времени БУМИЗов уже запущен"); } } else { Log.Log("Подсистема не будет запущена, т.к. число объектов конфигурации = 0"); } }
public IGlobalOrderRepository Next(IGlobalOrderRepository globalOrderRepository, string currentPartName, string controllerName) { var nextPartName = ProcessingFlow.GetNextPartName(currentPartName, controllerName); if (nextPartName == Constants.BuiltInPart.FINALIZING) { return(globalOrderRepository); } _nextPart = ProcessingFlow.GetPart(nextPartName, _compositionParts); if (_nextPart != null) { return(_nextPart.Process(globalOrderRepository, controllerName)); } else { return(Next(globalOrderRepository, nextPartName, controllerName)); } }
public CompositionPartWithInformationRelay(ICompositionPart relayPart) { _relayPart = relayPart; IsInitComplete = false; }
public override void SetCompositionRoot(ICompositionRoot root) { _compositionRoot = root; _attachedControllersInfoSystemPart = _compositionRoot.GetPartByName("GatewayAttachedControllers"); _attachedControllersInfoSystem = _attachedControllersInfoSystemPart as IAttachedControllersInfoSystem; if (_attachedControllersInfoSystem == null) { throw new Exception("Не удалось найти GatewayAttachedControllers через composition root"); } _attachedControllersInfoSystemPart.AddRef(); _gatewayControllesManagerPart = _compositionRoot.GetPartByName("GatewayControllers"); _gatewayControllesManager = _gatewayControllesManagerPart as IGatewayControllerInfosSystem; if (_gatewayControllesManager == null) { throw new Exception("Не удалось найти GatewayControllers через composition root"); } _gatewayControllesManagerPart.AddRef(); _scadaPollGatewayPart = _compositionRoot.GetPartByName("PollGateWay"); _scadaInteleconGateway = _scadaPollGatewayPart as IInteleconGateway; if (_scadaInteleconGateway == null) { throw new Exception("Не удалось найти PollGateWay через composition root"); } _scadaPollGatewayPart.AddRef(); _scadaInteleconGateway.RegisterSubSystem(this); var commandManager = new InteleconCommandManager <string, IInteleconCommand>(new List <ICommandReplyArbiter <IInteleconCommand> > { new CommandReplyArbiterAttached() }, true); _commandManagerSystemSide = commandManager; _commandManagerSystemSide.ReplyWithoutRequestWasAccepted += CommandManagerSystemSideOnReplyWithoutRequestWasAccepted; Log.Log("Background worker Inited OK"); _loraControllerInfos = XmlFactory.GetObjectsConfigurationsFromXml(Path.Combine(Env.CfgPath, "LoraControllerInfos.xml")); _mqttTopicStart = "application/1/node/"; _loraControllers = new List <LoraControllerFullInfo>(); // need to create full info about controllers: Log.Log("Creating full information for each lora controller..."); foreach (var loraControllerInfo in _loraControllerInfos) { Log.Log("Lora object: " + loraControllerInfo.Name + ":"); var rxTopicName = _mqttTopicStart + loraControllerInfo.DeviceId + "/rx"; var txTopicName = _mqttTopicStart + loraControllerInfo.DeviceId + "/tx"; var attachedControllerConfig = _attachedControllersInfoSystem.GetAttachedControllerConfigByName(loraControllerInfo.Name); var fullLoraConfig = new LoraControllerFullInfo(loraControllerInfo, rxTopicName, txTopicName, attachedControllerConfig); _loraControllers.Add(fullLoraConfig); Log.Log(fullLoraConfig); } if (_loraControllers.Count > 0) { Log.Log("Starting MQTT driver..."); _mqttDriver = new MqttDriver(_mqttBrokerHost, _mqttBrokerPort, _loraControllers, commandManager); Log.Log("MQTT driver has been started"); } Log.Log("Lora controllers subsystem was loaded! Built _loraControllers count = " + _loraControllers.Count); }