GpioChangeReader Klasse

Definition

Stellt einen freigegebenen zirkulären Puffer zwischen Kernelmodus und Benutzermodus dar, in den Zeitstempel mit hoher Auflösung platziert werden, wenn ein GPIO-Pinwert (Universelle E/A) geändert wird.

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
Vererbung
Object Platform::Object IInspectable GpioChangeReader
Attribute
Implementiert

Windows-Anforderungen

Gerätefamilie
Windows 10 Creators Update (eingeführt in 10.0.15063.0)
API contract
Windows.Devices.DevicesLowLevelContract (eingeführt in v3.0)

Hinweise

Im Kernelmodus wird ein Zeitstempel in den Puffer eingefügt, wenn ein Pin den Wert ändert, und der Benutzermodus entfernt Elemente aus dem Puffer. Ein Überlauf tritt auf, wenn im Puffer nicht mehr genügend Platz zum Platzieren zusätzlicher Zeitstempel vorhanden ist. Beim Überlauf werden keine weiteren Ereignisse aufgezeichnet, und die IsOverflowed-Eigenschaft gibt true zurück.

Diese Klasse ist nicht threadsicher. Das gleichzeitige Aufrufen von Funktionen dieser Klasse aus mehreren Threads führt zu unvorhersehbaren Ergebnissen.

Konstruktoren

GpioChangeReader(GpioPin)

Erstellt einen neuen GpioChangeReader, der dem angegebenen Pin zugeordnet ist. Einer Pin kann zu einem bestimmten Zeitpunkt nur ein einzelner GpioChangeReader zugeordnet werden.

GpioChangeReader(GpioPin, Int32)

Erstellt einen neuen GpioChangeReader, der dem angegebenen Pin und der angegebenen Mindestkapazität für Änderungsdatensätze zugeordnet ist. Einer Pin kann zu einem bestimmten Zeitpunkt nur ein einzelner GpioChangeReader zugeordnet werden.

Eigenschaften

Capacity

Ruft die maximale Anzahl von Änderungsdatensätzen ab, die der GpioChangeReader gleichzeitig speichern kann.

IsEmpty

Ruft ab, ob derzeit null Änderungsdatensätze im Reader vorhanden sind.

IsOverflowed

Ruft ab, ob beim Versuch, einen Änderungsdatensatz im Puffer des Lesers zu platzieren, ein Fehler aufgetreten ist, weil der Puffer voll ist.

IsStarted

Ruft ab, ob die Pinänderungsaufzeichnung derzeit aktiv ist.

Length

Ruft die Anzahl der Datensätze ab, die sich derzeit im Änderungsleser befindet.

Polarity

Ruft die Polarität von Übergängen ab, die aufgezeichnet werden, oder legt diese fest. Die Polarität kann nur geändert werden, wenn die Pin-Änderungsaufzeichnung nicht gestartet wird.

Methoden

Clear()

Verwirft alle Änderungsdatensätze aus dem Puffer des Lesers.

Close()

Schließt den Änderungsleser, gibt den zugeordneten Speicherpuffer frei und entfernt die Zuordnung des Readers zu seiner Pin.

Dispose()

Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen.

GetAllItems()

Entfernt alle aktuellen Elemente im Puffer des Lesers und gibt diese zurück.

GetNextItem()

Ruft den frühesten eingefügten Änderungsdatensatz ab und entfernt den Puffer des Lesers.

PeekNextItem()

Ruft den zuvor eingefügten Änderungsdatensatz aus dem Puffer des Lesers ab, ohne ihn zu entfernen.

Start()

Beginnt mit der Aufzeichnung von Änderungen in der Pin-Polarität. Diese Methode kann nur aufgerufen werden, wenn die Änderungsaufzeichnung noch nicht aktiv ist.

Stop()

Beenden Sie die Aufzeichnung von Änderungen in der Pin-Polarität. Diese Methode kann nur aufgerufen werden, wenn die Änderungsaufzeichnung derzeit aktiv ist.

WaitForItemsAsync(Int32)

Wartet, bis der Puffer mit mindestens der Anzahl von Elementen gefüllt ist, an dem die asynchrone Aktion abgeschlossen wird. Diese Aktion kann abgebrochen werden.

Gilt für: