libID81_SO.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  1. //**********************************************************************************************************************
  2. // 文件名: libID81_SO.h
  3. // 版本 : V1.0
  4. // 描述: 加载动态库头文件
  5. // 函数列表:
  6. //**********************************************************************************************************************
  7. #ifndef _LIBID81_SO_H_
  8. #define _LIBID81_SO_H_
  9. bool load_so(char *cErrorInfo);
  10. /**********************************************************************************************************************
  11. * 证件类型宏定义
  12. **********************************************************************************************************************/
  13. #define IDDIGITALCOPIER_TW 0x4 //台湾通行证
  14. #define IDDIGITALCOPIER_HK_MACAO 0x5 //港澳通行证
  15. /**********************************************************************************************************************
  16. GBK
  17. * 二代证电子信息结构体宏定义
  18. **********************************************************************************************************************/
  19. typedef struct IDInfo
  20. {
  21. char name[72];
  22. char sex[4];
  23. char nation[20];
  24. char birthday[20];
  25. char address[200];
  26. char number[40];
  27. char department[120];
  28. char timeLimit[36];
  29. char Image[256];
  30. }IDInfo ,*LPIDInfo;
  31. #define Null_IDinfo {{0},{0},{0},{0},{0},{0},{0},{0},{0}}
  32. /**********************************************************************************************************************
  33. * 二代证电子信息结构体宏定义
  34. **********************************************************************************************************************/
  35. typedef struct IDInfoEx
  36. {
  37. char name[72];
  38. char sex[4];
  39. char nation[20];
  40. char birthday[20];
  41. char address[200];
  42. char number[40];
  43. char department[120];
  44. char timeLimit[36];
  45. char Image[256];
  46. char FingerData[1024]; //指纹信息数据
  47. int iFingerDataLen;
  48. }IDInfoEx ,*LPIDInfoEx;
  49. #define Null_IDinfoEx {{0},{0},{0},{0},{0},{0},{0},{0},{0},{0}}
  50. /**********************************************************************************************************************
  51. * 外国人居住证电子信息结构体宏定义
  52. **********************************************************************************************************************/
  53. typedef struct IDInfoForeign
  54. {
  55. char NameENG[120];
  56. char Sex[4];
  57. char IDCardNO[30];
  58. char Nation[40];
  59. char NameCHN[120];
  60. char TimeLimitBegin[16];
  61. char TimeLimitEnd[16];
  62. char Born[36];
  63. char IDVersion[8];
  64. char Department[40];
  65. char IDType[4];
  66. char Reserve[12];
  67. char Image[1024];
  68. }IDInfoForeign, *LPIDInfoForeign;
  69. #define Null_IDinfoForeign {{0},{0},{0},{0},{0},{0},{0},{0},{0},{0},{0},{0},{0}}
  70. /**********************************************************************************************************************
  71. * 港澳台通行证电子信息结构体宏定义
  72. **********************************************************************************************************************/
  73. typedef struct IDInfoGAT
  74. {
  75. char name[72];
  76. char sex[4];
  77. char nation[20];
  78. char birthday[20];
  79. char address[200];
  80. char number[40];
  81. char department[120];
  82. char timeLimit[36];
  83. char passport[20];
  84. char issue[6];
  85. char Image[256];
  86. char FingerData[1024];
  87. int iFingerDataLen;
  88. }IDInfoGAT, *LPIDInfoGAT;
  89. #define Null_IDinfoGAT {{0},{0},{0},{0},{0},{0},{0},{0},{0},{0},{0},{0}}
  90. /**********************************************************************************************************************
  91. * 台湾通行证信息结构体宏定义
  92. **********************************************************************************************************************/
  93. typedef struct
  94. {
  95. unsigned posFront[2];
  96. unsigned posRear[2];
  97. char name[32]; //姓名
  98. char sex[4]; //性别
  99. char birthday[20]; //出生日期
  100. char timeLimit[36]; //有效日期
  101. char department[32]; //签发机关
  102. char addr[32]; //签发地点
  103. char number[64]; //证件号码
  104. char changeTime[32]; //换证次数
  105. char idNum[64]; //身份证号码
  106. char no[260]; //序列号
  107. char rev0[32];
  108. char rev1[32];
  109. }TWCardInfo;
  110. #define Null_TWCardInfo {{0}, {0}, {0},{0},{0},{0},{0},{0},{0},{0},{0},{0},{0},{0}}
  111. /**********************************************************************************************************************
  112. * 港澳通行证信息结构体宏定义
  113. **********************************************************************************************************************/
  114. typedef struct
  115. {
  116. unsigned posFront[2];
  117. unsigned posRear[2];
  118. char no[64]; //序号
  119. char name[32]; //姓名
  120. char sex[4]; //性别
  121. char birthday[20]; //出生日期
  122. char timeLimit[36]; //有效日期
  123. char department[32]; //签发机关
  124. char addr[32]; //签发地点
  125. char number[64]; //证件号码
  126. char bar0[128]; //条码0
  127. char bar1[128]; //条码1
  128. char rev0[32];
  129. char rev1[32];
  130. }HKMacaoCardInfo;
  131. #define Null_HKMacaoCardInfo {{0}, {0}, {0},{0},{0},{0},{0},{0},{0},{0},{0},{0},{0},{0}}
  132. /**********************************************************************************************************************
  133. * 设备状态结构体宏定义
  134. **********************************************************************************************************************/
  135. typedef struct
  136. {
  137. int iStatusProcess;
  138. int iStatusCoverOpen;
  139. int iStatusPowerOff;
  140. int iStatusLowVoltage;
  141. int iStatusInputSensorHaveCard;
  142. int iStatusCardJam;
  143. int iStatusBoot;
  144. int iStatusMiddleSensorHaveCard;
  145. int iStatusScanSensorHaveCard;
  146. }DEVSTATUS;
  147. typedef struct CardInfo
  148. {
  149. int StructSize; //结构体长度,匹配版本
  150. unsigned int CardType; //证卡的类型 0:身份证 1:外国人居住证 2:港澳台居住证
  151. unsigned char* CardData; //证卡信息
  152. unsigned int CardDataLen; //证卡信息长度
  153. CardInfo()
  154. {
  155. StructSize = 0;
  156. CardType = 0;
  157. CardData = nullptr;
  158. CardDataLen = 0;
  159. }
  160. } *PCardInfo;
  161. /**********************************************************************************************************************
  162. * 返回值宏定义
  163. **********************************************************************************************************************/
  164. #define IDDIGITALCOPIER_NO_ERROR 0x00 //正常
  165. #define IDDIGITALCOPIER_NO_DEVICE (IDDIGITALCOPIER_NO_ERROR + 0x01) //无设备
  166. #define IDDIGITALCOPIER_PORT_ERROR (IDDIGITALCOPIER_NO_ERROR + 0x02) //端口错误
  167. #define IDDIGITALCOPIER_TABPAR_NONE (IDDIGITALCOPIER_NO_ERROR + 0x03) //参数文件错误
  168. #define IDDIGITALCOPIER_HAVE_NOT_INIT (IDDIGITALCOPIER_NO_ERROR + 0x04) //未初始化
  169. #define IDDIGITALCOPIER_INVALID_ARGUMENT (IDDIGITALCOPIER_NO_ERROR + 0x05) //无效参数
  170. #define IDDIGITALCOPIER_TIMEOUT_ERROR (IDDIGITALCOPIER_NO_ERROR + 0x06) //超时错误
  171. #define IDDIGITALCOPIER_STATUS_COVER_OPENED (IDDIGITALCOPIER_NO_ERROR + 0x07) //上盖打开
  172. #define IDDIGITALCOPIER_STATUS_PASSAGE_JAM (IDDIGITALCOPIER_NO_ERROR + 0x08) //塞卡
  173. #define IDDIGITALCOPIER_OUT_OF_MEMORY (IDDIGITALCOPIER_NO_ERROR + 0x09) //内存溢出
  174. #define IDDIGITALCOPIER_NO_ID_DATA (IDDIGITALCOPIER_NO_ERROR + 0x0A) //没有二代证数据
  175. #define IDDIGITALCOPIER_NO_IMAGE_DATA (IDDIGITALCOPIER_NO_ERROR + 0x0B) //没有图像数据
  176. #define IDDIGITALCOPIER_IMAGE_PROCESS_ERROR (IDDIGITALCOPIER_NO_ERROR + 0x0C) //图像处理错误
  177. #define IDDIGITALCOPIER_IMAGE_JUDGE_DIRECTION_ERROR (IDDIGITALCOPIER_NO_ERROR + 0x0D) //判断图像方向错误
  178. #define IDDIGITALCOPIER_CLOSE_FAILED (IDDIGITALCOPIER_NO_ERROR + 0x0E) //关闭端口失败
  179. #define IDDIGITALCOPIER_IDDATA_PROCESS_ERROR (IDDIGITALCOPIER_NO_ERROR + 0x0F) //身份证电子信息处理错误
  180. #define IDDIGITALCOPIER_SENSORVALIDATE (IDDIGITALCOPIER_NO_ERROR + 0x10) //传感器校验错误
  181. #define IDDIGITALCOPIER_VOLTAGE_LOW (IDDIGITALCOPIER_NO_ERROR + 0x11) //电压低
  182. #define IDDIGITALCOPIER_CIS_CORRECTION_ERROR (IDDIGITALCOPIER_NO_ERROR + 0x12) //校正错误
  183. #define IDDIGITALCOPIER_NO_CARD (IDDIGITALCOPIER_NO_ERROR + 0x13) //无卡
  184. #define IDDIGITALCOPIER_FIRMWARE_ERROR (IDDIGITALCOPIER_NO_ERROR + 0x14) //未知错误
  185. #define IDDIGITALCOPIER_SAVE_IMAGE_ERROR (IDDIGITALCOPIER_NO_ERROR + 0x15) //保存位图错误
  186. #define IDDIGITALCOPIER_POWER_OFF (IDDIGITALCOPIER_NO_ERROR + 0x16) //掉电错误
  187. #define IDDIGITALCOPIER_INPUT_BOOT (IDDIGITALCOPIER_NO_ERROR + 0x17) //BOOT错误
  188. #define IDDIGITALCOPIER_BUTTON_UP (IDDIGITALCOPIER_NO_ERROR + 0x18) //按键抬起
  189. #define IDDIGITALCOPIER_RECOGNISE_FAILED (IDDIGITALCOPIER_NO_ERROR + 0x19) //识别错误
  190. #define IDDIGITALCOPIER_SCAN_ERROR (IDDIGITALCOPIER_NO_ERROR + 0x1A) //扫描错误
  191. #define IDDIGITALCOPIER_FEED_ERROR (IDDIGITALCOPIER_NO_ERROR + 0x1B) //走卡错误
  192. #define IDDIGITALCOPIER_MAX_CODE (IDDIGITALCOPIER_NO_ERROR + 0x1C) //最大错误码
  193. /**********************************************************************************************************************
  194. * 设备名称、ID结构体
  195. **********************************************************************************************************************/
  196. typedef struct ScannerInfoRec
  197. {
  198. unsigned DeviceID;
  199. }ScannerInfoRec;
  200. #define Null_ScannerInfoRec {0}//{0x00},
  201. /**********************************************************************************************************************
  202. * 动态库输出函数
  203. **********************************************************************************************************************/
  204. #ifdef __cplusplus
  205. extern "C" {
  206. #endif
  207. //枚举扫描设备
  208. typedef int (*mEnumScannerDevice)(ScannerInfoRec *ScannerInfo, unsigned *DeviceNumber);
  209. //打开设备
  210. typedef int (*mOpenConnection)(unsigned DeviceID);
  211. //关闭设备
  212. typedef int (*mCloseConnection)(unsigned DeviceID);
  213. //检测是否放入卡
  214. typedef int (*mCheckHaveIdCard)(unsigned DeviceID, int CheckTime);
  215. //检测是否被取走
  216. typedef int (*mTakeOutIdCard)(unsigned DeviceID, int CheckTime);
  217. //启动扫描
  218. typedef int (*mStartScanIdCard)(unsigned DeviceID);
  219. //读取当前图像数据块
  220. typedef int (*mSavePicToMemory)(unsigned DeviceID, char* cFrontImgBuf,char* cRearImgBuf, int* iFrontLen, int* iRearLen);
  221. //保存图像数据块到文件
  222. typedef int (*mSavePicToFile)(unsigned DeviceID, char *cBmpBuf, int iBufLen,char *FileName, int Format);
  223. typedef int (*mSavePicToFileII)(unsigned DeviceID, char *cBmpBuf, int iBufLen, char *FileName, int Format, float zoomScale);
  224. //吞卡
  225. typedef int (*mRetainIdCard)(unsigned DeviceID);
  226. //退卡
  227. typedef int (*mBackIdCard)(unsigned DeviceID);
  228. //出卡并持卡
  229. typedef int (*mBackAndHoldIdCard)(unsigned DeviceID);
  230. //获取二代证信息
  231. typedef int (*mGetID2Info)(unsigned DeviceID, IDInfo *IDCard, char *HeadImageName);
  232. //获取二代证信息
  233. typedef int (*mGetID2InfoEx)(unsigned DeviceID, IDInfoEx *IDCard, char *HeadImageName);
  234. typedef int (*mGetIDInfoForeign)(unsigned DeviceID, IDInfoForeign *IDCard, char *HeadImageName);
  235. typedef int (*mGetIDInfoGAT)(unsigned DeviceID, IDInfoGAT *IDCard, char *HeadImageName);
  236. typedef int (*mGetIDCardType)(unsigned DeviceID,int* iCardType);
  237. typedef int (*mGetAllTypeIdInfo)(unsigned DeviceID,int iCardType,void* idinfo,char* ImageName);
  238. typedef int (*mGetIDInfoRawData)(unsigned DeviceID, char* DataBuffer, int* iCardType);
  239. ////以下这两个接口替代了第3条所有接口
  240. //typedef int (*mGetCardInfo)(unsigned DeviceID, CardInfo* Info);
  241. //typedef int (*mParseCardInfo)(unsigned DeviceID, void *Card);
  242. //获取最近一次的错误码
  243. typedef int (*mGetLastErrorCode)();
  244. //获取最近一次的错误描述
  245. typedef int (*mGetLastErrorStr)(char* errStr);
  246. //获取固件版本信息
  247. typedef int (*mGetFWVersion)(unsigned DeviceID,char *cVersionInfo);
  248. //获取软件版本信息
  249. typedef int (*mGetSWVersion)(char *cVersionInfo);
  250. //获取设备状态
  251. typedef int (*mGetDevStatus)(unsigned DeviceID,DEVSTATUS *DevStatus);
  252. //复位设备
  253. typedef int (*mResetDevice)(unsigned DeviceID);
  254. //软复位
  255. typedef int (*mSoftResetDevice)(unsigned DeviceID,int iMode);
  256. //固件升级
  257. typedef int (*mUpdateOnLine)(unsigned DeviceID, char *FileName);
  258. //CIS校验
  259. typedef int (*mCISCalibrate)(unsigned DeviceID);
  260. //传感器校验
  261. typedef int (*mSensorCalibrate)(unsigned DeviceID);
  262. //设置按键强制退卡使能
  263. typedef int (*mSetButtonEnable)(unsigned DeviceID,int iMode);
  264. //设置自动进卡使能
  265. typedef int (*mSetAutoFeedEnable)(unsigned DeviceID, int iMode);
  266. //设置上电、复位初始化吸卡模式
  267. typedef int (*mSetInitFeedMode)(unsigned DeviceID,int iMode);
  268. //设置二代证芯片图像存储格式
  269. typedef int (*mSetHeadFileFormat)(unsigned DeviceID, int Format);
  270. //通过图像获取通行证信息
  271. typedef int (*mGetID2InfoFromImage)(unsigned DeviceID, char* cFrontImgBuf, int iFrontLen, char* cRearImgBuf, int iRearLen, IDInfo *mIDInfo);
  272. //从图像获取二代证信息
  273. typedef int (*mGetPassportInfoFromImage)(unsigned DeviceID, char* cFrontImgBuf, int iFrontLen, char* cRearImgBuf, int iRearLen,
  274. unsigned* cardStyle, TWCardInfo* TWCard, HKMacaoCardInfo *HKMacaoCard);
  275. //退卡到识别位置
  276. typedef int (*mBackIdCardToRerec)(unsigned DeviceID);
  277. #ifdef __cplusplus
  278. }
  279. #endif
  280. #endif