北向资源接入规范
输出到 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;