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; _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"); } }