POS(PointofSale)是现在各商场、饭馆、加油站等广泛供给的刷卡消费业务的辅助东西,坐落商场、加油站等地的POS机将取得的用户*的数据(卡号、业务材料等)经过通讯线路传给*服务处理体系上,经过处理的信息返回到POS机,然后完结用户的刷卡消费业务。为了完结上述数据交换进程,在POS机与银行主机之间有必要进行数据通讯。
现在运用最广泛的POS机接入方法是有线接入方法,而有线接入方法首要有两种:一是根据电话网的点到点拨号接入方法和根据DDN的专线接入方法。无线POS机是现在POS机职业的一项新技术,移动性强,均匀买卖时间短,并能随身携带。现在在全国各大商场和超市内随处可见POS刷卡机,但它们大多都是经过电话线联网进行通讯,移动性差,不灵敏,约束了业务开展。无线POS机成功的处理了这一难题,它经过一个POS和无线调制解调器的一体机在GPRS/CDMA网上联网传输信息。
1、Linux下的图形用户开发东西Q t
Qt是Trolltech(挪威)公司的产品。Qt是一个多渠道的C++图形用户界面应用程序结构,它能给用户供给精巧的图形用户界面所需求的一切元素,而
且它是根据一种面向目标的思维,所以用户对其目标的扩展是适当简单的,并且它还支撑真实的组件编程。
在一台装有Linux操作体系的机器上树立Qt/Embeded开发环境:首要需求具有三个软件装置包: tmake东西装置包,Qt/Embeded装置包,Qt的X11版装置包。
Qt包含了许多支撑嵌入式体系开发的东西,其间两个最有用的东西是qmake和Qtdesigner(图形规划器)。Qt中有三个首要的基类:QObject、QapplicaTIon和QW idget。
在Qt中编程,运用Signal和Slot进行目标之间的通讯是Qt的首要特征。它与W indows中的音讯机制十分相似,可是Signal和Slot机制真实完结了一种音讯的封装。当目标的状况改动时,宣布Signa,l告诉一切的Slot承受Signa,l虽然它不知道哪些函数是Slot。一个Signal能够发给多个Slo,t Slot也能够接纳多个Signal。Slot除了能够接纳Signal以外,与其他的成员函数没有差异。这种机制比运用回调函数要灵敏,可是会减慢程序的运转速度。不过在现在高速CPU的面前,这种丢失是无关宏旨的,并且它还能确保程序的简明性和灵敏性,十分便当。
QT支撑包含Unix、Linux、W indows在内的多种操作体系渠道。Linux下常用的KDE桌面环境便是根据QT编写的。QT运用了Unicode作为内部编码,能够一起支撑多种编码。现在的版别对国际化规范支撑十分齐备,这就为本地化供给了或许[4]。
2、小型嵌入式数据库M ySQL /SQLite
SQLite作为一个嵌入式的数据库,首要的是程序小(200多K),速度快,支撑ANSISQL-92的大部分规范功用。SQLite运用文件作为数据库,查询出的一切记载都放在内存中,它的sql句法比较简单易用,支撑的类型也比较全。字符串和blob类型能够支撑4GB的长度。它还支撑业务处理。在单用户状况下,它的速度是最快的。多用户下,速度不及其他数据库。
特色:①支撑契合acid(原子性,一致性,阻隔性,持久性)特性的业务处理;②0装备,不需求任何装置和办理;③契合SQL92的绝大多数规范;④完好的数据库只存储在单个磁盘文件傍边;⑤数据库文件能够被不同的机器同享,并与字节序无关;⑥string和BLOB的巨细只遭到可用内存的约束;⑦一共不到30000行代码。代码空间不到250K;⑧比现在的C/S结构的大部分数据库要快;⑨不依赖于任何其他的库;⑩支撑数据库巨细能够到达2的41次方,即2个TB。
SQLite的缺点:①没有专有的安全措施,数据库是一个文件;②没有内嵌的紧缩、解压机制,数据库文件看上去太大。
MySQL是SQL数据库办理体系,MySQL是开源的,开源意味着任何人都能够运用和修正该软件,任何人都能够从Internet上下载和运用MySQL而不需求付出任何费用。MySQL服务器作业在客户/服务器或嵌入体系中,MySQL数据库服务器是一个客户/服务器体系,它由多线程SQL服务器组成,支撑不同的后端、多个不同的客户程序和库、办理东西和广泛的应用程序接口(APIs)。
3、POS体系的硬件装备
POS体系硬件装备,见图1所示。
4、本POS体系介绍
因为咱们运用的是Red hat9自带的Qtdesigner,因为是处于研讨阶段,并且是免费的,所以暂时选用此软件。此软件没有集成开发环境(IDE),咱们选用Qt的Qt designer画出根本的功用,然后由KDevelop修正增加源代码,经过Qt自带的uic(user inteRFace compiler)东西将。 ui编译成。 cpp和。 h文件,最终经过修正makefile,到达咱们编译此界面的意图。
(1)需求装备unixODBC,把unixODBC放到/usr/local下,解紧缩,然后运转。 /configure,其间需求一些环境变量参数的设置,体系生成一些makefile文件,运转make将unixODBC编译,然后make install装置unix-ODBC,即unixODBC装置好了。
(2)装备ODBC,挑选数据库及其驱动。
(3)将Qt衔接上数据库,完结衔接。
5、开发流程
体系开发流程见图2所示。
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
PNoNameDescripTIonInstockPrice
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条记载。
责任编辑:ct