專利名稱:一種網(wǎng)絡(luò)稅控系統(tǒng)采集銷售票據(jù)數(shù)據(jù)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)采集的技術(shù),尤其涉及一種網(wǎng)絡(luò)稅控系統(tǒng)從商業(yè)管理信息系統(tǒng)的 商業(yè)收款機(jī)中采集銷售票據(jù)數(shù)據(jù)作為稅控處理的源數(shù)據(jù)的方法。
技術(shù)背景隨著計(jì)算機(jī)技術(shù)的發(fā)展,現(xiàn)有的流通型企業(yè)均采用商業(yè)管理信息系統(tǒng)(MIS系統(tǒng))進(jìn) 行商品、銷售、財(cái)務(wù)的管理,目前的商業(yè)MIS系統(tǒng)的前端主要采用第三代商用收款機(jī)(P0S 機(jī)終端),POS機(jī)終端能夠運(yùn)行在DOS, Windows, Linux等系統(tǒng)環(huán)境中,后臺(tái)采用高性能的 服務(wù)器,前后臺(tái)設(shè)備構(gòu)建在一個(gè)局域網(wǎng)或虛擬專網(wǎng)之上?,F(xiàn)有的POS機(jī)終端只能運(yùn)行MIS前端軟件,完成銷售時(shí)的收款、票據(jù)打印功能,并將相 應(yīng)的數(shù)據(jù)提交給后臺(tái)對(duì)應(yīng)的服務(wù)器。但這種POS機(jī)終端只能輸出銷售的明細(xì)數(shù)據(jù),而不能輸 出稅控的發(fā)票數(shù)據(jù)。從上述對(duì)現(xiàn)有的商業(yè)MIS系統(tǒng)、P0S機(jī)終端的結(jié)構(gòu)和使用過(guò)程中,發(fā)明人發(fā)現(xiàn)上述現(xiàn) 有技術(shù)至少存在以下問(wèn)題現(xiàn)有的商業(yè)MIS系統(tǒng)只具有企業(yè)的信息管理的作用,不具有稅控的功能,并且這種系統(tǒng) 投入使用后,要保證作業(yè)的連續(xù)性,不能因?yàn)槠渌蛴绊慚IS系統(tǒng)的使用,若中斷則會(huì)給 使用中的企業(yè)帶來(lái)經(jīng)濟(jì)損失,基于這種情況在不改變現(xiàn)有商業(yè)MIS系統(tǒng)前提下,為實(shí)現(xiàn)針對(duì) 該MIS系統(tǒng)的網(wǎng)絡(luò)稅控系統(tǒng)完成以票控稅,如何從商業(yè)MIS系統(tǒng)的POS機(jī)終端中安全、準(zhǔn)確的 采集稅控用的源數(shù)據(jù),則成為準(zhǔn)確稅控的關(guān)鍵,但現(xiàn)有的數(shù)據(jù)采集方法,無(wú)法在不改動(dòng)現(xiàn) 有MIS系統(tǒng)的前提下實(shí)現(xiàn)準(zhǔn)確、安全的稅控?cái)?shù)據(jù)的采集。發(fā)明內(nèi)容本發(fā)明提供了一種網(wǎng)絡(luò)稅控系統(tǒng)采集銷售票據(jù)數(shù)據(jù)的方法,該方法在不改變現(xiàn)有商業(yè) 收款機(jī)的前提下,有效保證了采集到作為稅控處理的源數(shù)據(jù)的準(zhǔn)確性和安全性,進(jìn)而保證 了針對(duì)該管理信息系統(tǒng)的網(wǎng)絡(luò)稅控系統(tǒng)以票控稅的準(zhǔn)確性。本發(fā)明的目的是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的本發(fā)明提供了一種網(wǎng)絡(luò)稅控系統(tǒng)采集銷售票據(jù)數(shù)據(jù)的方法,包括通過(guò)在商業(yè)收款機(jī)中設(shè)置的數(shù)據(jù)采集模塊截獲商業(yè)收款機(jī)輸出的銷售票據(jù)數(shù)據(jù),將截 獲的銷售票據(jù)數(shù)據(jù)作為稅控處理用的源數(shù)據(jù)傳送給與商業(yè)收款機(jī)連接的網(wǎng)絡(luò)稅控器。所述的截獲商業(yè)收款機(jī)輸出的銷售票據(jù)數(shù)據(jù)包括數(shù)據(jù)采集模塊采用截獲商業(yè)收款機(jī)輸出至屏幕進(jìn)行顯示的銷售明細(xì)數(shù)據(jù)或打印輸出隊(duì)列中銷售票據(jù)的打印數(shù)據(jù)。 所述的截獲商業(yè)收款機(jī)輸出的打印輸出隊(duì)列中銷售票據(jù)的打印數(shù)據(jù)包括 監(jiān)控商業(yè)收款機(jī)的打印端口,當(dāng)該商業(yè)收款機(jī)利用打印端口進(jìn)行打印輸出時(shí),則獲取輸出的打印數(shù)據(jù)包。所述的通過(guò)在商業(yè)收款機(jī)中設(shè)置的數(shù)據(jù)采集模塊截獲商業(yè)收款機(jī)輸出的銷售票據(jù)數(shù)據(jù) 進(jìn)一步包括數(shù)據(jù)采集模塊向與該采集模塊所在的商業(yè)收款機(jī)連接的網(wǎng)絡(luò)稅控器進(jìn)行簽到;若簽到成功,則該數(shù)據(jù)采集模塊監(jiān)控所在的商業(yè)收款機(jī)的輸出銷售票據(jù)數(shù)據(jù)的操作, 并設(shè)定定時(shí)巡檢的時(shí)間間隔;若商業(yè)收款機(jī)進(jìn)行輸出銷售票據(jù)數(shù)據(jù)的操作,則數(shù)據(jù)采集模塊截獲輸出的銷售票據(jù)數(shù) 據(jù)作為稅控處理用的源數(shù)據(jù)傳送給所述的網(wǎng)絡(luò)稅控器;并以設(shè)定的時(shí)間間隔定時(shí)向網(wǎng)絡(luò)稅控器簽到進(jìn)行定時(shí)巡檢。所述方法進(jìn)一步包括驗(yàn)證上述數(shù)據(jù)采集模塊的簽到、監(jiān)控、定時(shí)巡檢步驟是否全部 執(zhí)行成功,若未全部執(zhí)行成功,則數(shù)據(jù)采集模塊鎖定所在的商業(yè)收款機(jī)。所述方法進(jìn)一步包括驗(yàn)證上述數(shù)據(jù)采集模塊的簽到、監(jiān)控、定時(shí)巡檢步驟是否全部 執(zhí)行成功,若全部執(zhí)行成功,則數(shù)據(jù)采集模塊向所述的網(wǎng)絡(luò)稅控器進(jìn)行簽退。本發(fā)明提供了一種網(wǎng)絡(luò)稅控系統(tǒng)采集銷售票據(jù)數(shù)據(jù)的方法,包括通過(guò)在商業(yè)收款機(jī)中設(shè)置的數(shù)據(jù)采集模塊替換該收款機(jī)使用的DOS操作系統(tǒng)中調(diào)用的子 功能中斷;監(jiān)控商業(yè)收款機(jī)利用所述的子功能中斷打開(kāi)、關(guān)閉、讀、寫(xiě)串口時(shí),則利用替換的子 功能中斷截獲打印輸出的銷售票據(jù)數(shù)據(jù);將截獲的銷售票據(jù)數(shù)據(jù)作為稅控處理用的源數(shù)據(jù)傳送給與商業(yè)收款機(jī)連接的網(wǎng)絡(luò)稅控器。所述的替換的子功能中斷包括打開(kāi)文件中斷、創(chuàng)建文件中斷、關(guān)閉文件中斷、讀文 件中斷、寫(xiě)文件中斷和時(shí)鐘中斷。所述的數(shù)據(jù)采集模塊加載到所述DOS操作系統(tǒng)的啟動(dòng)文件中,實(shí)現(xiàn)該數(shù)據(jù)采集模塊在所 述的DOS操作系統(tǒng)啟動(dòng)時(shí)自啟動(dòng)。所述的方法還包括數(shù)據(jù)采集模塊向與該模塊所在的商業(yè)收款機(jī)連接的網(wǎng)絡(luò)稅控器簽
到;若成功,則監(jiān)控串口,并進(jìn)行定時(shí)巡檢; 駐留替換后的各子功能中斷;上述各子功能中斷若全部駐留成功,則向網(wǎng)絡(luò)稅控器簽退; 若未全部駐留成功則鎖定數(shù)據(jù)采集模塊所在的商業(yè)收款機(jī)。 本發(fā)明提供了一種網(wǎng)絡(luò)稅控系統(tǒng)采集銷售票據(jù)數(shù)據(jù)的方法,包括通過(guò)在商業(yè)收款機(jī)中設(shè)置的數(shù)據(jù)采集模塊加載到該收款機(jī)使用的Windows操作系統(tǒng)的系 統(tǒng)進(jìn)程中;監(jiān)控該Windows操作系統(tǒng)的打印輸出,利用加載到系統(tǒng)進(jìn)程中的數(shù)據(jù)采集模塊截獲打印 輸出的銷售票據(jù)數(shù)據(jù);將截獲的銷售票據(jù)數(shù)據(jù)作為稅控處理用的源數(shù)據(jù)傳送給與商業(yè)收款機(jī)連接的網(wǎng)絡(luò)稅控器。所述的截獲該打印數(shù)據(jù)包括字符繪制的應(yīng)用程序接口函數(shù)的調(diào)用,并利用Windows 操作系統(tǒng)的鉤子函數(shù)得到發(fā)給所述接口函數(shù)的參數(shù)來(lái)獲取打印數(shù)據(jù)。所述的的數(shù)據(jù)采集模塊加入到該Windows操作系統(tǒng)的啟動(dòng)項(xiàng),實(shí)現(xiàn)該數(shù)據(jù)采集模塊在所 述的Windows操作系統(tǒng)啟動(dòng)時(shí)自啟動(dòng)。所述的數(shù)據(jù)采集模塊加入到該Windows操作系統(tǒng)的啟動(dòng)項(xiàng)包括在該Windows操作系統(tǒng) 的注冊(cè)表文件中加入啟動(dòng)項(xiàng)。所述的方法還包括數(shù)據(jù)采集模塊向與該模塊所在的商業(yè)收款機(jī)連接的網(wǎng)絡(luò)稅控器簽到;若成功,則監(jiān)控串口,并進(jìn)行定時(shí)巡檢;運(yùn)行打印數(shù)據(jù)監(jiān)控模塊;上述各部分若全部執(zhí)行成功,則向網(wǎng)絡(luò)稅控器簽退; 若未全部執(zhí)行成功則鎖定數(shù)據(jù)采集模塊所在的商業(yè)收款機(jī)。 本發(fā)明提供了一種網(wǎng)絡(luò)稅控系統(tǒng)采集銷售票據(jù)數(shù)據(jù)的方法,包括-通過(guò)在商業(yè)收款機(jī)中設(shè)置的數(shù)據(jù)采集模塊修改或替換該收款機(jī)使用的Lirmx操作系統(tǒng)中 打印設(shè)備驅(qū)動(dòng)程序;監(jiān)控該Linux系統(tǒng)的打印輸出,利用修改或替換的打印設(shè)備驅(qū)動(dòng)程序截獲打印的銷售 票據(jù)數(shù)據(jù),并將截獲的銷售票據(jù)數(shù)據(jù)作為稅控處理用的源數(shù)據(jù)傳送給與商業(yè)收款機(jī)連接的 網(wǎng)絡(luò)稅控器。
所述的將截獲的銷售票據(jù)數(shù)據(jù)作為稅控處理用的源數(shù)據(jù)傳送給與商業(yè)收款機(jī)連接的網(wǎng) 絡(luò)稅控器包括直接傳送給網(wǎng)絡(luò)稅控器或經(jīng)用戶程序傳送給網(wǎng)絡(luò)稅控器。由上述本發(fā)明實(shí)施例提供的技術(shù)方案可以看出,本發(fā)明實(shí)施例的方法通過(guò)截獲商業(yè)管 理信息系統(tǒng)的商業(yè)收款機(jī)中輸出的銷售票據(jù)數(shù)據(jù),作為稅控處理用的源數(shù)據(jù)傳送給與商業(yè) 收款機(jī)相連的網(wǎng)絡(luò)稅控器。這種方法保證了作為稅控處理的源數(shù)據(jù)的準(zhǔn)確性,同時(shí)可以保 證數(shù)據(jù)采集的安全性,不會(huì)因使用者采取其它技術(shù)手段,禁止數(shù)據(jù)采集模塊的工作或插入 虛假數(shù)據(jù)影響稅控結(jié)果的準(zhǔn)確性。
圖1為本發(fā)明實(shí)施例中網(wǎng)絡(luò)稅控系統(tǒng)的各部件連接示意圖; 圖2為本發(fā)明實(shí)施例的采集數(shù)據(jù)方法的流程圖; 圖3為本發(fā)明實(shí)施例的數(shù)據(jù)采集模塊采集打印數(shù)據(jù)的流程圖; 圖4為本發(fā)明實(shí)施例的數(shù)據(jù)采集模塊采集采集數(shù)據(jù)過(guò)程中安全處理的流程圖; 圖5為本發(fā)明實(shí)施例在使用D0S操作系統(tǒng)的商業(yè)收款機(jī)中采集數(shù)據(jù)的流程圖; 圖6為本發(fā)明實(shí)施例在使用D0S操作系統(tǒng)的商業(yè)收款機(jī)中采集打印數(shù)據(jù)的流程圖;圖7為本發(fā)明實(shí)施例在使用D0S操作系統(tǒng)的商業(yè)收款機(jī)中數(shù)據(jù)釆集模塊簽到處理流程圖;圖8為本發(fā)明實(shí)施例的商業(yè)收款機(jī)的D0S操作系統(tǒng)中設(shè)置數(shù)據(jù)采集模塊的體系結(jié)構(gòu)框圖;圖9為圖7中的TSR串口通訊協(xié)議層圖的結(jié)構(gòu)框圖; 圖IO為圖8中的讀字符處理流程圖; 圖11為圖8中的寫(xiě)字符處理流程圖; 圖12為圖8中的讀包處理流程圖;圖13為圖8中的寫(xiě)包處理流程圖;圖14為圖8中的單包通訊層處理流程圖;圖15為本發(fā)明實(shí)施例在D0S操作系統(tǒng)中數(shù)據(jù)采集模塊簽到處理流程圖;圖16為本發(fā)明實(shí)施例在D0S操作系統(tǒng)中數(shù)據(jù)采集模塊定時(shí)巡檢處理流程圖;圖17為本發(fā)明實(shí)施例在D0S操作系統(tǒng)中數(shù)據(jù)采集模塊簽退處理流程圖;圖18為本發(fā)明實(shí)施例在D0S操作系統(tǒng)中數(shù)據(jù)采集模塊傳送監(jiān)控?cái)?shù)據(jù)處理流程圖;圖19為本發(fā)明實(shí)施例在D0S操作系統(tǒng)中數(shù)據(jù)采集模塊請(qǐng)求應(yīng)答處理流程圖; 圖20為本發(fā)明實(shí)施例在D0S操作系統(tǒng)中打開(kāi)/創(chuàng)建文件中斷處理流程圖; 圖21為本發(fā)明實(shí)施例在D0S操作系統(tǒng)中關(guān)閉文件中斷處理流程圖; 圖22為本發(fā)明實(shí)施例在D0S操作系統(tǒng)中寫(xiě)文件中斷處理流程圖; 圖23為本發(fā)明實(shí)施例在D0S操作系統(tǒng)中讀文件中斷處理流程圖; 圖24為本發(fā)明實(shí)施例在DOS操作系統(tǒng)中時(shí)鐘中斷處理流程圖; 圖25為本發(fā)明實(shí)施例在使用Windows操作系統(tǒng)的商業(yè)收款機(jī)中采集數(shù)據(jù)的流程圖; 圖26為本發(fā)明實(shí)施例在使用Windows操作系統(tǒng)的商業(yè)收款機(jī)中數(shù)據(jù)采集模塊簽到處理流 程圖;圖27為本發(fā)明實(shí)施例在使用Windows操作系統(tǒng)的商業(yè)收款機(jī)中截獲Windows字符繪制函 數(shù)的流程圖;圖28為本發(fā)明實(shí)施例在使用Windows操作系統(tǒng)的商業(yè)收款機(jī)中串口通信處理流程圖; 圖29為本發(fā)明實(shí)施例在使用Windows操作系統(tǒng)的商業(yè)收款機(jī)中串口初始化處理流程圖; 圖30為本發(fā)明實(shí)施例在使用Wind(MS操作系統(tǒng)的商業(yè)收款機(jī)中開(kāi)機(jī)簽到處理流程圖; 圖31為本發(fā)明實(shí)施例在使用Windows操作系統(tǒng)的商業(yè)收款機(jī)中定時(shí)巡檢處理流程圖; 圖32為本發(fā)明實(shí)施例在使用Windows操作系統(tǒng)的商業(yè)收款機(jī)中傳送監(jiān)控?cái)?shù)據(jù)處理的總體 處理流程圖;圖33為本發(fā)明實(shí)施例在使用Windows操作系統(tǒng)的商業(yè)收款機(jī)中傳送監(jiān)控?cái)?shù)據(jù)處理的單包 發(fā)送處理流程圖;圖34為本發(fā)明實(shí)施例在使用Windows操作系統(tǒng)的商業(yè)收款機(jī)中傳送監(jiān)控?cái)?shù)據(jù)處理的單包 接收處理流程圖;圖35為本發(fā)明實(shí)施例在使用Windows操作系統(tǒng)的商業(yè)收款機(jī)中傳送監(jiān)控?cái)?shù)據(jù)處理的多包 發(fā)送處理流程圖;圖36為本發(fā)明實(shí)施例在使用Windows操作系統(tǒng)的商業(yè)收款機(jī)中傳送監(jiān)控?cái)?shù)據(jù)處理的多包 接收/請(qǐng)求應(yīng)答處理流程圖;圖37為本發(fā)明實(shí)施例在使用Windows操作系統(tǒng)的商業(yè)收款機(jī)中簽退處理流程圖; 圖38為本發(fā)明實(shí)施例在使用Linux操作系統(tǒng)的商業(yè)收款機(jī)中采集數(shù)據(jù)的流程圖; 圖39為本發(fā)明實(shí)施例在使用Linux操作系統(tǒng)的商業(yè)收款機(jī)中采集數(shù)據(jù)的流程圖; 圖40為本發(fā)明實(shí)施例在使用Linux操作系統(tǒng)的商業(yè)收款機(jī)中采集數(shù)據(jù)的流程圖。
具體實(shí)施例方式
本發(fā)明實(shí)施例提供的一種網(wǎng)絡(luò)稅控系統(tǒng)采集銷售票據(jù)數(shù)據(jù)的方法,是通過(guò)截獲商業(yè)收 款機(jī)輸出的銷售票據(jù)數(shù)據(jù)作為稅控用的源數(shù)據(jù),并將截獲后的數(shù)據(jù)傳送到與商業(yè)收款機(jī)連 接的網(wǎng)絡(luò)稅控器作為源數(shù)據(jù)進(jìn)行稅控處理用。該方法在不改變且不影響現(xiàn)有商業(yè)MIS系統(tǒng)的 前提下,保證了稅控處理用的源數(shù)據(jù)的準(zhǔn)確性和安全性,進(jìn)而保證了針對(duì)該MIS系統(tǒng)的網(wǎng)絡(luò) 稅控系統(tǒng)的以票控稅的準(zhǔn)確性。為進(jìn)一步清楚的說(shuō)明本發(fā)明實(shí)施例的采集數(shù)據(jù)的方法,結(jié)合
該方法的具體采 集過(guò)程。本發(fā)明實(shí)施例的銷售票據(jù)數(shù)據(jù)采集方法,主要是針對(duì)圖l所示的網(wǎng)絡(luò)稅控系統(tǒng)中進(jìn)行采 集稅控處理用的源數(shù)據(jù)。該網(wǎng)絡(luò)稅控系統(tǒng)具體由稅控服務(wù)器、稅控?cái)?shù)據(jù)采集模塊、網(wǎng)絡(luò)稅 控器、稅控發(fā)票終端等部分構(gòu)成,通過(guò)局域網(wǎng)對(duì)商業(yè)管理信息系統(tǒng)進(jìn)行以票控稅的稅控管 理,其中如何從商業(yè)收款機(jī)中獲取銷售票據(jù)數(shù)據(jù)來(lái)作為網(wǎng)絡(luò)稅控系統(tǒng)稅控處理的源數(shù)據(jù), 是準(zhǔn)確控稅的關(guān)鍵,因此,如圖2所示,本發(fā)明實(shí)施例提供了一種網(wǎng)絡(luò)稅控系統(tǒng)采集銷售 票據(jù)數(shù)據(jù)的方法,主要用于網(wǎng)絡(luò)稅控系統(tǒng)從商業(yè)管理信息系統(tǒng)的商業(yè)收款機(jī)中采集稅控處 理用的源數(shù)據(jù),該方法具體包括下述步驟步驟l,運(yùn)行在商業(yè)收款機(jī)中設(shè)置的數(shù)據(jù)采集模塊;步驟2,數(shù)據(jù)采集模塊截獲商業(yè)收款機(jī)輸出的銷售票據(jù)數(shù)據(jù);步驟3,將截獲的銷售票據(jù)數(shù)據(jù)傳送給與商業(yè)收款機(jī)連接的網(wǎng)絡(luò)稅控器作為稅控處理用 的源數(shù)據(jù);步驟4,數(shù)據(jù)輸出是否結(jié)束,若結(jié)束,則結(jié)束本次采集;若未結(jié)束,則執(zhí)行步驟2。其中,數(shù)據(jù)采集模塊采用截獲商業(yè)收款機(jī)的屏幕顯示的銷售明細(xì)數(shù)據(jù)或打印輸出隊(duì)列 中銷售票據(jù)的打印數(shù)據(jù)。其中,所述的采用截獲商業(yè)收款機(jī)輸出的打印輸出隊(duì)列中銷售票據(jù)的打印數(shù)據(jù)具體包 括下述步驟,見(jiàn)圖3,其中,步驟21,監(jiān)控商業(yè)收款機(jī)的打印端口;步驟22,當(dāng)該商業(yè)收款機(jī)利用打印端口進(jìn)行打印輸出時(shí);步驟23,則獲取輸出的打印數(shù)據(jù)包。本發(fā)明實(shí)施例的采集方法中,為保證安全的采集數(shù)據(jù),數(shù)據(jù)采集模塊要向所述的網(wǎng)絡(luò) 稅控器進(jìn)行簽到及定時(shí)巡檢處理,具體包括的如下步驟,如圖4所示其中步驟31,數(shù)據(jù)采集模塊向與該采集模塊所在的商業(yè)收款機(jī)連接的網(wǎng)絡(luò)稅控器進(jìn)行 簽到; 步驟32,判斷簽到是否成功;步驟33,若簽到成功,則該數(shù)據(jù)采集模塊監(jiān)控所在的商業(yè)收款機(jī)的輸出銷售票據(jù)數(shù)據(jù) 的操作,并設(shè)定定時(shí)巡檢的時(shí)間間隔;步驟34,若商業(yè)收款機(jī)進(jìn)行輸出銷售票據(jù)數(shù)據(jù)的操作,則數(shù)據(jù)采集模塊截獲輸出的銷 售票據(jù)數(shù)據(jù)作為稅控處理用的源數(shù)據(jù)傳送給所述的網(wǎng)絡(luò)稅控器;步驟35,以設(shè)定的時(shí)間間隔定時(shí)向網(wǎng)絡(luò)稅控器簽到進(jìn)行定時(shí)巡檢。其中步驟32中若未簽到成功,則進(jìn)行步驟31重新簽到。在圖4的流程中還進(jìn)一步包括步驟36,驗(yàn)證上述數(shù)據(jù)采集模塊的簽到、監(jiān)控、定時(shí)巡檢步驟是否全部執(zhí)行成功, 步驟38,若未全部執(zhí)行成功,則數(shù)據(jù)采集模塊鎖定所在的商業(yè)收款機(jī)。即不允許數(shù)據(jù)采集模塊工作進(jìn)行數(shù)據(jù)采集,則鎖定商業(yè)收款機(jī)使其無(wú)法工作,保證了網(wǎng)絡(luò)稅控系統(tǒng)的稅控處理的安全使用。步驟37,若驗(yàn)證上述數(shù)據(jù)采集模塊的簽到、監(jiān)控、定時(shí)巡檢步驟為全部執(zhí)行成功,則 數(shù)據(jù)采集模塊向所述的網(wǎng)絡(luò)稅控器進(jìn)行簽退。下面結(jié)合具體的實(shí)施例對(duì)所采用的具體采集數(shù)據(jù)方法作進(jìn)一步說(shuō)明。 實(shí)施例一如圖5所示,當(dāng)網(wǎng)絡(luò)稅控系統(tǒng)所處理的管理信息系統(tǒng)的商業(yè)收款機(jī)使用DOS操作系統(tǒng) 時(shí),從DOS操作系統(tǒng)的商業(yè)收款機(jī)中采集稅控用的源數(shù)據(jù)時(shí),該方法具體的采集步驟包括-步驟A1,通過(guò)在商業(yè)收款機(jī)中設(shè)置的數(shù)據(jù)采集模塊替換該收款機(jī)使用的DOS操作系統(tǒng)中 調(diào)用的子功能中斷;步驟A2,監(jiān)控商業(yè)收款機(jī)利用所述的子功能中斷打開(kāi)、關(guān)閉、讀、寫(xiě)串口時(shí),則利用 替換的子功能中斷截獲打印輸出的銷售票據(jù)數(shù)據(jù);步驟A3,將截獲的銷售票據(jù)數(shù)據(jù)作為稅控處理用的源數(shù)據(jù)傳送給與商業(yè)收款機(jī)連接的 網(wǎng)絡(luò)稅控器;步驟A4,數(shù)據(jù)輸出是否結(jié)束,若是則結(jié)束本次采集;若否,則執(zhí)行步驟A2; 步驟A5,結(jié)束本次數(shù)據(jù)采集。在DOS操作系統(tǒng)中,可以利用修改中斷向量來(lái)實(shí)現(xiàn)對(duì)POS機(jī)終端上打印的銷售票據(jù)數(shù)據(jù) 的截獲。具體方法如圖6所示替換DOS系統(tǒng)調(diào)用(INT 21H)的部分子功能中斷;需要替換 的子功能包括打開(kāi)文件中斷、創(chuàng)建文件中斷、關(guān)閉文件中斷、讀文件中斷、寫(xiě)文件中斷 和時(shí)鐘中斷。當(dāng)POS機(jī)終端上的應(yīng)用程序利用這些中斷來(lái)打開(kāi)、關(guān)閉、讀、寫(xiě)串口時(shí),可以
得到打印數(shù)據(jù);而時(shí)鐘中斷則保證了定時(shí)巡檢功能的實(shí)現(xiàn)。例如當(dāng)需要打印數(shù)據(jù)時(shí),會(huì) 調(diào)用寫(xiě)文件中斷(處理過(guò)程中將需要寫(xiě)數(shù)據(jù)的緩沖區(qū)地址和長(zhǎng)度提交給"寫(xiě)文件中 斷");當(dāng)數(shù)據(jù)采集模塊替換原有(寫(xiě)文件)中斷后,則可以獲取通過(guò)寫(xiě)文件中斷輸出的 打印數(shù)據(jù)。如圖7所示,將所述的數(shù)據(jù)采集模塊加載到所述DOS操作系統(tǒng)的啟動(dòng)文件中,實(shí)現(xiàn)該數(shù) 據(jù)采集模塊在所述的DOS操作系統(tǒng)啟動(dòng)時(shí)自啟動(dòng)。為保證數(shù)據(jù)采集模塊的安全性,數(shù)據(jù)采集 模塊啟動(dòng)過(guò)程中,要進(jìn)行安全簽到處理,具體流程如下其中,步驟A31,數(shù)據(jù)采集模塊向網(wǎng)絡(luò)稅控器進(jìn)行簽到;步驟A32,判斷簽到是否成功?步驟A33,若步驟A32中簽到成功,則數(shù)據(jù)采集模塊配置監(jiān)控串口參數(shù),設(shè)置定時(shí)巡檢 時(shí)間間隔;步驟A34,駐留創(chuàng)建、打開(kāi)、讀、寫(xiě)、關(guān)閉文件和時(shí)鐘中斷處理程序; 步驟A35,判斷上述程序是否全部駐留成功?步驟A36,若步驟A35中上述程序全部駐留成功,則數(shù)據(jù)采集模塊向網(wǎng)絡(luò)稅控器進(jìn)行簽退。若步驟A35中上述程序未全部駐留成功,則執(zhí)行步驟A37,鎖定計(jì)算機(jī),保證了采集數(shù) 據(jù)的安全,不會(huì)使數(shù)據(jù)采集模塊補(bǔ)被旁路掉等。下面實(shí)際采集數(shù)據(jù)過(guò)程中的各方法流程圖,對(duì)該方法的具體實(shí)現(xiàn)進(jìn)行詳細(xì)說(shuō)明。 上述的數(shù)據(jù)采集模塊在D0S系統(tǒng)下的體系結(jié)構(gòu)如圖8的結(jié)構(gòu)框圖所示,該模塊分TSR應(yīng) 用層和TSR通訊協(xié)議層兩個(gè)主要部分。其中TSR通訊協(xié)議層主要負(fù)責(zé)實(shí)現(xiàn)和《串口通訊協(xié) 議》中所規(guī)定相符合的通訊機(jī)制;而TSR應(yīng)用層會(huì)替換DOS系統(tǒng)服務(wù)中相應(yīng)的中斷服務(wù)函 數(shù),并在其他應(yīng)用程序調(diào)用系統(tǒng)中斷時(shí)截獲和串口的有關(guān)通訊數(shù)據(jù),并將其轉(zhuǎn)發(fā)至網(wǎng)絡(luò)稅 控器。如圖9所示,其中,在TSR串口通訊協(xié)議層中自底向上又分為鏈路層、單包運(yùn)輸層、 單包通訊層和應(yīng)用層四個(gè)層次。鏈路層主要由兩個(gè)函數(shù)組成ReadChar (讀字符)和WriteChar (寫(xiě)字符)。通過(guò)該層 可以向指定的串口讀或者寫(xiě)一個(gè)字符。ReadChar和WriteChar實(shí)現(xiàn)流程如圖lO、圖11所示,其中,ReadChar實(shí)現(xiàn)流程如下,見(jiàn)圖IO,其中,步驟A91,首先判斷對(duì)應(yīng)串口的LSR中輸入緩沖是否為空;步驟A92,若否,則執(zhí)行步驟A94讀取輸入緩沖中的字符; 步驟A91的結(jié)果若為是,則進(jìn)一步判斷等待時(shí)間是否大于l秒; 步驟A93,若是則準(zhǔn)備返回超時(shí)錯(cuò)誤,進(jìn)而結(jié)束讀字符處理。 其中,WriteChar的實(shí)現(xiàn)流程如圖ll所示,其中,步驟A101,首先判斷對(duì)應(yīng)串口的LSR中輸入緩沖是否為空; 步驟A102,若否,則執(zhí)行步驟A104讀取輸入緩沖中的字符; 步驟A101的結(jié)果若為是,則進(jìn)一步判斷等待時(shí)間是否大于l秒; 步驟A103,若是則準(zhǔn)備返回超時(shí)錯(cuò)誤,進(jìn)而結(jié)束讀字符處理。所述的單包運(yùn)輸層主要由兩個(gè)函數(shù)組成ReadAPackage (讀包函數(shù))和 WriteAPackage (寫(xiě)包函數(shù))。通過(guò)該層可以向指定的串口讀或者寫(xiě)多個(gè)字符。 ReadAPackage和Wri teAPackage的實(shí)現(xiàn)流程如圖12 、圖13所示,其中,ReadAPackage實(shí)現(xiàn)流程如圖ll所示,WriteAPackage實(shí)現(xiàn)流程如圖12所示,所 述的兩個(gè)函數(shù)可讀寫(xiě)多個(gè)字符,其具體讀寫(xiě)的內(nèi)容和長(zhǎng)度由具體使用的通信協(xié)議規(guī)定。所述的單包通訊層的實(shí)現(xiàn)函數(shù)為L(zhǎng)aunchAColloquy。通過(guò)該層可以通過(guò)指定的串口 和網(wǎng)絡(luò)稅控器發(fā)起一次會(huì)話;會(huì)話的流程即為最大限度的保證通信協(xié)議中所規(guī)定的一問(wèn) 一答機(jī)制的正確執(zhí)行。對(duì)于采集模塊向網(wǎng)絡(luò)稅控器發(fā)送一個(gè)命令后,該層會(huì)對(duì)超時(shí);(2) 網(wǎng)絡(luò)稅控器沒(méi)有正確收到采集模塊發(fā)送的包;(3)采集模塊沒(méi)有正確收到網(wǎng)絡(luò)稅控器發(fā)送的 包;(4)網(wǎng)絡(luò)稅控器發(fā)送的WT命令,這幾種情況進(jìn)行自動(dòng)處理。處理的方法包括通信協(xié)議中 所規(guī)定的"三次重發(fā)機(jī)制"和"連續(xù)發(fā)送三次0X01包機(jī)制"。所以,對(duì)于使用該層的用戶 而言,它們需要關(guān)心命令發(fā)起后的最終通信結(jié)果是成功還是失敗,而不用考慮具體的通信 錯(cuò)誤問(wèn)題。所述函數(shù)會(huì)告訴調(diào)用者會(huì)話執(zhí)行的結(jié)果通信成功或失敗。這個(gè)執(zhí)行的結(jié)果僅僅表示 的是通訊層面上的執(zhí)行結(jié)果,而不是具體的業(yè)務(wù)操作的執(zhí)行結(jié)果。如果會(huì)話執(zhí)行成功,則 調(diào)用者可以使用全局的輸出緩沖器來(lái)讀取具體的業(yè)務(wù)操作執(zhí)行過(guò)的數(shù)據(jù)結(jié)果;如果會(huì)話執(zhí) 行失敗,則說(shuō)明此時(shí)通信徹底中斷。其具體實(shí)現(xiàn)流程如圖13所示。通過(guò)所述的應(yīng)用層可以執(zhí)行簽到、簽退、定時(shí)巡檢、傳送監(jiān)管數(shù)據(jù)、請(qǐng)求應(yīng)答數(shù)據(jù) 這五條命令。實(shí)現(xiàn)流程如圖14、圖15、圖16、圖17、圖18所示,其中,簽到實(shí)現(xiàn)流程如圖14所示,它實(shí)現(xiàn)了數(shù)據(jù)采集模塊向網(wǎng)絡(luò)稅控器進(jìn)行簽到的處 理過(guò)程。其中,定時(shí)巡檢實(shí)現(xiàn)流程如圖15所示,它實(shí)現(xiàn)了數(shù)據(jù)采集模塊向網(wǎng)絡(luò)稅控器定時(shí)巡檢 的處理過(guò)程。
其中,簽退實(shí)現(xiàn)流程如圖16所示,它實(shí)現(xiàn)了數(shù)據(jù)采集模塊向網(wǎng)絡(luò)稅控器進(jìn)行簽退的處 理過(guò)程。其中,傳送監(jiān)控?cái)?shù)據(jù)實(shí)現(xiàn)流程如圖17所示,它實(shí)現(xiàn)了數(shù)據(jù)采集模塊向網(wǎng)絡(luò)稅控器進(jìn)行 傳送監(jiān)控?cái)?shù)據(jù)的處理過(guò)程。其中,請(qǐng)求應(yīng)答實(shí)現(xiàn)流程如圖18所示,它實(shí)現(xiàn)了數(shù)據(jù)采集模塊向網(wǎng)絡(luò)稅控器進(jìn)行請(qǐng)求 應(yīng)答的處理過(guò)程。TSR應(yīng)用層主要由打開(kāi)、關(guān)閉、創(chuàng)建、讀、寫(xiě)文件和時(shí)鐘中斷這五個(gè)子程序構(gòu)成, 其實(shí)現(xiàn)流程如圖19、圖20、圖21、圖22、圖23所示,其中,打開(kāi)/創(chuàng)建文件中斷實(shí)現(xiàn)流程如圖19所示,它示出了打開(kāi)/創(chuàng)建文件中斷的具體 處理流程。其中,關(guān)閉文件中斷實(shí)現(xiàn)流程如圖19所示,它示出了關(guān)閉文件中斷的具體處理流程。 其中,寫(xiě)文件中斷實(shí)現(xiàn)流程如圖19所示,它示出了寫(xiě)文件中斷的具體處理流程。 其中,讀文件中斷實(shí)現(xiàn)流程如圖19所示,它示出了讀文件中斷的具體處理流程。 其中,時(shí)鐘中斷實(shí)現(xiàn)流程如圖19所示,它示出了時(shí)鐘中斷的具體處理流程。 綜上所述的DOS系統(tǒng)的商業(yè)收款機(jī)中數(shù)據(jù)采集過(guò)程中的各種處理,實(shí)現(xiàn)將DOS系統(tǒng)輸出 的打印數(shù)據(jù)截獲,并將該數(shù)據(jù)傳送給網(wǎng)絡(luò)稅控器作為稅控處理用的源數(shù)據(jù),且采集數(shù)據(jù)用 的數(shù)據(jù)采集模塊在網(wǎng)絡(luò)稅控器中進(jìn)行簽到及定時(shí)巡檢處理等操作,保證了采集的安全性, 進(jìn)一步保證了DOS系統(tǒng)中以票控稅的準(zhǔn)確性。 實(shí)施例二如圖24所示,本發(fā)明實(shí)施例提供的一種網(wǎng)絡(luò)稅控系統(tǒng)采集銷售票據(jù)數(shù)據(jù)的方法,當(dāng)所 采集數(shù)據(jù)的商業(yè)管理信息系統(tǒng)的商業(yè)收款機(jī)使用Windows操作系統(tǒng)時(shí),具體的采集過(guò)程包括 下述步驟步驟B1,通過(guò)在商業(yè)收款機(jī)中設(shè)置的數(shù)據(jù)采集模塊加載到該收款機(jī)使用的Windows操作 系統(tǒng)的系統(tǒng)進(jìn)程中;步驟B2,監(jiān)控該Windows操作系統(tǒng)的打印輸出,利用加載到系統(tǒng)進(jìn)程中的數(shù)據(jù)采集模塊 截獲打印輸出的銷售票據(jù)數(shù)據(jù);步驟B3,將截獲的銷售票據(jù)數(shù)據(jù)作為稅控處理用的源數(shù)據(jù)傳送給與商業(yè)收款機(jī)連接的 網(wǎng)絡(luò)稅控器;步驟B4,數(shù)據(jù)輸出是否結(jié)束,若是則結(jié)束本次采集;若否,則執(zhí)行步驟B2; 步驟B5,結(jié)束本次數(shù)據(jù)采集。
具體實(shí)施時(shí)是在Windows系統(tǒng)的商業(yè)收款機(jī)工作時(shí)實(shí)現(xiàn)獲取稅控?cái)?shù)據(jù)源。 Windows系統(tǒng)下數(shù)據(jù)采集模塊具體實(shí)現(xiàn)通過(guò)設(shè)計(jì)原理、及將該數(shù)據(jù)采集模塊通過(guò)DLL (動(dòng)態(tài)鏈接庫(kù))注入Windows的系統(tǒng)進(jìn)程的方法、截獲Windows關(guān)于字符繪制的API函數(shù)實(shí)現(xiàn) 方法以及Window串口通信實(shí)現(xiàn)四部分進(jìn)行詳細(xì)說(shuō)明。 (1)設(shè)計(jì)原理在Windows操作系統(tǒng)中,字符繪制的API函數(shù)是TextOut、 ExtTextOut、 DrawText DrawTextExt,實(shí)現(xiàn)獲取打印數(shù)據(jù)的關(guān)鍵是利用HOOK (鉤子)技術(shù),截獲對(duì)這些函數(shù)的調(diào) 用,得到程序發(fā)給它們的參數(shù)??梢詫⒋蛴”O(jiān)控程序生成DLL,利用DLL注入系統(tǒng)進(jìn)程監(jiān)控 打印數(shù)據(jù),實(shí)現(xiàn)對(duì)POS機(jī)終端上銷售打印數(shù)據(jù)的截獲。首先,需要在WINDOWS系統(tǒng)的注冊(cè)表中加入啟動(dòng)程序,該程序啟動(dòng)DLL注入系統(tǒng)進(jìn)程 模塊后會(huì)先向稅控器簽到,然后運(yùn)行打印數(shù)據(jù)監(jiān)控模塊后退出。具體實(shí)現(xiàn)流程如圖25所示,其中,步驟B31,數(shù)據(jù)采集模塊向網(wǎng)絡(luò)稅控器進(jìn)行簽到; 步驟B32,判斷簽到是否成功?步驟B33,若步驟B32中簽到成功,則數(shù)據(jù)采集模塊配置監(jiān)控串口參數(shù),設(shè)置定時(shí)巡檢 時(shí)間間隔;步驟B34,運(yùn)行打印數(shù)據(jù)監(jiān)控模塊,對(duì)商業(yè)收款機(jī)的打印輸出進(jìn)行監(jiān)控; 步驟B35,判斷上述程序是否全部執(zhí)行成功?步驟B36,若步驟B35中上述程序全部執(zhí)行成功,則數(shù)據(jù)采集模塊向網(wǎng)絡(luò)稅控器進(jìn)行簽退。若步驟B35中上述程序未全部執(zhí)行成功,則執(zhí)行步驟B37,鎖定計(jì)算機(jī),保證了采集 數(shù)據(jù)的安全,不會(huì)使數(shù)據(jù)采集模塊被旁路掉等。(2)DLL注入系統(tǒng)進(jìn)程把上述的數(shù)據(jù)采集模塊加載到系統(tǒng)進(jìn)程dll中,比如Explorer.exe進(jìn)程中。注入時(shí)可 先調(diào)用OpenProcess來(lái)打開(kāi)目標(biāo)系統(tǒng)進(jìn)程,然后用VirtualAllocEx在目標(biāo)系統(tǒng)進(jìn)程中分配一 塊兒內(nèi)存,再用WriteProcessMemory向該內(nèi)存中寫(xiě)入要注入的dll的路徑和名稱,然后利用 CreateRemoteThread在目標(biāo)系統(tǒng)進(jìn)程中創(chuàng)建一個(gè)線程,這個(gè)線程執(zhí)行LoadLibrary,并以剛 才分配的內(nèi)存中的dll的路徑和名稱為參數(shù)。這樣就使dll載入了目標(biāo)進(jìn)程的地址空間。(3)截獲Windows關(guān)于字符繪制的API函數(shù)
在Windows操作系統(tǒng)中,字符繪制的API函數(shù)是TextOut、 ExtTextOut、 DrawText DrawTextExt,當(dāng)需要打印數(shù)據(jù)時(shí),商業(yè)收款機(jī)所用的Windows系統(tǒng)會(huì)調(diào)用所述的API函數(shù)(其中一個(gè)或多個(gè)函數(shù)),當(dāng)數(shù)據(jù)采集模塊替換原有API函數(shù)后,則可以截獲對(duì)這些函數(shù)的 調(diào)用,主要是利用H00K (鉤子)技術(shù),獲取發(fā)給調(diào)用的API函數(shù)的參數(shù),函數(shù)的參數(shù)包括要 打印的數(shù)據(jù),達(dá)到獲取打印數(shù)據(jù)的目的。其具體實(shí)現(xiàn)流程如圖26所示。(4) Windows串口通信實(shí)現(xiàn)在Windows系統(tǒng)下,可以使用兩種方式實(shí)現(xiàn)串口通信,其一是調(diào)用的Windows的API函 數(shù),其二是使用ActiveX控件。使用API函數(shù)調(diào)用,可以清楚地掌握串口通信的機(jī)制,熟悉 各種配置和自由靈活采用不同的流控進(jìn)行串口通信。在稅控系統(tǒng)中,數(shù)據(jù)采集模塊與網(wǎng)絡(luò) 稅控器間的串口通信采用Windows系統(tǒng)的API函數(shù)來(lái)實(shí)現(xiàn),具體實(shí)現(xiàn)流程如圖27所示。Windows操作系統(tǒng)下數(shù)據(jù)采集模塊與網(wǎng)絡(luò)稅控器的之間的串口通訊主要有以下五個(gè)模 塊完成,即串口初始化、開(kāi)機(jī)簽到、定時(shí)巡檢、監(jiān)控?cái)?shù)據(jù)發(fā)送與接收、簽退。其具體的實(shí) 現(xiàn)流程如圖28 圖36所示,其中,串口初始化實(shí)現(xiàn)流程如圖28所示,它在Windows系統(tǒng)開(kāi)機(jī)時(shí)實(shí)現(xiàn)串口的初始化 工作,如創(chuàng)建串口名柄、參數(shù)配置和通訊超時(shí)設(shè)置等。其中,開(kāi)機(jī)簽到的實(shí)現(xiàn)流程如圖29所示,它實(shí)現(xiàn)了稅控?cái)?shù)據(jù)采集模塊向網(wǎng)絡(luò)稅控器發(fā) 送簽到命令,通知網(wǎng)絡(luò)稅控器數(shù)據(jù)采集模塊已開(kāi)始工作,并獲取模塊的相關(guān)配置參數(shù)。其中,定時(shí)巡檢實(shí)現(xiàn)流程如圖30所示,它實(shí)現(xiàn)了稅控?cái)?shù)據(jù)采集模塊定時(shí)向網(wǎng)絡(luò)稅控器 簽到,以示采集模塊工作是否正常,并獲取模塊的相關(guān)配置參數(shù)。其中,傳送監(jiān)控?cái)?shù)據(jù)-總流程如圖31所示,它實(shí)現(xiàn)了稅控?cái)?shù)據(jù)采集模塊將所監(jiān)控到的 數(shù)據(jù)發(fā)送網(wǎng)絡(luò)稅控器,并接收稅控器返回的監(jiān)控?cái)?shù)據(jù)。其中,傳送監(jiān)控?cái)?shù)據(jù)-單包發(fā)送流程如圖32所示,它實(shí)現(xiàn)了稅控?cái)?shù)據(jù)采集模塊將所監(jiān) 控獲得的數(shù)據(jù)以單包的形式發(fā)送到網(wǎng)絡(luò)稅控器時(shí)的處理流程。其中,傳送監(jiān)控?cái)?shù)據(jù)-單包接收流程如圖33所示,它實(shí)現(xiàn)了稅控?cái)?shù)據(jù)采集模塊將所監(jiān) 控的數(shù)據(jù)以單包的形式接收時(shí)的處理流程。其中,傳送監(jiān)控?cái)?shù)據(jù)-多包發(fā)送流程如圖34所示,它實(shí)現(xiàn)了稅控?cái)?shù)據(jù)采集模塊將所監(jiān)控獲得的數(shù)據(jù)以多包的形式發(fā)送到網(wǎng)絡(luò)稅控器時(shí)的處理流程。其中,傳送監(jiān)控?cái)?shù)據(jù)-多包接收/請(qǐng)求應(yīng)答流程如圖35所示,它實(shí)現(xiàn)了稅控?cái)?shù)據(jù)采集模 塊將所監(jiān)控的數(shù)據(jù)以單包的形式接收/請(qǐng)求應(yīng)答時(shí)的處理流程。
其中,簽退實(shí)現(xiàn)流程如圖36所示,數(shù)據(jù)采集模塊在網(wǎng)絡(luò)稅控器中進(jìn)行簽退處理。 綜上所述的沐indows系統(tǒng)的商業(yè)收款機(jī)中數(shù)據(jù)采集過(guò)程中的各種處理,實(shí)現(xiàn)將Windows 系統(tǒng)輸出的打印數(shù)據(jù)截獲,并將該數(shù)據(jù)傳送給網(wǎng)絡(luò)稅控器作為稅控處理用的源數(shù)據(jù),且將 采集數(shù)據(jù)用的數(shù)據(jù)采集模塊加載到Windows系統(tǒng)的系統(tǒng)進(jìn)程中,及進(jìn)行數(shù)據(jù)采集模塊在網(wǎng)絡(luò) 稅控器中進(jìn)行簽到及定時(shí)巡檢處理等操作,保證了采集過(guò)程的安全性,進(jìn)一步保證了對(duì)使 用Windows系統(tǒng)的商業(yè)收款機(jī)的以票控稅的準(zhǔn)確性。 實(shí)施例三如圖37所示,本發(fā)明實(shí)施例提供的一種網(wǎng)絡(luò)稅控系統(tǒng)采集銷售票據(jù)數(shù)據(jù)的方法,當(dāng)商 業(yè)管理信息系統(tǒng)的商業(yè)收款機(jī)使用Linux操作系統(tǒng)時(shí),針對(duì)該商業(yè)管理信息系統(tǒng)的網(wǎng)絡(luò)稅控 系統(tǒng)進(jìn)行稅控用的源數(shù)據(jù)采集時(shí),由于在Linux系統(tǒng)中,用戶進(jìn)程是通過(guò)設(shè)備文件同硬件打 交道,其中對(duì)設(shè)備文件的操作方式是通過(guò)系統(tǒng)調(diào)用來(lái)實(shí)現(xiàn)的,即Linux系統(tǒng)設(shè)備驅(qū)動(dòng)原理是 用戶進(jìn)程在用戶級(jí)通過(guò)系統(tǒng)調(diào)用訪問(wèn)核心級(jí)的設(shè)備驅(qū)動(dòng)程序來(lái)實(shí)現(xiàn)其硬件功能,因此采集 數(shù)據(jù)的具體步驟包括步驟C1,通過(guò)在商業(yè)收款機(jī)中設(shè)置的數(shù)據(jù)采集模塊修改或替換該收款機(jī)使用的Lirmx操 作系統(tǒng)中打印設(shè)備驅(qū)動(dòng)程序;步驟C2,當(dāng)商業(yè)收款機(jī)的Linux系統(tǒng)打印輸出時(shí),利用修改或替換打印設(shè)備驅(qū)動(dòng)程序來(lái) 截獲打印輸出的銷售票據(jù)數(shù)據(jù);步驟C3,并將截獲的銷售票據(jù)數(shù)據(jù)作為稅控處理用的源數(shù)據(jù)傳送給與商業(yè)收款機(jī)連接 的網(wǎng)絡(luò)稅控器。步驟C4,數(shù)據(jù)輸出是否結(jié)束,若是則結(jié)束本次采集;若否,則執(zhí)行步驟C2; 步驟C5,結(jié)束本次數(shù)據(jù)采集。如上述,Limix系統(tǒng)中采集銷售票據(jù)數(shù)據(jù)的方法具體是通過(guò)修改或替換打印設(shè)備驅(qū)動(dòng) 程序如xxx—open() 、 xxx—read() 、 xxx一write()、 xxx」oct1()、 xxx_close()等函數(shù)來(lái)實(shí) 現(xiàn),因打印驅(qū)動(dòng)程序不同,其函數(shù)名也不同, 一般來(lái)說(shuō)為了與系統(tǒng)函數(shù)如open()對(duì)應(yīng),則 可以將XXX定義為容易識(shí)別的字母或文字,如file—叩en()等,對(duì)于所截獲的銷售票據(jù)數(shù) 據(jù)作為稅控處理用的源數(shù)據(jù)傳送給與商業(yè)收款機(jī)連接的網(wǎng)絡(luò)稅控器可采用如下兩種方式第一種方式,如圖38所示,首先在Linux系統(tǒng)核心級(jí)的打印設(shè)備驅(qū)動(dòng)程序中截取打印輸 出的銷售票據(jù)數(shù)據(jù),并同時(shí)與網(wǎng)絡(luò)稅控器通信,獲取稅控?cái)?shù)據(jù),即在核心級(jí)獲取稅控處理 用的源數(shù)據(jù),實(shí)現(xiàn)對(duì)截取的銷售票據(jù)數(shù)據(jù)進(jìn)行控制,第二種方式,如圖39所示,首先在Linux核心級(jí)的打印設(shè)備驅(qū)動(dòng)程序中截取打印輸出的
銷售票據(jù)數(shù)據(jù),然后再把所述的銷售票據(jù)數(shù)據(jù)拷貝到用戶級(jí),由用戶程序同網(wǎng)絡(luò)稅控器通 信,獲取稅控?cái)?shù)據(jù),再將其稅控?cái)?shù)據(jù)拷貝到核心級(jí)的打印設(shè)備驅(qū)動(dòng)程序來(lái)實(shí)現(xiàn)對(duì)票據(jù)的控 制。綜上所述,本發(fā)明實(shí)施例中采用截獲進(jìn)行稅控處理的管理信息系統(tǒng)中的商業(yè)收款機(jī)輸 出的銷售票據(jù)數(shù)據(jù)作為稅控處理用的源數(shù)據(jù),實(shí)現(xiàn)了網(wǎng)絡(luò)稅控系統(tǒng)以票控稅的準(zhǔn)確性。以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任 何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都 應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為 準(zhǔn)。
權(quán)利要求
1、一種網(wǎng)絡(luò)稅控系統(tǒng)采集銷售票據(jù)數(shù)據(jù)的方法,其特征在于,包括通過(guò)在商業(yè)收款機(jī)中設(shè)置的數(shù)據(jù)采集模塊截獲商業(yè)收款機(jī)輸出的銷售票據(jù)數(shù)據(jù),將截獲的銷售票據(jù)數(shù)據(jù)作為稅控處理用的源數(shù)據(jù)傳送給與商業(yè)收款機(jī)連接的網(wǎng)絡(luò)稅控器。
2、 根據(jù)權(quán)利要求l所述的方法,其特征在于,所述的截獲商業(yè)收款機(jī)輸出的銷售票據(jù) 數(shù)據(jù)包括數(shù)據(jù)采集模塊采用截獲商業(yè)收款機(jī)輸出至屏幕進(jìn)行顯示的銷售明細(xì)數(shù)據(jù)或打印 輸出隊(duì)列中銷售票據(jù)的打印數(shù)據(jù)。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述的截獲商業(yè)收款機(jī)輸出的打印輸出 隊(duì)列中銷售票據(jù)的打印數(shù)據(jù)包括監(jiān)控商業(yè)收款機(jī)的打印端口,當(dāng)該商業(yè)收款機(jī)利用打印端口進(jìn)行打印輸出時(shí),則獲取 輸出的打印數(shù)據(jù)包。
4、 根據(jù)權(quán)利要求l所述的方法,其特征在于,所述的通過(guò)在商業(yè)收款機(jī)中設(shè)置的數(shù)據(jù) 采集模塊截獲商業(yè)收款機(jī)輸出的銷售票據(jù)數(shù)據(jù)進(jìn)一步包括-數(shù)據(jù)采集模塊向與該采集模塊所在的商業(yè)收款機(jī)連接的網(wǎng)絡(luò)稅控器進(jìn)行簽到; 若簽到成功,則該數(shù)據(jù)采集模塊監(jiān)控所在的商業(yè)收款機(jī)的輸出銷售票據(jù)數(shù)據(jù)的操作, 并設(shè)定定時(shí)巡檢的時(shí)間間隔;若商業(yè)收款機(jī)進(jìn)行輸出銷售票據(jù)數(shù)據(jù)的操作,則數(shù)據(jù)采集模塊截獲輸出的銷售票據(jù)數(shù)據(jù)作為稅控處理用的源數(shù)據(jù)傳送給所述的網(wǎng)絡(luò)稅控器;并以設(shè)定的時(shí)間間隔定時(shí)向網(wǎng)絡(luò)稅控器簽到進(jìn)行定時(shí)巡檢。
5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法進(jìn)一步包括 驗(yàn)證上述數(shù)據(jù)采集模塊的簽到、監(jiān)控、定時(shí)巡檢步驟是否全部執(zhí)行成功,若未全部執(zhí)行成功,則數(shù)據(jù)采集模塊鎖定所在的商業(yè)收款機(jī)。
6、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法進(jìn)一步包括驗(yàn)證上述數(shù)據(jù)采集模塊的簽到、監(jiān)控、定時(shí)巡檢步驟是否全部執(zhí)行成功,若全部執(zhí)行 成功,則數(shù)據(jù)采集模塊向所述的網(wǎng)絡(luò)稅控器進(jìn)行簽退。
7、 一種網(wǎng)絡(luò)稅控系統(tǒng)采集銷售票據(jù)數(shù)據(jù)的方法,其特征在于,包括 通過(guò)在商業(yè)收款機(jī)中設(shè)置的數(shù)據(jù)采集模塊替換該收款機(jī)使用的DOS操作系統(tǒng)中調(diào)用的子功能中斷;監(jiān)控商業(yè)收款機(jī)利用所述的子功能中斷打開(kāi)、關(guān)閉、讀、寫(xiě)串口時(shí),則利用替換的子 功能中斷截獲打印輸出的銷售票據(jù)數(shù)據(jù);將截獲的銷售票據(jù)數(shù)據(jù)作為稅控處理用的源數(shù)據(jù)傳送給與商業(yè)收款機(jī)連接的網(wǎng)絡(luò)稅控器。
8、 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述的替換的子功能中斷包括打開(kāi)文 件中斷、創(chuàng)建文件中斷、關(guān)閉文件中斷、讀文件中斷、寫(xiě)文件中斷和時(shí)鐘中斷。
9、 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述的數(shù)據(jù)采集模塊加載到所述DOS操作 系統(tǒng)的啟動(dòng)文件中,實(shí)現(xiàn)該數(shù)據(jù)采集模塊在所述的DOS操作系統(tǒng)啟動(dòng)時(shí)自啟動(dòng)。
10、 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述的方法還包括 數(shù)據(jù)采集模塊向與該模塊所在的商業(yè)收款機(jī)連接的網(wǎng)絡(luò)稅控器簽到; 若成功,則監(jiān)控串口,并進(jìn)行定時(shí)巡檢; 駐留替換后的各子功能中斷;上述各子功能中斷若全部駐留成功,則向網(wǎng)絡(luò)稅控器簽退; 若未全部駐留成功則鎖定數(shù)據(jù)采集模塊所在的商業(yè)收款機(jī)。
11、 一種網(wǎng)絡(luò)稅控系統(tǒng)采集銷售票據(jù)數(shù)據(jù)的方法,其特征在于,包括 通過(guò)在商業(yè)收款機(jī)中設(shè)置的數(shù)據(jù)采集模塊加載到該收款機(jī)使用的Windows操作系統(tǒng)的系統(tǒng)進(jìn)程中;監(jiān)控該Windows操作系統(tǒng)的打印輸出,利用加載到系統(tǒng)進(jìn)程中的數(shù)據(jù)采集模塊截獲打印 輸出的銷售票據(jù)數(shù)據(jù);將截獲的銷售票據(jù)數(shù)據(jù)作為稅控處理用的源數(shù)據(jù)傳送給與商業(yè)收款機(jī)連接的網(wǎng)絡(luò)稅控器。
12、根據(jù)權(quán)利要求ll所述的方法,其特征在于,所述的截獲該打印數(shù)據(jù)包括字符繪 制的應(yīng)用程序接口函數(shù)的調(diào)用,并利用Windows操作系統(tǒng)的鉤子函數(shù)得到發(fā)給所述接口函數(shù) 的參數(shù)來(lái)獲取打印數(shù)據(jù)。
13、 根據(jù)權(quán)利要求ll所述的方法,其特征在于,所述的的數(shù)據(jù)采集模塊加入到該 Windows操作系統(tǒng)的啟動(dòng)項(xiàng),實(shí)現(xiàn)該數(shù)據(jù)采集模塊在所述的Windows操作系統(tǒng)啟動(dòng)時(shí)自啟 動(dòng)。
14、 根據(jù)權(quán)利要求ll所述的方法,其特征在于,所述的數(shù)據(jù)采集模塊加入到該Windows 操作系統(tǒng)的啟動(dòng)項(xiàng)包括在該Windows操作系統(tǒng)的注冊(cè)表文件中加入啟動(dòng)項(xiàng)。
15、 根據(jù)權(quán)利要求ll所述的方法,其特征在于,所述的方法還包括 數(shù)據(jù)采集模塊向與該模塊所在的商業(yè)收款機(jī)連接的網(wǎng)絡(luò)稅控器簽到;若成功,則監(jiān)控串口,并進(jìn)行定時(shí)巡檢; 運(yùn)行打印數(shù)據(jù)監(jiān)控模塊;上述各部分若全部執(zhí)行成功,則向網(wǎng)絡(luò)稅控器簽退; 若未全部執(zhí)行成功則鎖定數(shù)據(jù)采集模塊所在的商業(yè)收款機(jī)。
16、 一種網(wǎng)絡(luò)稅控系統(tǒng)采集銷售票據(jù)數(shù)據(jù)的方法,其特征在于,包括 通過(guò)在商業(yè)收款機(jī)中設(shè)置的數(shù)據(jù)采集模塊修改或替換該收款機(jī)使用的Linux操作系統(tǒng)中打印設(shè)備驅(qū)動(dòng)程序;監(jiān)控該Linux系統(tǒng)的打印輸出,利用修改或替換的打印設(shè)備驅(qū)動(dòng)程序截獲打印的銷售 票據(jù)數(shù)據(jù),并將截獲的銷售票據(jù)數(shù)據(jù)作為稅控處理用的源數(shù)據(jù)傳送給與商業(yè)收款機(jī)連接的 網(wǎng)絡(luò)稅控器。
17、 根據(jù)權(quán)利要求16所述的方法,其特征在于,所述的將截獲的銷售票據(jù)數(shù)據(jù)作為稅 控處理用的源數(shù)據(jù)傳送給與商業(yè)收款機(jī)連接的網(wǎng)絡(luò)稅控器包括直接傳送給網(wǎng)絡(luò)稅控器或 經(jīng)用戶程序傳送給網(wǎng)絡(luò)稅控器。
全文摘要
本發(fā)明公開(kāi)了一種網(wǎng)絡(luò)稅控系統(tǒng)采集銷售票據(jù)數(shù)據(jù)的方法。該方法用于網(wǎng)絡(luò)稅控系統(tǒng)從所管理的商業(yè)管理信息系統(tǒng)的商業(yè)收款機(jī)中采集稅控用的源數(shù)據(jù),包括通過(guò)在商業(yè)收款機(jī)中設(shè)置的數(shù)據(jù)采集模塊截獲商業(yè)收款機(jī)輸出的銷售票據(jù)數(shù)據(jù),將截獲的銷售票據(jù)數(shù)據(jù)作為稅控處理用的源數(shù)據(jù)傳送給與商業(yè)收款機(jī)連接的網(wǎng)絡(luò)稅控器。本發(fā)明實(shí)施例的方法通過(guò)截獲商業(yè)管理信息系統(tǒng)的商業(yè)收款機(jī)中輸出的銷售票據(jù)數(shù)據(jù),作為稅控處理用的源數(shù)據(jù)傳送給與商業(yè)收款機(jī)相連的網(wǎng)絡(luò)稅控器。這種方法保證了作為稅控處理的源數(shù)據(jù)的準(zhǔn)確性,同時(shí)可以保證數(shù)據(jù)采集的安全性,不會(huì)因使用者采取其它技術(shù)手段,禁止數(shù)據(jù)采集模塊的工作或插入虛假數(shù)據(jù)影響稅控結(jié)果的準(zhǔn)確性。
文檔編號(hào)G07G1/14GK101159085SQ20071012162
公開(kāi)日2008年4月9日 申請(qǐng)日期2007年9月11日 優(yōu)先權(quán)日2007年9月11日
發(fā)明者于書(shū)舉, 侍偉敏, 磊 張, 張建標(biāo), 慕安臻, 杜小軍, 杜永萍, 沈昌祥, 牛振勇, 田國(guó)文, 葛尊敏, 許向眾, 翔 郭, 寧 馬 申請(qǐng)人:中商流通生產(chǎn)力促進(jìn)中心有限公司;北京工業(yè)大學(xué);青島海信智能商用設(shè)備有限公司;北京雅普蘭科技發(fā)展有限公司;廣東億業(yè)科技有限公司