国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種擴(kuò)展外設(shè)的方法及系統(tǒng)的制作方法

      文檔序號(hào):6646049閱讀:210來源:國知局
      專利名稱:一種擴(kuò)展外設(shè)的方法及系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及計(jì)算機(jī)技術(shù),具體的講是一種擴(kuò)展外設(shè)的方法及系統(tǒng)。
      背景技術(shù)
      一個(gè)典型的UNIX應(yīng)用10物理圖如圖1所示。UNIX服務(wù)器11提供應(yīng)用軟件的運(yùn)行環(huán)境,實(shí)際的用戶界面是通過連接在服務(wù)器上的終端展現(xiàn)的。終端通常有啞終端12和仿真終端13形式,終端上通過自身的串、并口或其它I/O通訊口,可以連接許多不同的外設(shè)14。UNIX操作系統(tǒng)不會(huì)為連接在服務(wù)器上的終端或連接在終端上的設(shè)備提供驅(qū)動(dòng)程序,終端和終端上的設(shè)備的驅(qū)動(dòng)程序需要由應(yīng)用軟件自身提供。各種不同的類型的設(shè)備驅(qū)動(dòng)程序用于控制硬件設(shè)備。本領(lǐng)域技術(shù)人員可以預(yù)見,還有一些其它的終端連接到UNIX服務(wù)器上,還有一些其它的終端設(shè)備可以連接到終端上。
      目前,在UNIX的許多應(yīng)用系統(tǒng)中,應(yīng)用軟件調(diào)用外設(shè)都是在應(yīng)用軟件中根據(jù)特定的設(shè)備的指令寫到程序中。因此每個(gè)應(yīng)用系統(tǒng)能夠支持的外設(shè)都是預(yù)先定義好的,這樣的設(shè)計(jì)模式不適合在外設(shè)種類繁多,功能日新月異的變化。特別是在銀行的前端應(yīng)用系統(tǒng)中,通常需要在軟件系統(tǒng)中使用外設(shè),銀行前端應(yīng)用系統(tǒng)使用以下常用外設(shè)終端、存折打印機(jī)、磁條讀寫器、密碼小鍵盤、寬行打印機(jī)等,進(jìn)行存折、憑條的打印,磁條讀寫、用戶密碼輸入及報(bào)表打印等;還有IC卡讀寫器進(jìn)行相關(guān)的IC卡業(yè)務(wù)。
      系統(tǒng)中使用的設(shè)備的類型種類繁多,同類型設(shè)備也經(jīng)常有多個(gè)廠商的產(chǎn)品;而且隨著業(yè)務(wù)的發(fā)展,不斷會(huì)有新設(shè)備(如USB掃描儀等)增加到應(yīng)用軟件系統(tǒng)中,給系統(tǒng)帶來大量的開發(fā)工作,而且給維護(hù)特別是擴(kuò)展上帶來很大的挑戰(zhàn)。另外,從成本角度考慮,還要求一些設(shè)備兼做其它功能或改變接口配置模式等變化。
      一般的應(yīng)用系統(tǒng),使用外設(shè)都是有針對(duì)性的,說明只能夠支持的設(shè)備列表。這樣的應(yīng)用系統(tǒng)對(duì)外設(shè)類型支持有限,談不上可擴(kuò)展。一旦新的設(shè)備或新型號(hào)需要系統(tǒng)軟件支持,那就需要等待應(yīng)用軟件系統(tǒng)升級(jí)才能夠支持;而且,還可能需要修改過相關(guān)的業(yè)務(wù)應(yīng)用程序,系統(tǒng)才可以支持新設(shè)備。

      發(fā)明內(nèi)容
      本發(fā)明為了實(shí)現(xiàn)方便業(yè)務(wù)應(yīng)用程序開發(fā),屏蔽同類型設(shè)備不同廠家產(chǎn)品之間的開發(fā)差異,容易擴(kuò)展新類型設(shè)備的目的,提出應(yīng)用軟件使用外設(shè)的一種靈活多變的技術(shù)解決方法,能夠支持豐富類型設(shè)備的使用,支持設(shè)備的靈活接入,解決了系統(tǒng)軟件在支持外設(shè)上的可擴(kuò)展問題,屏蔽業(yè)務(wù)應(yīng)用程序使用外設(shè)中的開發(fā)差異。
      一種擴(kuò)展外設(shè)的方法,包括以下步驟應(yīng)用系統(tǒng)通過終端驅(qū)動(dòng)開發(fā)接口加載終端驅(qū)動(dòng)的步驟;業(yè)務(wù)軟件通過掛接外設(shè)驅(qū)動(dòng)開發(fā)接口向邏輯外設(shè)發(fā)出宏指令功能請(qǐng)求的步驟;根據(jù)業(yè)務(wù)軟件的宏指令功能請(qǐng)求,查找確定與所述邏輯外設(shè)相對(duì)應(yīng)的物理外設(shè)驅(qū)動(dòng)的步驟;外設(shè)驅(qū)動(dòng)調(diào)用存儲(chǔ)的完成宏指令的物理外設(shè)指令,以操作物理外設(shè)完成功能請(qǐng)求的步驟。
      在應(yīng)用系統(tǒng)通過終端驅(qū)動(dòng)開發(fā)接口加載終端驅(qū)動(dòng)的步驟中還包括,應(yīng)用系統(tǒng)通過讀取一配置文件加載終端驅(qū)動(dòng)的步驟。
      所述的配置文件包括終端名稱和終端驅(qū)動(dòng)程序字段。
      在掛接外設(shè)驅(qū)動(dòng)開發(fā)接口根據(jù)業(yè)務(wù)軟件的宏指令功能請(qǐng)求,查找確定與所述邏輯外設(shè)相對(duì)應(yīng)的物理外設(shè)驅(qū)動(dòng)的步驟中還包括,根據(jù)一配置文件加載與所述邏輯外設(shè)相對(duì)應(yīng)的物理外設(shè)驅(qū)動(dòng)的步驟。
      所述配置文件包括接口類型、波特率、數(shù)據(jù)位、停止位、連接口、校驗(yàn)位、超時(shí)、外設(shè)驅(qū)動(dòng)程序字段。
      在操作物理外設(shè)完成功能請(qǐng)求的步驟之后還包括,釋放終端驅(qū)動(dòng)開發(fā)接口資源和掛接外設(shè)驅(qū)動(dòng)開發(fā)接口資源。
      應(yīng)用系統(tǒng)和業(yè)務(wù)軟件通過外設(shè)驅(qū)動(dòng)開發(fā)接口與終端驅(qū)動(dòng)開發(fā)接口、掛接外設(shè)驅(qū)動(dòng)開發(fā)接口傳遞數(shù)據(jù)。
      一種擴(kuò)展外設(shè)的系統(tǒng),包括終端驅(qū)動(dòng)開發(fā)接口,應(yīng)用系統(tǒng)通過終端驅(qū)動(dòng)開發(fā)接口加載終端驅(qū)動(dòng);掛接外設(shè)驅(qū)動(dòng)開發(fā)接口,終端驅(qū)動(dòng)開發(fā)接口用于接收業(yè)務(wù)軟件宏指令功能請(qǐng)求數(shù)據(jù),分析出功能請(qǐng)求對(duì)應(yīng)的邏輯外設(shè);外設(shè)匹配單元,與所述掛接外設(shè)驅(qū)動(dòng)開發(fā)接口相連接,用于查找所述邏輯外設(shè)所對(duì)應(yīng)的物理外設(shè)驅(qū)動(dòng);宏指令編譯單元,與所述外設(shè)匹配單元相連接,用于在查找出來的所述對(duì)應(yīng)的物理外設(shè)驅(qū)動(dòng)中查找完成所述宏指令功能請(qǐng)求的物理外設(shè)驅(qū)動(dòng)指令集;物理外設(shè)接口,一端與所述宏指令編譯單元相連接,另一端與物理外設(shè)相連接,接收宏指令編譯單元的物理外設(shè)驅(qū)動(dòng)指令,傳送給物理外設(shè)使之完成業(yè)務(wù)軟件的功能請(qǐng)求。
      還包括一配置文件單元,與所述終端驅(qū)動(dòng)開發(fā)接口相連接,所述業(yè)務(wù)軟件的宏指令功能請(qǐng)求通過配置文件單元中存儲(chǔ)的終端配置文件,通過規(guī)定的終端驅(qū)動(dòng)開發(fā)接口進(jìn)行數(shù)據(jù)通信。
      所述的配置文件包括終端名稱和終端驅(qū)動(dòng)程序字段。
      所述配置文件單元與所述外設(shè)匹配單元相連接,所述外設(shè)匹配單元在配置文件單元中查找與所述邏輯外設(shè)對(duì)應(yīng)的物理外設(shè)驅(qū)動(dòng)。
      所述配置文件包括接口類型、波特率、數(shù)據(jù)位、停止位、連接口、校驗(yàn)位、超時(shí)、外設(shè)驅(qū)動(dòng)程序字段。
      所述物理外設(shè)接口包括串行接口,并行接口,USB接口,網(wǎng)絡(luò)接口。
      還包括一外設(shè)驅(qū)動(dòng)開發(fā)接口,用于接收應(yīng)用系統(tǒng)和業(yè)務(wù)軟件的數(shù)據(jù)信號(hào),傳送給終端驅(qū)動(dòng)開發(fā)接口和掛接外設(shè)驅(qū)動(dòng)開發(fā)接口。
      本發(fā)明的有益效果在于,完全屏蔽了具體外設(shè)與業(yè)務(wù)應(yīng)用程序的關(guān)系;同一類型外設(shè)提供統(tǒng)一的外設(shè)操縱宏指令集,使外設(shè)的使用對(duì)業(yè)務(wù)應(yīng)用程序來講都是一致的,實(shí)現(xiàn)不同廠商同一類型外設(shè)無縫的接入到系統(tǒng)中。標(biāo)準(zhǔn)的外設(shè)操縱宏指令集,統(tǒng)一的驅(qū)動(dòng)程序接口,為外設(shè)的擴(kuò)展,新類型設(shè)備的使用提供了一條方便快捷的接入途徑。


      圖1為本發(fā)明系統(tǒng)結(jié)構(gòu)圖;圖2為設(shè)備的業(yè)務(wù)邏輯定義分類及與物理設(shè)備關(guān)系示意圖;圖3為邏輯密碼小鍵盤和邏輯磁條讀寫器的宏指令集示意圖;圖4為本發(fā)明應(yīng)用系統(tǒng)配置文件示意圖;圖5為本發(fā)明擴(kuò)展外設(shè)結(jié)構(gòu)的應(yīng)用系統(tǒng)結(jié)構(gòu)圖;圖6為本發(fā)明方法流程圖;圖7為本發(fā)明服務(wù)器、終端和掛接外設(shè)的結(jié)構(gòu)圖;圖8為圖7系統(tǒng)部件結(jié)構(gòu)圖。
      具體實(shí)施例方式
      下面結(jié)合

      本發(fā)明的具體實(shí)施方式
      。
      為了實(shí)現(xiàn)本發(fā)明的目的,需要進(jìn)行如下工作1.根據(jù)業(yè)務(wù)應(yīng)用實(shí)際需求,對(duì)業(yè)務(wù)應(yīng)用軟件的外設(shè)進(jìn)行邏輯定義。
      對(duì)實(shí)際物理外設(shè)進(jìn)行邏輯定義的結(jié)果是得到一個(gè)邏輯設(shè)備集合。邏輯設(shè)備是指概念上的設(shè)備,一個(gè)邏輯設(shè)備完成一定的功能。一種邏輯設(shè)備一般與一種實(shí)際的設(shè)備對(duì)應(yīng),完成的功能可以是實(shí)際設(shè)備提供的,也可以是在驅(qū)動(dòng)中軟件實(shí)現(xiàn)的。一個(gè)邏輯設(shè)備對(duì)應(yīng)一個(gè)實(shí)際設(shè)備與相應(yīng)驅(qū)動(dòng),但一個(gè)實(shí)際設(shè)備與不同的驅(qū)動(dòng)是對(duì)應(yīng)不同的邏輯設(shè)備。如LQ1600寬行打印機(jī),結(jié)合它相應(yīng)的報(bào)表驅(qū)動(dòng),可以定義為報(bào)表打印機(jī);與業(yè)務(wù)驅(qū)動(dòng)一起,可以定義為業(yè)務(wù)打印機(jī)。簡(jiǎn)而言之,邏輯設(shè)備是根據(jù)業(yè)務(wù)應(yīng)用的實(shí)際需求,定義出來的完成一組功能的概念上的設(shè)備。
      圖2是設(shè)備的業(yè)務(wù)邏輯定義分類及與物理設(shè)備關(guān)系示意圖。圖中給出了一個(gè)應(yīng)用系統(tǒng)使用的部分邏輯設(shè)備定義,并給出了邏輯設(shè)備與物理設(shè)備關(guān)系。業(yè)務(wù)應(yīng)用系統(tǒng)100的業(yè)務(wù)應(yīng)用程序101需要使用外設(shè)來完成數(shù)據(jù)的輸入或輸出工作,如打印憑條,讀入存折信息等。業(yè)務(wù)應(yīng)用程序是實(shí)際上完成業(yè)務(wù)的程序,如銀行系統(tǒng)中存款業(yè)務(wù)對(duì)應(yīng)的程序,一般僅指完成整個(gè)業(yè)務(wù)的客戶端程序,以下所指的業(yè)務(wù)應(yīng)用程序都是這一類型程序。分析業(yè)務(wù)應(yīng)用程序使用外設(shè)的情況,其實(shí)是一個(gè)邏輯的使用,如在銀行系統(tǒng)中使用的外設(shè)常有邏輯存折打印機(jī)102、邏輯磁條讀寫器103、邏輯業(yè)務(wù)寬行打印機(jī)104和邏輯報(bào)表打印機(jī)105。業(yè)務(wù)應(yīng)用程序只是關(guān)心邏輯外設(shè)完成的業(yè)務(wù)功能,而并不關(guān)心邏輯存折打印機(jī)是串口存折打印機(jī)106還是并口存折打印機(jī)107;邏輯業(yè)務(wù)打印機(jī)與邏輯報(bào)表打印機(jī)都可以使用寬行打印機(jī)。所以業(yè)務(wù)應(yīng)用程序只關(guān)心可以用來完成相應(yīng)業(yè)務(wù)功能的邏輯外設(shè),而并不關(guān)心是具體實(shí)現(xiàn)邏輯設(shè)備的物理設(shè)備。
      調(diào)查應(yīng)用系統(tǒng)使用的外設(shè)情況,根據(jù)業(yè)務(wù)應(yīng)用的實(shí)際需求來定義系統(tǒng)使用的邏輯設(shè)備是本發(fā)明的第一步工作。
      2.定義每種邏輯設(shè)備的宏指令集。
      宏指令是邏輯設(shè)備能夠完成的一個(gè)功能的動(dòng)作概括。宏指令集就是一種邏輯設(shè)備能夠?qū)崿F(xiàn)的所有功能的動(dòng)作概括的集合。宏指令集是業(yè)務(wù)應(yīng)用程序操控外設(shè)的指令接口。每種宏指令集定義的主要依據(jù)是外設(shè)自身的指令集合,同時(shí)還要結(jié)合業(yè)務(wù)應(yīng)用程序的需求。每條宏指令對(duì)應(yīng)零到多條外設(shè)指令,例如一個(gè)邏輯打印機(jī),進(jìn)紙宏指令與某物理打印機(jī)的清除錯(cuò)誤、檢查狀態(tài)、進(jìn)紙幾個(gè)實(shí)際指令對(duì)應(yīng),而查看打印機(jī)名字宏指令則與物理打印機(jī)的實(shí)際指令沒有對(duì)應(yīng)關(guān)系,僅是驅(qū)動(dòng)程序?qū)崿F(xiàn)的邏輯功能。邏輯設(shè)備宏指令是對(duì)邏輯設(shè)備功能使用的完整操控接口描述,業(yè)務(wù)應(yīng)用程序通過邏輯設(shè)備的宏指令集使用邏輯外設(shè)所有功能。
      圖3是邏輯密碼小鍵盤和邏輯磁條讀寫器的宏指令集示意圖。邏輯密碼小鍵盤201有輸入密碼和請(qǐng)?jiān)佥斎朊艽a的功能,因此有請(qǐng)輸入密碼202、請(qǐng)?jiān)佥斎朊艽a203是兩條宏指令,這兩條宏指令構(gòu)成了邏輯設(shè)備密碼小鍵盤的宏指令集。同樣的,邏輯磁條讀寫器301的宏指令集有以下幾條宏指令讀二磁道數(shù)據(jù)302、讀三磁道數(shù)據(jù)303、讀二三磁道數(shù)據(jù)304、寫二磁道數(shù)據(jù)305、寫三磁道數(shù)據(jù)306和寫二三磁道數(shù)據(jù)307。從業(yè)務(wù)應(yīng)用系統(tǒng)上看,要求密碼小鍵盤提供的就是輸入一個(gè)密碼和再次輸入進(jìn)行確認(rèn)這兩條宏指令功能請(qǐng)求。一個(gè)物理密碼小鍵盤,它實(shí)際的外設(shè)指令有指示燈亮、提示語音一、提示語音二、指示燈滅四條實(shí)際指令。邏輯設(shè)備的宏指令請(qǐng)輸入密碼,對(duì)應(yīng)物理密碼小鍵盤的外設(shè)指令為指示燈亮、提示語音一和指示燈滅;而宏指令請(qǐng)?jiān)佥斎朊艽a,對(duì)應(yīng)物理密碼小鍵盤的實(shí)際指令為指示燈亮、提示語音二、指示燈滅。
      對(duì)于其它業(yè)務(wù)上使用的邏輯設(shè)備,根據(jù)業(yè)務(wù)使用的功能,我們也需要為它們定義合適的宏指令集。
      3.定義業(yè)務(wù)應(yīng)用程序開發(fā)接口。
      對(duì)于每種邏輯設(shè)備,在應(yīng)用軟件系統(tǒng)中都有一個(gè)唯一的標(biāo)識(shí)。系統(tǒng)是通過該標(biāo)識(shí)來區(qū)分邏輯設(shè)備,把宏指令發(fā)送到實(shí)際實(shí)現(xiàn)邏輯設(shè)備的物理設(shè)備的驅(qū)動(dòng)程序中。為支持業(yè)務(wù)應(yīng)用程序開發(fā),需要定義業(yè)務(wù)應(yīng)用程序開發(fā)接口,通過該接口業(yè)務(wù)應(yīng)用程序需把要對(duì)外設(shè)操縱的宏指令、參數(shù)發(fā)送到相應(yīng)的驅(qū)動(dòng)中。接口定義形式有以下示例可作參考接口名稱(邏輯設(shè)備標(biāo)識(shí),宏指令,參數(shù))——返回值表示成功失??;或者邏輯設(shè)備對(duì)象=取邏輯設(shè)備對(duì)象接口(邏輯設(shè)備標(biāo)識(shí)),接口名稱(宏指令,參數(shù))——返回值表示成功失??;每一具體類型的外設(shè)為實(shí)現(xiàn)一種邏輯外設(shè),都有一個(gè)相應(yīng)的驅(qū)動(dòng)程序。例如南天存折打印機(jī)作為邏輯存折打印機(jī)時(shí),有一個(gè)相應(yīng)的驅(qū)動(dòng)程序A;東南的存折打印機(jī)作為邏輯存折打印機(jī)時(shí),它也有它相應(yīng)的驅(qū)動(dòng)程序B。不同驅(qū)動(dòng)程序的存在主要是實(shí)際的外設(shè)提供的實(shí)際外設(shè)指令有差異造成的。
      實(shí)際外設(shè)的驅(qū)動(dòng)程序是要實(shí)現(xiàn)一種邏輯外設(shè)的功能,所以同一邏輯外設(shè)的不同實(shí)際外設(shè)的驅(qū)動(dòng)程序,實(shí)現(xiàn)的功能是完全一致的。如邏輯外設(shè)密碼鍵盤,而無論它們的實(shí)際外設(shè)指令如何差異,邏輯指令“請(qǐng)輸入密碼”就是請(qǐng)用戶輸入一次密碼。
      在應(yīng)用系統(tǒng)中,所有的邏輯外設(shè)都有相應(yīng)的標(biāo)識(shí),一般使用集合來管理。業(yè)務(wù)應(yīng)用程序通過業(yè)務(wù)應(yīng)用程序開發(fā)接口,統(tǒng)一對(duì)邏輯外設(shè)進(jìn)行使用,以實(shí)現(xiàn)通過一種統(tǒng)一的格式屏蔽不同外設(shè),不同功能請(qǐng)求的目的。
      4.為設(shè)備的驅(qū)動(dòng)程序定義驅(qū)動(dòng)程序開發(fā)接口應(yīng)用系統(tǒng)需要定義一套完整的驅(qū)動(dòng)程序開發(fā)接口,外設(shè)驅(qū)動(dòng)程序只要是根據(jù)接口編寫的,就可以方便的嵌入到系統(tǒng)中。本發(fā)明的驅(qū)動(dòng)程序是指對(duì)實(shí)際物理外設(shè)發(fā)出實(shí)際外設(shè)指令,完成宏指令功能的程序。本發(fā)明中的驅(qū)動(dòng)程序與操作系統(tǒng)的驅(qū)動(dòng)程序是不同的。本發(fā)明的驅(qū)動(dòng)程序是在應(yīng)用系統(tǒng)中嵌入的,根據(jù)自定義的接口實(shí)現(xiàn)宏指令的功能,一個(gè)操作系統(tǒng)下驅(qū)動(dòng)程序驅(qū)動(dòng)的外設(shè)通常每個(gè)終端都會(huì)接一套外設(shè)。我們經(jīng)常提到的驅(qū)動(dòng)程序是操作系統(tǒng)的驅(qū)動(dòng)程序,如windows上打印機(jī)驅(qū)動(dòng)程序,這些驅(qū)動(dòng)程序是廠家或操作系統(tǒng)提供的。
      為了便于應(yīng)用系統(tǒng)的擴(kuò)展,驅(qū)動(dòng)程序定義為動(dòng)態(tài)庫模式。驅(qū)動(dòng)程序開發(fā)接口按照以下方面設(shè)計(jì)在應(yīng)用軟件系統(tǒng)中,外設(shè)分為兩種類型終端設(shè)備和掛接設(shè)備。如圖1中的啞終端12和圖形終端/PC13,都是終端設(shè)備;而外圍設(shè)備14則屬于掛接設(shè)備,它們是連接在終端上而不是服務(wù)器上,如存折打印機(jī)、磁條讀寫器等都是掛接設(shè)備。
      終端直接連接到服務(wù)器上,為掛接設(shè)備提供連接接口,可以是一臺(tái)平時(shí)使用的個(gè)人電腦、啞終端或其它終端。終端之所以稱為終端,是前端系統(tǒng)中它們所處的位置來定的,它自身并不處理業(yè)務(wù)邏輯,只作為前端系統(tǒng)輸入、輸出(顯示結(jié)果)來使用。UNIX下的啞終端并不運(yùn)行程序,是純粹的終端,而linux終端和PC終端還兼起UNIX服務(wù)器運(yùn)行應(yīng)用系統(tǒng)、執(zhí)行業(yè)務(wù)軟件的功能。從應(yīng)用軟件來看,終端自身也是一個(gè)外設(shè),提供了應(yīng)用軟件系統(tǒng)程序到外設(shè)的通信通道。由于不同物理終端提供的通信接口的實(shí)際指令是有區(qū)別的,因此需要區(qū)分對(duì)待。終端提供給掛接外設(shè)使用的物理外設(shè)接口目前主要有兩類串口與并口。逐漸也開始使用USB口或其它通信接口。終端的驅(qū)動(dòng)程序提供終端通訊口的打開、關(guān)閉、清除、讀寫等功能。終端驅(qū)動(dòng)程序與應(yīng)用軟件程序是在一起的,啞終端模式下是在UNIX服務(wù)器上運(yùn)行,linux與PC終端模式下分別在linux終端與pc上運(yùn)行。
      掛接設(shè)備是連接到終端的真實(shí)物理設(shè)備,為業(yè)務(wù)應(yīng)用程序提供實(shí)際的外設(shè)服務(wù)功能。掛接設(shè)備的驅(qū)動(dòng)程序主要使用終端驅(qū)動(dòng)提供的外設(shè)通訊接口與實(shí)際的外設(shè)通訊,實(shí)現(xiàn)外設(shè)邏輯指令要求的功能。
      業(yè)務(wù)應(yīng)用程序使用的邏輯設(shè)備,對(duì)應(yīng)的是掛接在終端上的某個(gè)物理設(shè)備,所以業(yè)務(wù)應(yīng)用程序關(guān)心的掛接設(shè)備而不是終端設(shè)備。在應(yīng)用系統(tǒng)實(shí)現(xiàn)上,終端也是當(dāng)作是系統(tǒng)的一類外設(shè)來對(duì)待,主要目的是屏蔽各種終端的差異,讓驅(qū)動(dòng)程序只做針對(duì)特定物理設(shè)備的工作。因此外設(shè)驅(qū)動(dòng)在系統(tǒng)軟件中區(qū)分為終端驅(qū)動(dòng)和掛接外設(shè)驅(qū)動(dòng)。通常把掛接外設(shè)驅(qū)動(dòng)直接稱為外設(shè)驅(qū)動(dòng)。它們的關(guān)系如圖4所示。終端驅(qū)動(dòng)和掛接外設(shè)驅(qū)動(dòng)都是應(yīng)用系統(tǒng)的外設(shè)驅(qū)動(dòng),由應(yīng)用軟件加載的,掛接外設(shè)驅(qū)動(dòng)通過系統(tǒng)間接使用終端驅(qū)動(dòng)的通信通道接口,與外設(shè)進(jìn)行通訊。
      外設(shè)驅(qū)動(dòng)開發(fā)接口定義相應(yīng)的分為兩種終端驅(qū)動(dòng)開發(fā)接口定義和掛接外設(shè)驅(qū)動(dòng)開發(fā)接口定義。
      終端驅(qū)動(dòng)接口定義如下打開串口(串口號(hào),波特率,數(shù)據(jù)位,停止位,奇偶校驗(yàn)標(biāo)志)——返回值表示成功或出錯(cuò)代碼;
      關(guān)閉串口(串口號(hào))——返回值表示成功或出錯(cuò)代碼;清空串口函數(shù)(串口號(hào))——返回值表示成功或出錯(cuò)代碼;讀串口數(shù)據(jù)(串口號(hào),結(jié)果數(shù)據(jù)存儲(chǔ)緩沖區(qū),數(shù)據(jù)長(zhǎng)度,超時(shí))——返回值成功表示實(shí)際讀到的數(shù)據(jù)長(zhǎng)度,失敗表示錯(cuò)誤代碼;寫數(shù)據(jù)到串口(串口號(hào),數(shù)據(jù)緩沖區(qū),數(shù)據(jù)長(zhǎng)度)——返回值成功表示實(shí)際寫出的數(shù)據(jù)長(zhǎng)度,失敗表示錯(cuò)誤代碼。
      打開并口(并口號(hào))——返回值表示成功或錯(cuò)誤代碼;關(guān)閉并口(并口號(hào))——返回值表示成功或錯(cuò)誤代碼;讀并口數(shù)據(jù)(并口號(hào),結(jié)果數(shù)據(jù)緩沖區(qū),數(shù)據(jù)長(zhǎng)度,超時(shí))——返回值表示實(shí)際讀到數(shù)據(jù)長(zhǎng)度或錯(cuò)誤代碼;清空并口(并口號(hào));寫數(shù)據(jù)到并口(并口號(hào),數(shù)據(jù)緩沖區(qū),數(shù)據(jù)長(zhǎng)度)——返回值表示實(shí)際寫的數(shù)據(jù)長(zhǎng)度或錯(cuò)誤代碼。
      終端驅(qū)動(dòng)還可以附加以下兩個(gè)接口獲取終端驅(qū)動(dòng)版本號(hào)(存放驅(qū)動(dòng)版本號(hào)緩沖區(qū))——返回值表示成功或出錯(cuò)代碼;獲取終端相關(guān)信息(存放信息的緩沖區(qū))——返回值表示成功或出錯(cuò)代碼。
      掛接外設(shè)驅(qū)動(dòng)接口定義如下初始化(終端驅(qū)動(dòng)函數(shù)指針結(jié)構(gòu)體,連接端口,波特率,數(shù)據(jù)位,停止位,奇偶校驗(yàn)標(biāo)志,超時(shí))——返回值表示成功或錯(cuò)誤代碼;通信(宏指令,輸入?yún)?shù)緩沖區(qū),輸入?yún)?shù)長(zhǎng)度,輸出參數(shù)緩沖區(qū),輸出參數(shù)數(shù)據(jù)長(zhǎng)度緩沖區(qū))——返回值表示成功或錯(cuò)誤代碼;釋放()——釋放該驅(qū)動(dòng)程序申請(qǐng)的資源,返回值表示成功或錯(cuò)誤代碼。
      同樣,掛接外設(shè)驅(qū)動(dòng)接口可以附加以下兩個(gè)接口獲取掛接外設(shè)驅(qū)動(dòng)版本號(hào)(版本數(shù)據(jù)緩沖區(qū))——返回值表示成功或錯(cuò)誤代碼;獲取掛接外設(shè)信息(信息數(shù)據(jù)緩沖區(qū))——返回值表示成功或錯(cuò)誤代碼。
      這里給出的掛接外設(shè)驅(qū)動(dòng)開發(fā)接口是一個(gè)總體的描述,還有可能具有其它形式定義的終端驅(qū)動(dòng)接口和掛接外設(shè)驅(qū)動(dòng)接口,在實(shí)際的實(shí)現(xiàn)當(dāng)中,每種邏輯外設(shè)都對(duì)應(yīng)一套接口,系統(tǒng)才能夠同時(shí)加載不同類型的驅(qū)動(dòng)程序并加以區(qū)分。實(shí)際的形式為終端驅(qū)動(dòng)開發(fā)接口、邏輯外設(shè)1驅(qū)動(dòng)開發(fā)接口、……、邏輯外設(shè)n驅(qū)動(dòng)開發(fā)接口。
      進(jìn)一步,為方便各種不同外設(shè)在系統(tǒng)中使用,應(yīng)用軟件加載驅(qū)動(dòng)程序的工作中還需要一外設(shè)配置文件,該文件描述了一個(gè)終端使用的終端驅(qū)動(dòng)和各種掛接外設(shè)驅(qū)動(dòng)的類型,并描述了各種掛接外設(shè)接口、接口形式、接口參數(shù)配置和驅(qū)動(dòng)程序名等。配置文件可以采用各種形式,下面給出的是一種外設(shè)配置文件,也可用xml文件等形式進(jìn)行描述。
      表1掛接外設(shè)配置文件

      表2終端配置文件

      經(jīng)過以上4步,應(yīng)用系統(tǒng)中增加了可擴(kuò)展的外設(shè)結(jié)構(gòu),構(gòu)成了一個(gè)使用擴(kuò)展外設(shè)的應(yīng)用系統(tǒng)。使用擴(kuò)展外設(shè)結(jié)構(gòu)的應(yīng)用系統(tǒng)結(jié)構(gòu)如圖5所示可擴(kuò)展的外設(shè)應(yīng)用系統(tǒng)400中,業(yè)務(wù)應(yīng)用程序401調(diào)用應(yīng)用軟件提供的外設(shè)業(yè)務(wù)應(yīng)用程序開發(fā)接口403進(jìn)行向邏輯外設(shè)402發(fā)送宏指令,應(yīng)用軟件系統(tǒng)通過設(shè)備驅(qū)動(dòng)開發(fā)接口404(一種統(tǒng)一的規(guī)范),可以接受邏輯終端驅(qū)動(dòng)開發(fā)接口405開發(fā)的終端驅(qū)動(dòng)程序407,也可以接受掛接外設(shè)驅(qū)動(dòng)開發(fā)接口406定義的外設(shè)驅(qū)動(dòng)程序408。不同終端驅(qū)動(dòng)程序可以驅(qū)動(dòng)不同的終端設(shè)備409,不同的外設(shè)驅(qū)動(dòng)程序可以驅(qū)動(dòng)不同的掛接設(shè)備410。
      在應(yīng)用系統(tǒng)的運(yùn)行中,業(yè)務(wù)應(yīng)用程序調(diào)用應(yīng)用系統(tǒng)提供的接口,使用業(yè)務(wù)邏輯外設(shè)提供的宏指令集進(jìn)行外設(shè)操控。應(yīng)用系統(tǒng)定義了統(tǒng)一的掛接外設(shè)驅(qū)動(dòng)開發(fā)接口進(jìn)行外設(shè)驅(qū)動(dòng)擴(kuò)展,所有的外設(shè)驅(qū)動(dòng)程序按照掛接外設(shè)驅(qū)動(dòng)開發(fā)接口開發(fā)。每一個(gè)具體類型的外設(shè)都有一個(gè)對(duì)應(yīng)的驅(qū)動(dòng)程序,實(shí)現(xiàn)一個(gè)業(yè)務(wù)邏輯外設(shè)的所有外設(shè)驅(qū)動(dòng)的功能。在應(yīng)用系統(tǒng)的運(yùn)行中,所有的掛接外設(shè)是作為一個(gè)集合管理起來的。整個(gè)工作流程如下應(yīng)用系統(tǒng)啟動(dòng),讀配置文件,并根據(jù)終端驅(qū)動(dòng)的配置文件加載終端驅(qū)動(dòng)。
      業(yè)務(wù)應(yīng)用程序運(yùn)行,使用(通過應(yīng)用系統(tǒng)接口調(diào)用)某個(gè)邏輯外設(shè)(如邏輯密碼小鍵盤),應(yīng)用系統(tǒng)到配置文件中尋找相應(yīng)的配置參數(shù),如果找到則加載相應(yīng)的驅(qū)動(dòng),否則錯(cuò)誤處理。
      應(yīng)用系統(tǒng)調(diào)用掛接外設(shè)驅(qū)動(dòng)程序的初始化函數(shù),進(jìn)行掛接外設(shè)驅(qū)動(dòng)程序初始化,并進(jìn)行版本信息檢查等相關(guān)處理。
      應(yīng)用系統(tǒng)使用業(yè)務(wù)應(yīng)用程序的宏指令及相關(guān)參數(shù)調(diào)用掛接外設(shè)驅(qū)動(dòng)程序,掛接驅(qū)動(dòng)程序解釋宏指令和相關(guān)參數(shù),執(zhí)行相關(guān)外設(shè)操作(向?qū)嶋H的物理設(shè)備發(fā)送實(shí)際的外設(shè)指令,該指令是直接在驅(qū)動(dòng)程序根據(jù)實(shí)際的物理指令寫到驅(qū)動(dòng)程序中)。
      應(yīng)用系統(tǒng)在退出時(shí),調(diào)用所有已加載的系統(tǒng)掛接外設(shè)驅(qū)動(dòng)程序的釋放接口進(jìn)行資源釋放。
      應(yīng)用系統(tǒng)的整個(gè)詳細(xì)工作流程如圖6所示。圖中詳細(xì)描述了擴(kuò)展外設(shè)結(jié)構(gòu)在應(yīng)用系統(tǒng)中的詳細(xì)工作流程,一個(gè)真正的應(yīng)用系統(tǒng)當(dāng)然還會(huì)包括其它有關(guān)的工作流程。步驟601,應(yīng)用系統(tǒng)啟動(dòng);步驟602,讀取終端配置文件;步驟603,根據(jù)終端配置文件的參數(shù),加載終端驅(qū)動(dòng),并進(jìn)行其它初始化工作;步驟604,運(yùn)行業(yè)務(wù)應(yīng)用程序;步驟605,調(diào)用外設(shè)驅(qū)動(dòng)接口,如果成功進(jìn)入步驟606,否則進(jìn)入步驟616,進(jìn)行出錯(cuò)處理;步驟606,從掛接外設(shè)配置文件的外設(shè)驅(qū)動(dòng)集合中尋找與邏輯外設(shè)標(biāo)識(shí)對(duì)應(yīng)的邏輯外設(shè);步驟607,判斷是否有相應(yīng)的配置,有則進(jìn)入步驟108,否則進(jìn)入步驟616,進(jìn)行出錯(cuò)處理;步驟608,加載掛接外設(shè)驅(qū)動(dòng);步驟609,初始化掛接外設(shè)驅(qū)動(dòng);步驟610,系統(tǒng)調(diào)用掛接驅(qū)動(dòng)程序的宏指令處理,傳遞宏指令及相應(yīng)參數(shù);步驟611,掛接外設(shè)驅(qū)動(dòng)程序?qū)⒑曛噶钏鶎?duì)應(yīng)的物理設(shè)備完成功能請(qǐng)求的物理外設(shè)指令通過終端驅(qū)動(dòng)接口初始化后的物理外設(shè)接口(串口、并口等)傳送給物理外設(shè);步驟612,業(yè)務(wù)應(yīng)用程序執(zhí)行其它業(yè)務(wù)邏輯;步驟613,應(yīng)用系統(tǒng)是否退出,如果不退出則進(jìn)入步驟404,否則進(jìn)入步驟614;步驟614,調(diào)用掛接外設(shè)驅(qū)動(dòng)釋放終端驅(qū)動(dòng)接口和外設(shè)驅(qū)動(dòng)接口,以釋放系統(tǒng)資源;步驟615,系統(tǒng)退出。
      每種類型的邏輯設(shè)備對(duì)應(yīng)的掛接外設(shè)驅(qū)動(dòng)要求實(shí)現(xiàn)的功能是一致的,而且必須一致,這樣就可以屏蔽業(yè)務(wù)應(yīng)用程序開發(fā)使用與不同的外設(shè)之間的差異。
      不同的物理設(shè)備有不同的外設(shè)指令,為了實(shí)現(xiàn)相同的邏輯設(shè)備功能請(qǐng)求,在系統(tǒng)中是以不同的掛接外設(shè)驅(qū)動(dòng)實(shí)現(xiàn)。
      新型號(hào)設(shè)備的使用僅是新的物理設(shè)備驅(qū)動(dòng)的開發(fā)和配置的改變,對(duì)業(yè)務(wù)應(yīng)用程序發(fā)出的宏指令功能請(qǐng)求毫無影響。
      新類型設(shè)備的增加對(duì)系統(tǒng)軟件來說是一個(gè)邏輯外設(shè)的增加,定義相關(guān)的宏指令集,定義相關(guān)的邏輯設(shè)備ID編寫相應(yīng)的驅(qū)動(dòng)程序就可以增加到系統(tǒng)中。對(duì)業(yè)務(wù)應(yīng)用程序也是毫無影響的。
      下面以一個(gè)簡(jiǎn)化的銀行前端系統(tǒng)作為模型,建立一個(gè)使用擴(kuò)展外設(shè)體系結(jié)構(gòu)的銀行前端應(yīng)用系統(tǒng)。
      首先定義前端應(yīng)用系統(tǒng)的邏輯設(shè)備。根據(jù)該銀行業(yè)務(wù)的需求,在該銀行的前端應(yīng)用系統(tǒng)中,支持存折或卡的磁條讀寫,并且用戶需要使用密碼器輸入用戶的密碼。因此,可以定義該系統(tǒng)使用兩個(gè)邏輯外設(shè)邏輯磁條讀寫器和邏輯密碼小鍵盤,在系統(tǒng)中的標(biāo)識(shí)分別為MSFRW和PINKEY。這兩個(gè)邏輯設(shè)備對(duì)應(yīng)的實(shí)際物理設(shè)備配置參數(shù)如下表所示。
      表3邏輯外設(shè)為密碼小鍵盤與磁條讀寫器的配置文件

      宏指令集的定義。在實(shí)際的磁條讀寫器中,其指令是很豐富的,各個(gè)廠家的指令也不相同(表4為某廠家某型號(hào)磁條讀寫器命令集樣例),但功能都基本一致。
      表4讀命令

      若讀磁道數(shù)據(jù)出錯(cuò),則返回DEL(7f)表5寫命令

      讀寫操作狀態(tài)回送命令ESC j表6狀態(tài)碼

      注返回碼最后一位p表示成功,q表示失敗;ESC j命令可跟在讀/寫命令后發(fā)出,若無讀/寫操作,該命令無效。
      熱復(fù)位命令ESC 0一般磁條讀寫器有以下幾個(gè)功能讀2磁道、讀3磁道、讀2-3磁道、寫2磁道、寫3磁道、寫2-3磁道。業(yè)務(wù)上對(duì)磁條的數(shù)據(jù)格式也不超過這個(gè)范圍,因此可以定義邏輯磁條讀寫器的宏指令集與物理功能相對(duì)應(yīng),其宏指令集為{讀2磁道、讀3磁道、讀2-3磁道、寫2磁道、寫3磁道、寫2-3磁道}。同樣地對(duì)密碼小鍵盤,可以定義其宏指令集為{輸入密碼、再輸入密碼}。
      該銀行前端系統(tǒng)為業(yè)務(wù)應(yīng)用程序定義以下業(yè)務(wù)應(yīng)用程序開發(fā)接口接口名稱(邏輯設(shè)備標(biāo)識(shí),宏指令,參數(shù))——返回值表示成功失?。粯I(yè)務(wù)應(yīng)用程序通過該業(yè)務(wù)應(yīng)用程序開發(fā)接口,把邏輯設(shè)備標(biāo)識(shí)、邏輯設(shè)備的某宏指令和宏指令需要的參數(shù)作為該業(yè)務(wù)應(yīng)用程序開發(fā)接口的參數(shù),就可以使用系統(tǒng)配置的實(shí)際物理設(shè)備。
      該銀行應(yīng)用前端系統(tǒng)為外設(shè)驅(qū)動(dòng)程序的編寫提供如前面步驟4所提供的所有接口。終端的驅(qū)動(dòng)程序是根據(jù)實(shí)際的終端的串口,并口或者USB接口等編寫的,實(shí)現(xiàn)步驟4中的相關(guān)函數(shù)接口,用于實(shí)現(xiàn)宏指令功能請(qǐng)求物理外設(shè)驅(qū)動(dòng)程序的編寫也是根據(jù)實(shí)際的設(shè)備編寫。
      上面某廠家密碼小鍵盤硬件指令集如下表所示表4某廠家密碼小鍵盤硬件指令集

      該廠家小鍵盤驅(qū)動(dòng)接口定義如下初始化(終端驅(qū)動(dòng)函數(shù)指針結(jié)構(gòu)體,連接端口,波特率,數(shù)據(jù)位,停止位,奇偶校驗(yàn)標(biāo)志,超時(shí)),其中在初始化中保存終端驅(qū)動(dòng)函數(shù)指針,保存連接端口,保存波特率,保存數(shù)據(jù)位,保存停止位,保存奇偶校驗(yàn)標(biāo)志,保存超時(shí);通信(宏指令,輸入?yún)?shù)緩沖區(qū),輸入?yún)?shù)長(zhǎng)度,輸出參數(shù)緩沖區(qū),輸出參數(shù)數(shù)據(jù)長(zhǎng)度緩沖區(qū)),其中在通信接口中宏指令分別為輸入密碼,再輸入密碼兩條。
      輸入密碼宏指令中具體的物理外設(shè)硬件指令為調(diào)用終端驅(qū)動(dòng)接口中的打開串口函數(shù),傳遞波特率等相應(yīng)參數(shù);調(diào)用終端驅(qū)動(dòng)接口中的寫串口函數(shù),發(fā)送語音一指令(ESC I);調(diào)用終端驅(qū)動(dòng)讀接口中的串口函數(shù),讀密碼小鍵盤的輸入;調(diào)用終端驅(qū)動(dòng)接口中的寫串口函數(shù),發(fā)送關(guān)閉密碼小鍵盤指令(\x88);調(diào)用終端驅(qū)動(dòng)接口中的關(guān)閉串口函數(shù),關(guān)閉串口。
      再輸入密碼宏指令中具體的物理外設(shè)硬件指令為調(diào)用終端驅(qū)動(dòng)接口中的打開串口函數(shù),傳遞波特率等相應(yīng)參數(shù);調(diào)用終端驅(qū)動(dòng)接口中的寫串口函數(shù),發(fā)送語音二指令(ESC E);調(diào)用終端驅(qū)動(dòng)接口中的讀串口函數(shù),讀密碼小鍵盤的輸入;調(diào)用終端驅(qū)動(dòng)接口中的寫串口函數(shù),發(fā)送關(guān)閉密碼小鍵盤指令(\x88);調(diào)用終端驅(qū)動(dòng)接口中的關(guān)閉串口函數(shù),關(guān)閉串口。
      如果出錯(cuò)則返回出錯(cuò)代碼,否則把讀到的數(shù)據(jù)拷貝到輸出參數(shù)緩沖區(qū),把輸出參數(shù)長(zhǎng)度拷貝到輸出參數(shù)數(shù)據(jù)長(zhǎng)度緩沖區(qū)。
      釋放(),釋放資源接口在本例中沒有特別參數(shù),因?yàn)闆]有申請(qǐng)?zhí)貏e的資源,不用作特別的清理工作。
      還另外提供兩個(gè)特殊的驅(qū)動(dòng)接口,獲取掛接外設(shè)驅(qū)動(dòng)版本號(hào)和獲取掛接外設(shè)信息,其中獲取掛接外設(shè)驅(qū)動(dòng)版本號(hào)(版本數(shù)據(jù)緩沖區(qū)),拷貝物理外設(shè)硬件驅(qū)動(dòng)指令版本號(hào)到版本數(shù)據(jù)緩沖區(qū)。
      獲取掛接外設(shè)信息(信息數(shù)據(jù)緩沖區(qū)),拷貝物理外設(shè)硬件信息到信息數(shù)據(jù)緩沖區(qū)。
      分別指定這兩個(gè)掛接外設(shè)密碼小鍵盤的驅(qū)動(dòng)程序?yàn)镻inKeyDrv,磁條讀寫器驅(qū)動(dòng)程序?yàn)镸sfRSDrv。這時(shí),一個(gè)使用擴(kuò)展外設(shè)結(jié)構(gòu)的銀行前端應(yīng)用系統(tǒng)就建立起來了。
      下面介紹它是如何運(yùn)作的。在該系統(tǒng)中,系統(tǒng)有一配置文件配置外設(shè)的情況、邏輯磁條讀寫器的驅(qū)動(dòng)程序和邏輯密碼小鍵盤的驅(qū)動(dòng)程序。應(yīng)用系統(tǒng)根據(jù)配置把這些外設(shè)的驅(qū)動(dòng)程序加載到系統(tǒng)中。如一個(gè)業(yè)務(wù)應(yīng)用程序通過該系統(tǒng)提供的業(yè)務(wù)程序開發(fā)接口,“輸入密碼”宏指令作為參數(shù),就可以使用密碼小鍵盤的輸入密碼功能了。
      如果有另外一個(gè)廠家提供的新型號(hào)密碼小鍵盤設(shè)備,為了在該銀行前端系統(tǒng)中使用,只需要編寫相應(yīng)的密碼小鍵盤設(shè)備驅(qū)動(dòng)程序命名為OPinKeyDrv,在該銀行前端應(yīng)用系統(tǒng)的配置文件中把密碼小鍵盤的驅(qū)動(dòng)修改為新的設(shè)備驅(qū)動(dòng)OPinKeyDrv,銀行前端系統(tǒng)不需要修改,業(yè)務(wù)應(yīng)用程序也不需要作修改,但卻能夠使用另外廠家的新型號(hào)密碼小鍵盤設(shè)備了。如果新型號(hào)的設(shè)備有新的功能,我們只需要定義新功能的宏指令,在驅(qū)動(dòng)程序添加新功能宏指令的實(shí)現(xiàn),在業(yè)務(wù)程序中使用新的宏指令,這樣就可以使用新的外設(shè)功能了,銀行前端應(yīng)用系統(tǒng)完全不需要修改。擴(kuò)展設(shè)備結(jié)構(gòu)體系對(duì)于不同的外設(shè)連接方式的使用更是顯得游刃有余,只需要修改應(yīng)用系統(tǒng)的配置文件的連接類型、連接方式等參數(shù)即可。
      由于業(yè)務(wù)發(fā)展的需要,我們需要在系統(tǒng)中使用存折打印機(jī)。在銀行前端系統(tǒng)中,我們需要定義一個(gè)邏輯存折打印機(jī),并定義它的標(biāo)識(shí)為PRT,相應(yīng)的定義邏輯存折打印機(jī)的宏指令集,并根據(jù)實(shí)際使用的存折打印機(jī)開發(fā)手冊(cè)編寫完成宏指令的功能的物理外設(shè)硬件驅(qū)動(dòng)程序。這樣,就可以在業(yè)務(wù)程序中使用存折打印機(jī)了。而銀行前端應(yīng)用系統(tǒng)并不需要作任何修改,只是在配置文件中增多了一個(gè)存折打印機(jī)的配置而已。
      圖7是該銀行前端應(yīng)用系統(tǒng)物理連接示意圖。銀行前端應(yīng)用系統(tǒng)在UNIX服務(wù)器上運(yùn)行,驅(qū)動(dòng)程序也放在UNIX服務(wù)器并在上面運(yùn)行。
      圖8為圖7應(yīng)用系統(tǒng)在遠(yuǎn)端UNIX服務(wù)器上運(yùn)行的系統(tǒng)結(jié)構(gòu)圖。如圖所示,在應(yīng)用系統(tǒng)中讀取配置文件,在該配置文件中具有圖中終端的配置情況文件,應(yīng)用系統(tǒng)通過外設(shè)驅(qū)動(dòng)開發(fā)接口的終端驅(qū)動(dòng)開發(fā)接口調(diào)用終端驅(qū)動(dòng)程序,業(yè)務(wù)軟件向外設(shè)驅(qū)動(dòng)開發(fā)接口發(fā)出宏指令功能請(qǐng)求,該功能請(qǐng)求中包括邏輯外設(shè)標(biāo)識(shí)和相應(yīng)的參數(shù)信息,外設(shè)驅(qū)動(dòng)開發(fā)接口將宏指令功能請(qǐng)求發(fā)送給某個(gè)相應(yīng)的掛接外設(shè)驅(qū)動(dòng)開發(fā)接口,該掛接外設(shè)驅(qū)動(dòng)開發(fā)接口分析出與所要求使用的邏輯外設(shè),由外設(shè)匹配單元通過配置文件單元查找與邏輯外設(shè)相對(duì)應(yīng)的物理外設(shè)驅(qū)動(dòng),宏指令編譯單元根據(jù)物理外設(shè)和宏指令查找相對(duì)應(yīng)的完成該宏指令功能的物理外設(shè)驅(qū)動(dòng)指令,將該物理外設(shè)驅(qū)動(dòng)指令傳送給終端,終端再根據(jù)物理外設(shè)接口的規(guī)定,按照串口或者并口或者USB接口規(guī)則傳送給物理外設(shè),以完成業(yè)務(wù)軟件的功能請(qǐng)求。
      本發(fā)明的有益效果在于,屏蔽了業(yè)務(wù)應(yīng)用程序使用外設(shè)與具體外設(shè)差異的影響,同時(shí)給應(yīng)用系統(tǒng)的維護(hù)和擴(kuò)展帶來極大的方便,實(shí)現(xiàn)不同廠商同一類型外設(shè)無縫的接入到系統(tǒng)中。標(biāo)準(zhǔn)的外設(shè)操縱宏指令集,統(tǒng)一的驅(qū)動(dòng)程序接口,為外設(shè)的擴(kuò)展,新類型設(shè)備的使用提供了一條方便快捷的接入途徑。
      以上具體實(shí)施方式
      僅用于說明本發(fā)明,而非用于限定本發(fā)明。
      權(quán)利要求
      1.一種擴(kuò)展外設(shè)的方法,其特征在于包括以下步驟應(yīng)用系統(tǒng)通過終端驅(qū)動(dòng)開發(fā)接口加載終端驅(qū)動(dòng)的步驟;業(yè)務(wù)軟件通過掛接外設(shè)驅(qū)動(dòng)開發(fā)接口向邏輯外設(shè)發(fā)出宏指令功能請(qǐng)求的步驟;根據(jù)業(yè)務(wù)軟件的宏指令功能請(qǐng)求,查找確定與所述邏輯外設(shè)相對(duì)應(yīng)的物理外設(shè)驅(qū)動(dòng)的步驟;外設(shè)驅(qū)動(dòng)調(diào)用存儲(chǔ)的完成宏指令的物理外設(shè)指令,以操作物理外設(shè)完成功能請(qǐng)求的步驟。
      2.根據(jù)權(quán)利要求1所述的一種擴(kuò)展外設(shè)的方法,其特征在于,在應(yīng)用系統(tǒng)通過終端驅(qū)動(dòng)開發(fā)接口加載終端驅(qū)動(dòng)的步驟中還包括,應(yīng)用系統(tǒng)通過讀取一配置文件加載終端驅(qū)動(dòng)的步驟。
      3.根據(jù)權(quán)利要求2所述的一種擴(kuò)展外設(shè)的方法,其特征在于,所述的配置文件包括終端名稱和終端驅(qū)動(dòng)程序字段。
      4.根據(jù)權(quán)利要求1所述的一種擴(kuò)展外設(shè)的方法,其特征在于,在掛接外設(shè)驅(qū)動(dòng)開發(fā)接口根據(jù)業(yè)務(wù)軟件的宏指令功能請(qǐng)求,查找確定與所述邏輯外設(shè)相對(duì)應(yīng)的物理外設(shè)驅(qū)動(dòng)的步驟中還包括,根據(jù)一配置文件加載與所述邏輯外設(shè)相對(duì)應(yīng)的物理外設(shè)驅(qū)動(dòng)的步驟。
      5.根據(jù)權(quán)利要求4所述的一種擴(kuò)展外設(shè)的方法,其特征在于,所述配置文件包括接口類型、波特率、數(shù)據(jù)位、停止位、連接口、校驗(yàn)位、超時(shí)、外設(shè)驅(qū)動(dòng)程序字段。
      6.根據(jù)權(quán)利要求1所述的一種擴(kuò)展外設(shè)的方法,其特征在于,在操作物理外設(shè)完成功能請(qǐng)求的步驟之后還包括,釋放終端驅(qū)動(dòng)開發(fā)接口資源和掛接外設(shè)驅(qū)動(dòng)開發(fā)接口資源。
      7.根據(jù)權(quán)利要求1所述的一種擴(kuò)展外設(shè)的方法,其特征在于,應(yīng)用系統(tǒng)和業(yè)務(wù)軟件通過外設(shè)驅(qū)動(dòng)開發(fā)接口與終端驅(qū)動(dòng)開發(fā)接口、掛接外設(shè)驅(qū)動(dòng)開發(fā)接口傳遞數(shù)據(jù)。
      8.一種擴(kuò)展外設(shè)的系統(tǒng),其特征在于,終端驅(qū)動(dòng)開發(fā)接口,應(yīng)用系統(tǒng)通過終端驅(qū)動(dòng)開發(fā)接口加載終端驅(qū)動(dòng);掛接外設(shè)驅(qū)動(dòng)開發(fā)接口,終端驅(qū)動(dòng)開發(fā)接口用于接收業(yè)務(wù)軟件宏指令功能請(qǐng)求數(shù)據(jù),分析出功能請(qǐng)求對(duì)應(yīng)的邏輯外設(shè);外設(shè)匹配單元,與所述掛接外設(shè)驅(qū)動(dòng)開發(fā)接口相連接,用于查找所述邏輯外設(shè)所對(duì)應(yīng)的物理外設(shè)驅(qū)動(dòng);宏指令編譯單元,與所述外設(shè)匹配單元相連接,用于在查找出來的所述對(duì)應(yīng)的物理外設(shè)驅(qū)動(dòng)中查找完成所述宏指令功能請(qǐng)求的物理外設(shè)驅(qū)動(dòng)指令集;物理外設(shè)接口,一端與所述宏指令編譯單元相連接,另一端與物理外設(shè)相連接,接收宏指令編譯單元的物理外設(shè)驅(qū)動(dòng)指令,傳送給物理外設(shè)使之完成業(yè)務(wù)軟件的功能請(qǐng)求。
      9.根據(jù)權(quán)利要求8所述的一種擴(kuò)展外設(shè)的系統(tǒng),其特征在于還包括一配置文件單元,與所述終端驅(qū)動(dòng)開發(fā)接口相連接,所述業(yè)務(wù)軟件的宏指令功能請(qǐng)求通過配置文件單元中存儲(chǔ)的終端配置文件,通過規(guī)定的終端驅(qū)動(dòng)開發(fā)接口進(jìn)行數(shù)據(jù)通信。
      10.根據(jù)權(quán)利要求9所述的一種擴(kuò)展外設(shè)的系統(tǒng),其特征在于,所述的配置文件包括終端名稱和終端驅(qū)動(dòng)程序字段。
      11.根據(jù)權(quán)利要求8所述的一種擴(kuò)展外設(shè)的系統(tǒng),其特征在于,所述配置文件單元與所述外設(shè)匹配單元相連接,所述外設(shè)匹配單元在配置文件單元中查找與所述邏輯外設(shè)對(duì)應(yīng)的物理外設(shè)驅(qū)動(dòng)。
      12.根據(jù)權(quán)利要求11所述的一種擴(kuò)展外設(shè)的系統(tǒng),其特征在于,所述配置文件包括接口類型、波特率、數(shù)據(jù)位、停止位、連接口、校驗(yàn)位、超時(shí)、外設(shè)驅(qū)動(dòng)程序字段。
      13.根據(jù)權(quán)利要求8所述的一種擴(kuò)展外設(shè)的系統(tǒng),其特征在于,所述物理外設(shè)接口包括串行接口,并行接口,USB接口,網(wǎng)絡(luò)接口。
      14.根據(jù)權(quán)利要求8所述的一種擴(kuò)展外設(shè)的系統(tǒng),其特征在于還包括一外設(shè)驅(qū)動(dòng)開發(fā)接口,用于接收應(yīng)用系統(tǒng)和業(yè)務(wù)軟件的數(shù)據(jù)信號(hào),傳送給終端驅(qū)動(dòng)開發(fā)接口和掛接外設(shè)驅(qū)動(dòng)開發(fā)接口。
      全文摘要
      本發(fā)明涉及計(jì)算機(jī)技術(shù),具體的講是一種擴(kuò)展外設(shè)的方法及系統(tǒng)。為了能夠擴(kuò)展終端機(jī)的使用外設(shè)能力,本發(fā)明的方法特征在于,包括以下步驟應(yīng)用系統(tǒng)通過終端驅(qū)動(dòng)開發(fā)接口加載終端驅(qū)動(dòng)的步驟;業(yè)務(wù)軟件通過掛接外設(shè)驅(qū)動(dòng)開發(fā)接口向邏輯外設(shè)發(fā)出宏指令功能請(qǐng)求的步驟;根據(jù)業(yè)務(wù)軟件的宏指令功能請(qǐng)求,查找確定與所述邏輯外設(shè)相對(duì)應(yīng)的物理外設(shè)驅(qū)動(dòng)的步驟;外設(shè)驅(qū)動(dòng)調(diào)用存儲(chǔ)的完成宏指令的物理外設(shè)指令,以操作物理外設(shè)完成功能請(qǐng)求的步驟。本發(fā)明的有益效果在于,標(biāo)準(zhǔn)的外設(shè)操縱宏指令集,統(tǒng)一的驅(qū)動(dòng)程序接口,為外設(shè)的擴(kuò)展,新類型設(shè)備的使用提供了一條方便快捷的接入途徑。
      文檔編號(hào)G06F9/44GK1737779SQ20051010254
      公開日2006年2月22日 申請(qǐng)日期2005年9月8日 優(yōu)先權(quán)日2005年9月8日
      發(fā)明者黎建明, 敖建, 胡銳明, 彭順求 申請(qǐng)人:中國工商銀行
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1