【ESP32日记002】透传通讯协议的解析实现及JSON数据的解析

最近项目上增加了一个联网功能,以实现设备在手机上的远程交互、数据上报、指令下发控制等功能。使用的是华为的鸿蒙透传协议,MCU上需要实现对数据的接收、解析和应答等处理。实现的功能代码如下:

1、数据的接收,使用的是串口,这里代码就不再贴出来,调用的接口:
        String data = Serial.readStringUntil('\n'); // 读取数据,直到遇到“\n”结束;

2、消息数据拆解:
透传协议的约定:命令字,数据长度,json数据
具体实现代码如下:
2.1、创建一个结构体,用于缓存解析出来的数据:

//WIFI模组TLV消息缓存结构体
typedef struct{
    char command[100]; // 命令字不超过99个字符,因为字符串最后要“\0”
    int number;
    char parameter[1000]; // 参数不超过999个字符,因为字符串最后要“\0”
} TLV_Data;

2.2、实现解析数据函数,并将数据保存到结构体中

//消息解析,用于解析信息数据,拆分为关键字、长度,参数(即消息体)
void parseCommand(char *str, TLV_Data *cmd) {
    // 初始化cmd结构体的字段
    memset(cmd->command, 0, sizeof(cmd->command));
    cmd->number = 0;
    memset(cmd->parameter, 0, sizeof
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值