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 は 1 つだけです。 |
GpioChangeReader(GpioPin, Int32) |
指定したピンに関連付けられた新しい GpioChangeReader を作成し、変更レコードの最小容量を指定します。 特定の時点でピンに関連付けられる GpioChangeReader は 1 つだけです。 |
プロパティ
Capacity |
GpioChangeReader が一度に格納できる変更レコードの最大数を取得します。 |
IsEmpty |
リーダーに現在 0 個の変更レコードがあるかどうかを取得します。 |
IsOverflowed |
バッファーがいっぱいであるために、リーダーのバッファーに変更レコードを配置しようとして失敗したかどうかを取得します。 |
IsStarted |
ピン変更の記録が現在アクティブかどうかを取得します。 |
Length |
変更リーダーに現在存在するレコードの数を取得します。 |
Polarity |
記録される遷移の極性を取得または設定します。 極性は、ピン交換記録が開始されていない場合にのみ変更できます。 |
メソッド
Clear() |
リーダーのバッファーからすべての変更レコードを破棄します。 |
Close() |
変更リーダーを閉じ、関連付けられているメモリ バッファーを解放し、リーダーをピンから関連付け解除します。 |
Dispose() |
アンマネージ リソースの解放またはリセットに関連付けられているアプリケーション定義のタスクを実行します。 |
GetAllItems() |
リーダーのバッファー内の現在のすべての項目を削除して返します。 |
GetNextItem() |
挿入された最も古い変更レコードを取得し、リーダーのバッファーから削除します。 |
PeekNextItem() |
以前に挿入された変更レコードを削除せずに、リーダーのバッファーから取得します。 |
Start() |
ピンの極性の変化の記録を開始します。 このメソッドは、変更記録がまだアクティブでない場合にのみ呼び出されます。 |
Stop() |
ピンの極性の変更の記録を停止します。 このメソッドは、変更記録が現在アクティブな場合にのみ呼び出されます。 |
WaitForItemsAsync(Int32) |
バッファーが少なくとも 項目数 を入力するまで待機します。この時点で非同期アクションが完了します。 このアクションは取り消し可能です。 |