08 数据流
作者:李源龙 | 最后修改:2026-04-01
一、演示功能概述
本篇文档主要是讲解了 iRTU 的参数设置的数据流配置
二、准备硬件环境
准备一块 Air780EHM 核心板:点击购买

三、准备软件环境
1.烧录工具:Luatools 工具
2.Air780EHM 烧录需要的 irtu 固件:固件版本
3.tcp 服务器测试地址:https://iot.luatos.com/#/page6/netlab。 详细使用说明参考:合宙 TCP/UDP web 测试工具使用说明
四、功能选项讲解
本次功能展示统一使用该串口配置和网络通道 Socket tcp:


使用串口 1,波特率 115200,默认配置,网络通道选择 Sokcet tcp
4.1 数据流的开启和关闭
1.功能解释:每个数据流通道对应每个网络通道,比如数据流通道 1,对应的是网络通道 1,如果开启了之后不去写自定义的编程内容,数据传输是透传,如果填写了错误的数据流,会导致数据上传或者下发都串口失败。
2.举例:

4.2 发送数据流模板
1.功能解释:把串口接收到数据发送到服务器的数据做处理
2.举例:
数据流的格式为 function end 需要在 function end 中间写代码,需要注意的是,需要写 return 返回数据,才会发送到服务器上面,如果没有 return,仅会对串口的数据做处理。
function
--str接收返回的参数数据
local str=...
--这个示例用来判断从串口过来的数据,内容是否是data,如果是的话,
--就往服务器发送"data is true",如果不是话,就往服务器发送"data is false"
if str=="data" then
return "data is true"
else
return "data is false"
end
end
运行结果

发送数据流主要的作用是对串口发过来的数据做处理,然后发给服务器。
4.3 接收数据流模板
1.功能解释:把服务器下发的数据,做数据处理,然后发送到串口
2.举例:
function
local str=...
log.info("STR",str)
if str=="data" then
return "return data"
elseif str=="reboot" then
log.info("接收到服务器重启指令")
pm.reboot()
end
end
收到服务器的 data 数据,经过数据流,转换成 return data 发送给串口

收到服务器的 reboot 指令重启,模块进行重启操作


发送数据流主要的作用是把从服务器下发的消息进行处理,然后发给模块
4.4 数据流使用功能扩展示例
4.4.1 串口发送数据添加前置数据
1.功能解释:在串口发送数据前,添加前置数据
2.举例: 该功能使用的是发送数据流,需要前置信息的话,需要在需要的通道添加发送数据流,其中local str=...是接收串口内容,return "data"..str是发送数据流内容,其中data是前置数据,str是接收串口内容。"data"..str表示把前置数据和串口内容拼接在一起发送给服务器。可以根据需求修改内容。
function
local str=...
return "data"..str
end
4.4.2 串口发送数据添加后置数据
1.功能解释:在串口发送数据前,添加后置数据
2.举例: 该功能使用的是发送数据流,需要后置信息的话,需要在需要的通道添加发送数据流,其中local str=...是接收串口内容,return str.."data"是发送数据流内容,其中data是后置数据,str是接收串口内容。str.."data"表示把后置数据和串口内容拼接在一起发送给服务器。可以根据需求修改内容。
function
local str=...
return str.."data"
end
五、总结
本文演示如何在 Air780EHM 核心板上面,用 irtu 固件,展示了数据流功能。