功能描述

TinyGW是网关软件的一个简易实现,主要完成TinyWSN和MQTT之间双向数据转换。

数据转换

文件endec.py是一个用户可定制python程序,完成双向数据格式的转换,它主要有下面两个接口组成,提供默认的实现,假设数据是文本格式,不做任何转换,只是简单转发

名称参数描述
rx_ser_pkt(addr, data)addr 源地址
data 数据
处理节点模式接受的数据
rx_net_pkt(topic, data)topic 话题
data 数据
处理从MQTT接受的数据

配置说明

文件cfg.jsn是软件的配置文件,可以根据实际情况进行修改

名称参考值描述
TGW_MQSZ1024消息队列大小
TGW_MQTH16队列溢出门限
LOG_SIZE1024LOG队列大小
SER_PORT[“COM113”, “COM115”]节点模块的串口列表
SER_BAUD115200串口波特率
SER_INTV“0.000”发送到节点模块的每字符间等待时间,单位毫秒
SER_WKUW10 使用多个唤醒字符
1 单字符唤醒后延时
SER_WKUT“0.012”唤醒后命令延时,单位是秒
SER_WKUC32唤醒字符的个数
SER_WQRY“dsr”使用串口的DSR管脚,作为输入缓冲的握手信号
SER_WQSZ64串口输入队列的大小
PKT_WAIT“0.015”发送多个数据帧之间的等待时间,单位是秒
PKT_TICK2流控的状态的检查间隔,单位是系统TICK的个数
TSH_PORT9903网关命令的网络端口
RTU_PORT9904节点配置的网络端口
NET_ADDR“localhost”MQTT服务器的地址
NET_PORT1883MQTT服务器的端口
TLS_CERT“”服务器TLS的认证文件
UID_MQTT“tgw”MQTT的用户标识
USR_MQTT“”MQTT的用户名称
PWD_MQTT“”MQTT的用户密码
TIM_INTV“0.500”定时器的间隔,单位是秒
QRY_TIME“1.000”系统TICK的间隔,单位是秒
LOG_LEVEL1默认LOG的级别
PDB_MODE0开启PDB调试模式
SUB_TOPIC“rx”订阅的主题
PUB_TOPIC“tx”发布的主题

完整实现代码参见下面链接
https://gitee.com/tinywsn/tinygw/tree/master