毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 计算机安全 >> 正文

基于zigbee的无线电子点菜系统 第6页

更新时间:2014-6-28:  来源:毕业论文

基于zigbee的无线电子点菜系统 第6页
init()建立       initdish()
数据库         fill_food()                  sure()       text_notif_commin()
                                        
图4-4 点菜终端点菜模块各子模块交互图

说明:
a)点菜终端应用程序启动后先调用init()函数建立数据dish.db,然后在数据库中建立三张表用来分别存储所有菜的信息,预点菜信息,提交已点菜信息
b)顾客点击菜系中某一项就会调用initdish()和fill_food()函数进行把输入该菜系的菜的所有信息从数据库中提取出来,并显示在界面上。
c)顾客把要点的菜放到预选菜单列表中就会调用sure()函数把顾客所点的菜填充到预选列表中并插入数据库预选表中。在预菜单列表中,顾客可以对其中的某个菜就行删除,该菜对应的信息业从数据库预选表中删除。
d)顾客把预选菜单的菜提交到后台PC机时,就会调用text_notif_commin()函数把数据库中预选表中的所有菜的信息插入已选菜表中,并把在预选表中的所有信息都清空。同时把提交的菜的ID写到串口上。

酒水模块中各个子模块之间的交互图如图4-5所示:     foods_notif_Add_SJ()
   

                          图4-5 酒水模块交互图            

说明:
a)顾客把想要点的酒水添加入预选列表框中,就会调用foods_notif_Add_SJ(),把所选的酒水信息写到数据库中酒水预选表中。顾客还可以删除酒水预选框中的某一项。
b)顾客在提交所选酒水时就会调用foods_notif_Comin_SJ()把酒水预选表中的信息写到酒水提交表中,同时把酒水预选表中的所有信息清空。
2.ZigBee通信模块软件设计
当顾客想要把所点的菜信息发送到后台PC是可以通过无线设备ZigBee进行发送。ZigBee是通过连接开发板PXA270的串口,以及连接PC机的串口让开发板和PC机进行通信。如下图4-6所示:
 
                                      ZigBee 
                        PXA270                        PC机
图4-6 ZigBee通讯图

 点菜终端(PXA270)通过Write()函数把要发送的数据写到串口然后传送给ZigBee设备,ZigBee设备通过技术把数据发送到后台与PC机相连的ZigBee设备上,然后PC机通过Read()函数把ZigBee发送过来的信息(菜的ID)读取出来。
3后台PC机模块软件设计
后台PC主要有两大功能,第一结账功能,第二对餐厅营业情况进行统计。结账功能可以通过顾客发送过来的菜的ID进行查表,然后把其ID对应的菜的信息显示出来。当顾客结账时,可以计算出顾客应付金额,以及打印菜单,以便顾客进行核对。餐厅的营业情况统计通过查询数据库表,该表中存储有这一个月内顾客的点菜信息,以方便对餐厅一个月内的收入和支出进行计算。

4.3 本章小结
 在本章中主要从硬件角度以及软件角度论述了基于ZigBee无线点菜系统的硬件设计和软件设计。在硬件设计中只需要通过ZigBee设备把PC机和PXA270连接起来进行通信。在软件上,画出了点菜模块中各个函数功能的交换图,并进行了说明。同时也画出了呼叫酒水模块中所使用的函数之间的交互图,也经行了说明。
5  基于ZigBee无线电子点菜系统实现
5.1无线点菜终端实现
在点菜终端模块的实现中我主要是分为三大模块来实现,分别是嵌入式数据库sqlite安装使用模块,MiniGui安装配置及界面开发模块,PXA270触摸屏模块实现。
5.1.1 SQLite模块实现
1.嵌入式数据库SQLite安装与配置 
1) PC机安装配置SQLlite方法
a) 从SQLite官方网站
下载SQLite的安装包,进入SQLite所在的目录,用解压命令tar –xvf sqlite* 解压压缩包。
b) 进入sqlite的安装目录,在终端输入./configure命令,如果宿主机Linux系统中没有安装ActiveTcl,那么就会在终端打印出错误信息:/sqlite-3.3.6/src/tclsqlite.c: In function `DbUpdateHandler';/sqlite-3.3.6/src/tclsqlite.c::333:warning : passing arg 3 of ` Tcl_ListObjAppendElement`,makes pointer from integer without a cast...... 其解决办法是在./configure时候加上参数----disable-tcl,使编译器不去检查ActiveTcl。
c) configure完成后就执行make && make install进行安装
为了测试是否安装成功,可以在终端输入命令:sqlite3,当出现如下字样则代表安装已经完成。
SQLite version 3.3.6
Enter ".help" for instructions
sqlite>
2)SQLite交叉编译环境的配置
在配置SQLite交叉编译环境时首先要确保linux系统装有交叉编译工具,在这里使用的是arm-linux-gcc交叉编译工具。配置SQLite交叉编译的方法如下:
a)打开终端在终端分别里输入:export config_BUILD_CC=gcc  export config_TARGET_CC=arm-linux-gcc命令(config_TARGET_CC是交叉编译器,config_BUILD_CC是主机编译器)
b)直接运行./configure会出错,错误信息:checking for /usr/include/readline.h... configure: error: cannot check for file existence when cross compiling
c)进入sqlite的安装目录,vi configure 打开configure文件, test "$cross_compiling" = yes && 语句下面的{ (exit 1); exit 1; };}都改为{ (echo 1); echo 1; }; }。
d)在终端执行make && make install 命令进行安装。
默认的安装路径是/usr/local/lib ,如果想改变安装的目录,也可以在./configure的时候加上参数—prefix=”安装路径”。可以通过交叉编译一个调用SQLite3API接口的源程序来测试搭配的SQLite环境是否正确,假设源程序为select.c,则在终端输入:arm-linux-gcc select.c -o -L.libs -lsqlite3 –I /opt/arm-linux/include –L /opt/arm-linux/lib –static(sqlite3的安装目录是/opt/arm-linux,在这里使用的是静态编译).静态编译完成后,把生产的可执行文件放到开发板测试。
2.嵌入式数据库SQLite的使用方法
 SQLite可以运行在终端输入SQLlite命令进行对SQLite数据库进行操作。为了查询SQLite命令,可以在终端输入.help命令进行查询。由于SQLite数据库对SQL语言的支持,所以也可以在终端输入SQL语句来操作数据库,例如想在当前目录创建以命为dish.db的数据库,然后在该数据库进行创建一张表名为t的表,接着把数据插入表中,最后查询t表中的数据。实现的办法如下:
sqlite>sqlite3 dish.db
sqlite>Create table t(sno int,name varchar(10));(创建了一张两行两列的名为t的表)
sqlite>Insert into t values(100,’张三’);(在t表中插入了一行数据)
sqlite>Select * from t;(在终端打印出t表的所有信息)
 SQLite提供了许多函数接口,编程人员可以直接调用SQLite的函数接口来进行编程。通过调用SQLite的函数接口,可以进行对SQLite数据库进行操作。常用的SQLiteAPI接口如下:
1)sqlite3_open("cdish.db", &db)打开一个名为cdish.db的数据库,如果该数据库不存在怎在当前的目录创建一个名为cdish.db的数据库。
2)sqlite3_close(db)关闭数据库;sqlite3_exec( db , sql , 0 , 0 , &zErrMsg )执行一条SQL语言的函数,参数sql为要执行的SQL语言的操作。
3)sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg )是对表进行查询的函数,它完成的功能是执行sql的查询语言,把查询到的结果放到azResult数组里,可以通过打印字符指针数组result的值开查看是否查询正确,参数nrow,ncolomn分别返回查询到符合条件的行数和列数,zErrMsg为返回错误信息的参数。
4)sqlite3_exec(db,sql,0,0,&errmsg)这个函数的功能是执行一条SQL语句,该语句保存在sql字符指针里。函数的参数说明db 为数据库指针(指向打开的数据库),&errmsg保存错误信息。
3.点菜终端SQLite的实现
在已经配置好的SQLite数据库编译、运行坏境后,调用SQLite提供的函数接口来进行编程。实现点菜终端数据库的步骤如下:
a)设计点菜终端数据表的格式如列数、行数以及每一列的类型。点菜终端的点菜模块中一共建立了三张表:第一张表用来存储所有菜的信息,该表存储有很多不同的菜,每一个菜中都包括该菜所属的菜系、价格、图片、文字描述等信息;第二张表用来存储预选菜的信息;第三张表用来存储顾客已提交菜的信息。三张表之间是通过菜名ID号关联。
b)在呼叫酒水模块中所创建的表和表之间的关系跟点菜模块类似。
c)在MiniGui程序里先调用用init()函数,在该函数里又调用了SQLite提供的函数接口sqlite3_open(“dish.db”,&db)创建了一个名为dish.db的数据库,
d)在成功创建数据库后接着就多次调用SQLite提供的函数接口sqlite3_exec(db, sql , 0 , 0 , &zErrMsg)进行创表和把数据插入表中。
e)调用SQLite提供的API接口来经行数据的插入、删除、修改、查询。 
5.1.2 MiniGui模块实现
1 .MiniGui开发环境配置
 MiniGui开发环境的配置是整个无线点菜系统中比较重要的一个环节,因为只有搭配好MiniGui编译环境才能正确地编译出能在开发板上运行的程序。MiniGui环境配置包括PC环境的配置和交叉编译链的建立,具体实现步骤如下:
1)MiniGui PC环境的搭配
a).从
下载minigui安装文件,主要下载了这几个压缩文件minigui-res-str-1.6.tar.gz,libminigui-str-1.6.2.tar.gz,qvfb-1.0.tar.gz,mg-samples-1.6.10.tar.gz. ,分别是mingui的资源文件,minigui库文件,minigui运行平台qvfb,以及minigui的例子.
b). 解压下载的安装包,进入相应的目录进行安装minigui的库文件和资源文件以及运行平台qvfb,一般都是执行三条命令:./configure && make && make install。在默认的情况下minigui的库文件以及资源文件都是安装在/usr/local/lib目录底下,如果想改变为其他目录也可以再./configure的时候加上参数—prefix=”安装目录的路径”
c).在安装完成后,要在终端vi /etc/ld.so.conf打开文件,在文件最后添加一行 /usr/local/lib 然后:wq 保存推出,然后在终端运行ldconfig命令刷新一下。
为了测试是否安装成功,编译一下MiniGui的实例,然后让它在qvfb上运行(注意在终端开发qvfb后还需在configure里把分辨率配置为640X480),看到运行结果,则证明minigui已经安装成功。编译minigui的命令是(这里以编译helloword.c为例子):在终端输入gcc helloword.c –o helloword –lminigui –ljpeg –lpng –lz –lpthread  (参数说明:-lminigui 是连接minigui核心的库函数,-ljpeg ,-lpng 是编译minigui的图片文件要连接的库函数,-lpthread 是提供POSIX兼容的线程支持的库函数,这是编译Minigui—Threads程序时需要的库函数)
2).MiniGui交叉环境建立的步骤如下:

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

基于zigbee的无线电子点菜系统 第6页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。