2014-01-30 58 views
0

我有以下代碼查找使用POS for .NET的MSR設備,並返回與我的設備名稱匹配的實例。然後,我打開並聲明即使MSR設備未連接到計算機也能成功找到的實例。這怎麼可能?有沒有辦法在打開並聲明它之前知道設備是否被連接?當設備未連接時,我不會在調用Open()或Claim()時發生異常或任何事情。任何指導非常感謝。POS for .NET - MSR設備未連接,但找到,打開並聲明成功

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

如果設備支持電源報告,您可以檢查StatusPowerOff,看看如果設備斷電或連接到終端(見Microsoft Docs

PosCommon.StatusPowerOff:表示該設備的電源被關閉或者從終端分離。

您還需要首先檢查CapPowerReporting以查看設備是否支持電源報告。

還有以下,可以幫助(從MSR Docs

  • StatusPowerOffline:表示該設備上電,但尚未準備就緒或無法對請求
  • StatusPowerOffOffline迴應:表示設備的電源已關閉或處於脫機狀態
  • StatusPowerOnline:表示設備的電源已打開並且可以使用。