0

我正在开发应用程序,该应用程序将读取信用卡号,而不会在 .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
4

3 回答 3

0

At the end of your event handler myMSR_DataEvent set

myMSR.DataEventEnabled = True

I noticed that stepping through my DataEvent function it will be set to false, and this did the trick.

于 2012-04-17T17:44:27.063 回答
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;

当然,在机器的 POS.NET 服务对象配置中正确配置了 MSR(作为扫描程序),并且您为设备指定的逻辑名称正在代码示例中的“deviceLogicalName”变量中传递到此代码中。

我们将 MSR 转换为 Scanner POS.NET 服务对象类型,这对我们有用,因为 MSR 滑动事件只是一个“扫描”,这也允许我们创建一个通用基类,它对两者都有很多共同的功能我们的应用程序中使用的扫描仪和 MSR。

我希望它可以帮助你,或者给下一个人另一个尝试!

于 2014-02-14T00:36:49.153 回答
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
于 2011-10-11T12:32:15.333 回答