using System; using Unosquare.RaspberryIO.Abstractions; namespace Unosquare.WiringPi { /// <summary> /// Provides access to timing and threading properties and methods. /// </summary> public class Timing : ITiming { /// <inheritdoc /> /// <summary> /// This returns a number representing the number of milliseconds since your program /// initialized the GPIO controller. /// It returns an unsigned 32-bit number which wraps after 49 days. /// </summary> public UInt32 Milliseconds => Native.WiringPi.Millis(); /// <inheritdoc /> /// <summary> /// This returns a number representing the number of microseconds since your /// program initialized the GPIO controller /// It returns an unsigned 32-bit number which wraps after approximately 71 minutes. /// </summary> public UInt32 Microseconds => Native.WiringPi.Micros(); /// <inheritdoc cref="ITiming.SleepMilliseconds(UInt32)" /> public static void Sleep(UInt32 millis) => Native.WiringPi.Delay(millis); /// <inheritdoc /> public void SleepMilliseconds(UInt32 millis) => Sleep(millis); /// <inheritdoc /> public void SleepMicroseconds(UInt32 micros) => Native.WiringPi.DelayMicroseconds(micros); } }