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); }
public Thermometer(ComponentId id, IBeerFactoryEventHandler eventHandler, ILoggerFactory loggerFactory) { _eventHandler = eventHandler; Logger = loggerFactory.CreateLogger <Thermometer>(); CurrentState = new ThermometerState { Id = id }; _eventHandler.SubscribeToComponentStateChange <ThermocoupleState>(ThermocoupleStateChangeOccured); }
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 } }); } }
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); }
private void RegisterEvents() { _eventHandler.SubscribeToComponentStateChange <ThermometerState>(ThermometerStateChangeOccured); _eventHandler.SubscribeToComponentStateRequest <PidControllerRequestState>(PidControllerStateRequestOccured); }