LiteOS组件尝鲜-玩转iniparser
Iniparser的介绍
Iniparser 是针对 ini 文件(系统或者软件配置文件)的开源解析器,可以对 ini 文件(配置文件)进行解析、配置、删除等操作。
lniparser编码格式
ini 文件最基本组成单元是 property 或者叫 key ,每个 property 都有一个名称 (name) 和对应的值 (value) ;还可以将多个 property 归类为一组,即 section ,组名定义要独立一行,并用中括号括起来。 ini 编码格式如下:
[section]
name = value
示例:
[ipaddr]
addr = 192.168.0.100
mask = 255.255.255.0
gateway = 192.168.1.1
其中 [ipaddr] 表示一个 section ,该 section 下有 addr 、 mask 、 gateway 三个 property 。
每个 section 声明下的 property 都会和该 section 关联起来。一个 section 的作用域会在下一个 section 声明的地方结束,如果没有下一个 section 声明,该 section 的结束地方就是该文件末尾。定位一个 property 使用 section: property 来表示,因此不同 section 下的 property 的名称是可以相同的。 Iniparser 库处理名称时,会统一将 section 和 property 名称换成小写,所以 section 和 property 的名称命名与大小写无关。
注意:
• 每个 section 中不能嵌套新的 section 。
• ini 文件中注释说明以分号(;)开头。
使用介绍
目前 LiteOS 的组件化方案,可以支持组件自动下载及部署。用户可以方便地通过 make menuconfig 配置方式从 iniparser 官网下载源码包,并将已调试好的 patch 包打到源码包里。
下面以 Iniparser demo 为例来介绍该组件的使用方法,源代码路径位于:
https://gitee.com/LiteOS/LiteOS/tree/master/demos/utility/iniparser
• 测试数据
[hamburger]Lettuce=yesChickens= TRUESeafood= 0Cheese= Non[Beer]Composition= WheatYear=2021Country= ChinaAlcohol= 10.5
• 功能解析
对 [hamburger] 和 [beer] 两个组下的 key 进行解析:
iniparser_getboolean(ini,"hamburger:lettuce", ERROR_INT);
获取 [hamburger] 组下 lettuce 属性对应的值;
iniparser_getboolean(ini,"hamburger:chickens", ERROR_INT);
获取 [hamburger] 组下 chickens 属性对应的值;
iniparser_getboolean(ini,"hamburger:Seafood", ERROR_INT);
获取 [hamburger] 组下 Seafood 属性对应的值;
iniparser_getboolean(ini,"hamburger:cheese", ERROR_INT);
获取 [hamburger] 组下 cheese 属性对应的值;
iniparser_getstring(ini,"beer:composition", NULL);
获取 [beer] 组下 composition 属性对应的值;
iniparser_getint(ini, "beer:year",ERROR_INT);
获取 [beer] 组下 year 属性对应的值;
iniparser_getstring(ini,"beer:country", NULL);
获取 [beer] 组下 country 属性对应的值;
iniparser_getdouble(ini,"beer:alcohol", ERROR_DOUBLE);
获取 [beer] 组下 alcohol 属性对应的值;
• 配置选择
在 LiteOS 源码根目录下执行 make menuconfig 命令,按如下菜单路径使能 iniparser demo 。
使能 iniparser demo 后会自动使能 iniparser 组件和 ramfs 文件系统,保存退出后,会从 github 上自动下载 Iniparser 源代码,并从 gitee 上下载适配于 LiteOS 系统的 patch 包,并打入 patch 。
配置完,执行 make clean&& make -j 进行编译,编译成功后将 Huawei_LiteOS.bin 烧录到开发板中,重启板子,结果如下:
结语
如果想了解更多的 LiteOS 组件或应用,欢迎后台留言哦 ~
感谢您的阅读, 有任何问题、建议,都可以留言给我们,让我们一起进步: https://gitee.com/LiteOS/LiteOS/issues
为了更容易找到 “ LiteOS ” 代码仓 , 建议访问 https://gitee.com/LiteOS/LiteOS , 关注 “ Watch ” 、点赞 “ Star ” 、并 “ Fork ” 到自己账户下,如下图。
-end-
- 点赞
- 收藏
- 关注作者
评论(0)