grovepi/Software/CSharp/Samples/PIRMotionSensor/StartupTask.cs
2025-03-21 16:04:17 +01:00

44 lines
1.5 KiB
C#

using System;
using Windows.ApplicationModel.Background;
using System.Threading.Tasks;
// Add using statements to the GrovePi libraries
using GrovePi;
using GrovePi.Sensors;
namespace PIRMotionSensor
{
public sealed class StartupTask : IBackgroundTask
{
public void Run(IBackgroundTaskInstance taskInstance)
{
// Connect the Sound Sensor to digital port 5
IPIRMotionSensor pirMotion = DeviceFactory.Build.PIRMotionSensor(Pin.DigitalPin5);
// Loop endlessly
while (true)
{
try
{
// Check people motion
if (pirMotion.IsPeopleDetected())
{
System.Diagnostics.Debug.WriteLine("Have people motion");
}
Task.Delay(1000).Wait();
}
catch (Exception ex)
{
// NOTE: There are frequent exceptions of the following:
// WinRT information: Unexpected number of bytes was transferred. Expected: '. Actual: '.
// This appears to be caused by the rapid frequency of writes to the GPIO
// These are being swallowed here/
// If you want to see the exceptions uncomment the following:
// System.Diagnostics.Debug.WriteLine(ex.ToString());
}
}
}
}
}