public SprinklerService(ILogger <SprinklerService> logger, GpioSettingsConfiguration gpioSettings, GpioController gpioController, AppState appState)
 {
     _logger         = logger;
     _gpioSettings   = gpioSettings;
     _gpioController = gpioController;
     _appState       = appState;
 }
Beispiel #2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddRazorPages();
            services.AddServerSideBlazor();

            var gpioSettings = new GpioSettingsConfiguration();

            Configuration.Bind("GpioSettings", gpioSettings);
            services.AddSingleton(gpioSettings);

#if Linux
            services.AddSingleton <GpioController>();
#else
            services.AddSingleton <GpioController>(x => new GpioController(PinNumberingScheme.Logical, new GpioDriverMock()));
#endif

            //services.AddEntityFrameworkSqlite().AddDbContext<SprinklerContext>();

            services.AddSingleton <AppState>();
            //services.AddSingleton<GpioService>(x =>
            //    new GpioService(x.GetRequiredService<AppState>(), x.GetRequiredService<SprinklerContext>(), x.GetRequiredService<GpioSettingsConfiguration>())
            //);
            services.AddSingleton <GpioService>();
            services.AddHostedService <BackgroundWaterlevelService>();
            services.AddSingleton <SprinklerService>();
            //services.AddScoped<ISprinklerService, SprinklerService>();
        }
 public BackgroundWaterlevelService(ILogger <BackgroundWaterlevelService> logger, AppState appState, GpioController gpioController, GpioSettingsConfiguration gpioSettings)
 {
     _logger         = logger;
     _appState       = appState;
     _gpioController = gpioController;
     _gpioSettings   = gpioSettings;
 }
        public static int getGpioPin(GpioSettingsConfiguration config, ToggleType toggleType)
        {
            switch (toggleType)
            {
            case ToggleType.WERFER:
                return(config.WerferPin);

            case ToggleType.SPRUEHER:
                return(config.SprueherPin);

            case ToggleType.TROPFER:
                return(config.TropferPin);

            case ToggleType.POWER:
                return(config.PowerPin);

            case ToggleType.PUMP:
                return(config.PumpPin);

            case ToggleType.VALVE:
                return(config.ValvePin);

            case ToggleType.WATERLEVEL:
                return(config.WaterLevelPin);

            case ToggleType.UNKNOWN:
                return(-1);

            default:
                return(-1);
            }
        }
        public GpioService(ILogger <GpioService> logger, AppState appState, GpioSettingsConfiguration gpioSettings, GpioController gpioController)
        {
            _appState = appState;
            _appState.OnToggleGpioAsync += appState_OnToggleGpioAsync;

            //_ctx = sprinklerContext;
            _gpioSettings   = gpioSettings;
            _gpioController = gpioController;
            _logger         = logger;

            setupGpio();
        }