【问题标题】:Looping through serial port (COM port) in VB.NET and detect the correct port which is used by device通过VB.NET中的串口(COM端口)循环并检测设备使用的正确端口
【发布时间】:2012-11-18 19:34:40
【问题描述】:

好的,让我告诉你我正在使用的软件和应用程序的详细信息:

  • Windows 7 专业版
  • Microsoft Visual Studio Ultimate 2010
  • VB.NET
  • .NET 4.0 框架

我的设备是一个简单的数据传输设备,它获取用户输入的数据,如姓名、年龄、性别,然后传输到PC软件。

我已经拥有C# 中的PC 软件源代码,我是一个VB 人。我在互联网上浏览了许多教程来学习串行端口通信,但我想也许我无法理解逻辑,或者这可能不适合我的项目。所以我需要你们的帮助。

我在互联网上进行了很多搜索,发现很少有资源可以解释我如何与串行端口通信,但这些都不适合我:

  1. COM port made simple with VB.NET
  2. Serial Port Communication in VB.NET
  3. Serial Port Interfacing with VB.net 2010
  4. Serial COM Port Communication

以前的软件用于扫描所有可用的IOPORTS 并评估来自串行端口的传入数据。最后根据这些数据检测设备。

软件设置为BaudRate = 19200DataBits = 8StopBits = StopBits.OneEncoding = Encoding.GetEncoding(1252)DataReceived += new SerialDataReceivedEventHandler(portDataReceived)

但是通过教程我理解了这里指定的术语,但是如何与设备准确通信并检查哪个端口是正确的仍然是一个问题。

所以我的理解是:

  1. 循环通过所有可用的通信端口
  2. 接收他们发送的数据
  3. 然后分析该数据并与源代码的标准数据匹配(提供给我)
  4. 如果识别出正确的端口,则开始从中接收数据。

我需要的是对你们的深入了解,因为我已经搜索和阅读了很长时间,但无法准确地获得我想要的资源。也许我不知道逻辑和主题,所以如果正确的资源仍然可见,我会忽略它。只是我是串口通信的新手。

另外,您可能还需要我提出许多其他问题来帮助我解决这个问题,但我没有提出您。所以请让我知道您需要我提供的所有信息,如果可以的话,我会尽力为您提供。

EDIT-1

我使用了Port Monitoring Software,它给了我这些原始数据,这让我很兴奋......

【问题讨论】:

  • 如果您可以让用户指定设备连接到的端口,这将变得更加容易。否则,你需要依次打开每个端口,等待数据(或发送请求数据的消息然后等待),分析它等等。
  • 从您的屏幕截图中可以看出,该设备正在使用某种二进制协议。您需要获取此协议的规范才能使用此设备。
  • @JonB 好的,但我可以从哪里得到这个协议?我需要与设备制造商联系吗?或者因为我有 C# 中正在运行的软件的源代码,我是否有可能从那里获得有关协议的信息?
  • 如果此 c# 源代码用于与此设备进行通信,那么这可能就是您所需要的。如果没有,那么您需要联系制造商。他们的网站上可能发布了 API 文档。或者它可能是专有的,他们不会给你。
  • @JonB 感谢您的帮助,让我更多地探索源代码...

标签: .net vb.net io serial-port port-scanning


【解决方案1】:

您的建议(打开每个端口并尝试通信)正是您需要做的。

没有标准的方法来做到这一点。这取决于设备。在不知道用于与您的设备通信的协议的情况下,没有人可以告诉您如何执行此操作。串口没有什么特别的……它只是发送和接收数据。协议实现由您决定。

【讨论】:

  • 当你说协议时,我到底需要知道什么?是否需要任何类型的设备知识?
  • @GoldenHeat,是的,你需要知道设备的协议。发送和接收数据的格式是什么。
  • 好吧,我能理解的可能是设备正在传输的数据类型,因为我使用了一个监控软件,它向我展示了这一点....EDIT 1
  • @GoldenHeat,您希望我们为您解码协议吗?我们甚至不知道这是什么设备,没有足够大的数据样本,甚至从您的屏幕截图中也不知道哪一方在发送和接收。对不起,这里没有人会帮助你。我以为您的问题是如何找到连接到串行端口的设备。
  • 是的,请联系制造商并获取协议规范。如果您有他们的源代码,那么只需通读它以找出协议。很有可能,您可以将一个不错的课程直接放入您的项目中。
猜你喜欢
  • 1970-01-01
  • 2012-10-03
  • 1970-01-01
  • 1970-01-01
  • 2014-10-10
  • 1970-01-01
  • 2011-07-17
  • 1970-01-01
  • 2012-08-09
相关资源
最近更新 更多