private async void ReadySet() { Status.Text = "Initialize Shield Components..."; await shield.BeginAsync(); Status.Text += "\nShield Ready!"; UpdateScreen(); GoButton.IsEnabled = true; if (GpioPinValue.Low == shield.BlueLedPin.Read()) { BlueLED.Fill = new SolidColorBrush(Colors.Black); } else { BlueLED.Fill = new SolidColorBrush(Colors.DarkCyan); } BlueLedButton.IsEnabled = true; if (GpioPinValue.Low == shield.GreenLedPin.Read()) { GreenLED.Fill = new SolidColorBrush(Colors.Black); } else { GreenLED.Fill = new SolidColorBrush(Colors.DarkSeaGreen); } GreenLedButton.IsEnabled = true; }
public async void Run(IBackgroundTaskInstance taskInstance) { // Ensure our background task remains running taskDeferral = taskInstance.GetDeferral(); // Mutex will be used to ensure only one thread at a time is talking to the shield / isolated storage mutex = new Mutex(false, mutexId); // Initialize ConnectTheDots Settings localSettings.ServicebusNamespace = "iotbuildlab-ns"; localSettings.EventHubName = "ehdevices"; localSettings.KeyName = "D1"; localSettings.Key = "iQFNbyWTYRBwypMtPmpfJVz+NBgR32YHrQC0ZSvId20="; localSettings.DisplayName = GetHostName(); localSettings.Organization = "IoT Build Lab"; localSettings.Location = "USA"; SaveSettings(); // Initialize WeatherShield await shield.BeginAsync(); // Create a timer-initiated ThreadPool task to read data from I2C i2cTimer = ThreadPoolTimer.CreatePeriodicTimer(PopulateWeatherData, TimeSpan.FromSeconds(i2cReadIntervalSeconds)); // Start the server server = new HttpServer(port); var asyncAction = ThreadPool.RunAsync((w) => { server.StartServer(shield, weatherData); }); // Task cancellation handler, release our deferral there taskInstance.Canceled += OnCanceled; // Create a timer-initiated ThreadPool task to renew SAS token regularly SasTokenRenewTimer = ThreadPoolTimer.CreatePeriodicTimer(RenewSasToken, TimeSpan.FromMinutes(15)); }
public async void Run(IBackgroundTaskInstance taskInstance) { // Ensure our background task remains running taskDeferral = taskInstance.GetDeferral(); // Mutex will be used to ensure only one thread at a time is talking to the shield / isolated storage mutex = new Mutex(false, mutexId); // Initialize ConnectTheDots Settings localSettings.ServicebusNamespace = "YOURSERVICEBUS-ns"; localSettings.EventHubName = "ehdevices"; localSettings.KeyName = "D1"; localSettings.Key = "YOUR_KEY"; localSettings.DisplayName = "YOUR_DEVICE_NAME"; localSettings.Organization = "YOUR_ORGANIZATION_OR_SELF"; localSettings.Location = "YOUR_LOCATION"; SaveSettings(); // Initialize WeatherShield await shield.BeginAsync(); // Create a timer-initiated ThreadPool task to read data from I2C i2cTimer = ThreadPoolTimer.CreatePeriodicTimer(PopulateWeatherData, TimeSpan.FromSeconds(i2cReadIntervalSeconds)); // Start the server server = new HttpServer(port); var asyncAction = ThreadPool.RunAsync((w) => { server.StartServer(shield, weatherData); }); // Task cancellation handler, release our deferral there taskInstance.Canceled += OnCanceled; // Create a timer-initiated ThreadPool task to renew SAS token regularly SASTokenRenewTimer = ThreadPoolTimer.CreatePeriodicTimer(RenewSASToken, TimeSpan.FromMinutes(15)); }
public async void Run(IBackgroundTaskInstance taskInstance) { // Ensure our background task remains running taskDeferral = taskInstance.GetDeferral(); // Mutex will be used to ensure only one thread at a time is talking to the shield / isolated storage mutex = new Mutex(false, mutexId); // Initialize WeatherShield await shield.BeginAsync(); //Initialise the MCP3008 ADC Chip mcp3008.Initialize(); //Initialise an attached web cam ready to take an image await webcam.InitialiseCamerAsync(); // Create a timer-initiated ThreadPool task to read data from I2C i2cTimer = ThreadPoolTimer.CreatePeriodicTimer(PopulateWeatherData, TimeSpan.FromSeconds(i2cReadIntervalSeconds)); //Create a timer-initiated ThreadPool task to read data from the interrupt handler counting the wind instrument activity windInterruptSample = ThreadPoolTimer.CreatePeriodicTimer(MeasureWindEventData, TimeSpan.FromSeconds(windInterruptSampleInterval)); //Create a timer driven thread pool task to take a photo. pictureTimer = ThreadPoolTimer.CreatePeriodicTimer(TakePhoto, TimeSpan.FromSeconds(pictureTimerSeconds)); // Task cancellation handler, release our deferral there taskInstance.Canceled += OnCanceled; //Create the interrupt handler listening to the wind speed pin (13). Triggers the GpioPin.ValueChanged event on that pin //connected to the anemometer. shield.WindSpeedPin.ValueChanged += WindSpeedPin_ValueChanged; //Create the interrupt handler listening to the rain guage pin (26). Triggers the Gpio.ValueChanged event on that pin //connected to the rain guage. shield.RainPin.ValueChanged += RainPin_ValueChanged; }