一個(基於xfs協議)身份證掃描儀的理解

項目名稱:吸入式身份證掃描儀(身份證屬於非標準wosa)架構

功能:讀取身份證信息(姓名 性別 民族 出生日期 住址 身份證號碼 簽發機關 有效期限 正面掃描圖 背面掃描圖)異步

開發環境及語言:vs2013 MFC  win8函數

項目總體架構:post

  應用層   API層   SPI層   服務提供層sp線程

  

    服務提供層sp:提供dll 直接驅動硬件設備。日誌

    SPI層:對硬件sp的一次封裝,主要基於wosa協議導出11個函數(嚴格基於協議)。blog

    API層:對SPI層的封裝,同時負責xfs管理器的加載,事件的註冊,設備加鎖等...接口

    應用層:經過調用簡單的接口,從SPI層直接拿到硬件設備讀取的信息。隊列

 

  SPI的詳細描述:進程

    執行流程: 

      1.API加載xfs管理器環境(實際就是3個dll弄到進程,open時給邏輯服務名-》找註冊表-》加載SPI的dll,以後API和SPI就能夠搞事情了)

    

    大致架構:

      硬件接口類 -> 硬件類        PxfsBase -> xxx_xfsBase     xfs管理器   日誌打印類    輔助功能類

      API給命令,傳遞到xfs管理器中,xfs根據接口名稱判斷是同步仍是異步消息。

      若是是同步xfs傳遞給SPI,SPI接到命令,壓入命令隊列,直接返回結果,XFS按照消息標誌攔截該消息,返回結果,能夠看出同步命令是沒有辦法接受消息的。

      若是是異步,xfs傳遞給SPI,SPI接到命令,壓入命令隊列,直接返回結果,XFS接到按兵不動,循環等待,pxfsbase類開啓的任務線程從命令隊列取出消息,

      執行對應的命令,獲得數據封裝好,postMessage給API層。

      (不想寫了,閒了再說)

相關文章
相關標籤/搜索