AWTK-IOTJS物联网 GUI 开发套件

联合创作 · 2023-09-28 06:24

一、介绍




iotjs 是三星开源的 javascript 物联网开发平台。它为 javascript 应用程序提供了访问硬件、网络、文件系统和异步化的能力,功能类似于 nodejs,但无论是代码体积还是内存需求,iotjs 都要小很多,是用 javascript 开发 iot 设备应用程序的首选。





AWTK 全称 Toolkit AnyWhere,是 ZLG 开发的开源 GUI 引擎,旨在为嵌入式系统、WEB、各种小程序、手机和 PC 打造的通用 GUI 引擎,为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的 GUI 引擎。



awtk-iotjs 将 awtk 和 iotjs 有机结合起来,用 javascript 打通 GUI、网络和硬件,完全采用 javascript 开发物联网应用程序。


运行效果截图:


CleanAir-Demo


Meter-Demo


Chart-Demo


MusicPlayer-Demo


二、编译



  • 下载编译 iotjs



git clone https://github.com/pando-project/iotjs.git
cd iotjs
./tools/build.py
cd -


  • 下载编译 awtk



git clone https://github.com/zlgopen/awtk.git
cd awtk
scons
cd -


  • 下载编译 awtk-js



git clone https://github.com/zlgopen/awtk-js.git
cd awtk-js
git clone https://github.com/jerryscript-project/jerryscript.git 3rd/jerryscript
scons
cd -


  • 下载编译 awtk-iotjs


准备工作:



目前我不知道如何在 module.json 中指定编译参数,所以只好修改 iotjs/CMakeLists.txt 了。请在倒数第二行增加下面这行代码。




include(../awtk-iotjs/awtk-module/awtk.cmake)

下载编译:



git clone https://github.com/zlgopen/awtk-iotjs.git
cd awtk-iotjs
./build.sh


请确认以上项目均在同一个目录。



三、运行 DEMO



./run.sh demos/buttons.js

四、开发


在开发时可以使用:



  • iotjs 提供的模块。

  • awtk-js 提供的 GUI 控件。

  • 其它第三方模块。


与 awtk-js 主要差异是需要加载并初始化 awtk:



require('awtk').init(320, 480);

完整示例:



require('awtk').init(320, 480);

function applicationInit() {
var win = TWindow.create(null, 0, 0, 0, 0);
var ok = TButton.create(win, 0, 0, 0, 0);

ok.setText("ok");
ok.setSelfLayoutParams("center", "middle", "50%", "30");

ok.on(TEventType.CLICK, function(evt) {
var e = TPointerEvent.cast(evt);
console.log("on click: " + e.x + " " + e.y);

return TRet.OK;
});

win.layout();
}

applicationInit()

五、已知问题



  • 只支持 Linux 系统 (Ubuntu >= 16)。

  • 未 awtk-linux-fb 上验证,可能修改一下脚本。



理论上 Windows 平台也是可以的,但是 iotjs 没编译过。



六、内部实现文档


浏览 26
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报