IM编写应用程序,用于使用我设计的电子设备通信(通过串行端口)。

当我的PC应用程序开始时 - 它会逐个打开可用的COM端口,它发送一些字符串(“您是什么?”例如)。

我的设备被编程,以回复自己的ID的“魔法问题”(例如:“我是监督员工的邪恶设备”)。

当我的PC软件接收“Magic Reply”时,它开始正常工作,并且它不再搜索其他端口。 当然,我没有在数据传输中使用愚蠢的问题,它只是例子。

问题是 - 我可以发出像所有(不忙)端口的字符串吗?发现我的设备?

如果我可以 - 如何看看“问题”字符串应该看?是否有任何规范化标准?

这不是我的桌子上的第一个项目,但现在我正在为小行业开发解决方案,我需要更多地关注我的应用程序所做的事情,因为可能有其他设备连接到COM端口,我不知道他们如何反应。

我很抱歉,如果我做了一些语言错误,英语是我的第三语言。

提前感谢回复。

有帮助吗?

解决方案

no,你不想这样做。


当您使用COM串行端口时,您不知道插入端口的内容。它没有什么,你的设备,调制解调器,鼠标(虽然我相信没有人使用这个......)或者你甚至无法想象的任何东西。

想象如果它连接到另一台计算机(可能是Linux /路由器),则发送事物可能导致执行“该命令”,从而创建意外效果(虽然程序可能未注意到)。或者如果是一些严格编程的设备,它可能会触发固件中的错误,因此失败了设备并使其发生故障。

简而言之,在最坏的情况下,你可以导致灾难性事件


串行(RS232或UART I假设)通信没有指定的传输协议(与USB对比有一个)来识别设备,因此它不会是故障安全的。用户必须确保他选择了正确的端口。这可能是硬件制造商选择USB的原因之一,也是USB如此受欢迎的原因之一,甚至是计算机白痴。

其他提示

在Alvin Wong证实我的担忧后,我再次考虑并重新设计了我的设备发现功能,因为我不想放弃那个想法。

我将每1-5秒从设备发送唯一复杂的ID。

当我的电脑启动时 - 它将尝试顺序打开所有可用端口,并将收听该ID几秒钟。

如果应用程序接收该ID - 它将是确认,那个端口号/名称是正确的,我的连接是建立的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top