北向资源接入规范
输出到 TCP Server

数据格式
测试脚本:
Lua
function Main(arg)
 for i = 1, 100, 1 do
  local jsondata = json:T2J({
   name = "test",
   value = i
  });
  Debug(jsondata);
  data:ToTcp("OUTJ5BXHWME", jsondata);
 end;
 return 0;
end;TCP 模式直接透传所有数据。
💡
为了方便 Server 端解析,在原始数据直接追加了 \r\n 换行符,解析的时候一定注意,例如:{"name":"test","value":13}\r\n。
输出到 UDP Server

数据格式
测试脚本:
Lua
function Main(arg)
 for i = 1, 100, 1 do
  local jsondata = json:T2J({
   name = "test",
   value = i
  });
  Debug(jsondata);
  data:ToUdp("OUTJ5BXHWME", jsondata);
 end;
 return 0;
end;UDP 模式直接透传所有数据。
💡
为了方便 Server 端解析,在原始数据直接追加了 \r\n 换行符,解析的时候一定注意,例如: {"name":"test","value":13}\r\n 。
输出到 HTTP Server

数据格式
测试脚本:
Lua
function Main(arg)
 for i = 1, 100, 1 do
  local jsondata = json:T2J({
   name = "test",
   value = i
  });
  Debug(jsondata);
  data:ToHttp("OUTJ5BXHWME", jsondata);
 end;
 return 0;
end;数据格式为 JSON:
JSON
Body: "{\"heartbeat\":\"rhilex\",\"body\":\"{\\\"name\\\":\\\"test\\\",\\\"value\\\":10}\"}"
 
2024-08-15 14:34:14 - POST request,
Path: /
Headers: Host: 127.0.0.1:6203
User-Agent: Go-http-client/1.1
Content-Length: 85
Content-Type: application/json
Key: value
Accept-Encoding: gzip
 - heartbeat:心跳包内容,可以用设备序列号填写
- body:原始数据
- Key: value:用户自定义头信息,一半可以用作 Token
输出到 MQTT Server

数据格式
输出到 Mqtt Server 是 JSON 格式。
测试脚本:
Lua
function Main(arg)
 for i = 1, 100, 1 do
  local jsondata = json:T2J({
   name = "test",
   value = i
  });
  Debug(jsondata);
  data:ToMqtt("OUTJ5BXHWME", jsondata);
 end;
 return 0;
end;
示例数据:
JSON
{
  "label": "rhilex1001",
  "body": "{\"name\":\"test\",\"value\":1}"
}- label:ClientID
- body:数据体
输出到 MongoDB

💡
Mongodb 的 URL 是标准格式:mongodb://root:root@127.0.0.1:27017/?connect=direct;当写入数据时,MongoDB 会自动建表:
数据格式
测试脚本:
Lua
function Main(arg)
 for i = 1, 100, 1 do
  local jsondata = json:T2J({
   name = "test",
   value = i
  });
  Debug(jsondata);
  data:ToMongo("OUT9FDY7HBI", jsondata);
 end;
 return 0;
end;数据展示:

⚠️
保存的数据必须是 JSON 格式
输出到 Semtech UDP

数据格式
首先需要安装 Semtech UDP 转发器,一般来说 Chirpstack 这类 LoraWAN Network Server 系统已经自带。
测试脚本:
Lua
function Main(arg)
 for i = 1, 100, 1 do
  local jsondata = json:T2J({
   name = "test",
   value = i
  });
  Debug(jsondata);
  data:ToSemtechUdp("OUT9FDY7HBI", jsondata);
 end;
 return 0;
end;输出到 TDengine

数据格式
新建一个 TDengine 数据库,这里用 Docker 测试:
docker run -d --name tdengine -p 6041:6041 tdengine/tdengine新建测试库:
SQL
create database if not exists rhilex;新建测试表:
SQL
use rhilex;
create table if not exists rhilex (ts timestamp, a int);插入数据:
SQL
use rhilex;
insert into rhilex values(now, 0)(now+1s,1)(now+2s,2)(now+3s,3);
insert into rhilex values(now, 0)(now+1s,1)(now+2s,2)(now+3s,3);
insert into rhilex values(now, 0)(now+1s,1)(now+2s,2)(now+3s,3);操作演示:

测试脚本:
SQL
function Main(arg)
 for i = 1, 100, 1 do
  data:ToTdEngine("OUTBB9Z8A2F", string.format("%d", i));
 end;
 return 0;
end;data:ToTdEngine 参数
💡
第二个参数和一开始建表的字段要一一对应,例如:
建表:create table if not exists rhilex (ts timestamp, a int); 数据写入:string.format("%d", i),表示将 a 字段格式化成参数。
数据查看:

输出到串口

数据格式
如果是 ASCII 字符串模式将原封不动直接发送,如果是十六进制模式,数据必须满足十六进制字符串,比如“1234,abcd”,注意没有 0x!
测试脚本:
Lua
function Main(arg)
 for i = 1, 100, 1 do
  data:ToUart("OUT9FDY7HBI", "01020304");
 end;
 return 0;
end;