2011-10-11 58 views
0

我正在開發將讀取信用卡號的應用程序,但不會在POS中爲.net生成相同的擊鍵。 我可以啓用設備,但是當我刷卡時MSR_Dataevent沒有發射。POS for .net當我刷卡時,MSR數據事件未被觸發

編輯:我下面的代碼完成:

myMSR = myExplorer.CreateInstance(MsrDevice) 
myMSR.Open() 
myMSR.Claim(60000) 
myMSR.AutoDisable = True 
myMSR.DecodeData = True 
myMSR.TransmitSentinels = False 
myMSR.DataEventEnabled = True 
myMSR.DeviceEnabled = True 
RemoveHandler myMSR.DataEvent, AddressOf myMSR_DataEvent 
AddHandler myMSR.DataEvent, AddressOf myMSR_DataEvent 
AddHandler myMSR.ErrorEvent, AddressOf myMSR_ErrorEvent 
+0

您是否爲您的設備安裝了正確的服務對象(對不起,6年內沒有使用它 - 忘記這是否是需求),並且您是否配置了服務對象以便爲特定端口運行?似乎你可能需要用PosDM或WMI做一些事情 - http://msdn.microsoft.com/en-US/library/dd180830(d=lightweight,v=WinEmbedded.10).aspx - 我很確定串口不是即插即用的。如果你在Windows 7上,你也許需要提升...... –

+0

我不知道你是否仍然需要任何幫助,但如果你是我可以幫助你。 –

回答

0

確保您呼叫device.Open(),device.Claim(),和DataEventEnabled屬性也設置爲true。

 With Me.msrDevice 
      .Open() 
      .Claim(5000) 

      .AutoDisable = True 
      .DecodeData = True 
      .TransmitSentinels = False 
      .DataEventEnabled = True 
      .DeviceEnabled = True 

      AddHandler .DataEvent, AddressOf MSR_DataEvent 
      AddHandler .ErrorEvent, AddressOf MSR_ErrorEvent 
     End With 
+0

感謝您的回覆我已經這樣做了,但它仍然無法正常工作 –

0

在事件處理程序myMSR_DataEvent結束設置

myMSR.DataEventEnabled = True 

我注意到,通過我的DataEvent功能步進它將被設置爲false,而這並獲得成功。

0

嘿Jaynesh我正在通過類似的問題,並遇到此條目,希望你已經整理出來,但是當我們遇到類似問題時,對我們有效的是以下內容(請原諒以下是C#不VB.NET):

var deviceInfo = this.PosExplorer.GetDevice(DeviceType.Scanner, deviceLogicalName); 
this.device = (Scanner)this.PosExplorer.CreateInstance(deviceInfo); 
this.device.Open(); 
this.device.Claim(1000); 
this.device.DeviceEnabled = true; 
this.device.DataEventEnabled = true; 
this.device.DecodeData = true; 
this.device.DataEvent += this.DeviceScanEvent; 
this.device.ErrorEvent += this.DeviceErrorEvent; 

當然的MSR在用於機器和爲設備指定的邏輯名的POS.NET服務對象的配置正確地配置(如掃描儀)被傳遞到該代碼示例中「deviceLogicalName」變量中的代碼。

我們將MSR強制轉換爲掃描程序POS.NET服務對象類型,這對我們很有用,因爲MSR刷卡事件只是一個「掃描」,這也允許我們創建一個通用基類,它有很多用於我們的應用程序的掃描儀和MSR的通用功能。

我希望它可以幫助你,或給下一個人另一個嘗試!