跳转至

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
该示例假设串口发送过来的数据是abc,发送到服务器上的数据为dataabc。

4.4.2 串口发送数据添加后置数据

1.功能解释:在串口发送数据前,添加后置数据

2.举例: 该功能使用的是发送数据流,需要后置信息的话,需要在需要的通道添加发送数据流,其中local str=...是接收串口内容,return str.."data"是发送数据流内容,其中data是后置数据,str是接收串口内容。str.."data"表示把后置数据和串口内容拼接在一起发送给服务器。可以根据需求修改内容。

function
   local str=...
   return str.."data"
end
该示例假设串口发送过来的数据是abc,发送到服务器上的数据为abcdata。

五、总结

本文演示如何在 Air780EHM 核心板上面,用 irtu 固件,展示了数据流功能。