Exemplo n.º 1
0
        public IoDeviceRunTarget(io_devices ioDevice, IIoDeviceWrapperFactory wrapperFactory, INotificationReporter reporter)
        {
            _reporter = reporter;
            Name = string.Format(Res.IoDeviceWithName, ioDevice.name);
            _filePath = GetFilePath(ioDevice.type);
            _options = ioDevice.options;
            _wrapperFactory = wrapperFactory;

            var digReadParameters = new List<ReadParameter>();
            var digReadValueHolders = new List<ITagValueHolder>();
            foreach (var t in ioDevice.dig_tags)
            {
                var holder = new DigTagValueHolder(t);
                _digValueHolders.Add(t.id, holder);
                if (t.can_read)
                {
                    digReadValueHolders.Add(holder);
                    digReadParameters.Add(new ReadParameter(t.device, typeof(bool)));
                }
            }
            var numReadParameters = new List<ReadParameter>();
            var numReadValueHolders = new List<ITagValueHolder>();
            foreach (var t in ioDevice.num_tags)
            {
                var holder = new NumTagValueHolder(t);
                _numValueHolders.Add(t.id, holder);
                if (t.can_read)
                {
                    numReadValueHolders.Add(holder);
                    numReadParameters.Add(new ReadParameter(t.device, t.TagType));
                }
            }
            _readParameters = digReadParameters.Concat(numReadParameters).ToArray();
            _readValueHolders = digReadValueHolders.Concat(numReadValueHolders).ToArray();
        }
Exemplo n.º 2
0
 public CyclicRunner(ITimerService timerService, IRunTarget target)
 {
     _timerService = timerService;
     _notificationReporter = target.Reporter;
     _target = target;
     _timerService.Elapsed += (sender, args) => Run();
 }
Exemplo n.º 3
0
 public IPHmiRunTarget Create(
     INotificationReporter reporter,
     IServiceClientFactory clientFactory,
     params IServiceRunTarget[] targets)
 {
     return new PHmiRunTarget(reporter, clientFactory, targets);
 }
Exemplo n.º 4
0
 public CyclicRunner(ITimerService timerService, IRunTarget target)
 {
     _timerService         = timerService;
     _notificationReporter = target.Reporter;
     _target = target;
     _timerService.Elapsed += (sender, args) => Run();
 }
Exemplo n.º 5
0
 protected override void EstablishContext()
 {
     base.EstablishContext();
     TimeServiceMock = new Mock<ITimeService>();
     TimerServiceMock = new Mock<ITimerService>();
     NotificationReporter = new NotificationReporter(TimeServiceMock.Object, TimerServiceMock.Object);
 }
Exemplo n.º 6
0
 public PHmiRunTarget(INotificationReporter reporter, IServiceClientFactory clientFactory,
                      params IServiceRunTarget[] targets)
 {
     Reporter       = reporter;
     _clientFactory = clientFactory;
     _targets       = targets;
 }
Exemplo n.º 7
0
        public AlarmsRunTarget(
            AlarmCategory alarmCategory,
            INotificationReporter reporter,
            IAlarmsRepository repository,
            IProject project,
            ITimeService timeService,
            INpgsqlConnectionFactory connectionFactory)
        {
            _name = string.Format("{0} \"{1}\"", Res.Alarms, alarmCategory.Name);
            _reporter = reporter;
            _timeService = timeService;
            _repository = repository;
            _project = project;
            _connectionFactory = connectionFactory;
            if (alarmCategory.TimeToStoreDb.HasValue)
            {
                _timeToStore = new TimeSpan(alarmCategory.TimeToStoreDb.Value);
            }

            _alarmDigitalValues = new Dictionary<int, AlarmStatus>(alarmCategory.AlarmTags.Count);
            foreach (var t in alarmCategory.AlarmTags)
            {
                _alarmDigitalValues.Add(t.Id, new AlarmStatus(t.Acknowledgeable));
                _alarmPrivileges.Add(t.Id, t.Privilege);
            }

            _updateAlarmTagsDigitalValues = () => UpdateAlarmDigitalValues(GetIoDeviceGroups(alarmCategory));
        }
Exemplo n.º 8
0
        public AlarmsRunTarget(
            AlarmCategory alarmCategory,
            INotificationReporter reporter,
            IAlarmsRepository repository,
            IProject project,
            ITimeService timeService,
            INpgsqlConnectionFactory connectionFactory)
        {
            _name              = string.Format("{0} \"{1}\"", Res.Alarms, alarmCategory.Name);
            _reporter          = reporter;
            _timeService       = timeService;
            _repository        = repository;
            _project           = project;
            _connectionFactory = connectionFactory;
            if (alarmCategory.TimeToStoreDb.HasValue)
            {
                _timeToStore = new TimeSpan(alarmCategory.TimeToStoreDb.Value);
            }

            _alarmDigitalValues = new Dictionary <int, AlarmStatus>(alarmCategory.AlarmTags.Count);
            foreach (var t in alarmCategory.AlarmTags)
            {
                _alarmDigitalValues.Add(t.Id, new AlarmStatus(t.Acknowledgeable));
                _alarmPrivileges.Add(t.Id, t.Privilege);
            }

            _updateAlarmTagsDigitalValues = () => UpdateAlarmDigitalValues(GetIoDeviceGroups(alarmCategory));
        }
Exemplo n.º 9
0
 public IPHmiRunTarget Create(
     INotificationReporter reporter,
     IServiceClientFactory clientFactory,
     params IServiceRunTarget[] targets)
 {
     return(new PHmiRunTarget(reporter, clientFactory, targets));
 }
Exemplo n.º 10
0
 protected override void EstablishContext()
 {
     base.EstablishContext();
     TimeServiceMock      = new Mock <ITimeService>();
     TimerServiceMock     = new Mock <ITimerService>();
     NotificationReporter = new NotificationReporter(TimeServiceMock.Object, TimerServiceMock.Object);
 }
Exemplo n.º 11
0
        public void Test()
        {
            var timeService = new Mock <ITimeService>();
            var factory     = new NotificationReporterFactory();
            INotificationReporter reporter = factory.Create(timeService.Object);

            Assert.That(reporter, Is.Not.Null);
        }
Exemplo n.º 12
0
 internal MainWindowViewModel(
     IActionHelper actionHelper,
     ITimeService timeService,
     INotificationReporter reporter,
     IProjectRunnerFactory runnerFactory)
 {
     _actionHelper            = actionHelper;
     _reporter                = reporter ?? new NotificationReporter(timeService);
     _reporter.ExpirationTime = TimeSpan.FromSeconds(1);
     _runnerFactory           = runnerFactory ??
                                new ProjectRunnerFactory(timeService, _reporter, new PHmiModelContextFactory(), new NpgHelper());
     _closeCommand = new DelegateCommand(CloseCommandExecuted, CloseCommandCanExecute);
 }
Exemplo n.º 13
0
        internal PHmiBase(
            INotificationReporterFactory reporterFactory,
            IServiceClientFactory clientFactory,
            ICyclicRunnerFactory cyclicRunnerFactory,
            IPHmiRunTargetFactory pHmiRunTargetFactory,
            ITimeService timeService,
            ITimerService timerService,
            IEventRunTarget beforeUpdateRunTarget,
            IUpdateStatusRunTargetFactory updateStatusRunTargetFactory,
            IUsersRunTarget usersRunTarget,
            ITagServiceFactory tagServiceFactory,
            IAlarmServiceFactory alarmServiceFactory,
            ITrendsServiceFactory trendsServiceFactory,
            ILogService logService,
            IEventRunTarget afterUpdateRunTarget)
        {
            _timeService                  = timeService;
            _timerService                 = timerService;
            _timerService.Elapsed        += TimerServiceElapsed;
            _reporter                     = reporterFactory.Create(timeService);
            _clientFactory                = clientFactory;
            beforeUpdateRunTarget.Runned += BeforeUpdateRunTargetRunned;
            IUpdateStatusRunTarget updateStatusRunTarget = updateStatusRunTargetFactory.Create(_timeService);

            _users               = new Users.Users(usersRunTarget);
            _tagService          = tagServiceFactory.Create(_reporter);
            _alarmService        = alarmServiceFactory.Create(_reporter);
            _trendsService       = trendsServiceFactory.Create(_reporter);
            _logService          = logService;
            _commonAlarmCategory =
                new AlarmCategoryBase(0, "CommonAlarms", () => Res.CommonAlarmsDescription);
            Add(_commonAlarmCategory);
            _cyclicRunnerFactory         = cyclicRunnerFactory;
            afterUpdateRunTarget.Runned += AfterUpdateRunTargetRunned;
            _pHmiRunTarget = pHmiRunTargetFactory.Create(
                _reporter,
                _clientFactory,
                beforeUpdateRunTarget,
                updateStatusRunTarget,
                usersRunTarget,
                _tagService,
                _alarmService,
                _trendsService,
                _logService,
                afterUpdateRunTarget);
            _cyclicRunner = _cyclicRunnerFactory.Create(_pHmiRunTarget);
            IoDevices     = new ReadOnlyCollection <IoDeviceAbstract>(_ioDevices);
        }
Exemplo n.º 14
0
        public TrendsRunTarget(
            TrendCategory trendCategory,
            INotificationReporter reporter,
            ITrendsRepositoryFactory repositoryFactory,
            IProject project,
            ITimeService timeService,
            ITrendTableSelector tableSelector)
        {
            Name         = string.Format("{0} \"{1}\"", Res.Trends, trendCategory.Name);
            _timeToStore = trendCategory.TimeToStoreDb.HasValue
                ? new TimeSpan(trendCategory.TimeToStoreDb.Value) as TimeSpan?
                : null;
            foreach (TrendTag t in trendCategory.TrendTags.ToArray())
            {
                Func <bool> triggerValueGetter;
                if (t.Trigger == null)
                {
                    triggerValueGetter = () => true;
                }
                else
                {
                    int trIoDevId = t.Trigger.IoDevice.Id;
                    int trId      = t.Trigger.Id;
                    triggerValueGetter = () =>
                                         project.IoDeviceRunTargets[trIoDevId].GetDigitalValue(trId) == true;
                }

                int ioDeviceId = t.NumTag.IoDevice.Id;
                int tagId      = t.NumTag.Id;
                var trendInfo  = new TrendTagInfo(
                    t.Id,
                    triggerValueGetter,
                    () => project.IoDeviceRunTargets[ioDeviceId].GetNumericValue(tagId));
                _trendsInfo.Add(t.Id, trendInfo);
            }

            Reporter           = reporter;
            _repositoryFactory = repositoryFactory;
            _timeService       = timeService;
            _tableSelector     = tableSelector;
        }
Exemplo n.º 15
0
        public IoDeviceRunTarget(IoDevice ioDevice, IIoDeviceWrapperFactory wrapperFactory,
                                 INotificationReporter reporter)
        {
            Reporter        = reporter;
            Name            = string.Format(Res.IoDeviceWithName, ioDevice.Name);
            _filePath       = GetFilePath(ioDevice.Type);
            _options        = ioDevice.Options;
            _wrapperFactory = wrapperFactory;

            var digReadParameters   = new List <ReadParameter>();
            var digReadValueHolders = new List <ITagValueHolder>();

            foreach (DigTag t in ioDevice.DigTags)
            {
                var holder = new DigTagValueHolder(t);
                _digValueHolders.Add(t.Id, holder);
                if (t.CanRead)
                {
                    digReadValueHolders.Add(holder);
                    digReadParameters.Add(new ReadParameter(t.Device, typeof(bool)));
                }
            }

            var numReadParameters   = new List <ReadParameter>();
            var numReadValueHolders = new List <ITagValueHolder>();

            foreach (NumTag t in ioDevice.NumTags)
            {
                var holder = new NumTagValueHolder(t);
                _numValueHolders.Add(t.Id, holder);
                if (t.CanRead)
                {
                    numReadValueHolders.Add(holder);
                    numReadParameters.Add(new ReadParameter(t.Device, t.TagType));
                }
            }

            _readParameters   = digReadParameters.Concat(numReadParameters).ToArray();
            _readValueHolders = digReadValueHolders.Concat(numReadValueHolders).ToArray();
        }
Exemplo n.º 16
0
 public TrendsRunTarget(
     trend_categories trendCategory,
     INotificationReporter reporter,
     ITrendsRepositoryFactory repositoryFactory,
     IProject project,
     ITimeService timeService,
     ITrendTableSelector tableSelector)
 {
     _name        = string.Format("{0} \"{1}\"", Res.Trends, trendCategory.name);
     _timeToStore = trendCategory.time_to_store.HasValue ? new TimeSpan(trendCategory.time_to_store.Value) as TimeSpan? : null;
     foreach (var t in trendCategory.trend_tags.ToArray())
     {
         Func <bool> triggerValueGetter;
         if (t.dig_tags == null)
         {
             triggerValueGetter = () => true;
         }
         else
         {
             var trIoDevId = t.dig_tags.io_devices.id;
             var trId      = t.dig_tags.id;
             triggerValueGetter = () => project.IoDeviceRunTargets[trIoDevId].GetDigitalValue(trId) == true;
         }
         var ioDeviceId = t.num_tags.io_devices.id;
         var tagId      = t.num_tags.id;
         var trendInfo  = new TrendTagInfo(
             t.id,
             triggerValueGetter,
             () => project.IoDeviceRunTargets[ioDeviceId].GetNumericValue(tagId));
         _trendsInfo.Add(t.id, trendInfo);
     }
     _reporter          = reporter;
     _repositoryFactory = repositoryFactory;
     _timeService       = timeService;
     _tableSelector     = tableSelector;
 }
Exemplo n.º 17
0
 public TrendsRunTarget(
     trend_categories trendCategory,
     INotificationReporter reporter,
     ITrendsRepositoryFactory repositoryFactory,
     IProject project,
     ITimeService timeService,
     ITrendTableSelector tableSelector)
 {
     _name = string.Format("{0} \"{1}\"", Res.Trends, trendCategory.name);
     _timeToStore = trendCategory.time_to_store.HasValue ? new TimeSpan(trendCategory.time_to_store.Value) as TimeSpan? : null;
     foreach (var t in trendCategory.trend_tags.ToArray())
     {
         Func<bool> triggerValueGetter;
         if (t.dig_tags == null)
         {
             triggerValueGetter = () => true;
         }
         else
         {
             var trIoDevId = t.dig_tags.io_devices.id;
             var trId = t.dig_tags.id;
             triggerValueGetter = () => project.IoDeviceRunTargets[trIoDevId].GetDigitalValue(trId) == true;
         }
         var ioDeviceId = t.num_tags.io_devices.id;
         var tagId = t.num_tags.id;
         var trendInfo = new TrendTagInfo(
             t.id,
             triggerValueGetter,
             () => project.IoDeviceRunTargets[ioDeviceId].GetNumericValue(tagId));
         _trendsInfo.Add(t.id, trendInfo);
     }
     _reporter = reporter;
     _repositoryFactory = repositoryFactory;
     _timeService = timeService;
     _tableSelector = tableSelector;
 }
Exemplo n.º 18
0
 public PHmiRunTarget(INotificationReporter reporter, IServiceClientFactory clientFactory, params IServiceRunTarget[] targets)
 {
     _reporter = reporter;
     _clientFactory = clientFactory;
     _targets = targets;
 }
 public void RegisterNotificationCallback(INotificationReporter notificationReporter)
 {
 }
 public void SetReporter(INotificationReporter notificationReporter) => Reporter = notificationReporter;
Exemplo n.º 21
0
 public virtual void RegisterNotificationCallback(INotificationReporter notificationReporter)
 => NotificationManager.Instance.SetReporter(notificationReporter);