.NET용 POS의 각 하드웨어 디바이스는 CashDrawer 클래스와 같은 추상 인터페이스와 CashDrawerBasic 같은 Basic 클래스로 표시됩니다. Basic 클래스는 기본 인터페이스에서 파생되며 디바이스에 대한 기본 기능 지원을 포함합니다. .NET용 POS는 디바이스 및 디바이스 통계를 열고 클레임하고 사용하도록 설정하며, 애플리케이션에 대한 이벤트 배달을 관리하는 일반적인 지원을 제공합니다. 또한 각 Basic 클래스에는 서비스 개체에서 구현할 수 있는 상속된 메서드 및 보호된 메서드의 집합이 포함되어 있습니다. 이 항목에서는 완전히 구현된 디바이스 Base 클래스를 활용하는 대신, 디바이스의 Basic 클래스에서 파생되는 서비스 개체에서 사용할 수 있는 Basic 클래스에 관한 요약 정보를 제공합니다.
생성자
각 Basic 클래스에는 클래스의 인스턴스를 만들고 UPOS 버전, 디바이스 범주 및 설치 날짜에 대한 통계를 초기화하는 생성자가 포함됩니다.
공통 속성 및 메서드
각 Basic 클래스는 재정의된 PosCommon 속성 및 메서드 정의를 제공합니다. 이러한 각 속성 및 메서드에 대해 Basic 클래스는 상태 유효성 검사를 처리합니다. 즉, 애플리케이션이 디바이스를 열거나, 클레임하거나, 사용하도록 설정했는지 확인한 다음, 해당 속성 또는 메서드의 .NET 구현을 위해 POS를 호출합니다. PosCommon 클래스에 관한 자세한 내용은 PosCommon을 참조하세요.
서비스 개체는 CommonProperties 클래스를 사용하여 애플리케이션에 대해 읽기 전용으로 지정된 PosCommon 속성을 업데이트하거나 상태 유효성 검사에 대해 신경 쓰지 않고 해당 속성을 업데이트할 수 있습니다.
Dispose 메서드
각 Basic 클래스에는 서비스 개체에서 사용하기 위해 구현된 두 개의 Dispose 메서드가 포함되어 있습니다. 이러한 작동 방식에 관한 자세한 내용은 IDisposable 클래스에 대한 .NET Framework 설명서를 참조하세요.
디바이스 열기, 클레임 및 사용
각 Basic 클래스는 디바이스를 열고, 클레임하고, 사용하도록 설정하기 위한 핵심 기능을 제공합니다. 하지만 일반적으로 서비스 개체는 이러한 메서드를 재정의하여 자체 사용자 지정 처리를 추가하려고 합니다.
서비스 개체 개발자를 위한 보호된 메서드 및 이벤트
각 Basic 클래스에는 서비스 개체 개발자를 위한 메서드 및 이벤트 그룹이 포함됩니다.
아래의 보호된 속성은 다음과 같이 정의됩니다.
- CommonProperties 속성 - 모든 PosCommon 속성에 대한 get 및 set 값을 사용하여 CommonProperties 인스턴스를 반환합니다. 서비스 개체는 CommonProperties를 사용하여 속성이 애플리케이션에 대해 읽기 전용으로 지정되었는지 여부 또는 상태 유효성 검사에 대해 신경 쓰지 않고 속성을 업데이트할 수 있습니다.
- ExternallyClaimed 속성 - 서비스 개체가 검색하여 디바이스의 다른 인스턴스가 클레임되었는지 확인합니다(이 경우 속성은 true로 설정됨).
- ErrorCount 속성. 서비스 개체가 ErrorCount 값을 쿼리할 때 기본 클래스는 이벤트 큐를 확인하고 찾은 ErrorEvent 이벤트 수를 집계한 다음, 해당 집계를 ErrorCount 값으로 반환합니다.
- DataCount 속성. .NET용 POS는 디바이스가 열렸는지 확인한 다음, 디바이스에 대해 현재 큐에 대기 중인 DataEvent 이벤트 수를 반환합니다.
다음과 같은 보호된 메서드가 정의됩니다.
- StateChangedEvent 및 대리자 StateChangedEventHandler(EventArgs 클래스). 서비스 개체는 디바이스의 상태 속성이 변경될 때 알림을 받도록 이러한 개체를 구현할 수 있습니다.
- 디바이스에서 지원하는 각 이벤트 유형에 대한 PreFireEvent 보호된 메서드. 각 기본 클래스는 즉시 반환되는 PreFireEvent의 기본 제네릭 구현을 제공합니다. 애플리케이션에 이벤트가 전송되기 전에 서비스 개체가 그 내부 상태를 업데이트해야 하는 경우, 서비스 개체는 PreFireEvent의 기본 구현을 재정의하고 해당 이벤트 유형에 대한 자체 구현을 제공할 수 있습니다.
- 디바이스에서 지원하는 각 이벤트 유형에 대한 QueueEvent 보호된 메서드. 서비스 개체는 QueueEvent를 호출하여 이벤트 큐에 이벤트를 추가합니다. Basic 클래스는 디바이스가 사용하도록 설정되어 있는지 확인한 다음, 애플리케이션에 배달할 이벤트 큐에 이벤트를 추가합니다. 배달 직전에 Basic 클래스는 적절한 PreFireEvent를 호출하여 내부 상태를 업데이트할 수 있는 기회를 서비스 개체에 제공합니다. PreFireEvent가 반환되면 Basic 클래스는 이벤트를 애플리케이션에 전달합니다.
- QueueEventAndWait 보호된 메서드. 서비스 개체는 QueueEventAndWait을 호출하여 ErrorEvent 이벤트 또는 DirectIOEvent 이벤트를 이벤트 큐에 추가합니다. 이 이벤트로부터 서비스 개체는 애플리케이션의 응답을 예상합니다. Basic 클래스는 디바이스가 사용하도록 설정되어 있는지 확인한 다음, 조건이 올바르면 애플리케이션에 전달할 이벤트를 이벤트 큐에 추가합니다. 배달 직전에 Basic 클래스는 PreFireEvent를 호출하여 내부 상태를 업데이트할 수 있는 기회를 서비스 개체에 제공합니다. PreFireEvent가 반환되면 Basic 클래스는 이벤트를 애플리케이션에 전달합니다.
- 두 부울 값을 사용하는 VerifyState 메서드는 mustBeClaimed 및 mustBeEnabled입니다. 서비스 개체는 메서드 또는 속성 호출 전에 이 메서드의 .NET용 POS 구현을 호출하여 디바이스에 필요한 상태 유효성 검사를 수행할 수 있습니다.
- CreateStatistic 메서드. 서비스 개체는 이러한 메서드를 사용하여 사용자 지정(즉, 제조업체별) 통계를 만들어야 합니다. .NET용 POS는 모든 UPOS 정의 통계의 생성 및 관리를 처리합니다.
- SetStatisticValue 및 IncrementStatistic 메서드를 사용하면 서비스 개체가 재설정 가능으로 정의되지 않은 경우에도 지정된 통계를 업데이트할 수 있습니다(즉, 이러한 메서드는 PosCommonResetStatistic(String) 및 UpdateStatistic(String, Object) 메서드에 의해 적용되는 규칙을 무시함).
- SetStatisticHandlers(String, GetStatistic, SetStatistic) 메서드 - 서비스 개체가 하드웨어 기반 통계의 검색 및 설정에 대한 외부 콜백 함수를 제공할 수 있도록 합니다. get 속성이 정의되지 않은 경우 Basic 클래스는 통계가 소프트웨어 기반이며 해당 값이 통계 XML 파일에서 유지 관리된다고 가정합니다. get 및 set 속성이 모두 정의된 경우 Basic 클래스는 통계를 업데이트하거나 다시 설정해야 할 때마다 이러한 함수를 호출합니다. 하드웨어에서 통계를 업데이트하는 코드를 제공하는 것은 서비스 개체에 달려 있습니다.
- ClearInput 메서드. .NET용 POS는 디바이스에 대한 이벤트 큐를 지운 다음 서비스 개체의 ClearInputImpl 구현을 호출합니다.
- ClearInputImpl 메서드. 서비스 개체는 이 메서드를 구현하여 디바이스에 대한 하드웨어 버퍼를 지워야 합니다.
참고 항목
기타 리소스
.NET