【问题标题】:'ignore' DTR on serial connection'忽略'串行连接上的 DTR
【发布时间】:2020-08-31 18:50:48
【问题描述】:

我正在开发 .NET core 3.0 windows / linux 应用程序,它使用串行端口与多种类型的打印机(财政打印机)进行通信。它适用于多种设备,但其中一个设备的驱动程序没有实现DTR 功能。

因此,如果我在 C 中编写一个根本没有设置 DTR 的代码,则应用程序可以工作,但如果我从 .NET Core 打开串行连接,框架会将 DTR 设置为 false,然后出现错误:“设备在 set_DtrEnable 方法中附加到系统不起作用”。

有什么方法可以在 .NET Core 中打开一个串行端口并保留该设置吗?关于如何克服这个问题的任何想法?编写一个小型 C 应用程序并通过它运行所有通信总是有一种 hack/slash 方法,但这似乎是用霰弹枪来寻找蚊子。

[edit:] 设备有一个内置的 USB 转串口适配器,这会导致问题。

【问题讨论】:

    标签: .net-core serial-port


    【解决方案1】:

    可以考虑以下措施。

    1. 通知设备供应商并纠正设备驱动程序。

    2. 如果可以用try catch捕捉到错误,并且在错误发生后继续使用其他函数,则忽略该错误。

    3. 排除对此类打印机/设备驱动程序的支持。

    【讨论】:

    • 感谢您的意见。我们将尝试与供应商一起解决。至于错误捕获,我无能为力,因为它在打开端口时崩溃并且端口保持关闭状态。目前,排除支持并不是一个真正的选择,主要是出于商业原因。
    猜你喜欢
    • 1970-01-01
    • 2018-09-15
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2018-01-17
    相关资源
    最近更新 更多