gpt4 book ai didi

c++ - 从Windows上的串口读取的时间

转载 作者:可可西里 更新时间:2023-11-01 11:40:14 25 4
gpt4 key购买 nike

我正在尝试在 windows(xp) 机器上通过串口实现一个协议(protocol)。问题在于协议(protocol)中的消息同步是通过消息中的间隙完成的,即发送字节之间的 x 毫秒间隙表示新消息。现在,我不知道是否有可能准确地检测到这个差距。
我正在使用 win32/serport.h api 读取我们服务器的多个线程之一。来自串口的数据被缓冲,所以如果我们的软件有足够的(并且会有足够的)延迟,我将在一个读取序列中从端口缓冲区获取多条消息。

有没有一种从串行端口读取的方法,以便我可以在接收到特定字节时检测到间隙?

最佳答案

如果您想对 Windows 串行端口进行更多控制,则必须编写自己的驱动程序。

我看到的问题是 Windows 可能正在执行其他任务或程序(例如病毒检查),这将导致您的应用程序出现计时问题。您的应用程序不会知道它何时被换出另一个应用程序。

如果可能,我建议你的程序在最后一条消息的结尾加上时间戳。当下一条消息到达时,将采用另一个时间戳。时间戳之间的差异可能有助于检测新消息。

我强烈建议更改协议(protocol),这样时间就不是一个因素。

关于c++ - 从Windows上的串口读取的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2647052/

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