大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是串口调试工具Jays-PyCOM诞生之联合调试

  软件开发离不开调试,调试手段分两种:一是黑盒调试,即直接从输入/输出角度测试软件功能是否正常,这种方式仅能发现问题,但无法直接定位问题原因所在;二是白盒调试,即直接拿源代码在线debug,python虽是一种脚本语言,但借助一些Python IDE也可以实现单步调试,通过单步调试可以找到问题根本原因。
  前面我们已经初步实现了Jays-PyCOM,下面痞子衡会从黑盒和白盒的角度分别测试Jays-PyCOM功能:

一、黑盒调试:vspd + sscom

  要测试Jays-PyCOM功能,首先得要有串口设备,当然我们可以使用真实的物理串口设备,比如使用如下这个经典的CH34x串口转USB模块,CH34x芯片官方主页为 http://www.wch.cn/products/category/1.html

  安装好 CH34x模块驱动 并将该模块USB接口端插上PC后便可在设备管理器的Ports里看到串口设备,一个物理模块就可以完成测试,只需要将模块的RXD和TXD线直接对接,这样便可实现回环测试。
  很多时候手头并没有物理串口设备,那么这时候我们就需要借助虚拟串口软件,vspd就是一款虚拟串口驱动,其官方主页为 https://www.eltima.com/products/vspdxp/,使用vspd可以在PC上虚拟出串口设备并实现虚拟连接,由于vspd不支持单设备回环连接,那么我们需要虚拟出两个串口设备并实现连接,痞子衡使用vspd虚拟出了COM10和COM11,并将其进行了连接:

  痞子衡选用的是vspd虚拟串口来测试,最终搭建的黑盒测试环境示意图如下:

  联合sscom测试串口数据收发,可知Jays-PyCOM基本串口数据收发功能是正常的,最基本的黑盒测试便通过了。

二、白盒调试:PyCharm

  如果在黑盒测试过程中发现Jays-PyCOM功能有问题,从代码逻辑角度也不能立刻推断出问题,此时便需要使用Python IDE进行在线debug,痞子衡选用的PyCharm软件,创建Jays-PyCOM工程后将其放于Jays-PyCOM主目录,工程会自动添加目录下所有源文件,选中main.py文件后选择Debug(Shift+F9)便可以进行单步调试。

  关于PyCharm调试技巧可参考下面两篇文章:

https://confluence.jetbrains.com/display/PYH/Debugger#Debugger-Preparinganexample
https://www.jetbrains.com/help/pycharm/debug-tool-window.html

  至此,串口调试工具Jays-PyCOM诞生之联合调试痞子衡便介绍完毕了,掌声在哪里~~~

痞子衡嵌入式:串口调试工具Jays-PyCOM诞生记(4)- 联合调试(vspd, sscom, PyCharm2018.2)的更多相关文章

  1. 痞子衡嵌入式:语音处理工具Jays-PySPEECH诞生记(1)- 环境搭建(Python2.7.14 + PyAudio0.2.11 + Matplotlib2.2.3 + SpeechRecognition3.8.1 + pyttsx3 2.7)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具Jays-PySPEECH诞生之环境搭建. 在写Jays-PySPEECH时需要先搭好开发环境,下表列出了开发过程中会用到的 ...

  2. 痞子衡嵌入式:语音处理工具Jays-PySPEECH诞生记(3)- 音频显示实现(Matplotlib, NumPy1.15.0)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具Jays-PySPEECH诞生之音频显示实现. 音频显示是Jays-PySPEECH的主要功能,Jays-PySPEECH借 ...

  3. 痞子衡嵌入式:语音处理工具Jays-PySPEECH诞生记(5)- 语音识别实现(SpeechRecognition, PocketSphinx0.1.15)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具Jays-PySPEECH诞生之语音识别实现. 语音识别是Jays-PySPEECH的核心功能,Jays-PySPEECH借 ...

  4. 痞子衡嵌入式:语音处理工具Jays-PySPEECH诞生记(6)- 文语合成实现(pyttsx3, eSpeak1.48.04)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具Jays-PySPEECH诞生之文语合成实现. 文语合成是Jays-PySPEECH的核心功能,Jays-PySPEECH借 ...

  5. 痞子衡嵌入式:语音处理工具pzh-speech诞生记(4)- 音频录播实现(PyAudio)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具pzh-py-speech诞生之音频录播实现. 音频录播是pzh-py-speech的主要功能,pzh-py-speech借 ...

  6. 痞子衡嵌入式:大话双核i.MXRT1170之在线联合调试双核工程的三种方法(IAR篇)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT1170下在线联合调试双核工程的方法(基于IAR). 前段时间痞子衡写过一篇<双核i.MXRT1170之单独在线调试从 ...

  7. 痞子衡嵌入式:语音处理工具pzh-speech诞生记(2)- 界面构建(wxFormBuilder3.8.0)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具pzh-py-speech诞生之界面构建. 之前痞子衡设计过一个串口调试助手pzh-py-com,也专门写过一篇关于其界面构 ...

  8. 痞子衡嵌入式:语音处理工具Jays-PySPEECH诞生记 - 索引

    大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是语音处理工具Jays-PySPEECH诞生. 智能语音交互市场近年来发展迅速,其典型的应用之一智能音箱产品如今已走入千家万户,深受大家 ...

  9. 痞子衡嵌入式:串口调试工具Jays-PyCOM诞生记 - 索引

    大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是串口调试工具Jays-PyCOM诞生. 串口调试助手是嵌入式开发里非常常用的小工具,市面上有非常多流行的串口调试工具,比如TeraTe ...

随机推荐

  1. 解决Idea GitLab Clone failed: Authentication failed for的问题

    刚使用GitLab做项目管理,在idea-check versionControl中使用git clone工程,一直报Clone failed: Authentication failed for ‘ ...

  2. HTMl、CSS、JS的区别:

    HTMl.CSS.JS的区别: Html:决定网页的结构和内容----[结构] Css:控制页面的表现样式,如:美化页面----[表现] Js:控制网页的行为,如:给页面加动态的效果----[行为]

  3. Android Architecture Components--项目实战

    转载请注明出处,谢谢! 上个月Google Android Architecture Components 1.0稳定版发布,抽工作间隙写了个demo,仅供参考 Github地址:https://gi ...

  4. 微信小程序开发---自定义组件

    开发者可以将页面内的功能模块抽象成自定义组件,以便在不同的页面中重复使用:也可以将复杂的页面拆分成多个低耦合的模块,有助于代码维护.自定义组件在使用时与基础组件非常相似. 创建自定义组件 类似于页面, ...

  5. select标签默认选项

    1.selected:默认选择该选项: 2.disabled:该选项不能被鼠标选择:(注:选项没有被隐藏的时候) 3.style="display:none":隐藏该选项:(注:该 ...

  6. truffle 开发入门教程

    1.安装nodejs 2.安装truffle:执行命令: npm install -g truffle 3.truffle init  (可加项目名) 4.windows 要删除根目录中的 truff ...

  7. TypeError: parse() got an unexpected keyword argument 'transport_encoding'

    错误: TypeError: parse() got an unexpected keyword argument 'transport_encoding'You are using pip vers ...

  8. SSIS - 6.序列容器和优先约束

    一.多样的优先约束(看例子) 1)打开一个空白的SSIS包,拖拽4个脚本任务到设计面板上,重命名后连接起来,如下图所示. 2)执行包,可以看到任务执行成功.之后我们改变C和D之间的优先约束为“失败”. ...

  9. RabbitMQ in Action (2): Running and administering Rabbit

    Server management the Erlang node and the Erlang application Starting nodes multiple Erlang applicat ...

  10. Lesson 29 Taxi!

    Text Captain Ben Fawcett has bought an unusual taxi and has begun a new serivice. The 'taxi' is a sm ...