我正在开发的应用程序将读取信用卡号,而不会在.net的POS中生成相同的键击。 我可以启用设备,但是当我刷卡时,MSR_Dataevent没有触发。
编辑:我已经完成了以下代码: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 :(得分: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
答案 1 :(得分:0)
在事件处理程序结束时myMSR_DataEvent设置
myMSR.DataEventEnabled = True
我注意到,单步执行我的DataEvent函数会将其设置为false,这就行了。
答案 2 :(得分:0)
Hey Jaynesh我正在解决类似的问题,并且遇到了这个条目,希望你现在已经整理好了,但是当我们遇到类似问题时对我们有用的是以下内容(请原谅以下是C#not not 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作为Scanner POS.NET服务对象类型进行转换,这对我们起作用,因为MSR滑动事件只是一个“扫描”,这也允许我们创建一个具有很多共同点的通用基类我们的应用程序中使用的扫描仪和MSR的功能。
我希望它可以帮助你,或者让下一个人尝试另一件事!