GpioChangeReader 类

定义

表示内核模式和用户模式之间的共享循环缓冲区,当常规用途 I/O (GPIO) 引脚更改值时,高分辨率时间戳将放入其中。

public ref class GpioChangeReader sealed : IClosable
/// [Windows.Foundation.Metadata.Activatable(Windows.Devices.Gpio.IGpioChangeReaderFactory, 196608, "Windows.Devices.DevicesLowLevelContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Devices.DevicesLowLevelContract, 196608)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class GpioChangeReader final : IClosable
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Devices.Gpio.IGpioChangeReaderFactory), 196608, "Windows.Devices.DevicesLowLevelContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Devices.DevicesLowLevelContract), 196608)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class GpioChangeReader : System.IDisposable
function GpioChangeReader(pin, minCapacity)
Public NotInheritable Class GpioChangeReader
Implements IDisposable
继承
Object Platform::Object IInspectable GpioChangeReader
属性
实现

Windows 要求

设备系列
Windows 10 Creators Update (在 10.0.15063.0 中引入)
API contract
Windows.Devices.DevicesLowLevelContract (在 v3.0 中引入)

注解

内核模式在引脚更改值时将时间戳放入缓冲区中,用户模式从缓冲区中删除项。 当缓冲区中不再有足够的空间来放置其他时间戳时,会发生溢出。 溢出时,不会记录其他事件, IsOverflowed 属性将返回 true。

此类不是线程安全的。 从多个线程并发调用此类的函数会产生不可预知的结果。

构造函数

GpioChangeReader(GpioPin)

创建与指定引脚关联的新 GpioChangeReader。 在任何给定时间,只有一个 GpioChangeReader 可以与一个引脚相关联。

GpioChangeReader(GpioPin, Int32)

创建与指定引脚关联的新 GpioChangeReader,并为更改记录创建具有指定最小容量的 GpioChangeReader。 在任何给定时间,只有一个 GpioChangeReader 可以与一个引脚相关联。

属性

Capacity

获取 GpioChangeReader 一次可以存储的最大更改记录数。

IsEmpty

获取读取器中当前是否有零条更改记录。

IsOverflowed

获取尝试将更改记录放入读取器缓冲区是否由于缓冲区已满而失败。

IsStarted

获取 PIN 更改录制当前是否处于活动状态。

Length

获取更改读取器中当前记录数。

Polarity

获取或设置将记录的转换的极性。 仅当引脚更改录制未开始时,极性才能更改。

方法

Clear()

放弃读取器缓冲区中的所有更改记录。

Close()

关闭更改读取器,释放关联的内存缓冲区,并取消读取器与其引脚的关联。

Dispose()

执行与释放或重置非托管资源关联的应用程序定义的任务。

GetAllItems()

删除并返回读取器缓冲区中当前的所有项。

GetNextItem()

从读取器的缓冲区检索并删除最早插入的更改记录。

PeekNextItem()

从读取器的缓冲区中检索以前插入的更改记录,而不将其删除。

Start()

开始记录引脚极性的变化。 仅当更改记录尚未处于活动状态时,才能调用此方法。

Stop()

停止记录引脚极性的变化。 仅当更改记录当前处于活动状态时,才能调用此方法。

WaitForItemsAsync(Int32)

等待缓冲区填充至少 计数 项数,此时异步操作将完成。 此操作可取消。

适用于