有关python的参考文献_测试开发论文,关于Python在嵌入式项目中的辅助开发相关参考文献资料-免费论文范文...
导读:本文关于测试开发论文范文,可以做为相关论文参考文献,与写作提纲思路参考。
摘 要:嵌入式系统设计开发过程中常会遇到诸如算法分析、原型验证、自动化测试、辅助工具设计等工作,其开发效率和质量直接影响到项目的进程.对于目前国内众多开发人员,迫切需要这样一种软件开发工具:易学、高效、功能强.Python作为这样一种开源脚本语言,配合众多实用的第三方函数库,可极大地提高嵌入式系统开发效率和质量.作者结合自己在几个项目开发中的实战经验,对此进行了入门介绍.
关键词:Python;嵌入式系统
引言
嵌入式设计开发通常是比较系统的工程,对开发人员有较全面的要求,硬件、软件、算法、测试等各个方面都得照顾到,所有环节有效的配合才能保证整个项目的顺利进展,对时间质量要求高的项目更是如此.
实际开发过程中常会遇到问题有算法分析、原型验证、自动化测试、辅助工具设计等,选择好恰当的工具,对提高工作效率和质量至关重要.本文要介绍的Python脚本语言和众多第三方函数库就是这样的利器,易学、高效、功能强,值得推广.
1.Python简介
Python是一种流行的动态脚本语言,经历了十多年的发展现已相当成熟稳定.其语法简捷清晰、面向对象、跨平台、扩展性强,适合完成各种高层任务,既可快速开发脚本程序,也可用来开发大规模软件.
由于遵循开源GPL协议,用户众多,反过来也推动了第三方函数库的稳步发展,现数量众多功能强大的函数库(其中大部分也是开源的)能适应几乎所有的应用:字符处理、系统控制、图像处理、图形界面、数据库、科学计算、网络应用、单元测试等.
本文不介绍Python语言的基础知识,感兴趣的读者请自行查阅相关内容.推荐的学习材料有:论文范文网站、安装自带的文档、第三方库的文档、网络社区等.
2.函数库介绍
函数库分两类:标准库和第三方库.前者是安装时自带的,能完成基础的字符、文件、系统、网络等控制,后者是在前者基础上扩充开发的,也是Python最成功之处,现就常用于嵌入式开发的几个库分类介绍,以下库均遵循GPL协议.
2..1科学计算
◆ Numpy、Scipy
NumPy数值计算包提供了矩阵、线性代数、傅里叶变换等的解决方法.
Scipy提供更强的数学计算分析功能:线性计算、信号处理、图像处理、最优化求解等.大多数函数接口和Matlab类似,容易上手.
◆ Matplotlib
二维图形绘制模块,包括线图、直方图、饼图、散点图以及误差线图等,输出效果相当专业,许多函数接口也与Matlab类似.
◆ SymPy
符号运算,可进行算法仿真、模拟.
2..2图像处理
◆ PIL
提供图像处理操作:裁剪、旋转、滤波、增强等.嵌入式开发中经常需要操纵图形资源,用于点阵液晶屏幕显示,如图形转化成C语言数组、屏幕缓冲数据转换成图片,都可借用此模块实现.
◆ MayaVi
用于绘制三维数据图形.
2..3图形界面
◆ wxPython
高效的GUI工具箱,提供图形接口,可生成标准风格的Windows程序窗口,新版本中包含的许多控件非常有特色.
◆ wxGlade
图形程序的开发工具,用wxGlade绘制好窗体后生成Python代码,加入函数相应代码即可.
2..4数据库
◆ pySqlite
轻量级的数据库,现以成为标准库.
2..5硬件控制
◆ pyParallel、pySerial
用于控制PC机的并口和串口.
◆ pyVisa
控制VISA接口设备.
◆ pyAudio
声音控制,若需用操纵声音资源,集成至嵌入式系统固件中,可用此模块.
2..6其它
◆ Socket、FTP、Telnet
网络接口,可用于控制测量仪器和设备,TCP/UDP方式调试网络设备.
◆ 动态链接库接口
某些必须由其它语言实现的功能可先编译成动态库,再由Python调用.
3.项目案例
以下介绍作者在实际项目中使用Python提高开发效率的几个例子.
3..1位图资源的C代码转换
某便携式仪表支持16级灰度点阵液晶,需要显示若干图标、图片.素材先由图形处理软件修饰完成,存为灰度位图格式文件,再调用Python编的处理脚本,转换图片成C语言格式’数组,集成到系统项目中,编译至固件,最终显示在仪表屏幕上.
图1为待转换的图标lconHelp.Bmp,转换后的结果lconHelp,c如下:
与上述正向转换对应的还有逆向转换;仪表调试过程中下断点,使用调试软件脚本命令按一定ASCII格式取出屏幕缓存,编写相应Python脚本将之转换成位图图片,实现了仪表屏幕的“截图”,可用作产品使用说明书的素材.
3..2 Agilent信号发生器的控制
硬件开发中常用的示波器、信号源、高精度万用表等仪器大都有编程控制功能,通过串口、以太网、GPIB等接口和相关协议控制.以Agilent 3320A信号源为例,通过以太网与PC组网连接后,PC机在5024端口用Telnett办议与信号源建立连接,用Python脚本通过SCPI协议控制.利用Python对象化语言的优势将信号源封装成类,设置功能(如开关、波形类型、幅度、频率、扫频、调制等)均被抽象为事件,使用时只要调用该类对象的函数即可.
如一次硬件测试中需要依次输出频率为10、20、50、100、...10K. 20K、50K、100KHz,幅度1V的正弦波,每段的间隔时间0.5秒,只需调用封装好的类,实现如下:
d:AGILENT33220A()#建立实例
d.Connect()0#网络连接
d.Reset()#仪器复位
for i in[10,20,50,100,200,500,1000,2000,5000,10000,200 00,50000.100000]:
d.SetParms(&,acute,SIN&,acute,,i,1,0)#输出正弦波
time.sleep(0.5)#延时半秒
d.Output(False)#关闭输出
3..3开关机电路测试
某款手持式仪表在开机时偶尔出现白屏无法启动的现象,测试人员不得不手动地做开关机测试,每次循环周期约1 5秒,但故障概率极低,甚至几小时测下来也不能重现,整个测试过程费时费力.
为提高效率,开发了一套自动测试装置:使用Python脚本控制并口,用一输出端口控制连接在仪表电源按键上的继电器,模拟用户的按键操作,再用几个输入端口检测仪表工作电源是否上电、开机后的LED是否点亮等,主程序负责协调整个流程,若发现开机异常,发出蜂鸣器报警.
测试开发工程师:软件测试开发教程 软件测试实战开发
经过数天的自动测试,累积数千次的开关机测试,都未发现异常,从而排除了电路方面的因素,将故障被定位在其它方面,如结构、器件质量等.
3..4辅助工具:三次样条曲线系数计算器
开发过程中常会将一些算法的参数预先计算好,固化到项目程序中去,如FFT的旋转因子、FIR滤波的系数等,利用Scipy库可方便地计算.
这里介绍的系数计算器是一带图形界面的辅助工具,用来生成样条曲线拟合时用的中间参数,同时还能计算拟合值并绘制曲线图形.用wxPython制作窗体界面,matplotlib绘制曲线图形,核心的参数计算代码因为要求与嵌入式CPU通用,故使用了C实现并封装成DLL被调用的.
在计算锂电池电压对应电量关系时的界面如图2,数据源是电压和电量的控制点,计算出的参数在终端以文本形式输出,拟合出的曲线用matplotlib自带的绘图控件显示,可移动、缩放、保存.
3..5通讯可靠性测试
某仪表内部包含自行开发文件系统,通过串口与PC机通讯,通讯驱动接口被封装成动态库,为测试文件系统和通讯的可靠性,制定了如下方案:
编写Python脚本,动态生成指定大小的测试用二进制文件,内容随机产生,调用驱动与仪表建立连接,将测试文件下载至仪器,再回收并与源文件逐字节作对比,全部正确则测试通过,如此反复测试.
经连续数天测试,发现了仪表底层通讯程序中的一处漏洞,信号量未加锁导致数据丢失,修改程序后再测试问题不再重现,漏洞解决.图3为测试时界面.
结语
由于上述软件都遵循GPL开源协议,加上能和商业软件媲美的性能,使之有很强的生命力.每个工具都有其擅长的一面,将它们有效组合熟练运用,可以很大程度地提高开发效率和质量.愿本文的案例能抛砖引玉,给同行们的设计工作其点借鉴作用.
参考文献
[1]周伟,宗杰.Python开发技术详解[M].北京:机械工业出版社.2009.
[2]周伟,宗杰Python开发技术详解[M]北京:机械工业出版社,2009.
[3]陈儒.Python源码剖析一一深度探索动态语言核心技术[M].北京:电子工业出版社,2008.
测试开发范文
测试开发工程师参考文献总结:
大学硕士与本科测试开发毕业论文开题报告范文和相关优秀学术职称论文参考文献资料下载,关于免费教你怎么写测试开发方面论文范文。
有关python的参考文献_测试开发论文,关于Python在嵌入式项目中的辅助开发相关参考文献资料-免费论文范文...相关推荐
- python嵌入式系统开发技术_Python在嵌入式项目中的辅助开发_彭树林
效率和质量至关重要.本文要介绍的Python脚本语言和众多 第三方函数库就是这样的利器:易学.高效.功能强,值得推 广. 1 Python简介 Python是一种流行的动态脚本语言,经历了十多年的发展 ...
- mysql数据库在政务项目中的运用_数据库区域论文,关于MySQL数据库在域名系统中的应用实现相关参考文献资料-免费论文范文...
导读:本文是一篇关于数据库区域论文范文,可作为相关选题参考,和写作参考文献. 宋国柱1 杨怀卿1 赵圣隆2 (1山西农业大学信息网络中心太谷030801 2山西建筑职业技术学院太原030006) 摘 ...
- python嵌入式系统开发_Python在嵌入式项目中辅助开发.PDF
22 SYSPRACTICE 系统实践 on在嵌入式项目中的辅助开发 Pyth 彭树林 摘要:嵌入式系统设计开发过程中常会遇到诸如算法分析.原型验证.自动化测试.辅助工具设计等工作,其 开发效率和质量 ...
- 【毕业设计】51-基于Multisim的篮球比赛24秒倒计时计时器的设计(仿真工程+相关芯片资料+答辩论文)
typora-root-url: ./ [毕业设计]51-基于Multisim的篮球比赛24秒倒计时计时器的设计(仿真工程+相关芯片资料+答辩论文) 文章目录 typora-root-url: ./ ...
- Atitit.mybatis的测试 以及spring与mybatis在本项目中的集成配置说明
Atitit.mybatis的测试 以及spring与mybatis在本项目中的集成配置说明 1.1. Mybatis invoke1 1.2. Spring的数据源配置2 1.3. Mybatis ...
- dotnet 是 前30个增长最快速度的开源项目中排名第一的开发平台
CNCF 的博客 发了一篇文章 <Update on CNCF and Open Source Project Velocity 2020>,中文翻译参见 2020年CNCF和开源项目开发 ...
- 通信系统设计与python的书_腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗?...
原标题:腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗? 稍微关心编程语言的使用趋势的人都知道,最近几年,国内最火的两种语言非 Python 与 Go 莫属,于是,隔三差五就会有人问:这两 ...
- java交通信号灯毕业论文范文_信号灯设计论文,关于基于FPGA的交通信号灯控制系统设计相关参考文献资料-免费论文范文...
导读:本文关于信号灯设计论文范文,可以做为相关参考文献. 文/ 胡桂戎 陕西警官职业学院 陕西 西安 710021 [摘 要]本文采用FPGA 设计,结合了道路传感器,设计了交通信号灯全感应自适应的控 ...
- 计算机组装与维护实训参考文献,计算机组装论文,关于《计算机组装维护》数字实训资源的开发相关参考文献资料-免费论文范文...
导读:此文是一篇计算机组装论文范文,为你的毕业论文写作提供有价值的参考. (湖南化工职业技术学院,湖南株洲412006) 摘 要:本文介绍了<计算机组装与维护>课程中硬件组装技能训练存在的 ...
最新文章
- 介绍Smart Client组件网站
- 路由重定向|| 嵌套路由用法
- Unhandled Exxception “Unhandled exception type IOException”?
- leetcode-387-字符串中的第一个唯一字符
- jaxb 处理_休息使用Jersey –包含JAXB,异常处理和客户端程序的完整教程
- endnote国标_Citavi 与 Endnote 在 Word 插入引用,哪个更适合你?
- log4j 写入信息到文件简单举例
- 85-scala版spark2.x读取es6.x
- Django基础之wsgi
- SCM系统(Supply Chain Management System,供应链管理系统)
- php file取不到手机相册,webuploader移动端选择文件无法打开手机相册的解决办法...
- 2017-2018-1 20155220 《信息安全系统设计基础》第十四周学习总结
- 29. 在magento CMS中的标签变量使用
- [Unity3D]Unity3D圣骑士模仿游戏开发传仙灵达到当局岛
- 编译OpenJDK8 b232版本
- yagmail设置定时任务
- 10个基础且实用的C语言经典实例【附源码】
- 如何找到CPU飙升的原因
- 联通服务器信号设置,联通手机服务器设置
- 一些linux和OpenGL的笔记
热门文章
- error: 'lianxi/' does not have a commit checked out fatal: adding files failed 解决方案
- fatal error C1083: 无法打开包括文件:“pcap.h”: WinPcap编程
- 为什么html转为word之后图片,html网页转换成word文档,转换成功,并且可以保存图片,但是总是为web版式的格式,怎么改成“页面”格式,多谢...
- 我TM就是管住不自己这双手啊
- TRACE、TRACE0、TRACE1、TRACE2、TRACE3
- 乐Phone叫板IPhone 终极武器或为汉王?
- Java 使用EasyExcel导出excel文件
- win和linux双系统引导
- 分析最新12306滑动验证
- Mac 安装peal的过程以及问题