public WateringService(RelayX1 relayX1, IInternetOfThingsService internetOfThingsService)
        {
            _relayX1 = relayX1;
            _internetOfThingsService = internetOfThingsService;

            SetupWateringTimer();
        }
        public WateringRulesEngine(
            IMeasurementService measurementService, 
            IWateringService wateringService, 
            IInternetOfThingsService internetOfThingsService)
        {
            _measurementService = measurementService;
            _wateringService = wateringService;
            _internetOfThingsService = internetOfThingsService;

            _timer = new Timer(new TimeSpan(0, 0, 0, 20));
            _timer.Tick += timer_Tick;
        }
        public MeasurementService(
            Moisture moistureSensor, 
            LightSense lightSensor, 
            IInternetOfThingsService internetOfThingsService)
        {
            _moistureSensor = moistureSensor;
            _lightSensor = lightSensor;
            _internetOfThingsService = internetOfThingsService;

            // Measure every second.
            _measurementsTimer = new Timer(new TimeSpan(0, 0, 0, 1));
            _measurementsTimer.Tick += measurementsTimer_Tick;
            _measurementsTimer.Start();
        }
Esempio n. 4
0
        // This method is run when the mainboard is powered up or reset.   
        void ProgramStarted()
        {
            Debug.Print("Program Started");

            //var tinamousService = new TinamousService();
            _tinamousService = new TinamousMqttService();
            //_tinamousService = new NullIoTService();
            _tinamousService.WaterRequested += tinamousService_WaterRequested;

            SetupEthernet();

            _measurementService = new MeasurementService(moisture, lightSense, _tinamousService);

            _wateringService = new WateringService(relayX1, _tinamousService);

            _wateringRulesEngine = new WateringRulesEngine(_measurementService, _wateringService, _tinamousService);
            _wateringRulesEngine.Start();
        }