问题标签 [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 投票
1 回答
548 浏览

putty - BTEQ 交互窗口,需要向上箭头来访问命令历史

这很奇怪。新的 linux 环境,通过 putty 从我的桌面访问...

在我的常规 shell 中,我可以上下箭头来获取命令历史记录。但是,当我启动 BTEQ 与数据库通信时,我会收到这种乱码以响应我的 up/down/ctrl+up/etc。

这是BTEQ中的东西吗?我会在我的 .profile 中假设更多的 putty 或“stty”类型的命令设置。但是,由于在我启动 BTEQ 之前行为是正常的,我无法确定。

0 投票
1 回答
9651 浏览

php - 如何使用 PHP 写入串口?缓冲有问题

编辑:我用以下脚本做了一些测试(在这里找到:PHP serial port data return from Arduino)。似乎即使使用 fwrite 到 /dev/ttyUSB0 也会输出我的新命令以及从设备发送的最后一个命令。这让我觉得可能串口设置不正确(例如,可能需要使用 stty 更改设置以清除缓冲区)或者我需要做其他事情(使用 php)来清除 /dev/ 处的缓冲区ttyUSB0 在发送新命令之前。任何帮助将不胜感激,谢谢。

原始问题:

我正在使用 php-serial 通过串口与设备通信。该设备具有在屏幕上显示串行端口的所有输入和输出的功能。当我运行以下脚本时,我可以在设备上看到该脚本正在获取设备输出的每个命令并将其重复回设备。我相信这会导致一个问题,因为我只想向设备回答“OK”,而不是重复输出然后说“OK”。首先重复相同的命令似乎会混淆它,然后它不会遵守“OK”命令。我可以通过在循环中每 0.1 秒输出一次“OK”来解决这个问题,但我宁愿读取设备的输出,然后相应地响应它。我不相信我的脚本中有任何内容告诉它重复命令。这是任何人都经历过的 php-serial 类的问题吗?我尝试设置 $autoflush = false; 没有区别。

我的脚本:

在我的脚本运行之前设备屏幕上的示例输出:

我的脚本运行时设备屏幕上的示例输出:

0 投票
1 回答
782 浏览

c++ - 在 C 中的无缓冲输入期间在 Linux 上读取 ESC

我为程序编写了一个 getch 函数。我不能使用诅咒,因为它破坏了iostream 我已经使用的终端。编码:

termios.h我知道使用而不是系统调用会更好。一切正常,除了 if ESC key。我正在尝试捕获例如字符串的箭头"\1B[A"。当我检测到ESC第一个字符时,我还阅读了后两个以获取完整的密钥代码。问题是当我按下它时它不应该发生,ESC因为它的代码是 1B 单独的。cin.get()应该在return EOF读取期间缓冲区为空时,但它只是停止。

有没有办法在不使用诅咒的情况下读取ESC密钥?linux为什么我的解决方案不起作用?

谢谢

0 投票
1 回答
5439 浏览

linux - windows中的stty等价物

有人知道 Windows 上 stty 的等效工具吗?我想在 Windows 平台上对串行端口设置进行逆向工程。

我必须将 Windows 应用程序移植到 Linux 平台,但我没有关于我必须用于应用程序的串行端口设置的任何信息。我必须对这些设置进行逆向工程。最常见的不起作用。

Windows 上的示例应用程序可用并且正在运行。

0 投票
1 回答
11261 浏览

linux - stty:标准输入:使用 pdsh 或 ssh 时参数无效

我想从远程机器运行一个简单的脚本。该脚本包含以下内容:

如果我从本地机器运行它,我会得到很好的输出,比如36 138. 如果我尝试从另一台机器上运行它,我会得到<ip>: stty: standard input: Invalid argument(使用 ssh ot pdsh)。

问题是我无法更改使用 stty 命令的脚本。这是一个常见的脚本,我编写了包装器。建议?

0 投票
1 回答
49 浏览

linux - 通过 xterm sudo 到另一个用户/另一个服务器后,丢失了向上、向下、向左和向右键的键绑定

在此处输入图像描述我知道我很久以前就搞砸了,但是当我 sudo & ssh 到另一个用户和服务器时,我的 stty 设置将不起作用。在服务器#1上,我是我自己,可以使用 U / D 键调用历史记录,使用 L / R 键导航并使用退格键进行编辑。请参阅屏幕截图,然后 sudo 和 ssh 到另一台服务器,一切都丢失了。U / D 不会拉起历史记录,L / R 也不会在历史记录中导航光标。

服务器#1 和#2 上的stty o/p 完全相同。如上。为什么会有这种不同的行为。我该如何解决这个问题,以便我可以使用 U/D 和 L/R 调用历史记录,将光标导航到历史记录和退格键以开始编辑它

使用 Xterm 连接

0 投票
1 回答
425 浏览

c - 如何使用 c 检查用户在 stty 中为擦除/退格设置的内容

在 Unix 中,某些键的默认设置因平台而异。例如,在 Ubuntu 中擦除可能是erase = ^?. 但是,对于 AIX,它可能与 example 完全不同erase = ^H。如何检查 C 中的 stty 设置?

这是我试图写的

使用 gcc 编译后。它说 ERASE 未声明。那么实际上我应该使用的正确选项或变量是什么?

0 投票
0 回答
193 浏览

c - tcsetattr 不适用于使用 /bin/sh 登录的用户

我有一个代码来获取 stty 设置到用户终端的内容。然后更改term.c_cc[VERASE]. 只要用户使用 bash,它就可以正常工作。我的问题是当用户使用默认 shell 登录或他们使用/bin/sh(只有 # 的 shell)登录时。即使我设置了term.c_c[VERASE],它仍然不适用。为什么会这样?是否tcsetattr不适用于 /bin/sh?

这是我的代码的一部分:

0 投票
1 回答
3481 浏览

linux - RS232 控制台通信 - 将波特率设置为 1 MBaud

在 bash 脚本中,我使用以下内容:

它按预期工作。使用 PL2303 USB 转 RS232 适配器:

现在我尝试对 1 MBd 执行相同的操作,但出现错误:

当我尝试使用 500 kBd 时,也会出现相同的消息。尝试 250 kBd 的错误消息是不同的:

如此处所示,这是 PL2303 linux 驱动程序中的一个问题。

我正在开发 Kubuntu 12.04,32 位。不幸的是,我不知道如何在我的系统上修复该驱动程序(获取驱动程序源、修补 em、编译、安装……嗯,也许我学到了一点并试一试——欢迎提供建议)。

但也许有一个易于安装的更新驱动程序可用?

或者是否有人知道可以在 1 MBd 下工作的备用 USB 到 RS232 适配器(需要通过 rts/cts 进行硬件流控制,它与 PL2303 配合得很好)?

0 投票
1 回答
4134 浏览

c - C中的stty RAW控制台

我正在尝试构建自己的控制台,并且正在使用以下语句来获取 RAW 访问权限,因此我可以实现一些高级功能,例如通过按 TAB 键实现在 BASH shell 中实现的自动建议功能。

使用此键时,回车键(和其他键)无法正常运行,当我按下回车键时,它会显示 ^M 并且不会转到下一行。

  1. 如何将 RAW 控制台设置为在收到 ^M 时转到下一行

  2. 我也可以将 Shell 设置为不显示按下的键,以便我可以使用 putchar() 将字符发送回控制台(因此按下时不显示 ^M)。

谢谢