问题标签 [stty]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2144 浏览

linux - 如何永久禁用 stty 的 XON/XOFF 设​​置?

我正在使用带有串行控制台的嵌入式设备。我观察到控制台突然挂起,似乎没有任何反应。连接到另一台设备时,同一根电缆工作正常。经过大量挖掘,我了解了负责此问题的 XON/XOFF 标志。一些如何在控制台上输入“^S”字符并将其冻结。了解这一点后,我可以通过输入“^Q”来解锁控制台。但是控制台再次突然挂起。我的问题是是否可以在系统上永久禁用 XON/XOFF?如果有怎么办?

0 投票
1 回答
379 浏览

java - 简单的原始终端程序窗口

我需要能够在没有用户在 java 中按 enter 的情况下获得输入。据我所知,如果没有我想避免的 JNI/JNA,这是无法做到的。所以我正在寻找一个可以为我执行此操作的小程序,然后在再次调用时撤消它(可能使用不同的参数?)它可以是任何语言(最好是编译的),但最好可以在没有 MS Visual 的情况下编译工作室,因为我宁愿不安装它。

基本上有没有stty raw我可以从Java调用的windows等价物?

0 投票
0 回答
75 浏览

keyboard - USB 设备影响 stty (uart)

我正在编写通过 UART (stty) 与 MCU 通信的程序我使用的平台是带有 Debian 的 Acmesystems Acqua A5 (SAMA5D31)。MCU 与 PC 之间的协议如下:MCU 地址、数据、CRC。如果一切正常,MCU 会生成一个相应的答案。问题是 - 当我在 USB 键盘上输入内容或插入闪存驱动器时,通信会冻结。所以,我认为USB奇怪地影响了stty。我发现如果我禁用 IGNBRK,不会冻结,但通信过程中会出现很多错误(这是真的,我不需要任何特殊字符)这是 COM 端口初始化:

0 投票
3 回答
3023 浏览

shell - 使用 Go 制作全屏终端应用程序

我正在尝试构建一个全屏终端应用程序。我使用 Go 作为我选择的语言。我已经想出了如何阅读os.Stdin,但我不清楚如何清除终端窗口和操纵光标位置。我还想捕获终端输入而不打印(回显)。

我的问题是:

  1. 如何使用列/行坐标有效地清除并打印到终端?
  2. 如何阻止终端打印按下的键

我的意图:

我想创建一个全屏终端应用程序来呈现它自己的 UI 并在内部处理输入(热键/导航/等...)。

如果有任何库涵盖此类用例,请随时提出建议。

0 投票
1 回答
467 浏览

linux - 串行 USB 上需要 Linux stty 命令滞后帮助

我正在使用带有 USB 串行连接的 Raspberry Pi - 因此 Raspberry Pi 有一个 USB 引线连接到一些硬件照明板。

当我通过这个 USB 连接发送许多串行命令时,似乎有一个延迟,有时它会变慢,并且不会让下一个串行命令通过,当我延迟发送的串行命令时,它似乎有部分帮助,如果我在 Windows 上做同样的事情,就不会有滞后问题。

我已经设置了串行 USB 硬件工作所需的参数:

在没有滞后的 Windows 上 - 我使用:

即使我在 Linux 上设置了其他类似的参数,仍然存在延迟。-所以问题是stty命令,我可以在USB端口上设置一些参数或设置,以结束立即发送的串行命令,并让多个即时串行命令被发送。因此,如果 3 个一起发送,它要么将它们排队,要么允许所有 3 个按顺序排列。

我看过“man stty”,并尝试了一些选项,但无济于事......所以寻找一些有经验的帮助来解决问题。

或者有什么替代 stty 的东西可以用来更快或更好地处理同时发送的大量串行 USB 命令。

顺便说一句,我正在使用 PHP 发送串行命令,例如:

我认为这不是问题,任何帮助表示赞赏。谢谢。

0 投票
1 回答
11356 浏览

bash - 从串口读取并以十六进制存储

我有一个甚高频收音机,它通过串行端口连续发送状态消息,我需要将我必须作为十六进制数据存储在文本文件中的消息

我尝试了如下所示的 hexdump 命令,并且我从 vhf 无线电获得的数据是正确的,但是这个脚本的问题是当我执行它时,它直到我按 ctrl-c 才结束

所以我尝试了另一个命令,它是读取命令,如下所示:

但 file2.txt 中存储的数据不正确。

我从电台收到的消息不是我可以按照电台协议文件解释的格式。所以当我说数据不正确时,我的意思是无法解释消息(它是随机接收的)

请注意,我在执行两个脚本之前设置了串行端口,如下所示:

所以,请帮我解决这个问题。或者给了我另一种从串口读取的方法。

问候,

0 投票
1 回答
2643 浏览

macos - OS X 上的串行端口波特率超过 230400

我正在尝试编写一个小脚本,允许串行端口嗅探,而无需任何进一步的嗅探器软件要求,只需使用一些标准命令行实用程序。

我可以打电话./serialSniffer.sh /dev/cu.usbserial-xyz,然后用我想嗅探的软件连接到显示的设备。

serialSniffer.sh:

它确实适用于高达 230400 的低波特率。但是,例如,在我的 PySerial 软件中选择 460800 时,我得到了“不适合设备的 ioctl”错误。使用stty设置高波特率不起作用。

PySerial 和dev/cu.usbserial-xyz工作之间的直接连接因此不是硬件问题。

0 投票
3 回答
9246 浏览

macos - 更改 MAC 终端上的波特率 stty

我需要使用波特率为 115200 的 USB 串行电缆。我尝试使用 MACbook 终端应用程序中的 stty 命令设置速率,如下所示;

并确认如下设置;

看起来波特率一直到 9600。有人可以告诉我如何逐步改变这个吗?

0 投票
1 回答
478 浏览

java - jline2 在 telnet 控制台上打印“\n”时打印“^J”

我将JLine 2 (v2.13) 与 Socket IO 结合使用,为我的应用程序创建一个管理控制台,可以通过普通的 telnet 客户端进行访问。但是我发现它应该打印出换行符时会打印出奇怪的符号:

正确的输出应该是:

我追溯了代码,发现了导致问题的以下代码行:

在此处输入图像描述

另一个奇怪的事情是,当我按向上箭头获取历史记录时,控制台打印出来^[[A,没有其他任何反应。

有人有什么主意吗?

更新:添加了相关的源代码

  1. 接受传入 telnet 连接的代码:

在此处输入图像描述

  1. 创建ConsoleReader和调度命令的代码:

在此处输入图像描述

更新 2

对不起,我消失了一段时间。回来吧,因为我的项目让我呼吸到了新鲜空气。所以这就是发生的事情:我创建了一个PrintWriter并将其用作该^J问题的解决方法:

在此处输入图像描述

jline2但是,与 telnet 会话一起使用时还有许多其他问题:

  1. 类型<TAB>显示选项卡而不是激活完整列表。但是,在我按下回车键后,它会给我一个完整的列表和一条错误消息: 在此处输入图像描述
  2. 键入<UP>箭头,显示^[[A,按回车键它将执行我的最后一个命令。但是我失去了命令行编辑

问题仍然存在,我相信应该有办法解决它只需要一些指导......

0 投票
1 回答
137 浏览

terminal - 主机应该回显控制字符吗?哪个?

我正在构建一个嵌入式系统,它将 RS-232 与串行终端进行通信,“全双工”风格,因此主机会响应终端发送的内容。

我知道通常会回显可打印文件(至少 ASCII 0x20 到 0x7E),但是在这种情况下通常会回显哪些控制字符(如果有)?

是否有一些 Posix 或其他标准?Linux是如何做到的?

例如,如果我在终端输入 ^C,是否应该由主机回显 ^C?^G(铃)呢?ETC?