Example #1
0
        public void Initialize()
        {
            if (IsInitialized)
            {
                throw new InvalidOperationException($"{nameof(WaterSystem)} is already initialized");
            }
            Logger.LogTrace("Initializing..");
            var waterControllerConfigs = new[]
            {
                new { Id = "B01", PinId = BcmPin.Gpio26, LitersPerSecond = 0.01 },
                new { Id = "B02", PinId = BcmPin.Gpio20, LitersPerSecond = 0.01 },
                new { Id = "B03", PinId = BcmPin.Gpio21, LitersPerSecond = 0.01 },
            };

            foreach (var config in waterControllerConfigs)
            {
                IGpioPin pin = GpioPinFactory.CreatePin(config.PinId);
                pin.Write(WaterController.PIN_OFF);
                IWaterController waterController = WaterControllerFactory.CreateWaterController(config.Id, pin, config.LitersPerSecond);

                IdToWaterController.Add(config.Id, waterController);
            }

            IsInitialized = true;
            Logger.LogInformation("Application initialized");
        }
Example #2
0
 public bool TryGet(string id, out IWaterController waterController) => IdToWaterController.TryGetValue(id, out waterController);