SerialTool 与 Python®。


目录


Python是什么?

Python®是一种解释型、面向对象、高级编程语言,具有动态语义。其高级内置数据结构结合动态类型和动态绑定,使其非常适合快速应用开发,也适用于作为脚本或粘合语言连接现有组件。
Python简单易学的语法强调可读性,因此降低了程序维护成本。Python支持模块和包,鼓励程序模块化和代码重用。Python解释器和广泛的标准库在所有主要平台上以源代码或二进制形式免费提供,并且可以自由分发。
欲了解更多关于Python®的详细信息,请参阅其网站:www.python.org

法律声明:“Python”是PSF的注册商标。SerialTool与PSF无关也未得到PSF的赞助。SerialTool使用Python作为兼容的编程语言运行脚本,并且需要在您的电脑上安装官方版本的Python。

SerialTool 和 Python

SerialTool的Python代码编辑器。


你是否曾想使用串口并拥有一个可以显示串口数据来往的出色图形界面?
如果你需要这个,并且想创建自己的程序来轻松控制串口,而不必安装库并使用对所有人都简单的语言,SerialTool和Python是你一直在寻找的工具。
一些使用串口的程序提供一些脚本解决方案,意味着你可以编写代码并执行,但很多时候你不知道该语言或者你必须花费几个小时来弄清楚如何整合几行代码!通过SerialTool和嵌入式Python,你可以用Python编写你的脚本,并利用SerialTool的所有功能,没有任何限制。
SerialTool以库的形式集成基本功能(已导入和集成),只需几行代码,你就可以搜索所需的串口,打开它,读取并写入。SerialTool将处理所有进出数据包的图形管理,并允许你使用你的Python代码执行所需的功能,没有任何限制。
为了便于编写和测试Python,SerialTool提供了一个文本编辑器,你可以在其中上传和修改脚本。集成的编辑器识别Python语法,允许轻松草拟代码。

关于串口和Python的更多详细信息

深入探讨SerialTool及其集成的Python库所提供的功能,让我们从一个实际示例开始。
您打算交付给客户或同事一个软件,该软件允许通过串口上传固件到我们创建的设备上,并且可以更新。在这种情况下,与其他语言不同,Python使工作变得简单,但同时需要安装外部库并跟踪更新。
SerialTool通过提供一些简单的功能解决了这个问题的根本,这些功能允许快速直观地选择串口,文件加载和保存的对话框,以及向用户通知程序执行情况的消息框。
这些都是很简单的功能,可以迅速调用,在可以安装SerialTool的平台(Windows, MacOS和Linux)上是原生的。这完全消除了对外部库的依赖,用户交互的基本功能变得简单、快捷、直观,只需很少的代码行。

回到我们的基本示例,我们从关闭所有活动端口开始,并使用SerialTool.scan功能搜索可用的串口,并使用SerialTool.gui_selectport功能进行用户选择所要使用的串口。
此时我们已知道我们的用户想要使用的端口,我们所要做的就是使用SerialTool.open功能与参数设置或已在GUI中存在的参数打开它。一旦串口打开,我们可以请求使用SerialTool.gui_loadfile功能加载文件,使用Python的本地功能打开文件,并请求使用SerialTool.gui_showmessage功能确认执行固件下载。
我们已经达到了使用SerialTool.write功能编写我们文件中存在的缓冲区的时刻,指出要写入的字节数,并等待来自要更新的设备的响应(如果预期),使用SerialTool.read命令直到我们更新结束。
几个简单的命令允许在几分钟内编写你自己的程序来更新你的设备或第三方设备。
这听起来复杂吗?SerialTool提供了集成的详细注释示例。

Python串口集成示例

为了便于理解并取得成果,SerialTool直接集成了功能性和注释性的示例,促进了集成功能的即时使用。一个巨大的优势是集成的功能不需要任何外部Python库就能操作串口。
在基本安装了Python的情况下,我们的示例已经是功能性的。在提供的示例中,SerialTool库中的所有可用功能都已集成到我们的软件中。只需适当调整提出的代码的一部分,就可以在几分钟内开发出你的串口程序。
已提出的SerialTool示例将逐版本集成,始终直观地了解可用功能及其实现,无需在互联网上搜索。
关于SerialTool功能的专用文档可在我们的SerialTool的Python API页面上找到。

Python安装

许多教程从安装Python在您的PC上开始,如果它尚未安装,并配置以能够达到最低使用性。我们把这部分留到最后,因为一旦在您的PC上安装了Python,SerialTool通过Python环境菜单将为您搜索和测试现有配置。
如前所述,Python是一种免费且需要解释的语言,并且需要在您的PC上安装解释器。对于熟悉这种语言的人来说,没有太多的解释,但对于那些第一次尝试这种令人惊叹的语言及其开发环境的人来说,步骤非常简单。
对于Windows,只需下载最新版本的Python(撰写本文时为3.12版本)并运行可执行文件直到完全安装。
对于MacOS,Python应该已经安装,可能是指Python的第2版,必须将其更新到最新版本(撰写本文时为3.12版本),通过直接从官方Python网站下载可执行文件并进行安装(如Windows中所做的那样)。

MacOS用户须知: 在当前版本的SerialTool中,Python 3.12框架已经集成到MacOS上,以符合苹果关于代码签名的要求。如果您想使用系统上安装的不同版本,您可以从“Python环境”菜单更改设置。

对于Linux,将需要通过命令行安装,Ubuntu使用sudo apt-get install python3,Fedora使用sudo dnf install python3
如果您对安装Python有任何疑问或困难,您可以始终参考官方网站或网上可用的众多教程。

Python环境设置和配置。


一旦安装并从“Python环境”菜单验证安装,只需按下“检查安装”按钮即可导入当前Python设置并保存,以备SerialTool后续启动时使用。

您已经准备好了!加载第一个示例并按下[RUN]按钮,开始您与SerialTool和Python编写您的第一个串口程序的冒险。

一些额外信息

为了便于编写脚本,内置编辑器具有IDE的典型功能,但目前不允许调试。
在可用选项中,建议始终选择“脚本执行完毕时自动关闭串口”选项。如果您的脚本遇到写入错误,SerialTool将为避免在后续脚本启动时必须关闭它们而提供关闭任何开放串口的功能。
要停止脚本并退出,建议使用sys.exit()函数,因为它会导致SerialTool的完全关闭,因为Python是集成的。如果需要通过源代码停止脚本执行,提供了SerialTool.stopscript函数。
如果您发现自己处于循环中,可以通过GUI直接使用[STOP]按钮停止执行。
由于Python直接集成到SerialTool中,重要的是要记住,您的脚本成为SerialTool流程的一部分。在这方面,当您在循环中包含While True循环时,至关重要的是要使用time.sleep(0.1)(来自时间库)函数配对它们与小睡眠(通常为0.1秒),以允许执行各种主GUI流程;否则,您冒着完全冻结应用程序的风险。
不用过于担心,因为我们的示例突出显示了插入这些小延迟的关键点。

常见问题解答

Python的整合功能是否有限?
不。所有Python脚本的功能都直接可用,包括加载系统中存在的外部库。

SerialTool和Python是否适用于所有操作系统?
是的。在SerialTool和Python可用的所有平台上,其使用是可能的,即Windows、MacOS和Linux。

我是否一定要下载并安装Python?
是的。必须在打算使用的PC上存在Python解释器。SerialTool基于Python3,与Python2的向后兼容性直接依赖于两个版本的兼容性。无论如何都建议Python2用户使用Python3。

Python如何与SerialTool互动?
Python脚本通过调用所需功能直接通过集成到我们软件中的SerialTool库与之互动。通过Python设置的参数,包括打开和关闭串口,直接链接到主用户界面。从本质上讲,您可以通过SerialTool库及其功能直接从Python指挥SerialTool。

我可以继续使用SerialTool的功能吗?
是的。所有SerialTool功能都仍然可用,AutoAnswerAlarmSerialScope,数据包显示,数据记录数据包发送到网络等,都可以从用户界面选择和使用。

是否可以同时使用多个端口?
是的。SerialTool的基本功能是同时管理多个串口。从Python,可以通过SerialTool.assignPort功能指定要使用的串口的序列号。

我总是必须使用GUI来打开和设置端口吗?
不。正如重申的那样,串口的管理可以直接从Python直接获得。

我也可以设置RTS和DTR参数吗?
是的。该库允许您在打开串口和脚本执行期间直接驾驶RTS和DTR引脚的设置。

我可以要求在SerialTool库中实现其他功能吗?
是的。将考虑并实现SerialTool库中任何进一步实施的其他功能的Python,这取决于SerialTool的开发动态。

我可以获得什么样的支持?
我们的团队可以帮助您整合您的脚本,以促进您的脚本的起草或识别任何错误。支持不包括起草实际的Python脚本或委托。支持与Python与SerialTool的集成相关。