硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3743|回复: 9
收起左侧

[STM32H7] 可在STM32H7等单片机上使用的C语言序列化框架

[复制链接]

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2021-6-3 09:30:42 | 显示全部楼层 |阅读模式
本帖最后由 wansonglintbw 于 2021-6-3 09:35 编辑

    以前在STM32H750之类的单片机上写代码时经常需要将结构体序列化然后存储或者传输到网络,一直使用cjson之类的json序列化库,但是非常不方便的是整个序列化和反序列化过程需要自己手动写代码绑定每一个字段,每次更新结构体定义后还要一起更新相应的序列化绑定代码部分,用起来总是感觉非常麻烦。
    下面介绍一个由c99编写的开源库iniparse【iniparse c语言结构体序列化框架】。只要你的平台是c/c++,支持c99,那么就可以使用这个开源库非常方便的定义结构体进行序列化和反序列化,顺便一提,通过它还可以做到c语言运行时获取结构体元信息数据(可用于c语言实现动态反射)。
看图:

         

测试用例

测试用例

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2021-6-3 10:23:29 | 显示全部楼层
谢谢分享。
回复

使用道具 举报

14

主题

232

回帖

274

积分

高级会员

积分
274
发表于 2021-6-3 10:36:14 | 显示全部楼层
你没考虑过使用google的 proto buf吗?直接可以传输网络,比较通用
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
 楼主| 发表于 2021-6-3 11:14:07 | 显示全部楼层
zhang0352505 发表于 2021-6-3 10:36
你没考虑过使用google的 proto buf吗?直接可以传输网络,比较通用

proto本身是支持的(nanopb),但是需要在proto文件生成c文件时使用集成脚本(python编写)才能够在生成.h的时候自动插入对iniparse的支持代码
proto设计文件:

proto设计文件

proto设计文件


生成的带iniparse信息的h文件

生成的带iniparse信息的h文件

生成的带iniparse信息的h文件


编译脚本有需要我也会开源提供的
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
 楼主| 发表于 2021-6-3 11:16:51 | 显示全部楼层
zhang0352505 发表于 2021-6-3 10:36
你没考虑过使用google的 proto buf吗?直接可以传输网络,比较通用

其实是支持的(nanopb),通过proto设计文件编译生成h文件是直接携带iniparse的信息。目前这部分还没有开源,后续会跟进的。
回复

使用道具 举报

14

主题

232

回帖

274

积分

高级会员

积分
274
发表于 2021-6-3 11:30:00 | 显示全部楼层
wansonglintbw 发表于 2021-6-3 11:16
其实是支持的(nanopb),通过proto设计文件编译生成h文件是直接携带iniparse的信息。目前这部分还没有开 ...

那非常不错,希望后续能看到,楼主加油
回复

使用道具 举报

19

主题

72

回帖

129

积分

初级会员

积分
129
发表于 2021-6-3 13:13:35 | 显示全部楼层
一直在用cJSON,感觉挺好用的。
回复

使用道具 举报

3

主题

56

回帖

65

积分

初级会员

积分
65
发表于 2021-6-3 14:32:46 | 显示全部楼层
iniparse这个名字不是开源解析.ini文件的吗,容易弄混呢,https://gitee.com/mirrors/iniparser/tree/master/src
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
 楼主| 发表于 2021-6-3 14:51:12 | 显示全部楼层
小麦吉 发表于 2021-6-3 14:32
iniparse这个名字不是开源解析.ini文件的吗,容易弄混呢,https://gitee.com/mirrors/iniparser/tree/maste ...

一开始想着做的就是解析ini文件,后来发展成了可以序列化结构体,本身也是可以解析类似ini文件的
回复

使用道具 举报

23

主题

1432

回帖

1501

积分

至尊会员

积分
1501
发表于 2021-6-3 14:56:04 | 显示全部楼层
看了下,简单易用啊,给楼主赞一个
代码不规范,亲人两行泪!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-11-1 07:41 , Processed in 0.253739 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表