GpioChangeReader 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示内核模式和用户模式之间的共享循环缓冲区,当常规用途 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
- 继承
- 属性
- 实现
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) |
等待缓冲区填充至少 计数 项数,此时异步操作将完成。 此操作可取消。 |
适用于
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈