.NET용 POS는 Windows Embedded 플러그 앤 플레이 기술을 완벽하게 지원합니다. 이 기능을 활용하기 위해 서비스 개체 개발자는 코드에 하나 이상의 HardwareId 특성을 추가하거나 플러그 앤 플레이 XML 구성 파일에 하드웨어 참조를 포함할 수 있습니다.
서비스 개체에 이 특성을 추가하면 애플리케이션 개발자가 서비스 개체 목록을 가져오는 데 사용할 PosExplorer 때 해당 목록의 모든 서비스 개체가 작동하는 POS 디바이스와 연결된다는 사실을 알게 됩니다. 애플리케이션은 더 높은 안정성과 사용 편의성을 통해 이 연결에서 직접 이점을 얻을 수 있습니다. 서비스 개체는 가능한 한 플러그 앤 플레이 기능을 지원하는 것이 좋습니다.
플러그 앤 플레이 동작
서비스 개체가 POS 디바이스의 하드웨어 ID와 연결되면 .NET용 POS는 Windows 플러그 앤 플레이 관리자를 사용하여 컴퓨터에 연결된 POS 디바이스를 결정합니다. 애플리케이션 또는 서비스 개체에는 추가 코드가 필요하지 않습니다.
애플리케이션이 PosExplorer.GetDevices 메서드를 호출하면 PosExplorer 는 각 플러그 앤 플레이 서비스 개체와 연결된 디바이스를 찾은 다음 Windows 플러그 앤 플레이 관리자를 쿼리하여 디바이스의 상태를 확인합니다. 디바이스를 사용할 수 없는 경우 PosExplorer.GetDevices에서 애플리케이션으로 반환되는 디바이스 목록에 추가되지 않습니다.
PosExplorer 서비스 개체 필터링
PosExplorer 는 애플리케이션이 PosExplorer.GetDevices를 호출할 때 플러그 앤 플레이 서비스 개체 목록을 효과적으로 필터링할 수 있습니다. 필터링 프로세스는 다음과 같이 작동합니다.
- 지정된 POS에서 .NET 디렉터리에 대한 모든 어셈블리를 검색합니다.
- 어셈블리가 PosAssembly 전역 특성으로 표시되지 않으면 삭제합니다.
-
ServiceObject특성으로 표시된 클래스를 검색합니다. 이러한 각 클래스에 대해 다음을 수행합니다.- 이 클래스와 연결된 하드웨어 ID를 특성 또는
HardwareId플러그 앤 플레이 XML 구성 파일 내에서 찾습니다. 하드웨어 ID가 없으면 서비스 개체를 PosExplorer 목록에 남겨 둡니다. - 하드웨어 ID가 있는 경우 Windows를 쿼리하여 디바이스의 상태를 검색합니다. 디바이스가 컴퓨터에 연결된 경우 PosExplorer 목록에 둡니다.
- 디바이스가 컴퓨터에 연결되지 않은 경우 PosExplorer 목록에서 제거합니다.
- 이 클래스와 연결된 하드웨어 ID를 특성 또는
예시
다음 코드 예제에서는 플러그 앤 플레이 이벤트를 처리하는 간단한 방법을 보여 줍니다. PosExplorer에서 생성된 정보는 올바른 디바이스(이 경우 MSR(마그네틱 스트라이프 판독기)를 인스턴스화하는 데 사용됩니다.
// Connect the Plug and Play events to detect the removal or
// connection of a new device.
explorer.DeviceAddedEvent += new
DeviceChangedEventHandler(explorer_DeviceAddedEvent);
explorer.DeviceRemovedEvent += new
DeviceChangedEventHandler(explorer_DeviceRemovedEvent);
// This event handler extends Plug and Play functionality to the MSR
// device type. A message is printed to the console if the connection
// is successful.
void explorer_DeviceAddedEvent(object sender, DeviceChangedEventArgs e)
{
// Checks if the newly added device is an MSR.
if (e.Device.Type == DeviceType.Msr)
{
// Checks if an MSR instance has already been created and,
// if not,creates one. If a new MSR instance is created, its
// name is recorded in a string and written to the console.
// Once the printing is finished, the MSR is closed.
if (msr == null)
{
CreateMsr(e.Device);
strMsrConfig = e.Device.ServiceObjectName;
Console.WriteLine(strMsrConfig);
// It is important that applications close all open
// Service Objects before terminating.
msr.Close();
}
}
}
또한 참조하십시오
업무
Reference
개념들
기타 리소스
.NET