c - Linux 串行端口 (tty) 重定向

标签 c linux module serial-port

我有一个与 Linux 和串行端口相关的问题。

我希望能够接收消息并将消息发送到专用串行端口,并将其重定向到另一个端口 (/dev/tty)。

对于第一部分,我能够毫无问题地与我的硬件设备对话,但我只是想知道是否可以拦截来自串行端口 #1 的消息并将其重定向到另一个端口 #2。

为了提供更多背景信息,我多年来一直使用 GPS 天线和 NTP 开源软件。

自 2018 年以来,新的 GPS 天线协议(protocol)修改了 NTP 用于引导的消息中的字节顺序,现在它不再起作用。

所以我的想法是放置一个简单的 C 程序(中间件)来修复这个字节顺序;但我想知道是否必须构建一个特定于内核的模块或者是否可以通过其他方式完成。 NTP 软件使用对话框的符号链接(symbolic link)。

感谢您的帮助。

最佳答案

您也许可以使用简单的重定向,请看这里: Pipe One Serial Port to Another in Linux

如果端口的速率不同,您可以使用 stty 或 screen 来调整:https://unix.stackexchange.com/a/117064

如果您需要将其放在 C 程序中来操作它,您可以使用以下命令:https://stackoverflow.com/a/6947758/8901188

使用 c 时,它需要在无限循环中运行,以便能够不断地读取、操作和写入数据。

关于c - Linux 串行端口 (tty) 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59871699/

相关文章:

linux - Linux 上的图像处理和识别实现。如何?

linux - 如何使用 bash 遍历日志文件的最后 5 分钟

c++ - 为什么线性搜索比二进制搜索快得多?

powershell - 管理 PowerShell 模块之间的共享代码

module - 如何检查 Perl 6 模块?

ruby - 如何在 ruby​​ 模块之间共享方法

c++ - 在声明和初始化指针后,什么时候给变量字面量加上星号前缀,什么时候不用?

无法获取客户端通过 TCP 发送的消息

c++ - C/C++中函数main()的地址

c - 简单的make文件问题(C)