Mission 4
——UCI API编程接口学习
Tool:
Xshell; WinSCP; Openwrt;Newifi
Reference:
《智能路由器开发指南》
Procedure:
UCI不仅提供命令接口供脚本开发者使用,而且提供了C语言调用接口。下面在Ubantu下说明API的使用。首先准备UCI编程接口的使用环境。UCI软件依赖Libubox,因此首先编译Libubox。
4.2.1
Libubox
Libubox是Openwrt的一个必备的基础库,包含大小端转换、链表、MD5等实用工具基础库,采用Cmake来编译。
libubox主要提供一下两种功能:
1、提供一套基于事件驱动的机制。
2、提供多种开发支持接口。(如:链表、kv链表、平衡查找二叉树、md5、json)
使用libubox开发的好处有如下几点:
1、可以使程序基于事件驱动,从而可实现在单线程中处理多个任务。
2、基于libubox提供的开发API可以加快开发进度的同事提高程序的稳定性。
3、能更好的将程序融入openwrt的架构中,因为新的openwrt的很多应用和库都基于libubox开发的。
Cmake是跨平台的产生Makefile的命令行工具,它应用于在脚本文件中配置工程。工程设置选项可以在命令行通过-D选项设置。-i选项可以打开交互提示来进行设置。它是一个跨平台的编译系统生成工具。通过平台独立Cmake的listfiles文件来指定构建过程。这个文件在每一个源码目录树目录下均有一个,文件名为Cmakelists.txt。Libubox和UCI均使用Cmake命令来产生目