public void CodeShouldBeGeneratedCorrectly_WithUnitBAndTurnOff()
        {
            var generator = new BrennenstuhlCodeSequenceProvider();
            var sequence = generator.GetSequence(
                BrennenstuhlSystemCode.AllOn,
                BrennenstuhlUnitCode.B,
                RemoteSwitchCommand.TurnOff);

            sequence.Codes.Count.ShouldBeEquivalentTo(1);
            sequence.Codes.First().Value.ShouldBeEquivalentTo(4436U);
        }
        public void CodeShouldBeGeneratedCorrectly_WithUnitCAndTurnOn()
        {
            var generator = new BrennenstuhlCodeSequenceProvider();
            var sequence =
                generator.GetSequence(
                    BrennenstuhlSystemCode.Switch1 | BrennenstuhlSystemCode.Switch3 | BrennenstuhlSystemCode.Switch5,
                    BrennenstuhlUnitCode.C,
                    RemoteSwitchCommand.TurnOn);

            sequence.Codes.Count.ShouldBeEquivalentTo(1);
            sequence.Codes.First().Value.ShouldBeEquivalentTo(1119313U);
        }
Ejemplo n.º 3
0
        private RemoteSwitchController SetupRemoteSwitchController(I2CHardwareBridge i2CHardwareBridge)
        {
            const int LDP433MhzSenderPin = 10;

            var ldp433MHzSender = new LPD433MHzSignalSender(i2CHardwareBridge, LDP433MhzSenderPin, HttpApiController);
            var remoteSwitchController = new RemoteSwitchController(ldp433MHzSender, Timer);
            
            var brennenstuhlCodes = new BrennenstuhlCodeSequenceProvider();
            remoteSwitchController.Register(
                0,
                brennenstuhlCodes.GetSequence(BrennenstuhlSystemCode.AllOn, BrennenstuhlUnitCode.A, RemoteSwitchCommand.TurnOn),
                brennenstuhlCodes.GetSequence(BrennenstuhlSystemCode.AllOn, BrennenstuhlUnitCode.A, RemoteSwitchCommand.TurnOff));

            return remoteSwitchController;
        }
Ejemplo n.º 4
0
            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 void CodeShouldBeGeneratedCorrectly_WithUnitDAndTurnOn()
        {
            var generator = new BrennenstuhlCodeSequenceProvider();
            var sequence =
                generator.GetSequence(
                    BrennenstuhlSystemCode.AllOff,
                    BrennenstuhlUnitCode.D,
                    RemoteSocketCommand.TurnOn);

            sequence.Codes.Count.ShouldBeEquivalentTo(1);
            sequence.Codes.First().Value.ShouldBeEquivalentTo(5592337U);
        }