电子点菜菜单_第1页
电子点菜菜单_第2页
电子点菜菜单_第3页
电子点菜菜单_第4页
电子点菜菜单_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于Linux系统电子点菜系统嵌入式课程设计之1系统介绍此系统主要代替饭店、酒店等人工点菜结帐系统,实现点菜、结帐等无人化操作,并提供一定的娱乐功能。Server2系统主要功能点菜用户可以随意的进行点菜操作,最后通过网络提交到总服务台,确保总服务台及时给后厨下单做菜。 结账由酒店出售的带一定款额的IC卡,用户可以使用本卡在嵌入式系统进行缴费,实现电子货币的功能。娱乐播放本地视频文件3项目涉及技术IC卡MiniGuiSocket网络编程搭建局域网络视频播放Linux系统软件开发4硬件平台 选用intel xscale PXA255 或PXA272实 验平台5项目具体软件设计思路 从顾客的角度出发

2、:易懂,操作方便,娱乐性。从酒店管理角度出发:实用性,数据可靠性,安全性,以及对数据的分析。从项目开发人员角度出发:对文档的规范,对代码的规范,以及项目的可扩展性。6项目具体流程:Server7项目界面具体流程:客户端 Minigui服务器端 8数据检查机制9结帐功能部分:选中并进入结帐浏览页面后,可以进行IC卡的充值和刷卡消费.10嵌入式Linux下设备驱动模块简介 :Linux系统将设备分成三种类型:字符设备、块设备和网络接口 字符设备:字符设备是指能够像字节流(比如文件)一样被访问的设备字符设备对应文件系统中的节点,用户则通过此文件节点访问和控制设备。 块设备:块设备和字符设备一样可以通

3、过文件系统节点来进行访问,Linux允许应用程序像字符设备那样读写块设备。 网络接口:任何网络设备都要经过一个网络接口,即一个能够和其它主机交换数据的设备。通常接口是个硬件设备,但也可能是个纯软件设备,比如回环(100pback)接口。Linux访问网络接口的方法是分配一个唯一的名字。 11IC卡的分类 根据卡中所用嵌粘的集成电路的功能不同,可分为接触式IC卡和非接触式IC卡两大类。接触式IC卡,具有标准形状的铜皮触点,通过和卡座的触点相连后实现与外部调和设备的信息交换。 12IC卡设备触点硬件电路介绍 C1:VCC电源电压C2:RST复位信号C3:CLK时钟信号C4:未用C5:GNDC6:V

4、PP编程电压C7:IO数据输入输出口线C8: 未用13IC卡设备驱动模块的实现 (1)数据结构的确定 驱动模块的最终目的是读取和写入卡数据处理,所以规范整齐的数据结构是必须的。可以定义公用体来实现卡数据的传递和计算 typedef union _money char ch4; int in; MONEY;14设备读,写,查询子函数 int chaxun(HWND hWnd) int Add(HWND hWnd,int selected); int jiezhang(HWND hWnd,int count);15打开文件操作if(fd = -1) if(fd=open(IC_DEV,O_RDWR

5、)=-1) perror(Open IC dev error! n); MessageBox(hWnd,打开IC卡设备出错n 请检查有没有插入IC卡, IC卡出错,MB_OK | MB_ICONSTOP); return -1; 16写文件操作 if(lseek(fd,IC_CHECK_POS,SEEK_SET)=-1) perror(Lseek error! n); return -1; if(write(fd,&buf1,4)=-1) perror(Write IC dev error! n); return -1; 17socket()使用系统调用socket( )来获得文件描述符:#i

6、nclude #include int socket(int domain, int type, int protocol); 系统调用socket()只返回一个套接口描述符,如果出错,则返回-1。 int sock_fd; sock_fd=socket(AF_INET,SOCK_STREAM,0);18bind()一旦有了一个套接口以后,下一步就是把套接口绑定到本地计算机的某一个端口上。但如果只想使用connect ( )则无此必要。 下面是系统调用bind ( )的使用方法: #include #include bind(sock_fd,(struct sockaddr )&my_addr

7、,sizeof(struct sockaddr)19listen()绑定完以后,服务器开始侦听是否有提出网络连接的请求if(listen(sock_fd,BACKLOG)=-1)printf(listen errn);exit(1);20accept()accept()函数让服务器接收客户的连接请求。在建立好输入队列后,服务器就调用accept函数,然后睡眠并等待客户的连接请求。 当accept函数监视的socket收到连接请求时,socket执行体将建立一个新的socket,执行体将这个新socket和请求连接进程的地址联系起来,收到服务请求的初始socket仍可以继续在以前的 socket

8、上监听,同时可以在新的socket描述符上进行数据传输操作。 #include int accept(int sockfd, void *addr, int *addrlen);int new_fd;new_fd = accept(sock_fd,(struct sockaddr*)&their_addr,&sin_size);21connect()面向连接的客户程序使用Connect函数来配置socket并与远端服务器建立一个TCP连接,其函数原型为:#include #include int connect(int sockfd, struct sockaddr *serv_addr,int addrlen);connect(sockfd,(struct sockaddr *)&their_addr,sizeof(struct sockaddr)22数据传输 send()和recv() 系统调用send()的用法如下:int send(int sockfd, const void *msg, int len, int flags);第一个参数是你希望给发送数据的套接口文件描述符。它可以是你通过socket()系统调用返回的,也可以是通过accept()系统调用得到的。第二个参数是指向你希望发送的数据的指针。第三个参数是数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论