Поделиться через


GpioChangeReader Класс

Определение

Представляет общий циклический буфер между режимами ядра и пользовательскими режимами, в который помещаются метки времени с высоким разрешением при изменении значения закрепления ввода-вывода общего назначения (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 может быть связан с закреплением в любой момент времени.

Свойства

Capacity

Возвращает максимальное количество записей изменений, которые может хранить GpioChangeReader одновременно.

IsEmpty

Возвращает значение, указывая, нет ли в данный момент записей изменений в средстве чтения.

IsOverflowed

Возвращает значение, указываемое на то, что попытка поместить запись изменения в буфер читателя завершилась сбоем из-за заполнения буфера.

IsStarted

Возвращает значение, указывая, активна ли запись изменений закрепления в данный момент.

Length

Возвращает количество записей, которые в настоящее время находятся в средстве чтения изменений.

Polarity

Возвращает или задает полярность записываемых переходов. Полярность может быть изменена только в том случае, если запись изменений закрепления не запущена.

Методы

Clear()

Удаляет все записи изменений из буфера читателя.

Close()

Закрывает средство чтения изменений, освобождая связанный буфер памяти и отменяя связь средства чтения с его закреплением.

Dispose()

Выполняет определяемые приложением задачи, связанные с удалением, высвобождением или сбросом неуправляемых ресурсов.

GetAllItems()

Удаляет и возвращает все элементы, текущие в буфере читателя.

GetNextItem()

Извлекает и удаляет наиболее раннюю вставленную запись изменения из буфера средства чтения.

PeekNextItem()

Извлекает ранее вставленную запись изменения из буфера средства чтения, не удаляя ее.

Start()

Начинает запись изменений полярности контактов. Этот метод можно вызывать только в том случае, если запись изменений еще не активна.

Stop()

Остановите запись изменений полярности контактов. Этот метод можно вызывать только в том случае, если запись изменений активна в данный момент.

WaitForItemsAsync(Int32)

Ожидает, пока буфер заполнится по крайней мере количеством элементов, после чего завершится асинхронное действие. Это действие можно отменить.

Применяется к