由于本系统落于某单板系统上,与嵌入式软件有复杂的调用和复用逻辑。从简单入手,
硬件系统为PPC单板×N,底层功能已经完成。目标是一个可控的Web管理系统。
数据库建立为在montavista的虚拟文件系统中,创建一个xx.db文件,然后在板子上通过
sqlite命令行直接建表。这部分直接省略了,没有存储过程,没有表间关系,尽量简单点。
服务器端可使用的容器很多,这边不一一列举,反正开源。做好makefile直接移植到mt-linux。
数据库的设计思路如下:
用户认证、数据读取、数据保存。 这三个模块够了,数据是啥米啊?先别管。数据读取是
指从单板的应用层直接先保存数据到db,前端web页面再从db读取。数据保存是指前端web保存
数据到db,应用层侦测到数据变化后,通过任务存放变化数据到寄存器、全局变量。
前端页面采用Html-cgi转化为C代码,通过cross-complie工具生成执行文件cgi,scp至单盘的工作目录。
嵌入式服务器的配置部分需要把默认路径指向工作目录,这样输入http://192.168.1.1(伪,IP自己定好)
这样的东东时,直接调用cgi,webserver始动,怎么动我就不管了。
前端页面之数据读取--核心代码--如下
--一小段Sqlite接口调用--
1sqlite3 *db=NULL;
2char *zErrMsg = 0;
3int rc;
4char **azResult;
5int nrow = 0, ncolumn = 0;
6rc = sqlite3_open("/xx.db", &db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
7if( rc )
8 {
9 fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
10 sqlite3_close(db);
11 exit(1);
12 }
13 char * sql = "SELECT * FROM table1 where id = 1 ";
14sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg );
这种代码在docin上找sqlite使用文档吧,一般都是这样,这种封装的接口有利有弊,先用着吧。
现在从web页面取一段数据应该没问题了。