Exemplo n.º 1
0
        public MainViewModel(PidController[] pidControllers,
                             Thermometer[] thermometers,
                             Ssr[] ssrs,
                             IBeerFactoryEventHandler eventHandler,
                             ILoggerFactory loggerFactory)
        {
            Logger        = loggerFactory.CreateLogger <MainViewModel>();
            _eventHandler = eventHandler;

            Temperature   = (double)thermometers.Single(t => t.Id == ComponentId.HLT).Temperature;
            SetPoint      = (int)pidControllers.Single(t => t.Id == ComponentId.HLT).CurrentState.SetPoint;
            SsrPercentage = (int)ssrs.Single(t => t.Id == ComponentId.HLT).CurrentState.Percentage;

            _eventHandler.SubscribeToComponentStateChange <ThermometerState>(ThermometerStateChangeOccured, ComponentId.HLT, ThreadType.UIThread);
            _eventHandler.SubscribeToComponentStateChange <SsrState>(SsrStateChangeOccured, ComponentId.HLT, ThreadType.UIThread);
            _eventHandler.SubscribeToComponentStateChange <PidControllerState>(PidControllerStateChangeOccured, ComponentId.HLT, ThreadType.UIThread);
        }
Exemplo n.º 2
0
        public Thermometer(ComponentId id,
                           IBeerFactoryEventHandler eventHandler,
                           ILoggerFactory loggerFactory)
        {
            _eventHandler = eventHandler;
            Logger        = loggerFactory.CreateLogger <Thermometer>();

            CurrentState = new ThermometerState {
                Id = id
            };

            _eventHandler.SubscribeToComponentStateChange <ThermocoupleState>(ThermocoupleStateChangeOccured);
        }
Exemplo n.º 3
0
        public FakeArduinoTemperatureControllerService(Thermometer[] thermometers,
                                                       Ssr[] ssrs,
                                                       IBeerFactoryEventHandler eventHandler,
                                                       ILoggerFactory loggerFactory)
        {
            Logger        = loggerFactory.CreateLogger <FakeArduinoTemperatureControllerService>();
            _eventHandler = eventHandler;

            _ssrStateLookup         = ssrs.ToDictionary(ssr => ssr.CurrentState.Id, ssr => ssr.CurrentState);
            _thermometerStateLookup = thermometers.ToDictionary(therm => therm.CurrentState.Id, therm => therm.CurrentState);

            _eventHandler.SubscribeToComponentStateChange <SsrState>(ssrStateChangeOccured);
            _eventHandler.SubscribeToComponentStateChange <ThermometerState>(thermometerStateChangeOccured);

            foreach (var componentId in ComponentHelper.AllComponentIds)
            {
                _eventHandler.ComponentStateChangeFiring(new ComponentStateChange <ThermocoupleState> {
                    CurrentState = new ThermocoupleState {
                        Id          = componentId,
                        Temperature = 70
                    }
                });
            }
        }
Exemplo n.º 4
0
        public Thermometer(ComponentId id,
                           int changeThreshold,
                           int changeWindowInMillis,
                           int changeEventRetentionInMins,
                           IBeerFactoryEventHandler eventHandler,
                           ILoggerFactory loggerFactory)
        {
            _eventHandler = eventHandler;
            Logger        = loggerFactory.CreateLogger <Thermometer>();

            CurrentState = new ThermometerState {
                Id = id
            };

            _changeThreshold      = changeThreshold;
            _changeWindowInMillis = changeWindowInMillis;
            _changeWindowInMillis = changeWindowInMillis;

            _eventHandler.SubscribeToComponentStateChange <ThermocoupleState>(ThermocoupleStateChangeOccured);
        }
Exemplo n.º 5
0
 private void RegisterEvents()
 {
     _eventHandler.SubscribeToComponentStateChange <ThermometerState>(ThermometerStateChangeOccured);
     _eventHandler.SubscribeToComponentStateRequest <PidControllerRequestState>(PidControllerStateRequestOccured);
 }