Chinaunix首页 | 论坛 | 博客
  • 博客访问: 324674
  • 博文数量: 17
  • 博客积分: 633
  • 博客等级: 中士
  • 技术积分: 279
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-10 20:38
个人简介

网吧系统网络等维护。

文章存档

2015年(2)

2013年(5)

2012年(10)

我的朋友

分类: Windows平台

2013-01-20 18:08:23


一、概述




    本手册是操作身份证阅读器应用函数的定义格式、调用方法和返回值的说明。在使用前,请确认授权文件termb.lic是否在你的PC机C:\根目录下。

二、定义

应用函数开发包含下列文件:

termb.h     API函数原型定义

termb.lib    API函数的VC开发包

termb.dll    API函数的动态联接库

sdtapi.dll  termb.dll需要的后台库(和termb.dll一起放在当前目录或系统目录下)

WltRS.dll     termb.dll需要的后台库(和termb.dll一起放在当前目录或系统目录下)

适用操作系统:

       Windows NT: 需要NT 3.1版或以后版本

    Windows:    需要 Windows 98、Windows 2000或以后版本

适用开发语言:

    Visual C++   5.0 及以后版本

    Visual Basic 5.0 及以后版本

    DEPHI        3.0 及以后版本

    PowerBuilder 6.0 及以后版本

三、函数列表

    int InitComm(int Port)                           初始化串口;

int InitCommExt()                                    初始化串口(扩展);

int CloseComm()                                  关闭串口;

int Authenticate()                              卡认证;

int Read_Content(int Active)                      读卡操作,信息文件存储在应用程序当前目录下;

int Read_Content_Path(char* cPath,int Active)     读卡操作,信息文件存储在指定目录下。

int GetSAMID (char * cSAMID)                      获取SAM编号

四、函数调用流程

五、函数说明

5.1 初始化串口

原    型:int InitComm (int Port)

说    明:本函数用于计算机的串口初始化。

参    数:Port  设置串口



值


意义


值


意义


1


串口1


1001


USB1


2


串口2


1002


USB2


3


串口3


1003


USB3


4


串口4


1004


USB4


注意:使用ICR-300系列产品进行二次开发时,固定为串口2。

返 回 值:



值


意义


1


正确


其它


错误


示   例:

                     #include

              int main()

                     {

                            int li_ret=0;

              int li_Port=1;

li_ret=InitComm(li_Port);

                     return li_ret;

              }

 

5.2 初始化端口(扩展)

原    型:int InitCommExt()

说    明:本函数是InitComm接口函数的扩展接口,本函数具有自动搜索端口的功能,该函数会自动在串行口1-4间和USB接口1001-1004(十进制)之间进行搜索,搜索成功则返回端口号,否则返回0。

 

参    数:无

返 回 值:返回端口号



值


意义


值


意义


1


串口1


1001


USB1


2


串口2


1002


USB2


3


串口3


1003


USB3


4


串口4


1004


USB4


0


失败


 


 


 

示   例:

                     #include

              int main()

                     {

                            int li_ret=0;

              int li_Port=1;

li_ret=InitComm();

                     return li_ret;

              }

 

5.3 关闭串口

原    型:int CloseComm(void)

说    明:本函数用于关闭计算机已经打开的端口。

参    数:无

返 回 值:



值


意义


1


正确


其它


错误


示   例:

#include

      int main()

      {

             int li_ret=0;

      li_ret= CloseComm();

             return li_ret;

             }

 

5.4 卡认证

原    型:int Authenticate (void)

说    明:本函数用于读卡器和卡片之间的合法身份确认。

参    数:无

返 回 值:


值


意义


说明


1


正确


卡片正确放置时


其它


错误


未放卡或卡片放置不正确时


注意:若卡片放置后发生认证错误时,应移走卡片重新放置。

示   例:

#include

      int main()

      {

             int li_ret=0;

             li_ret= authenticate ()

             return li_ret;

      }

注意:若采用查询方式自动判断卡片是否放置,则间隔时间建议大于300ms。

 

5.5读卡操作

a)            原    型:int Read_Content(int Active);

说    明:本函数用于通过读卡器从非接触身份证卡中读取相应信息,信息存在当前目录下。

参    数:Active   读取信息类型



Active值


意义


说明


1


读基本信息


形成文字信息文件WZ.TXT、相片文件XP.WLT和ZP.BMP


2


只读文字信息


形成文字信息文件WZ.TXT和相片文件XP.WLT


3


读最新住址信息


形成最新住址文件NEWADD.TXT


返 回 值:



值


意义


1


正确


0


读卡错误


2


没有最新住址信息


-1


相片解码错误


-2


wlt文件后缀错误


-3


wlt文件打开错误


-4


wlt文件格式错误


-5


软件未授权


-11


无效参数


示   例:

              #include

       int main()

              {

                     int li_ret=0;

       int li_Port=1;

                 li_ret=InitComm(li_Port);

                     li_ret= authenticate ();

              li_ret=Read_Content(1);

              li_ret= CloseComm();

       return li_ret;

              }

 

b)            原    型:int Read_Content_Path(char* cPath, int Active);

说    明:本函数用于通过读卡器从非接触身份证卡中读取相应信息,信息存储在由cPath参数指定的路径下。

参    数: cPath      信息存储路径,路径长度不能大于240

Active   读取信息类型



Active值


意义


说明


1


读基本信息


形成文字信息文件WZ.TXT、相片文件XP.WLT和ZP.BMP


2


只读文字信息


形成文字信息文件WZ.TXT和相片文件XP.WLT


3


读最新住址信息


形成最新住址文件NEWADD.TXT


返 回 值:



值


意义


1


正确


0


读卡错误


2


没有最新住址信息


-1


相片解码错误


-2


wlt文件后缀错误


-3


wlt文件打开错误


-4


wlt文件格式错误


-5


软件未授权


-11


无效参数


-12


路径太长


示   例:

              #include

       int main()

              {

                     int li_ret=0;

       int li_Port=1;

char* cPath="c:\\";

              li_ret=InitComm(li_Port);

                     li_ret= authenticate ();

              li_ret=Read_Content_Path(cPath,1);

              li_ret= CloseComm();

       return li_ret;

              }

5.6 获取SAM编号

原    型:int GetSAMID (char* cSAMID)

说    明:本函数用于读取SAM模块的编号。

参    数:字符串指针,指向读到的SAM编号

返 回 值:


值


意义


1


正确


其它


错误


 

注意:

1、  读完基本信息后,若需要立即读取最新住址信息,在未移走卡片的情况下可以不用卡认证;

2、  单独读取最新住址信息,需要先进行卡认证;

3、若卡片放置后发生读卡错误时,应移走卡片重新放置。

 

文字信息采用GB 13000的UCS-2进行存储,各项目分配如下:


项目


长度(字节)


说明


姓名


30


汉字


性别


2


代码


民族


4


代码


出生


16


年月日:YYYYMMDD


住址


70


汉字和数字


公民身份号码


36


数字


签发机关


30


汉字


有效期起始日期


16


年月日:YYYYMMDD


有效期截止日期


16


年月日:YYYYMMDD

有效期为长期时存储“长期”


最新住址


70


汉字和数字


 

民族代码对照表


01


汉


15


土家


29


柯尔克孜


43


乌孜别克


02


蒙古


16


哈尼


30


土


44


俄罗斯


03


回


17


哈萨克


31


达斡尔


45


鄂温克


04


藏


18


傣


32


仫佬


46


德昂


05


维吾尔


19


黎


33


羌


47


保安


06


苗


20


傈僳


34


布朗


48


裕固


07


彝


21


佤


35


撒拉


49


京


08


壮


22


畲


36


毛南


50


塔塔尔


09


布依


23


高山


37


仡佬


51


独龙


10


朝鲜


24


拉祜


38


锡伯


52


鄂伦春


11


满


25


水


39


阿昌


53


赫哲


12


侗


26


东乡


40


普米


54


门巴


13


瑶


27


纳西


41


塔吉克


55


珞巴


14


白


28


景颇


42


怒


56


基诺


 

性别代码对照表


0


未知


2


女


1


男


9


未说明



阅读(8096) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~