LiteOS组件尝鲜-玩转iniparser

举报
Lionlace 发表于 2021/08/17 14:02:49 2021/08/17
【摘要】 小编带大家认识 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-


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。