public Task ApplyAsync() { _synonymService.TryLoadPersistedSynonyms(); _ccToolsBoardService.RegisterHSPE16InputOnly(InstalledDevice.Input0, new I2CSlaveAddress(42)); _ccToolsBoardService.RegisterHSPE16InputOnly(InstalledDevice.Input1, new I2CSlaveAddress(43)); _ccToolsBoardService.RegisterHSPE16InputOnly(InstalledDevice.Input2, new I2CSlaveAddress(47)); _ccToolsBoardService.RegisterHSPE16InputOnly(InstalledDevice.Input3, new I2CSlaveAddress(45)); _ccToolsBoardService.RegisterHSPE16InputOnly(InstalledDevice.Input4, new I2CSlaveAddress(46)); _ccToolsBoardService.RegisterHSPE16InputOnly(InstalledDevice.Input5, new I2CSlaveAddress(44)); var i2CHardwareBridge = new I2CHardwareBridge(new I2CSlaveAddress(50), _i2CBusService, _schedulerService); _deviceService.AddDevice(i2CHardwareBridge); _remoteSocketService.Sender = new LPD433MHzSignalSender(i2CHardwareBridge, LDP433MhzSenderPin, _apiService); var brennenstuhl = new BrennenstuhlCodeSequenceProvider(); _remoteSocketService.RegisterRemoteSocket(0, brennenstuhl.GetSequencePair(BrennenstuhlSystemCode.AllOn, BrennenstuhlUnitCode.A)); _containerService.GetInstance <BedroomConfiguration>().Apply(); _containerService.GetInstance <OfficeConfiguration>().Apply(); _containerService.GetInstance <UpperBathroomConfiguration>().Apply(); _containerService.GetInstance <ReadingRoomConfiguration>().Apply(); _containerService.GetInstance <ChildrensRoomRoomConfiguration>().Apply(); _containerService.GetInstance <KitchenConfiguration>().Apply(); _containerService.GetInstance <FloorConfiguration>().Apply(); _containerService.GetInstance <LowerBathroomConfiguration>().Apply(); _containerService.GetInstance <StoreroomConfiguration>().Apply(); _containerService.GetInstance <LivingRoomConfiguration>().Apply(); _synonymService.RegisterDefaultComponentStateSynonyms(); var ioBoardsInterruptMonitor = new InterruptMonitor(_pi2GpioService.GetInput(4)); ioBoardsInterruptMonitor.InterruptDetected += (s, e) => _ccToolsBoardService.PollInputBoardStates(); ioBoardsInterruptMonitor.Start(); return(Task.FromResult(0)); }
public Task ApplyAsync() { _ccToolsBoardService.RegisterHSPE16InputOnly(InstalledDevice.Input0.ToString(), new I2CSlaveAddress(42)); _ccToolsBoardService.RegisterHSPE16InputOnly(InstalledDevice.Input1.ToString(), new I2CSlaveAddress(43)); _ccToolsBoardService.RegisterHSPE16InputOnly(InstalledDevice.Input2.ToString(), new I2CSlaveAddress(47)); _ccToolsBoardService.RegisterHSPE16InputOnly(InstalledDevice.Input3.ToString(), new I2CSlaveAddress(45)); _ccToolsBoardService.RegisterHSPE16InputOnly(InstalledDevice.Input4.ToString(), new I2CSlaveAddress(46)); _ccToolsBoardService.RegisterHSPE16InputOnly(InstalledDevice.Input5.ToString(), new I2CSlaveAddress(44)); var i2CHardwareBridge = new I2CHardwareBridge(new I2CSlaveAddress(50), _i2CBusService, _schedulerService); _deviceService.AddDevice(i2CHardwareBridge); _remoteSocketService.Adapter = new I2CHardwareBridgeLdp433MhzBridgeAdapter(i2CHardwareBridge, 10); var codeSequenceProvider = new DipswitchCodeProvider(); _remoteSocketService.RegisterRemoteSocket("OFFICE_0", codeSequenceProvider.GetCodePair(DipswitchSystemCode.AllOn, DipswitchUnitCode.A)); _containerService.GetInstance <BedroomConfiguration>().Apply(); _containerService.GetInstance <OfficeConfiguration>().Apply(); _containerService.GetInstance <UpperBathroomConfiguration>().Apply(); _containerService.GetInstance <ReadingRoomConfiguration>().Apply(); _containerService.GetInstance <ChildrensRoomRoomConfiguration>().Apply(); _containerService.GetInstance <KitchenConfiguration>().Apply(); _containerService.GetInstance <FloorConfiguration>().Apply(); _containerService.GetInstance <LowerBathroomConfiguration>().Apply(); _containerService.GetInstance <StoreroomConfiguration>().Apply(); _containerService.GetInstance <LivingRoomConfiguration>().Apply(); var ioBoardsInterruptMonitor = new InterruptMonitor(_pi2GpioService.GetInput(4), _logService); ioBoardsInterruptMonitor.AddCallback(_ccToolsBoardService.PollInputBoardStates); ioBoardsInterruptMonitor.Start(); return(Task.FromResult(0)); }