Chinaunix首页 | 论坛 | 博客
  • 博客访问: 321711
  • 博文数量: 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


未说明



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