【发布时间】:2012-11-18 19:34:40
【问题描述】:
好的,让我告诉你我正在使用的软件和应用程序的详细信息:
- Windows 7 专业版
- Microsoft Visual Studio Ultimate 2010
- VB.NET
- .NET 4.0 框架
我的设备是一个简单的数据传输设备,它获取用户输入的数据,如姓名、年龄、性别,然后传输到PC软件。
我已经拥有C# 中的PC 软件源代码,我是一个VB 人。我在互联网上浏览了许多教程来学习串行端口通信,但我想也许我无法理解逻辑,或者这可能不适合我的项目。所以我需要你们的帮助。
我在互联网上进行了很多搜索,发现很少有资源可以解释我如何与串行端口通信,但这些都不适合我:
- COM port made simple with VB.NET
- Serial Port Communication in VB.NET
- Serial Port Interfacing with VB.net 2010
- Serial COM Port Communication
以前的软件用于扫描所有可用的IOPORTS 并评估来自串行端口的传入数据。最后根据这些数据检测设备。
软件设置为BaudRate = 19200DataBits = 8StopBits = StopBits.OneEncoding = Encoding.GetEncoding(1252)DataReceived += new SerialDataReceivedEventHandler(portDataReceived)
但是通过教程我理解了这里指定的术语,但是如何与设备准确通信并检查哪个端口是正确的仍然是一个问题。
所以我的理解是:
- 循环通过所有可用的通信端口
- 接收他们发送的数据
- 然后分析该数据并与源代码的标准数据匹配(提供给我)
- 如果识别出正确的端口,则开始从中接收数据。
我需要的是对你们的深入了解,因为我已经搜索和阅读了很长时间,但无法准确地获得我想要的资源。也许我不知道逻辑和主题,所以如果正确的资源仍然可见,我会忽略它。只是我是串口通信的新手。
另外,您可能还需要我提出许多其他问题来帮助我解决这个问题,但我没有提出您。所以请让我知道您需要我提供的所有信息,如果可以的话,我会尽力为您提供。
EDIT-1
我使用了Port Monitoring Software,它给了我这些原始数据,这让我很兴奋......
【问题讨论】:
-
如果您可以让用户指定设备连接到的端口,这将变得更加容易。否则,你需要依次打开每个端口,等待数据(或发送请求数据的消息然后等待),分析它等等。
-
从您的屏幕截图中可以看出,该设备正在使用某种二进制协议。您需要获取此协议的规范才能使用此设备。
-
@JonB 好的,但我可以从哪里得到这个协议?我需要与设备制造商联系吗?或者因为我有 C# 中正在运行的软件的源代码,我是否有可能从那里获得有关协议的信息?
-
如果此 c# 源代码用于与此设备进行通信,那么这可能就是您所需要的。如果没有,那么您需要联系制造商。他们的网站上可能发布了 API 文档。或者它可能是专有的,他们不会给你。
-
@JonB 感谢您的帮助,让我更多地探索源代码...
标签: .net vb.net io serial-port port-scanning