我有以下代码,它使用POS for .NET查找MSR设备,并返回与我的设备名称匹配的实例。然后,即使MSR设备未连接到计算机,我也会打开并声明成功找到的实例。怎么可能呢?有没有办法知道该设备是否在打开并声明它之前是否完全连接?在未连接设备时,我不会在调用Open()或Claim()时收到异常或任何异常。非常感谢任何指导。
PosExplorer explorer = new PosExplorer();
var devices = explorer.GetDevices(DeviceType.Msr);
foreach (DeviceInfo deviceInfo in devices)
{
if (deviceInfo.ServiceObjectName.ToLower() == deviceName.ToLower())
{
PosDevice posDevice = explorer.CreateInstance(deviceInfo);
if (posDevice is PosCommon)
{
posCommon = posDevice as PosCommon;
_log.Debug(string.Format("Instance of device {0} created.", deviceName));
break;
}
}
}
答案 0 :(得分:0)
如果设备支持电源报告,您可以查看StatusPowerOff
以查看设备是否已关闭或连接到终端(请参阅Microsoft Docs)
PosCommon.StatusPowerOff:表示设备的电源已关闭或已从终端分离。
您还需要首先检查CapPowerReporting
以查看该设备是否支持电源报告。
以下内容可能有所帮助(来自MSR Docs)
StatusPowerOffline
:表示设备已开机但尚未就绪或无法响应请求StatusPowerOffOffline
:表示设备的电源已关闭或处于脱机状态StatusPowerOnline
:表示设备的电源已打开且可以使用。