- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于Linux的嵌入式POS的GUI及数据库研究
6 具体介绍
本系统针对商场或专卖店而设计,系统的核心功能模块是主控模块,主要是系统初始化,与通信模块,数据库,条码扫描,键盘,RFID接口,显示器及打印机等模块的连接。另外系统预留,与银联卡及会员卡端口,以备系统扩展之用。
系统采用消息队列机制,
系统始终维持两个数据库的运行,主服务器的中央数据库和本地单机的小型数据库。
(1)通信模块:上传:主控模块的响应信息,出错信息,日志信息,交易信息,数据库响应,删除日志响应。下发:控制信息,查询日志,删除日志,查询,修改,删除数据库信息。
其中的主要消息有:①上传交易信息成功,上传交易信息失败;②本地数据库中无该商品;③键盘消息的处理,主要是按键处理;④写日志成功,写日志失败;⑤来自服务器的控制消息:删除日志,查询当前机器的工作状态,日志打包发送至服务器,本地pos机重启,关机等;⑥接受条码信息;⑦如果本地数据库无该商品,向服务器数据库发送查询信息。
(2)数据库SQLite说明:①SQLite编译、安装;②SQLiteODBC编译、安装。这个要配置SQLite源代码的目录。如果出现找不到SQLite的情况,在Makefile文件中加上路径;③建立SQLite中的一个数据库。SQLite文件夹下有个demo文件,或者参照Readme直接使用SQL语言生成;④系统ODBC配置。在Linux中将刚刚做好的数据库配置为系统数据源,即让QT能找到;⑤QT中使用数据显示组件,选择上述的数据源,然后组件就可以自动显示数据库中的数据了。Server端采用MSQL/SQLite+Linux; Client端采用MSQL/SQLite+uCLinux;显示通过串口实现。
(3)数据库设计:
Server:
①product
PNo Name DescripTIon InstockPrice
TotalNumLeftNum
②sale
ONo Total Date
③order
ONo PNo Saleprice Number
Client:①product
PNo Name Saleprice
②sale
ONo Total Date
③order
ONo PNo Saleprice Number
使用jdbc测定了sqlite3插入数据的效率,使用整体事务与不使用整体事务,差别明显。cpu: 1G,内存:
512MB使用整体事务: 1000000条记录,需要93s。使用逐个插入提交事务: 1 min只能处理20条记录。
来源:维库开发网