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
- Наследование
- Атрибуты
- Реализации
Требования к 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) |
Ожидает, пока буфер заполнится по крайней мере количеством элементов, после чего завершится асинхронное действие. Это действие можно отменить. |