问题标签 [pointofservice]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何在 SPP 模式下为 SocketScan D700 使用 UWP PointOfService API
当我在 SPP 模式下通过蓝牙将 SocketScan D700 与 Windows 10 (1803/17134.286) 台式计算机配对时,条码扫描器会列在设置菜单“蓝牙和其他设备”的“其他设备”中。
根据Terry Warwick的说法,这不应阻止Windows.Devices.PointofService.BarcodeScanner API 与扫描仪配合使用。
但是,示例 UWP 应用在配对后无法认领 D700 条码扫描器。下面的 API 调用也返回一个空值
我现在的问题是,如何使用 PointOfService API 声明 D700 条码扫描器?
来自 SocketScan 的 SocketScan 10 桌面(二进制)应用程序确实可以工作,并且能够“认领”扫描仪并在键盘楔形模式下运行。表明扫描仪本身工作正常。(当然,在测试 UWP 示例应用程序时,我没有运行 socketscan 软件。)
为了将扫描仪设置为 SPP 模式,我 (1) 首先在 PC 和扫描仪本身上取消配对扫描仪。(2) 将扫描仪恢复出厂设置,然后 (3) 扫描 SPP 模式条码#FNB00F40000#,然后 (4) 再次简单地与计算机配对。随后,示例应用程序无法认领扫描仪。
c# - 到达时自动认领 POS 蓝牙条码扫描器
我需要 UWP 应用程序在应用程序启动时声明任何配对的蓝牙扫描仪设备,而且在蓝牙扫描仪电源循环后,或在超出范围后返回范围内。用户甚至不必考虑连接/声明。打开扫描仪设备并运行 UWP 应用程序即可。
我还没有找到任何可靠的方法或事件来自动检测蓝牙扫描仪何时在范围内并“准备好被认领”。(例如,在外出/触手可及或打开或重启蓝牙扫描仪设备之后。)
基本上,这导致了以下代码,其中我的代码不断尝试声明 DeviceWatcher 检测到的任何蓝牙扫描仪。它将这样做,直到它成功。对于 DeviceWatcher 中的任何无人认领的扫描仪,将在计时器上进行认领尝试。此外,我必须使用相当丑陋的 try/catch 构造来防止不成功的 ClaimScannerAsync()调用使应用程序崩溃,因为此方法似乎不会抛出它自己继承的 Exception 类。
这似乎确实有效,但我想知道是否有更好的方法。
有没有更好的方法来检查准备好的蓝牙扫描仪何时在范围内?
请考虑蓝牙条码扫描器的索赔流程。
- 首先在 Windows 设置中配对蓝牙,然后设备将可用并显示为已配对。即使它被关闭。
- 只有在应用程序中实际声明扫描仪后,设备才会显示为已连接。
(我正在粘贴我描述的代码以供参考和其他可能有相同要求的人)
c# - OPOS Bridge for UWP PointOfService 是否支持 OPOS 条码扫描仪
我正在尝试将HP 4430 2d Imaging Barcode Scanner (BW868AA)与使用PointOfService API的 UWP 应用程序一起使用。
条形码扫描仪不在UWP PointOfService 库的官方支持硬件列表中。扫描仪也不支持 USB-HID-POS 模式或 USB-HID-POS 驱动程序。
我的问题是:创作者更新中发布的OPOS Bridge是否支持 OPOS 模式下的条码扫描器?
这段来自Terry Warwick的视频介绍了 OPOS 桥,它增加了对 USB 打印机、钱箱和线路显示器的 OPOS 支持。但我无法判断 OPOS 模式下的条码扫描器是否也应该被这个 OPOS 桥接器检测到。
目前,我们的条码扫描仪使用各种 OPOS 测试实用程序与 OPOS 配合使用。但在 UWP 条形码示例应用程序中未检测到。
c# - 我可以在后台任务中接收来自 BarcodeScanner 的事件吗?
我对 UWP 完全陌生,我正在构建一个需要使用 UWP Point-of-Service API 从条形码扫描仪获取输入的应用程序。我还有一个遗留应用程序需要从扫描仪获取输入作为按键。我的扫描仪(Zebra 2208)似乎不支持在认领/无人认领时自动在 HID POS 和 HID 键盘模式之间切换。
是否可以让我的 UWP 应用在后台运行时从扫描仪接收数据并使用InputInjector
API 将密钥发送到旧版应用程序?如果是这样,怎么做?
c# - UWP BarcodeScanner 预览:CaptureElement 不显示任何预览
我的 CaptureElements 表现出奇怪的行为。当我将实例化的 MediaCapture 设置为 CaptureElements Source 然后调用 MediaCapture.StartPreviewAsync() 时,CaptureElement 不显示任何内容。
我在 LoginPage 上有一个带有功能性 BarcodeScanner 的应用程序(主应用程序)。-> 工作!
然后我想将相同的代码复制到 SettingsPage 并稍作修改,以便在连接多个摄像头的情况下,可以设置默认的一个。-> 不起作用
然后,我尝试借助远程调试器在与我的机器具有相同 Windows 10 版本的其他 Windows 平板电脑上运行主应用程序(请记住,登录屏幕上的 BarcodeScanner 在我的机器上工作)。-> 不起作用
由于这些失败,我将运行代码从主应用程序 LoginPage 复制到一个全新的解决方案(我们称之为测试应用程序),其设置与原始解决方案相同。我什至尝试引用相同的 Dll,实现相同的设计模式等 -> 不起作用
我的机器:Win 10 Pro 版本 1809 Build 17763.652
DevEnv:MS Visual Studio 2019 专业版。16.1.6
编辑:作为最低要求的 Windows 版本,我选择了 Build 16229,我的目标版本是 Build 17763(我的系统 Win 版本)
Widows设置中的“允许应用程序访问您的相机”-选项切换到ON,因此所有应用程序都可以访问相机。
Xaml
代码隐藏
视图模型:
我已经浪费了 4 个工作日来比较解决方案、代码等。上面的代码是从测试应用程序复制的,但它与主应用程序 LoginPage 上的代码基本相同(除了“if (Like_MP_PAT_UWP) {...}”。
欢迎每一个提示。
先感谢您。
c# - 我无法将 pos 打印机添加到 posdm(configuration.xml 或命令行 adddevice)
我无法在配置 XML 中将我的 Pos 打印机添加到 PosDM 并使用命令行添加设备。我对此进行了很多搜索,但一无所获
我试过命令行添加设备,如:
"posdm adddevice SWD\PRINTENUM{9475957E-9973-435B-AF15-4591F5938233} /type:PosPrinter /soname:"EPSON TM-T82 ReceiptSA4"
通过使用这个我得到“没有找到匹配的东西!” 我还在 configuration.xml 中添加了设备的逻辑名称:但是当我使用命令“Posdm listdevices”时,我没有显示我的打印机
c# - WPF C# POS 打印机,从下拉菜单中打开设备
我正在尝试使用 POS 打印机打印一行简单的文本。目前我没有连接实际的 pos 打印机,但我有 microsoft pos 打印机模拟器。
目前我有一个组合框控件,它将列出所有找到的 posprinters。这个想法是,在这个组合框中,我选择我想要的打印机,然后它将使用该打印机打印文本。
获取所有打印机并将它们添加到组合框的代码如下:
然后我有一个按钮控件来打印示例文本行,按钮按下事件的代码如下:
最后 selectedPrinter 对象定义如下:
我在按钮单击事件的 for 循环中得到的错误是打印机 [i] 返回一个 DeviceInfo 对象而不是设备本身。所以我必须取回设备,然后认领它并打开它,我假设。但是我不知道如何获取实际设备并打开它。
提前致谢!
wpf - UWP BarcodeScanner DataRecieved 事件未在 WPF 应用程序中触发
我有一个 WPF 销售点应用程序,我最近将它从 net48 移植到 netcore3.1(真是太棒了!)。在应用程序中,我通过 POS4NET 服务对象 (HHSO4NET.dll) 使用 Honeywell Voyager 1200g 扫描简单的条形码,一切都很好。然而在新的netcore3.1世界里,我再也无法打开设备了。我收到以下错误:-
`Microsoft.Pointofservice.management.Explorer 的类型初始化程序
找不到方法:“无效 System.AppDomainSetup.set_ApplicationBase(System.String)”。
我认为在 dotnet 核心运行时中有一些东西现在在网络框架中不可用。所以,我决定在 UWP 世界中寻找 Windows.Devices.PointOfService 来帮助我集成扫描仪(这是一个受支持的模型)。
为了能够引用这些 UWP 库,我遵循了以下指南,其中描述了添加一些额外的引用
https://blogs.windows.com/windowsdeveloper/2017/01/25/calling-windows-10-apis-desktop-application/
现在我可以找到、认领和打开扫描仪了!但似乎没有处理任何事件。我的代码几乎与 UWP 示例相同:-
在处理程序中有一个断点,我似乎无法命中该事件。我下载了 UWP 示例应用程序并使用同一台机器/扫描仪运行它,它捕获了所有事件并很好地读取了数据,所以我假设扫描仪正在发出事件。它一定与 WPF 应用程序没有以与 UWP 应用程序以某种方式相同的方式获取事件有关。
我在这里缺少什么吗?
c# - 为什么我的扫描仪不在 PosExplorer.GetDevices() 列表中?
LS2208 扫描仪已插入,我通过阅读手册中找到的条形码尝试了下面列出的扫描仪模式。在“USB HID 键盘”和“OPOS(IBM 手持式完全禁用)”模式下,我可以使用扫描仪将条形码读取到文本文档中。
USB HID 键盘
IMB 台式 USB
IBM 手持式 USB
OPOS(IBM 手持式完全禁用)
简单的 COM 端口仿真
我在列表中看到的只是两个扫描仪,即使没有任何东西插入计算机,它们也始终可见:
{ 服务对象名称:Microsoft Scanner Simulator,描述:扫描仪的模拟服务对象,制造商:Microsoft Corporation,类型:扫描仪,服务对象版本:1.14.1.0,UPOS 版本:1.14,兼容性:CompatibilityLevel1,硬件描述:,硬件 ID: , 硬件路径: , 默认值: False}
{服务对象名称:示例扫描仪,逻辑名称:,描述:示例扫描仪的服务对象,制造商:Microsoft Corporation,类型:扫描仪,服务对象版本:1.14.1.0,UPOS 版本:1.14,兼容性:CompatibilityLevel1,硬件描述:,硬件 ID: , 硬件路径: , 默认值: False}
尝试连接到它们中的任何一个都会引发异常:“在调用 Open() 之前,必须由服务对象定义 'DevicePath' 属性的值。”
我假设“Simple COM Port Emulation”模式会模拟串口输入,但扫描仪也没有出现在串口列表中。
c# - PosPrinter PrintMemoryBitmap 抛出非法异常
我正在使用Microsoft.PointOfService
库来控制 Epson POS 收据打印机。我正在尝试在收据上添加徽标,但我似乎无法使该PrintMemoryBitmap(...)
功能正常工作。该PrintBitmap(...)
功能工作得很好,但对于我的应用程序,从内存中打印位图会更有效,而不是将图像保存到文件系统中。
我的代码是:
但是当我运行它时,我收到以下错误:
我已经检查了Illegal
错误代码的含义(这里),并且我已经确认那里列出的所有内容都不是问题。此外,考虑到该PrintBitmap(...)
功能工作得很好,这真的让我很难过。
任何想法或建议将不胜感激!