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

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

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

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

图5-1 点菜界面

菜系底下的列表框显示不同的菜系,通过点击不同的菜系又可以在菜名底下的列表框显示出该菜系中的所有菜的信息,用sqlite3数据库来存储所有菜的信息,当程序运行起来的时候,通过init()函数创建一个数据库dish.db,同时在数据库中创建了三张表,分别用来存储所有菜的信息和预选菜的信息以及已点菜信息。当鼠标点击一个菜系时,则调用其相应的回调函数去处理把属于该菜系的所有菜的信息输出到菜名底下列表框中,在菜系的回调函数static void foods_notif_proc(HWND hwnd,int id,int nc,DWORD add_data)中通过int clickn=SendMessage(hwnd,LB_GETCURSEL,0,0L),得到菜系中点击第几条菜系,然后通过SendMessage(hwnd,LB_GETTEXT,clickn,(LPARAM)string);得到鼠标点击的菜系的字符串,再通过initdish(string,dish_tosec)把属于该菜系的所有菜的字符串存储到dish_tosec字符数组中,最后通过static void fill_food (HWND hDlg,char **dish,char **dish_tosec)函数,把该属于该菜系的信息填充到菜名底下列表框下。如果想要点菜只需要在相应菜信息前的列表框中打钩就可以,当点完菜后通过点解Sure按钮,调用static void sure(HWND hDlg)函数,在; sure(HWND hDlg)函数体里调用了inster(file);函数把所有打钩的菜的信息写到数据库表中。完成了界面程序编写,接下来就写了一个Makefile文件把所有该目录下的.c, .h文件编译成一个可执行的程序。在Makeflie中通过CFLAGS +=-I/opt/arm-linux/include,LDFLAGS +=-L/opt/arm-linux/lib这两个变量来分别指向源程序静态编译时所要连接到的头文件和库文件所在的目录。这样经过静态编译后就生产了一个可执行的程序。
5.1.3 PXA270触摸屏模块实现
 MiniGui移植过到不同的开发板上,要编写实现适合该硬件的GAL图形引擎和IAL输入引擎。MiniGui的体系结构图如图5-2下: 
图5-2 MiniGUI的体系结构图
GAL和IAL定义了一组不依赖于任何硬件的抽象接口,所有顶层的图形操作和输入处理都建立在抽象接口之上。用于实现这一抽象接口类的代码就是“图形引擎”和“输入引擎”,这类似于操作系统的驱动程序。只要实现MiniGui在它所要移植的开发板上的GAL和IAL引擎,那么经过交叉编译出的程序就可以运行在该开发板子上。在PXA270中,GAL图形引擎已经在出厂时移植好了,所以在这里主要是编写MiniGui的输入引擎IAL.
 在这里交叉编译的是MiniGui1.6.0版本,MiniGui的ial.c是放在libminigui-1.6.0./src/ial/目录底下。在MiniGui的ial.c文件中有个很重要的INPUT数组结构,在该数据中定义了很多MiniGui的输入引擎,在这里参照2410ial例子编写了一个适合博创PXA270平台的2410ial输入引擎。
1.PXA270平台上MiniGui IAL输入引擎的编写
 在/libminigui-1.6.0/src/include/ial.h文件中,有一个tagINPUT结构数组,在该数组中定义了很多函数指针,这些函数指针就是用来指向设定的IAL的对应函数,从而实现硬件的输入。INPUT结构中有几个比较重要的成员如下:
a)Update_mouse 函数,该函数通知底层引擎更新鼠标信息,其返回值为1时,表示更新鼠标状态成功。
b)Get_mouse_xy 上层调用该函数可获得最新的鼠标的(x,y)坐标值。
c)Set_mouse_xy 上层调用该函数可以设置鼠标位置到最新的坐标值,对于不支持该功能的引擎,该成员可以为空,即该函数指针为赋值为NULL。
d)Get_mouse_button 上层调用该函数获得鼠标状态,该函数的返回值可以为IAL_MOUSE_LEFTBUTTON     (表示按下了左键)
IAL_MOUSE_MIDDLEBUTTON  (表示按下了中键)
IAL_MOUSE_RIGHTBUTTON    (表示按下了右键)。
2410.c文件主要是对以上这些函数接口一一实现。在该结构体中还有两个很重要的函数,init_input和term_input,这两个函数指针作为与IAL可见的接口,它是用户编写的IAL输入引擎的入口。只有init_input函数正确初始化后,MniGui就可以间接访问用户IAL的其他功能函数。用户编写好自己硬件平台的IAL.C文件必需要正确注册到MiniGui的INPUT结构体数组中,这主要是在该数组中注册一下自己编写的输入引擎。除外还要在MiniGui库文件安装目录下的一个include文件夹里找到一个叫common.h文件,打开这个文件,在该文件里加入#ifdef _SMDK2410_IAL{"SMDK2410", Init2410Input, Term2410Input},#endif,否则编译出来的MiniGui的可执行程序在开发板上时会找不到你的输入引擎。在注册完自己编写的IAL输入引擎后,接下来就开始编写自己的IAL输入引擎。
  用户编写适合自己平台硬件IAL输入引需要一一去实现MiniGui在ial.h文件中定义的函数接口。在输入引擎源代码里主要是实现了mouse_update(void),mouse_getxy(int *x, int* y),mouse_getbutton(void)以及wait_event(int which, fd_set *in, fd_set *out, fd_set *except, struct timeval *timeout)。每个具体编写如下:

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

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

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