Exemple #1
0
        public Task ConfigureService(IHwSettings settings, CancellationToken ct)
        {
            _hwSettings = (RelayHwSettings)settings;
            try
            {
                _relayDevice.Configure(_hwSettings);
                switch (_hwSettings.ActivateOn)
                {
                case Activators.Sunset:
                    _sunsetService.Sunset += OnSunsetActivateEventHandler;
                    break;

                case Activators.TimeOn:
                    break;

                default:
                    _logger.LogError("Relay {Name} activation not configured.", _hwSettings.Name);
                    break;
                }
                _logger.LogDebug("Relay {Name} activating configured for {Event}.", _hwSettings.Name, _hwSettings.ActivateOn);
                return(Task.CompletedTask);
            }
            catch (Exception e)
            {
                return(Task.FromException(e));
            }
        }
Exemple #2
0
 public bool Configure(RelayHwSettings settings)
 {
     _pin = settings.GpioPin;
     // First use of the method initialises GPIO controller with hardware
     _isGpioInitialised = _gpio.Initialise();
     // This sets which output state (high or low) is configured as 'active' state.
     _activeState = settings.ActiveState;
     try
     {
         if (_isGpioInitialised)
         {
             _gpio.OpenPin(settings.GpioPin, _activeState);
             return(true);
         }
         _logger.LogError("GPIO not initialised.");
         return(false);
     }
     catch (Exception e)
     {
         _logger.LogError(e, "Open pin {Pin} failed", _pin);
         return(false);
     }
 }