admin 管理员组文章数量: 887021
2023年12月19日发(作者:易语言制作物流软件)
Ubuntu应用程序快速开发(单片机串口助手软件)尽管是写串口助手软件,但后面的内容也可以用在开发其他的软件上。开发好的软件含有源代码、deb包等。一、串口通信模块这里,我们使用python进行编程。通过pyserial模块可以对串口进行方便的操作。下面先介绍一下pyserial模块。这个模块不属于标准库,因此需要自己下载安装。到这里下载:/projects/pyserial/,下载好后解压进行安装:cd到目录下,运行命令:$all。安装好之后,便可以在使用了(我用的是python2.7.3)。我最喜欢的IDE是免费的Wing101,它是一款轻量级的专业开发工具。上半部分是编辑面板,我们将在这里编写Python程序;下面选项卡中标为“PythonShell”的部分是我们将要用来实验某些Python代码片段的地方。当然,现在暂时用不到编辑面板。还得穿插着说一点。笔记本上是没有RS232串行接口的,所以需要使用USB接口。Ubuntu内核中已经编译1
了USB转串口驱动,所以,这部分是不用去管的。下面的实验中需要用到串口,故敲代码之前,先得把单片机用USB转串口线连接在电脑上,这样ubuntu才能创建名为ttyUSB0的文件(/dev中,可以到里面看一下,也有可能是ttyUSB1,这个具体看一下,下面的命令中也做相应的更改即可),否则实验时串口不存在,会报错。ttyUSB0文件建立以后,还需要赋予读写权限:sudochmod777/dev/ttyUSB0,否则也会报错。>>>importserial创建串口实例,命名为ser,端口就是刚才说过的/dev/ttyUSB0,波特率设置为9600bps,校验位无。>>>ser=('/dev/ttyUSB0',9600,parity=_NONE)波特率、校验位、数据位、停止位、延时等也可以在串口实例创建后再设定,例如:>>>ser=('/dev/ttyUSB0')>>>te=9600>>>=_NONE奇校验为_ODD,偶校验为_EVEN。这种方法方便改变串口的参数,在后面的GUI编程中采用这种方法。下面的语句用来打开刚才创建好的串口实例:>>>()可以用方法isOpen()来检测一下串口的状态,处于打开状态返回TRUE,处于关闭状态则返回FALSE。>>>()向串口发送数据时使用write()方法,参数即为要发送的数据,需为字符串形式。2
>>>('turnon')读从串口接收到的数据时使用read()方法,括号内可带参数,是需要读取的字节数(为空则默认一个字节)。为了能全部读取并防止越界时命令解释器卡死,可以用inWaiting()方法获得接收缓存的字节数,作为参数传输给read()方法。例如:>>>size=ng()>>>x=(size)不过,这样的话,每次都会读取到缓存中的全部内容,也就是说,前面所有接收到的数据都会被读取。所以,最好在读完数据之后将接收缓存清空一下:>>>nput()下面的这条语句用来关闭串口。>>>()还有其他方法,具体可以参看文件夹中的文档(函数可以在serial文件夹下的loopback_中看到),这里就不多说了。二、开发工具——Quickly下面介绍开发工具。之前是用Anjuta,但生成源码编译安装后无法运行,这个是由于pygtk是gtk+2的版本,glade3不支持它。后来用的是ubuntu开发网站提供的Quickly工具。Quickly综合了项目创建、代码编辑、GUI编辑、运行调试、编译打包以及发布的功能,所有的这些都可以使用命令启动。至于它使用pygtk、gedit、glade等等就不用关心了。可以访问网站安装,也可以通过命令安装:$sudoapt-getinstall3
quicklyquickly-ubuntu-template。安装好之后就可以进行开发了。1、创建项目。在终端中运行:$quicklycreateubuntu-applicationserial-assistant运行这条命令后,会弹出一个名为SerialAssistant的窗口。与此同时,Quickly会在当前目录(本文中,当前目录为主目录)下创建serial-assistant文件夹,这样就建立了模板,之后的一系列工作都是以这个模板为基础的。以后运行时键入以下命令即可启动:$quicklyrun2、用户指南$cd~/serial-assistant$quicklytutorial运行此命令后会弹出用户指南,也就是教程(英文)。建议看看,里面讲得很详细,只不过它的示例是编写一款带有保存功能的类似便笺的软件。4
3、设计界面$cd~/serial-assistant$quicklydesign运行此命令弹出Glade界面设计器(这个是之前的截图,故名称不相符):这样的界面不是我们需要的,把它改为这种样式:5
至于具体怎么做这里就不赘述了,如果会用Glade自然是好事,没用过的话,直接看写好的界面,我会在后边附上地址。注意在某些widget属性栏中信号选项卡里添加的相关函数,通过这些函数,可以在按钮等部件与代码之间建立联系。这些函数,你可以在之后的代码中见到它。设计好之后可以点击工具栏中的齿轮图标预览一下。4、代码编辑$cd~/serial-assistant$quicklyedit由于利用的是原来的SerialAssistantWindow,所以,需要编辑文件。下面拿“发送”按钮来解释一下:由于它是最先被放置的,所以名称被自动命名为“button1”。点击属性栏中的信号选项卡,出现如下界面:在“clicked”信号的后面添加处理函数“on_button1_clicked”(不用自己输入,双击进入编辑模式,按一下空格,然后退格,这样就会有待选函数出现,选择就可以了),其余不做更改。可以点6
击最后面的那个词典模样的图标进入GNOME开发者帮助浏览器查看函数的用法。点击右下角那个大一点的图标可以查看这个部件的相关文档(建议多看这个内容,想让该部件实现什么样的效果,就去这个文档中看一下)。接下来编辑文件:所有的部件都需要在SerialAssistantWindow类中进行声明,例如,刚才的button1用如下语句实现:1=_object('button1')其余部件也一样,替换“button1”为各自的名称就好(前后都换)。这样,部件与代码之间的纽带就建立好了。定义刚才的处理函数(简单的示例,假定串口实例已经在前面创建好了,为self.I_serial):defon_button1_clicked(self,button1,data=None):self.I_('turnon')当然,这里发送的是“turnon”字符串,软件中需要发送键入发送窗口的字符串,如何获取,在这里就不多说了,结合写好的代码以及刚才说过的GNOME开发者帮助浏览器看看就知道了。要查看textview部件,在搜索栏中输入ew即可,其他类似。也可以查看之前跳过的那个用户指南,里面有一小节内容是讲这个的。5、软件打包做这个工作之前,需要为软件添加许可证、开发者等信息。在AUTHORS文件中添加开发者信息,示例如下:Copyright(C)r@$quicklylicense7
默认添加GPL-3许可证。后面可以添加选项,如:BSD,GPL-2,GPL-3,LGPL-2,LGPL-3。$quicklylicenseGPL-2然后就是设计一个程序图标,图标文件为矢量图,位于data/media/文件夹下,可以用inkscape(这个需要另外安装)进行编辑。接下来就是编辑了。在Categories一行中指定该应用程序的类型,这样,安装好后就可以在dash主页进行分类搜索了。例如,我将它改为:Categories=GNOME;System。可用分类如下:接下来是编辑文件,也是与信息相关的,改这些内容:8
完成以上工作后,理论上可以打包了。用户指南中就直接进行了。但是在编辑的过程中,相关的软件会创建一些隐藏文件,这些隐藏文件会使打包过程失败,所以先在Nautilus的查看选项中勾选“显示隐藏文件”,将各文件夹下的隐藏文件清除干净。有残留的话,打包失败后会有反馈信息,按照信息找到相关文件,进行删除。例如,编辑完AUTHORS文件后会产生一个AUTHORS~文件,这个会阻碍打包的。即使你远则继续,也会失败的,所以,老老实实地把它们删了。完成之后就可以打包了:$quicklypackage过程中会有以下警告,不过基本上不会有什么影响,可以不去理会:9
完成后,会创建一些文件,“serial-assistant_”中是源码,“serial-assistant_0.1_”是可以直接安装的deb包,在“serial-assistant_”文件中可以查看依赖信息。这样,串口助手就算完成了。接下来尝试安装。在软件中心安装时,提示信息不怎么友好:单基本上不影响安装,下面的也是:选择忽略并安装。安装好之后,启动器中就会多一个图标:10
注销、重新登录一下就可以看到它了。软件就完成了。需要说明一下,这个串口助手打开的是ttyUSB0,停止位为1位,数据位为8位,有兴趣的话可以用ComboBoxText部件把ttyUSB1、ttyUSB2等都列为可选项,就像选择波特率、校验位那样。注意几个问题:1、项目不能位于用中文命名的文件夹中(父目录中含有中文也不行),否则创建好的安装包无法安装。2、所创建的项目名称中不能含有空格,否则空格后的内容会被遗弃。例如,本例中,一定要使用命令$quicklycreateubuntu-applicationserial-assistant,“serial”与“assistant”之间要用“-”连接。3、尽管调用了glade,但后缀为ui的文件是不可以直接用glade打开的。必须使用$quicklydesign命令编辑。但py文件可以直接用gedit打开,无需用$quicklyedit命令。有什么问题或是知道怎么消除那个警告的话,还请联系我,互相交流。示例下载地址:/share/link?shareid=513447&uk=1410704776其中,文件是项目文件,可以cd到其中利用Quickly直接进行编辑。其余四个是由它打包好的。如果不存在依赖问题的话,可以顺利地安装。本人邮箱:qianchenzhumeng@11
版权声明:本文标题:Ubuntu应用程序快速开发(以编写单片机串口助手软件为例) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1702990589h438701.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论