다음을 통해 공유


GpioChangeReader 클래스

정의

GPIO(범용 I/O) 핀 값이 변경될 때 고해상도 타임스탬프가 배치되는 커널 모드와 사용자 모드 간의 공유 순환 버퍼를 나타냅니다.

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)

버퍼가 최소 개수 이상의 항목 수로 채워질 때까지 기다립니다. 이때 비동기 작업이 완료됩니다. 이 작업은 취소할 수 있습니다.

적용 대상