我正在使用 Raspberry Pi(运行 Raspbian [基于 debian])作为TCP/IP 上的 UTF-8/SSH和CP437/TTY 通过 RS232/DB9。RS232 端是一个黑盒子,我们根本无法修改。
最初我使用screen
中间件,它似乎可以自动动态执行 CP437 -> Unicode。但是,这要求我允许 SSH 用户首先登录到完整 shell,然后运行screen
,这对于目标用户来说是一个过于高级/技术性的过程。
这就是为什么我正在寻找minicom
非常适合用作登录 shell 的。他们无法进入 bash shell,退出 minicom 也会关闭 SSH 会话,这对于目标用户角色来说更加用户友好,并且不需要花费大量精力来锁定用户访问权限。
问题在于,它minicom
没有像 一样正确地将 CP437 样式边框转换为 Unicode screen
。它反而将其转换为lqqqk
边框(PuTTY 术语)。
请参阅下面的示例:
这就是screen
所做的(看起来很完美,使用unicode)
┌──────────────────────────────────────────────────────────────┐
│Platform Magnet Supervisory "MGN 07/14/03 V1.0.0 551-373" │
│ │
├ command ─┬ syntax ─────┬ function ───────────────────────────┤
│ Run │ R │ Run process display │
│ Time │ T hh:mm:ss │ set clock time │
│ Date │ D dd/mm/yy │ set date │
│ Start │ S hh:mm:ss │ set start time │
└──────────┴─────────────┴─────────────────────────────────────┘
这是minicom
无需任何特殊设置即可完成的操作(lqqqk
PuTTY 称之为边框)
lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
xPlatform Magnet Supervisory "MGN 07/14/03 V1.0.0 551-373" x
x x
t command qw syntax qqqqqw function qqqqqqqqqqqqqqqqqqqqqqqqqqqu
x Run x R x Run process display x
x Time x T hh:mm:ss x set clock time x
x Date x D dd/mm/yy x set date x
x Start x S hh:mm:ss x set start time x
mqqqqqqqqqqvqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
这就是minicom
允许直接传递值的一些设置的作用
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄڿ
³Platform Magnet Supervisory "MGN 07/14/03 V1.0.0 551-373" ³
³ ³
à command Ä syntax ÄÄÄÄÄ function ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄô
³ Run ³ R ³ Run process display ³
³ Time ³ T hh:mm:ss ³ set clock time ³
³ Date ³ D dd/mm/yy ³ set date ³
³ Start ³ S hh:mm:ss ³ set start time ³
ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
第三个示例实际上可以通过额外的步骤使用。我可以告诉 SSH 客户端 (PuTTY) 使用类似 CP437 的字体边框看起来大约 95% 正确。但是,这并不理想,因为强制字体极大地限制了用户自定义终端(或使用复制/粘贴)的能力。最终用户也可能使用没有字体选项的 SSH 客户端。
我更希望将minicom
扩展的 ascii (128-255) 字符也转换为 94XX Unicode 字符,类似于如何screen
做到的。我读过ncurses
代表这样做screen
,但minicom
它自己做事吗?
我尝试了几乎所有minicom
配置,但都无法正常工作。包括-t
使用各种 TERM 值(例如ibmpc
、linux
等)。我看过很多帖子,人们似乎使用 之类的技巧让它工作export NCURSES_NO_UTF8_ACS=1
,但我的运气并不好。
另外,我见过很多截图,其中内置菜单minicom
是使用 CP437/ACS 边框绘制的,但出于某种原因,我的 minicom 版本甚至不能很好地绘制它们,而是使用“穷人”边框(PuTTY 术语)而不是这些边界。
+-----[configuration]------+
| Filenames and paths |
| File transfer protocols |
| Serial port setup |
| Modem and dialing |
| Screen and keyboard |
| Save setup as dfl |
| Save setup as.. |
| Exit |
| Exit from Minicom |
+--------------------------+
似乎有些像这样可以解决问题,但是这也会阻止我们以 shell 形式运行 Minicom,因此我暂时排除了这种可能性。
真的没什么主意了,但这似乎是可能的!任何帮助或提示都非常感谢!