Waft引擎也在持续迭代开发中,板子系统自带的waft容器固件相对较老,可以通过下载链接获取Waft容器固件,链接如下:
https://occ.t-head.cn/vendor/det ... amp;module=3#sticky
解压压缩包,将对应的文件上传到
开发板指定位置,分别如下:
压缩包目录
| Linux目录
| 说明
|
bin目录
| /usr/bin | waft容器二进制运行文件
|
lib目录
| /usr/lib
| waft_app运行时依赖的共享库
|
resource目录
| 根目录
| 存放waft依赖的资源文件,如字库文件
|
waftapps目录
| 根目录
| 存放waft字节码文件
|
推送方式可用adb或者scp指令,当前采用scp指令,指令格式如下:
scp【本地文件的路径】【服务器用户名】@【服务器地址】:【服务器上存放文件的路径】
scp /Users/mac_pc/Desktop/test.png
root@192.168.1.1:/root
scp -r【本地文件的路径】【服务器用户名】@【服务器地址】:【服务器上存放文件的路径】
scp -r /Users/mac_pc/Desktop/test
root@192.168.1.1:/root
scp 【服务器用户名】@【服务器地址】:【服务器上存放文件的路径】【本地文件的路径】
scp
root@192.168.1.1:/data/wwwroot/default/111.png/Users/mac_pc/Desktop
scp -r 【服务器用户名】@【服务器地址】:【服务器上存放文件的路径】【本地文件的路径】
sup -r
root@192.168.1.1:/data/wwwroot/default/test/Users/mac_pc/Desktop
注意,-r指令会在目标路径按源文件件名称新建一个文件夹。
image默认的账户为root,密码为
tina。
官方的文档,参考这里
https://www.yuque.com/waft/docs/ubi8k4
waft官方推荐的开发环境在Linux下,且需要依赖nodejs环境。
这里的Linux建议使用自己熟悉的环境,我之前一直在虚拟机上开发,本次想试试wsl2,结果光安装nodejs就遇到各种各样的问题,改为使用虚拟机则一路通畅。
node环境的安装,参考
https://www.runoob.com/nodejs/nodejs-install-setup.html
node环境安装好后,需要安装waft开发环境,使用下面的指令安装waft-cli:
npm i waft-cli -g
如果遇到权限问题,可以加上sudo执行
按照文档,使用如下指令创建waft项目:
waft init
根据提示输入项目名称,下你给慕模板类型,即可在当前目录下以输入的项目名称创建项目文件夹。
在第一次创建时遇到如下问题:
原因可能是多样的,我这边按以下方式解决的:
- 执行 npm cache clear --force
- 执行 npm install npm@latest -g,我觉得应该是这一句的原因,将npm更新到最新版本,应该就可以了。
项目创建完成时提示如下:
启动调试,进入到项目文件目录,执行以下指令:
npm run start
其结果如下,这是在ssh远程连接到虚拟机的命令行上执行的结果,提示没有显示变量,以及权限的问题。(抽空试一下不用管理员权限安装waft)
登录虚拟机,在虚拟机下使用命令行执行“npm runstart”指令,能看到指令在执行后打开了浏览器,但是浏览器窗口没有界面显示,而且过一会必定出现锁屏界面,重新登录,发现之前的窗口都被退出了,既不是屏幕保护程序,而是确实登出了账号。
这《快速开始》章节讲得是真快,我做嵌入式的,对前端技术并不熟悉,这教程搞得我有点难受了,新东西嘛,不完善也正常,希望waft长久之后,能完善一些基础教程吧,让非前端人员也能快速将waft使用起来。
在waft开发文档-开发工具-cli脚手架工具章节中,提到另一个命令:npx waft start,在项目文件目录下执行该指令,得到如下结果,算是成功执行了helloworld项目了。
另外在测试中发现如下现象:
- 桥接模式下(虚拟机与宿主机在同一网段),虚拟机不登录的情况下,使用ssh连接到虚拟机,并执行“npx waft start”指令,将会在宿主机的浏览器打开waft工作台的网页(http://127.0.0.1:8080/ui),但是网页马上就会自动关闭。谷歌浏览器和微软edge浏览器均会闪退,ie浏览器不会闪退,但是无法显示工作台界面。
虚拟机登录账户的情况下,在ssh终端中执行npx waft start”指令,则虚拟机和宿主机浏览器都不会打开工作台网页,且终端会提示“waft> Error: no DISPLAY environment variablespecified”。
- 更改为host-only+网络地址转换的方式,现象同桥接模式一样。
- 在虚拟机下运行时,大多数情况下需要执行两次“npx waft start”指令,才能正常的打开waft工作台网页。
看起来,waft的开发,只能在虚拟机上进行了。
源码看起来就真是前端开发了,helloworld字样在“waft_test/src/pages/index/index.axml”文件中定义。
在修改完源码后,可以在waft的repl命令行下执行 .build 触发编译,也可以执行.ui 指令更新浏览器工作台网页(.simulator--wasm=build/app.wasm 以及 .push--wasm=build/app.wasm 指令都执行失败)。
将编译之后的可执行文件app.wasm(路径waft_testbuildapp.wasm)上传到开发板,进入可执行文件所在目录,使用如下指令执行程序:
waft_app app.wasm
界面显示如下:
使用waft的框架,程序员可将注意力完全放到应用逻辑上,无需关注底层硬件,而且所见即所得、在线
仿真的特性,可以说是非常友好的功能了,相信熟练掌握之后能极大的加快项目进度。然则前端编程语言甚至编程思维对我来说都极为陌生,需要一段时间去学习才行。