TLV的封包代码

本文介绍了在深入学习TLV协议后,作者所编写的封包代码实现过程,包括TLV结构的解析与构建,旨在帮助读者理解TLV协议的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在学习了TLV协议之后,所写的代码

#包含 “ tlv_pack.h ”
#包括 < stdio.h中>
#包括 < string.h中>
#包括 “ temp_client_main.h ”
#定义 HEAD  0xFD   //定义一个报文头
#限定 TLV_FIXED_SIZE   5  //固定TLV字节流大小,不包含值的值
#限定 TLV_MINI_SIZE   (TLV_FIXED_SIZE + 1// TLV字节流的最小值,值的最小值为12
#定义 BUFSIZE  256

枚举  //使用枚举标签的值会自加
{
   
    TAG_SN = 0x01//树莓派上的ID
    TAG_TEMP = 0x02//温度
    TAG_TIME = 0x03//时间
};

/ *树莓派的编号ID = RPI0001报文
 * * HTL值CRC1 CRC2
 * * 0xFD 0x01 0x01 0x07 0x12 0x34
 * /

int  pack_sn(char * buf,int size)//声明 id封装函数
{
   
    无符号 短 crc16 = 0 ;
    char            * id = “ RPI0001 ”;
    int      ofset = 0 ;
    int          pack_len = 0 ;
    int      data_len = 0 ;

    如果(!buf ||大小<TLV_MINI_SIZE)
    {
   
        printf(“无效的输入参数\ n ”);
        返回 0 ;
    }

    buf [ofset
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值