一个工作十年的嵌入式工程师,做过各种嵌入式项目,从单片机裸程序、RTOS到Linux也都玩过。那一套从编码-编译-烧录-测试的开发方式已深入内心。当新来的95后同事给他演示了使用轻应用开发物联网应用之后,他彻底震惊了,他第一次知道还可以如此方便的使用Python来开发嵌入式应用,他感叹到:当时代要将你抛弃的时候,连招呼都不跟你打。
接下来带开发者们看看HaaS轻应用(Python)开发方式到底是什么样的。
前言
Python作为一种高级语言,借助于交互式解释器(Read Eval Print Loop:REPL)解释执行。这意味着其可以逐条执行,随时查看变量信息,这对在IoT设备上调试非常方便。传统的调试方式都是先逐行调试相关功能,在一定阶段后将相关功能集成到一个Python文件,通过Python命令直接解析执行。在集成调试阶段,我们经常会增加,删除,修改部分文件,并拷贝修改后的文件到SD卡上执行。这虽然节省了编译时间,但是重复的插拔SD卡为开发工作引入了了额外的操作,最好是能够实现一键推送。
借鉴alios-studio现有功能的交互功能,增加了针对Python轻应用的相关底层实现,重新打造了新的VS code插件amp-python,实现Python轻应用工程创建,编译,上传和运行一站式的开发环境,极大地方便开发者的Python轻应用开发。下面我们详细介绍一下新插件的原理,操作方式及新增特色功能。
amp-python是专门为Python轻应用打造的VS code开发环境,开发者可以利用该插件推送任意文件到HaaS设备上。amp-python已经发布到VS code插件市场,开发者直接搜索并安装amp-python即可。
1、工作原理
开发者首先选择创建工程,此时插件会从“轻应用市场”获取应用列表并展示在VScode页面上。开发者可以选择关心的应用并按照提示完成工程创建。插件后台会顺序执行下列操作:
1)下载并解压应用zip包到用户选择的工作台;
2)获取github仓库上的Python语法库,该语法库为Python开发提供自动补齐和高亮功能。
应用创建完成后,开发者可以编辑相关代码,编译工程以进行语法检测。在编译成功后启动Tftp将工程文件打包上传到HaaS设备的SD卡,同时触发Python文件的运行以实现板级运行和功能检测。
2、操作介绍
2.1、安装插件
开发者按照下图的指示,即可完成amp-python插件的安装。
因amp-python使用跟alios-studio相同的框架开发,所以两个插件存在部分status bar重复的地方,在UI视图上会引起混乱:
所以建议先关掉alios-studio插件,右键点击status bar的空白处,在弹出的选项列表里点击alios-studio即可。
2.2、按钮介绍
插件安装完成后,如果你当前的vscode未打开任何工作台,则vscode最下角的状态栏只会显示新建工程的图标;
若你已经打开了某个工作台,则会在VScode底部的状态栏显示如下一排按钮。
将鼠标悬浮在相关按钮即可显示该按钮的具体功能:
2.3、详细操作
- 新建工程:
点击“新建工程”按键,会弹出轻应用市场上的Python工程。选择关心的工程
根据提示输入项目名称,点击回车是使用应用名称(python_demo1)作为工程名称。这里我们不做更改,直接回车。
之后指定你的工作台路径即可。插件会自动创建工作台路径文件夹。
工程创建完成后,插件会自动打开工作台文件夹,点击solutions展开可以看到你同步下来的示例工程
- 编译工程:
点击编译工程按钮即可实现对工程的编译。这里的编译仅实现对Python文件的语法检测,所生成的pyc文件也不是最终设备运行时候使用的文件。
- 文件打包并通过TFTP上传
点击上传按钮即可开始Python文件的上传,首次上传的时候会扫描wifi信息,请耐心等待。
上传通过TFTP实现,需要输入WIFI及串口配置相关信息,根据插件界面弹出的提示选择相关配置,wifi账号需要选择同PC连接的同一个WIFI网络。
上传文件的过程中会通过串口控制设备,所以在启动上传之前需要关闭调试终端,建议点击terminal的“kill terminal”按钮即可关闭当前串口。
下面显示的是配置系统信息相关页面,注意最后一项串口的波特率需要选择1500000。
这里需要确保选择的wifi账号跟PC使用的wifi账号相同。譬如当前电脑使用的KIDS,所以上面的wifi也需要选择KIDS。
操作完成后,会弹出系统配置确认窗口,确认信息配置是否正确。
上述所有选择仅在首次启动TFTP上传的时候出现,插件会记录配置信息,后续操作无需再做选择。
启动TFTP应用上传后,我们就可以看到终端有tftp相关的Python执行输出,所有信息都会在terminal的输出行显示:
- 更改系统配置
如果开发者需要修改wifi信息和串口配置信息,可以点击更改系统配置选项进行重新设置。具体页面操作同上,这里不做赘述。
3、增强功能
首次文件上传后会在.vscode文件下生成tftpcfg.json文件,里面存储了TFTP传输的配置信息。开发者可以手动修改这里的信息,实现配置信息的快捷修改。
4、其他
目前串口终端和tftp文件上传使用相同的terminal页面,任何异常都可以通过先关闭当前terminal后重新操作尝试解决。
技术交流
Python轻应用继承了Python易学易用的特点,同时提供了基于嵌入式硬件的基础库封装,让开发者可以很方便的通过交互式的环境,实时进行嵌入式开发,让嵌入式开发也变得简单方便。如需更多技术支持,可加入钉钉开发者群,享受一对一的技术支持。