Ejemplo n.º 1
0
        protected async Task TurnOff(TurnOffCommand message)
        {
            byte[] package = PreparePackage(message, nameof(RemoteSocketCommand.TurnOff), out var dipswitchCode);
            var    cmd     = I2cCommand.Create(_I2cAddress, package);
            await MessageBroker.SendToService(cmd);

            await UpdateState(dipswitchCode);
        }
Ejemplo n.º 2
0
        protected async Task TurnOn(TurnOnCommand message)
        {
            byte[] package = PreparePackage(message, nameof(RemoteSocketCommand.TurnOn), out var dipswitchCode);

            Logger.LogInformation($"Sending code {dipswitchCode.Code}");

            var cmd = I2cCommand.Create(_I2cAddress, package);
            await MessageBroker.SendToService(cmd);

            await UpdateState(dipswitchCode);
        }
Ejemplo n.º 3
0
        private void RegisterPinNumber(DiscoverQuery message)
        {
            var pin = message.AsByte(MessageProperties.PinNumber);
            var registrationMessage = new byte[] { 1, pin };

            if (!_state.ContainsKey(pin))
            {
                _state.Add(pin, 0);
            }

            MessageBroker.SendToService(I2cCommand.Create(_i2cAddress, registrationMessage));
        }
Ejemplo n.º 4
0
        protected void Handle(I2cCommand command)
        {
            var address = command.Address;
            var data    = command.Body;

            CheckAddress(address);

            try
            {
                _nativeI2CBus.Write(address, data);
            }
            catch (Exception exception)
            {
                Logger.LogWarning(exception, $"Error while accessing I2C device with address {address}. {exception.Message}");
            }
        }
Ejemplo n.º 5
0
        private async Task SetPortState(int pinNumber, bool state)
        {
            var newState = _driver.GenerateNewState(pinNumber, state);

            try
            {
                await MessageBroker.SendToService(I2cCommand.Create(_i2cAddress, newState));

                _driver.AcceptNewState();
            }
            catch (Exception)
            {
                _driver.RevertNewState();
                throw;
            }

            Logger.LogTrace("Board '" + Uid + "' committed state '" + _driver.GetState().ToBinaryString() + "'.");
        }
Ejemplo n.º 6
0
        protected Task Handle(SendCodeCommand message)
        {
            var commandCode = message.AsUint(MessageProperties.Code);
            var system      = message.AsInt(MessageProperties.System);
            var bits        = message.AsInt(MessageProperties.Bits);
            var repeat      = message.AsInt(MessageProperties.Repeat, DEAFULT_REPEAT);

            var package = new List <byte>
            {
                3,
                (byte)repeat,
                (byte)system,
                (byte)bits
            };

            package.AddRange(BitConverter.GetBytes(commandCode));
            var code = package.ToArray();

            var cmd = I2cCommand.Create(_I2cAddress, package.ToArray());

            return(MessageBroker.SendToService(cmd));
        }
Ejemplo n.º 7
0
 private Task ConfigureDriver()
 {
     return(MessageBroker.SendToService(I2cCommand.Create(_i2cAddress, _driver.Configure(_firstPortWriteMode, _secondPortWriteMode))));
 }