问题标签 [pos-for-.net]

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.

0 投票
4 回答
30274 浏览

c# - ObjectDisposedException:安全句柄已关闭

所以这是一个很小的问题,但有很大的解释。正如标题所指出的,我收到一个未处理的异常,告诉我我的安全句柄已关闭。我可能需要做的是用越来越多的代码编辑这篇文章几次,以帮助我诊断问题所在。

我正在使用 POS for .NET 为我的 RFID 和 MSR 设备制作服务对象。虽然我的设备是相同的,但我有 2 个不同的虚拟 COM 端口芯片可以与这些设备通信。一个来自 Silicon labs,另一个来自 FTDI。我想使用 POS for .NET 的即插即用功能,所以我给了它我的硬件 ID。因为它是即插即用的,所以我可以使用完整的硬件路径,然后我可以使用对 PInvoke 的调用创建一个 SafeFileHandle,并使用该 SafeFileHandle 创建一个 FileStream。FTDI 芯片不允许我像那样直接与设备通信,所以我必须获取设备的友好名称,然后使用互斥锁来拉出 COM 端口,然后创建一个 SerialPort 实例。这一步效果很好。作为仅供参考,我尝试使用两种芯片的友好名称来获取 COM 端口,而 Silicon Labs 的一个(出于某种奇怪的原因)没有使用 SetupAPI.GetDeviceDetails 使用 Ports GUID 列出。我不确定那个,因为在设备管理器中,Silicon labs Device Class Guid 是端口 GUID。

好吧,由于 SerialPort 和 FileStream 都有一个 Stream 对象,我决定使用它来读取和写入该端口。问题在于,如果我向 MSR 设备发送 RFID 命令,则 MSR 设备不会回复任何内容。因此,如果我使用此代码,int fromReader = ReaderStream.ReadByte();我的线程将被阻止。这是一个阻塞调用,至少需要 1 个字节才能继续。所以我环顾四周,似乎唯一的解决方案是使用单独的线程并设置超时。如果发生超时,则中止线程。

(t.Abort 被 try/catch 包围无济于事,因为它没有解决我删除它的问题)

ReadFromStream 是 RFID 设备中的抽象方法。这是其中一种实现

int fromReader = ReaderStream.ReadByte();被 try/catch 包围。它唯一捕获的就是中止的线程异常,所以我把它拿出来了)

上面的代码是我怀疑问题所在。不过,奇怪的是,我有一个单元测试,我觉得它很好地模仿了 Microsoft 测试应用程序。

(仅供参考 QUADPORT 是 FTDI 芯片组)

当我运行该测试时,我没有收到 SafeFileHandle 异常。事实上测试通过了。

所以我不知道如何追踪这个错误。由于我将在我也在创建的另一个程序中使用此服务对象,因此我可能最终会在该程序中使用此测试中的此代码。但是我觉得微软测试应用程序或多或少是“黄金标准”。真的吗……应该不会吧。但它确实对我的目的有用,所以我觉得这是我的代码问题,而不是他们的问题。

关于如何缩小范围的任何技巧?仅供参考,我尝试使用调试器,但在打开代码中不会发生错误。我还走过了更新状态计时器,它也没有抛出错误。一旦我点击继续,我就会得到异常。我打开了只是我的代码和加载的符号,它告诉我“此模块的调试信息中缺少源信息”

0 投票
2 回答
628 浏览

printing - POS 打印机在 Pos .NET 中不可用

我的 Bixolon SRP-350II 未显示在提供的可用设备列表中

我看到的只是微软的模拟设备。打印机本身可以工作,我可以在上面打印,并使用原始打印发送诸如“剪切”之类的命令。我已经为打印机安装了 OPOS 驱动程序,但没有任何改变。

是否需要做一些进一步的配置?安装 POS.NET、OPOS 驱动程序和 Windows 驱动程序的顺序重要吗?

0 投票
0 回答
726 浏览

c# - 使用 Microsoft PointOfService 命名空间创建 PosExplorer 对象时出现异常

这一直给我一个 System.Typeinitilization 异常。MSDN 说“当调用的方法不受支持,或者尝试读取、查找或写入不支持调用功能的流时,会引发 NotSupportedException 异常。”

那么显然这个类不支持它的默认构造函数?

帮助?

编辑更深入一点,查看详细信息告诉我它内部异常是“此方法显式使用 CAS 策略,该策略已被 .NET Framework 淘汰。出于兼容性原因,为了启用 CAS 策略,请使用 NetFx40_LegacySecurityPolicy 配置开关。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=155570。"}"

我添加了

到我的 app.config 文件,它解决了我的问题,希望它不会导致任何其他问题。

0 投票
2 回答
2395 浏览

c# - PosExplorer().getDevices 找不到我的体重秤

我正在尝试与 USB Scale 连接,但 PosExplorer 似乎没有接上它。当我运行这段代码时,我得到了一堆微软 MSR、扫描仪、钥匙锁模拟器,但我的规模没有被拿起。这里有人知道为什么不吗?

0 投票
1 回答
735 浏览

vb.net - .NET 的 POS 对齐文本

我正在使用 POS for .NET 在我的 POS 应用程序中打印收据。我在格式化收据时遇到问题。我想在同一行应用两个对齐。第一个单词应该左对齐,第二个单词应该右对齐

我在 VB.NET 中尝试过以下代码

但是应用于“数量”的对齐不起作用。两个单词都以左对齐显示。如果我在另一行中使用“数量”,它会起作用。但我需要这两个文本在同一行。

我该怎么做呢

0 投票
1 回答
5822 浏览

c# - 在模拟器而不是打印机上执行打印机的 C# POS 代码

我有 T-20 Espon 打印机,我是初学者,我想打印Hello printer字符串(没有任何效果,我才刚刚开始,所以我只想打印一些东西),我从该代码开始:

但是当我执行代码时,我会弹出这个:

在此处输入图像描述

0 投票
1 回答
6044 浏览

c# - 无法认领 PosPrinter

我有一个 TM-T20 Epson,我正在使用此代码尝试打印:“Hello Printer”消息,并且我一直在跟踪 PosPrinter 的一些特性:

一切正常,我检查了它是否是正确的打印机,它打开并且没有声明,但是当我尝试声明它时,我有以下异常:

即使在示例应用程序文件夹 ( C:\Program Files\Microsoft Point Of Service\SDK\Samples\Sample Application ) 中随Microsoft Point Of Service SDK提供的示例应用程序中,我也可以找到我的打印机,打开它,但是当我声称我有这个错误信息:

示例应用程序的打印屏幕:

在此处输入图像描述

0 投票
3 回答
7940 浏览

c# - 打开钱箱

我需要在我的 WPF 应用程序中打开 Cash Drawer,这是我第一次处理 Cash Drawer,经过一番搜索,我知道我将使用 Microsoft Point of Services。所以我安装了 POSforDotNet V1.14 并开始新项目并添加了参考,我找到了这个例子:

你可以在这里下载我的测试应用程序

我已经尝试过,但它不起作用:(

在 myCashDrawer = explorer.CreateInstance(ObjDevicesInfo); 中给了我错误 线

请可以帮助我,因为我被微软的服务点困住了,我并不完全理解它。

0 投票
1 回答
259 浏览

.net - .NET PosPrinter 的 Pos - 获取 dpi 和/或最大宽度

是否可以通过 PosPrinter 类获取 pos 打印机的 dpi,或以像素为单位的最大宽度,或以 mm 为单位的纸张宽度?我在任何地方都找不到这些属性。谢谢

0 投票
1 回答
416 浏览

c# - 当您使用 Microsoft Point of Serivce & Epson OPOS for.net 申请 PosPrinter 然后计算机意外关闭时会发生什么?

当您使用 Microsoft Point of Serivce & Epson OPOS for.net 申请 PosPrinter 然后计算机意外关闭时会发生什么?你的 PosPrinter 坏了吗?还是图书馆已经管理了这个?