一个(基于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层。

      (不想写了,闲了再说)

相关文章
相关标签/搜索