为什么 Honeywell POS4NET 会为两个不同的扫描仪触发相同的事件?

2024-01-21

我想读取两个霍尼韦尔扫描仪的输入,即航行者1202克 and 轨道7190克。对于某些业务需求,需要在同一台计算机上使用这两种设备。Both扫描仪使用 Honeywell POS4NET 驱动程序。

我需要知道,which扫描仪正在传送数据。

The Scanner对象创建如下

// This code is only for illustrating how my application works
// and may therefore be incomplete.

Microsoft.PointOfService.PosExplorer posExp = new PosExplorer(this);
DeviceCollection devices = posExp.GetDevices("Scanner", 
    DeviceCompatibilities.OposAndCompatibilityLevel1);
var listOfScanners =  { Voy1202g ,  Orbit7190g };     // symbolical code

foreach (string device in listOfScanners)
{
    var scanningDevice = posExp.CreateInstance(device) as Microsoft.PointOfService.Scanner;
    if (scanningDevice != null)
    {
        scanningDevice.Claim(1000);
        scanningDevice.DeviceEnabled = true;
        scanningDevice.DataEvent += ScanningDevice_DataEvent;
        scanningDevice.DecodeData = true;
        scanningDevice.DataEventEnabled = true;
        scanningDevice.ErrorEvent += ScanningDevice_ErrorEvent;
    }
}

Problem:在事件处理程序内读取数据时ScanningDevice_DataEvent,我无法再区分它们,因为对于这两种扫描仪,相同的事件被触发,无论哪个扫描仪实际读取条形码。

void ScanningDevice_DataEvent(object sender, DataEventArgs e)
{
    Scanner scanner = (Scanner)sender; // <--- sender is always the last one
                                       //       in listOfScanners, i.e. 
                                       //       Orbit7190g in this case. 
    // Additional code here ...

}

仅当两个扫描仪使用相同的驱动程序时才会出现此问题。如果我使用两个或多个不共享驱动程序的不同扫描仪,它会按预期工作。如果我启动应用程序的 2 个不同实例,每个实例都从一台扫描仪读取数据,情况也会如此。

问题:如何让我的应用程序触发正确的事件?

Remark:对我来说,看起来好像Microsoft.PointOfService保存处理程序的单个实例每个服务对象类型,在这种情况下,总是HHP.PointOfService.ServiceObjects.Scanner.HandHeldScanner。更改事件分配的顺序时, 识别的扫描仪也会发生变化。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Honeywell POS4NET 会为两个不同的扫描仪触发相同的事件? 的相关文章

  • 使用 Html Agility Pack 获取 html 页面上的所有 div id

    如何使用 Html Agility Pack 获取 html 页面上的所有 div id 我正在尝试获取所有 id 并将它们放入一个集合中 p p div class myclass1 div div div div div div div
  • 从服务器下载图像(cUrl,但接受建议)C++

    我试图通过从服务器 网站 下载图像来设置旋转背景图像 并尝试使用curl 来执行此操作 但是在执行此操作方面取得了0 成功 我的代码的 缩短的 版本如下 我没有收到错误 但是 如何 临时 保存该图像以将其显示为背景 是否有图像 类型变量 或
  • 地图类容器的专用功能

    我想要专门为矢量和地图之类的容器设计一个函数模板 对于向量 我可以像下面那样做 但我不知道如何才能有一个专门版本的函数 该函数仅用于像地图这样的容器 include
  • 如何配置 Ninject 来注入 NodaTime IClock

    在我的 NinjectConfigurator 中我有 container Bind
  • 二叉树和快速排序?

    我有一个家庭作业 内容如下 别生气 担心 我是not请你帮我做作业 编写一个程序 通过使用二分查找的快速排序方法对一组数字进行排序 树 推荐的实现是使用递归算法 这是什么意思 到目前为止 这是我的解释 正如我在下面解释的那样 我认为两者都有
  • 为什么 xcode IDE 认为 `friend` 是保留字

    我一直在开发一个个人项目 并在我创建的新类中包含以下代码 property readonly getter isFriend BOOL friend 它似乎没有任何问题 当我构建它时 它可以编译得很好 但是当我们在xcode IDE看起来像
  • 仅使用一个 #include 表达式一次包含多个头文件?

    是否有任何表达式可以使语法一次包含多个标头 而无需为每个新文件编写 include 表达式 例如 include
  • .Net 支持柯里化泛型吗?

    假设我们有一个嵌套的泛型类 public class A
  • 将两个垂直滚动条相互绑定

    我在控件中有两个 TextBox 并且它们都有两个 VerticalScrollBar 我想在它们之间绑定 VerticalScrollBars 如果一个向上 第二个也会向上等等 如果可以的话我该怎么做 Thanks 不是真正的绑定 但它有
  • 将 JavaScript 引擎嵌入到 .NET 中 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 只是想知道是否有人尝试过将任何 js 引擎嵌入并实际集成到 net 环境中 我可以找到并实际使用 经过L
  • 绑定集合的子集

    我有一个ObservableCollection
  • 大小为 k 的非连续子序列的最大值的最小值

    在开始之前 我希望这个问题不是重复的 我发现了几个类似的问题 但它们似乎都没有描述完全相同的问题 但如果它是重复的 我会很高兴看到一个解决方案 即使它与我的算法不同 我一直在尝试回答这个问题 https stackoverflow com
  • 现代编译器的 C++ 中“memset”功能的状态

    Context 不久前 我偶然发现了 Alexandrescu 在 2001 年发表的 DDJ 文章 http www ddj com cpp 184403799 http www ddj com cpp 184403799 它是关于比较将
  • 批量插入,asp.net

    我需要获取与会员相对应的 ID 号列表 在任何给定时间处理的数量可能在 10 到 10 000 之间 我可以毫无问题地收集数据 解析数据并将其加载到 DataTable 或任何内容 C 中 但我想在数据库中执行一些操作 将所有这些数据插入表
  • 如何使用 itextsharp 更改 PDF 公式的按钮图标?

    我目前正在尝试使用 itextsharp 填写预定义的表单 除了添加图像之外 一切正常 这之前已经在 Adob e 的 FDF 工具包中运行过 该工具包已编译为 NET 1 1 这不再适用于 NET 4 0 我改用了 itextsharp
  • 从 SQL 语句中检索元数据(表名)

    我使用的是 Visual Studio 2008 我创建了一个 Winforms 应用程序 并且尝试从 SQL 语句中提取表名 con new SqlConnection connString String queryString Sele
  • ArrayList 有什么问题?

    最近我问了一个关于 SO 的问题 其中提到了可能使用 c ArrayList 来解决问题 有人评论说使用数组列表不好 我想了解更多有关此的信息 我以前从未听说过关于数组列表的这种说法 有人可以带我了解使用数组列表可能出现的性能问题吗 C n
  • 结构大小与 typedef 版本不同?

    我的代码中有以下结构声明和 typedef struct blockHeaderStruct bool allocated unsigned int length typedef struct blockHeaderStruct block
  • 在 C 中运行 setuid 程序的正确方法

    我有一个权限为4750的进程 我的Linux系统中存在两个用户 root 用户和 appz 用户 该进程继承以 appz 用户身份运行的进程管理器的权限 我有两个基本惯例 void do root void int status statu
  • 如何正确处置注入的DLL线程?

    我将一个 DLL 注入到目标进程中 以在玩 MMORPG 时充当助手 当前功能将按键转换为鼠标点击 因为 MMORPG 要求用户移动鼠标才能实现某些功能 这是我所鄙视的 假设我出于某种原因想要取消注入 DLL 我该怎么做呢 这个方法干净吗

随机推荐