private void ExecuteOnChange() { var timer = new BlockingTimer(); var observer = new SourceObservation(_fs, timer); observer.WatchForChange(_cmd.SourceFilename, () => { var result = CsRun.Run(_cmd.SourceFilename); ResultEvaluation.Handle(result, _resultLog); }); }
public App() { //TODO: Find out if this is even right for finding the pin var ledPin = (IDigitalPin)Device.Pins.AllPins.Single(x => x.Name == LedPinName); _sleepTimer = new BlockingTimer(TimeSpan.FromMilliseconds(100)); _ledControl = new LedControl(ledPin, _sleepTimer); var lightSensorI2cConfig = new I2cPeripheral.Configuration(LightSensorDeviceAddress, I2cDeviceClockHz); var lightI2cPeripheral = new I2cPeripheral(lightSensorI2cConfig); _lightSensor = new APDS9301_LightSensor(lightI2cPeripheral, APDS9301_LightSensor.MinimumPollingPeriod); }
public void Blocks_while_notification_is_handled() { var sut = new BlockingTimer(50); var i = 0; sut.Start(() => { i++; Thread.Sleep(200); sut.Stop(); }); sut.Wait(); Assert.AreEqual(1, i); }
public void Fires_regularly() { var sut = new BlockingTimer(50); var i = 0; sut.Start(() => { i++; if (i == 3) { sut.Stop(); } }); sut.Wait(); Assert.AreEqual(3, i); }
static void Main() { //Compile with: // dotnet publish ./RaspbianNetCoreDemo -c Release -r linux-arm --self-contained var taskSchedulerUtility = new TaskSchedulerUtility(); var fileUtils = new AsyncFileUtil(); var pinController = new LinuxPinController(fileUtils, taskSchedulerUtility); var ledPin = pinController.GetOrCreateOutputPin(LedPinNumber); BlockingTimer sleepTimer = new BlockingTimer(TimeSpan.FromMilliseconds(100)); LedControl ledControl = new LedControl(ledPin, sleepTimer); //while (true) //{ // ledControl.Blink(); //} var lightSensorDevice = new I2cDevice(I2cDevicePath, LightSensorDeviceAddress); var lightSensor = new APDS9301_LightSensor(lightSensorDevice, APDS9301_LightSensor.MinimumPollingPeriod); while (true) { float currentLuminosity = lightSensor.Luminosity; if (!ledControl.State && currentLuminosity <= OnMinimumLuminosity) { ledControl.Blink(); ledControl.Blink(); ledControl.TurnOnLed(); System.Diagnostics.Debug.WriteLine(currentLuminosity.ToString()); } else if (ledControl.State && currentLuminosity > OnMinimumLuminosity) { ledControl.TurnOffLed(); System.Diagnostics.Debug.WriteLine(currentLuminosity.ToString()); } Thread.Sleep(10); } //TODO: Dispose these somehow // Only care if exception is thrown on startup when the I2C Bus and IO Pins are already setup I guess //lightSensor.Dispose(); //pinController.Dispose(); }
static void Main() { GpioPin led = GpioController.GetDefault().OpenPin(FezPins.GpioPin.D0); led.SetDriveMode(GpioPinDriveMode.Output); BlockingTimer sleepTimer = new BlockingTimer(TimeSpan.FromMilliseconds(100)); LedControl ledControl = new LedControl(led, sleepTimer); int sdaPin = FezPins.GpioPin.A0; int slcPin = FezPins.GpioPin.A1; int lightSensorDeviceAddress = 0x39; I2cConnectionSettings ledDeviceConnectionSettings = new I2cConnectionSettings(lightSensorDeviceAddress, I2cAddressFormat.SevenBit, I2cBusSpeed.StandardMode); I2cControllerSoftwareProvider i2cProvider = new I2cControllerSoftwareProvider(sdaPin, slcPin, false); I2cController i2cController = I2cController.FromProvider(i2cProvider); I2cDevice lightSensorDevice = i2cController.GetDevice(ledDeviceConnectionSettings); var lightSensor = new APDS9301_LightSensor(lightSensorDevice, APDS9301_LightSensor.MinimumPollingPeriod); while (true) { float currentLuminosity = lightSensor.Luminosity; if (!ledControl.State && currentLuminosity <= OnMinimumLuminosity) { ledControl.Blink(); ledControl.Blink(); ledControl.TurnOnLed(); System.Diagnostics.Debug.WriteLine(currentLuminosity.ToString()); } else if (ledControl.State && currentLuminosity > OnMinimumLuminosity) { ledControl.TurnOffLed(); System.Diagnostics.Debug.WriteLine(currentLuminosity.ToString()); } Thread.Sleep(10); } }
public async void Run(IBackgroundTaskInstance taskInstance) { _deferral = taskInstance.GetDeferral(); taskInstance.Canceled += TaskInstance_Canceled; _gpioController = await GpioController.GetDefaultAsync(); _ledPin = _gpioController.OpenPin(LedPinNumber); _ledPin.SetDriveMode(GpioPinDriveMode.Output); var sleepTimer = new BlockingTimer(TimeSpan.FromMilliseconds(100)); _ledController = new LedControl(_ledPin, sleepTimer); var ledDeviceConnectionSettings = new I2cConnectionSettings(LightSensorDeviceAddress); var i2cController = await I2cController.GetDefaultAsync(); var lightSensorDevice = i2cController.GetDevice(ledDeviceConnectionSettings); _lightSensor = new APDS9301_LightSensor(lightSensorDevice, APDS9301_LightSensor.MinimumPollingPeriod); ThreadPoolTimer.CreatePeriodicTimer(Tick, TimeSpan.FromMilliseconds(500)); }
public SourceObservation(Filesystem fs, BlockingTimer tim) { _fs = fs; _tim = tim; }