The complete StartupTask.cs
program is shown here. In some of the earlier examples, we made some variables local, just to make it clear that they had to be of a particular type. In reality, we want those variables to be global. The final program reflects that, with LED_PIN
, pin
, pinValue
, and timer
declared as private global variables.
There are other code modules in the BlinkyHeadless project, but those are all automatically generated. All we need concern ourselves with is the module StartupTask.cs
:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Http; using Windows.ApplicationModel.Background; using Windows.System.Threading; using Windows.Devices.Gpio; // The Background Application template is documented at http://go.microsoft.com/fwlink/?LinkID=533884&clcid=0x409 namespace BlinkyHeadless { public sealed class StartupTask : IBackgroundTask { BackgroundTaskDeferral _deferral; private const int LED_PIN = 5; private GpioPin pin; private GpioPinValue pinValue; private ThreadPoolTimer timer; public void Run(IBackgroundTaskInstance taskInstance) { _deferral = taskInstance.GetDeferral(); InitGPIO(); timer = ThreadPoolTimer.CreatePeriodicTimer(Timer_Tick, TimeSpan.FromMilliseconds(500)); } private void Timer_Tick(ThreadPoolTimer timer) { if (GpioPinValue.High == pinValue) pinValue = GpioPinValue.Low; else pinValue = GpioPinValue.High; pin.Write(pinValue); } private void InitGPIO() { GpioController gpio = GpioController.GetDefault(); pin = gpio.OpenPin(LED_PIN); pinValue = GpioPinValue.High; pin.Write(pinValue); pin.SetDriveMode(GpioPinDriveMode.Output); } } }
Page last edited July 14, 2016
Text editor powered by tinymce.