TinyGW是网关软件的一个简易实现,主要完成TinyWSN和MQTT之间双向数据转换。
数据转换
文件endec.py是一个用户可定制python程序,完成双向数据格式的转换,它主要有下面两个接口组成,提供默认的实现,假设数据是文本格式,不做任何转换,只是简单转发
名称 | 参数 | 描述 |
---|---|---|
rx_ser_pkt(addr, data) | addr 源地址 data 数据 | 处理节点模式接受的数据 |
rx_net_pkt(topic, data) | topic 话题 data 数据 | 处理从MQTT接受的数据 |
配置说明
文件cfg.jsn是软件的配置文件,可以根据实际情况进行修改
名称 | 参考值 | 描述 |
---|---|---|
TGW_MQSZ | 1024 | 消息队列大小 |
TGW_MQTH | 16 | 队列溢出门限 |
LOG_SIZE | 1024 | LOG队列大小 |
SER_PORT | [“COM113”, “COM115”] | 节点模块的串口列表 |
SER_BAUD | 115200 | 串口波特率 |
SER_INTV | “0.000” | 发送到节点模块的每字符间等待时间,单位毫秒 |
SER_WKUW | 1 | 0 使用多个唤醒字符 1 单字符唤醒后延时 |
SER_WKUT | “0.012” | 唤醒后命令延时,单位是秒 |
SER_WKUC | 32 | 唤醒字符的个数 |
SER_WQRY | “dsr” | 使用串口的DSR管脚,作为输入缓冲的握手信号 |
SER_WQSZ | 64 | 串口输入队列的大小 |
PKT_WAIT | “0.015” | 发送多个数据帧之间的等待时间,单位是秒 |
PKT_TICK | 2 | 流控的状态的检查间隔,单位是系统TICK的个数 |
TSH_PORT | 9903 | 网关命令的网络端口 |
RTU_PORT | 9904 | 节点配置的网络端口 |
NET_ADDR | “localhost” | MQTT服务器的地址 |
NET_PORT | 1883 | MQTT服务器的端口 |
TLS_CERT | “” | 服务器TLS的认证文件 |
UID_MQTT | “tgw” | MQTT的用户标识 |
USR_MQTT | “” | MQTT的用户名称 |
PWD_MQTT | “” | MQTT的用户密码 |
TIM_INTV | “0.500” | 定时器的间隔,单位是秒 |
QRY_TIME | “1.000” | 系统TICK的间隔,单位是秒 |
LOG_LEVEL | 1 | 默认LOG的级别 |
PDB_MODE | 0 | 开启PDB调试模式 |
SUB_TOPIC | “rx” | 订阅的主题 |
PUB_TOPIC | “tx” | 发布的主题 |
完整实现代码参见下面链接
https://gitee.com/tinywsn/tinygw/tree/master