GpioChangeReader Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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. |