跳转到主要内容

终止字符演示,一个学习串行通信的游乐场。

项目描述

终止字符演示

欢迎来到这个终止字符演示,一个学习串行通信以及如何在计算机和串行设备(如Arduino或示波器等)之间交换的消息末尾标记方式的游乐场。在这些演示中,客户端是您的计算机,而服务器是外部设备。注意:建议您将终端窗口设置得足够宽,以便为所有小部件留出足够的空间。本应用程序是用Python和✨出色的✨ Textual框架编写的。

screenshot of basic demo

玩一会儿!一些建议

  1. 基本演示开始:如果收到完整消息,服务器将自动回复。
  2. 尝试发送消息,手动添加或不添加终止字符。服务器期望哪些字符?
  3. 在客户端的“写入终止字符”字段中设置终止字符。发送更多消息。发生了什么?
  4. 尝试读取消息。您需要指定读取终止字符吗?
  5. 如果您这样做会发生什么?收集至少两个回复并逐一读取。
  6. 最后,您可以尝试高级演示。在这里,您操作客户端和服务器。尝试不同的终止字符和读取超时设置。如果您尝试读取但尚未收到消息,会发生什么?
  7. 在高级演示中,缓冲区有固定大小。如果您尝试溢出它们,会发生什么?

详细信息

基本和高级标签非常相似,但后者标签允许用户更改一切,而前者标签只允许用户更改客户端设置。服务器设置模仿运行定制VISA兼容固件的Arduino。向Arduino发送的命令应以换行符\n终止,而从设备接收到的命令将以回车符后跟换行符\r\n终止。基本演示将在每次正确接收到消息时向客户端发送响应。

界面

输入缓冲区是您发送的命令到达的地方,在它们被设备明确读取之前。它们通常具有有限的空间。水平条的颜色将指示剩余空间的大小,而缓冲区内容的颜色将指示正确终止字符的存在。如果无法确定消息的结尾,则消息将显示为红色。如果消息的结尾缺失,则内容将着橙色。另一方面,如果消息正确终止,则将显示为绿色,而终止字符本身将为蓝色。您可以在每条消息的末尾明确输入终止字符,或者您可以在写入终止字符小部件中设置它们。如果您这样做,每次发送消息时,终止字符都会自动添加到末尾。点击读取按钮以从输入缓冲区读取消息。如果读取终止字符设置不正确,则应用程序可能会一直等待或在每条消息的末尾显示一些乱码。应用程序日志记录所有发送和接收的消息。高级标签上的超时允许用户设置读取超时。如果它们设置为0,则设备在接收到完整消息之前不会停止读取。如果超时设置为n,则在n秒后如果没有接收到完整消息,读取将中止。

背景

计算机和数字设备通常需要相互通信。多年来,开发了许多通信标准和协议。它们通常涉及交换某种消息。在读取和写入时,标记消息的结尾很重要,这样设备就知道何时停止读取并开始处理。在许多协议中,这通常是通过一个或两个特殊字符完成的,称为终止字符

在交换短消息的简单协议中,终止字符通常是换行符的一种形式。这类字符在(电子)打字机的早期就已经被引入,其中回车符意味着返回行首,换行符意味着移到下一行。打字机有一个可以用来将游标移回行首并,同时,将纸张送出以移到下一行的手柄。这类控制字符至今仍用于在计算机上的文本文件中标记行尾。在C和Python之类的语言中,回车符通常表示为\r,而换行符同样表示为\n。从DOS派生的操作系统如Windows使用回车符加换行符\r\n作为行结束,而从Unix派生的操作系统如macOS和Linux只使用换行符\n作为行结束。时至今日,当用户在不同操作系统之间交换文本文件时,这可能会让用户感到困惑。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源代码分发

termchar_demo-0.3.0.post2.tar.gz (9.0 kB 查看哈希值)

上传时间 源代码

构建分发

termchar_demo-0.3.0.post2-py3-none-any.whl (13.3 kB 查看哈希值)

上传时间 Python 3

由...