远程脚本(补丁)的使用技巧
此功能在1.9.5版本固件以后提供。最新固件下载地址: 下载点我
DTU更新程序消耗的流量:
- DFOTA一般大小,几十KB-几MB不等,还有可能失败变砖
- 远程补丁大小一般为几百B - 几十KB
使用此功能,用户可以上传一个脚本文件到平台,平台像配置参数一样将脚本植入到DTU,设备启动后运行此脚本,使用此功能后无需升级固件就能更新功能,超轻量。
DTU会检测脚本Hash,只有脚本文件发生变化了才会下载文件
开发调试
使用远程脚本功能前,首先需要在本地调试好用户自己写的脚本。
首先新建一个测试脚本命名为remotedbg.lua
(可以自定义文件名),测试脚本内容如下:
require "log"
require "default"
-- 这一句非常重要,名称和文件一致就行。
module("remotedbg", package.seeall)
-- 需要使用deafult里面的其他变量
print(default)
-- 可以使用的有
print(default.getDtu())
print(default.getRecvBuff())
print(default.getWriteBuff())
print(default.getFlowCount())
print(default.getIs8910())
print(default.getLbs)
local dtu = default.getDtu()
log.info("remote-test",dtu.version)
-- 定义全局变量或者函数,在default里面可以用任务调用
function testGlobal()
print("test")
end
-- 测试任务
sys.timerLoopStart(function()
log.info("remote-Hellow world:", _G.collectgarbage("count"))-- 打印占用的RAM
log.info("remote-Hellow DevelopLinK", rtos.get_fs_free_size())-- 打印剩余FALSH,单位Byte
end, 3000)
接下来在default.lua
里面启动调试脚本
require "remotedbg"
然后观察运行效果是否和预期一致。
远程下发
- 进入DTU管理平台,打开
文件列表
,上传刚才的调试文件。 - 选择要配置的DTU或者分组,选择补丁功能,选择刚才上传的脚本文件,点击确认保存配置。
- 设备固件记得删除刚才测试用的
require "remotedbg"
语句,重新上电。 - 上电后设备自动下载脚本文件,并启动,观察效果。
- 如果需要更新脚本,重新上传脚本,然后非常重要
上传文件后一定需要重新打开DTU或者分组配置,点击补丁,重新选择文件并保存
。
技巧
在远程脚本里面使用default.lua
里面的函数或者变量:
-- 这一句非常重要,名称和文件一致就行。
module("remotedbg", package.seeall)
-- 已经引出的接口有
-- 需要使用deafult里面的其他变量
print(default)
-- 可以使用的有
print(default.getDtu())
print(default.getRecvBuff())
print(default.getWriteBuff())
print(default.getFlowCount())
print(default.getIs8910())
print(default.getLbs)
-- 全局函数
-- function write(uid, str)
print(default.write)
-- function read(uid, idx)
print(default.read)
-- 还可以自定义全局变量或者函数,然后在default的任务或者其他功能里面调用。
-- 定义一个全局函数
function testGlobal()
print("test")
end
-- 在其他脚本里面调用
remotedbg.testGlobal()
对物联网技术感兴趣请加入我们交流群,欢迎各种技术交流,
QQ群: 830407941
对我们产品感兴趣请查看淘宝:DEVELOPLINK
Air724核心板