如何在自定义终端中处理传入的控制字符

本文关键字:控制字符 处理 自定义 终端 | 更新日期: 2023-09-27 18:10:09

对于我的项目,我需要创建一个自定义终端窗口,并通过控制台端口连接到Cisco路由器。所以我继承了一个文本框,并在WPF中创建了一个自定义控件。我想这就足够了;只是为了添加一些代码来实现我想要的额外功能。我每次发送一个字符并等待响应。但后来我发现,我的自定义终端不处理特殊字符,像'n这样的基本字符肯定可以识别,但其他的都不能。我对一个文本文件进行了书面回复,我看到我收到了很多特别的回复,但我不知道我应该如何回应。也许有人知道或发现了一些关于如何对特定控制角色做出反应的信息链接?我只发现了这里的文字,其他的就没有了。我明白,对于"BS",我会在回车前删除一个字符,但当我得到"ACK"或"DC1"时,我该怎么办?也许我应该跳过它们?什么好主意吗?


编辑:除了每次发送一个字符外,只有当我发送enter或?之类的字符时,我才会得到响应。或选项卡。然后,当我收到响应时,它与特殊字符混合以格式化文本,就像80x25终端窗口一样。我想按它想要的方式显示它,但这意味着我需要知道当我得到特殊字符时如何反应我不需要显示它们,只需要根据我收到的特殊字符格式化正常文本。当我得到BS我需要清除字符之前的马车,当我得到DEL我需要清除字符后的马车。我想知道当我得到其他特殊字符时我需要做什么。我知道我可以做到这一点,只是把这些发送到一个工作终端,看看它会做什么,但这需要一段时间,所以我想知道是否有人知道答案。

如何在自定义终端中处理传入的控制字符

好吧,我用终端玩了艰难的方式,现在我知道我需要处理的唯一特殊字符是BS(当然我只尝试过思科路由器,但我只需要对它们进行处理),唯一的问题是你需要创建自己的代码来让它工作,并根据BS计数将插入符号移动到正确的位置。最好创建自己的变量来存储插入符号索引,因为TextBox的CaretIndex只是不想工作,我的预期。据我所知,其余的特殊字符可以省略。效果和我想的一样好