gpt4 book ai didi

串行端口 WIN32 Comm API 的 C#/.NET 包装器

转载 作者:行者123 更新时间:2023-11-30 13:24:35 25 4
gpt4 key购买 nike

我正在寻找一种方法来尽可能多地控制我的 C# 应用程序中的串行端口。问题是我需要与一个没有文档的设备进行通信,除了为控制它而编写的旧 c++ 程序。我尝试使用 SerialPort 类与设备通信,但它的行为很奇怪(我必须重复一些命令,其他一些命令根本不起作用)。我想复制该非托管程序的行为,但是使用 serialport 类似乎是不可能的,因为它不提供对低级函数和结构(例如 DCB)的访问。

是否有任何可用于 .net 的串行通信低级包装器?也许我可以在运行时使用反射来操纵串行端口不可访问的成员?

最佳答案

对于那些建议查看 .NET SerialPort 类的人; Stack Overflow 频繁回答串行相关问题的提供者 Ben Voigt 提供了一些极好的见解,说明为什么围绕 WinAPI 的包装器最终会比使用提供的 SerialPort 框架更好:

Ben Voigt on .NET SerialPort

必读。

他还提到了一个 WinAPI 包装器,他可能会在未来的博客文章中透露。如果发生这种情况,它将回答最初的问题。

此外,似乎至少有一种商业解决方案可提供所需的功能 here .

另一个编辑:

更多在线搜索已产生 this blog post显然是从 .NET 中没有 SerialPort 类的时候开始的……提供的源代码显示了如何为此目的包装 Win32 API。

编辑

一些用户指出上面提到的 MSDN 博文链接已失效。

链接文章的标题是:

Use P/Invoke to Develop a .NET Base Class Library for Serial Device Communications ”,由 John Hind 撰写并于 2002 年 10 月发布,我可以从引用它的另一篇 MSDN 文章中得知:

enter image description here

不幸的是,Microsoft 似乎只提供 2003 年以前的杂志:

https://msdn.microsoft.com/en-us/magazine/msdn-magazine-issues.aspx

FWIW,我找到了一个 half working online version别处……

关于串行端口 WIN32 Comm API 的 C#/.NET 包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3318481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com