est32.H 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453
  1. #ifndef SSSE32_H
  2. #define SSSE32_H
  3. #include <windows.h>
  4. #include <stdio.h>
  5. //状态码
  6. #define IFD_OK 0 //执行成功
  7. #define IFD_EU_TypeError -1 //卡片类型不对
  8. #define IFD_EU_NoExist -2 //无卡
  9. #define IFD_EU_NoPower -3 //有卡未上电
  10. #define IFD_EU_NoResponse -4 //卡片无应答
  11. #define IFD_ConnectError -11 //读卡器连接错
  12. #define IFD_UnConnected -12 //未建立连接(没有执行打开设备函数)
  13. #define IFD_BadCommand -13 //(动态库)不支持该命令
  14. #define IFD_ParameterError -14 //(发给动态库的)命令参数错
  15. #define IFD_CheckSumError -15 //信息校验和出错
  16. #define IFD_OutTime -20 //信息校验和出错
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif
  20. /*############设备操作函数#################*/
  21. long WINAPI EU_Reader_Open(char* dev_Name);
  22. long WINAPI EU_Reader_OpenEx(char* dev_Name, unsigned int VID, unsigned int PID);//
  23. long WINAPI EU_Reader_Close(long ReaderHandle);
  24. long WINAPI EU_PosBeep(long ReaderHandle, unsigned char time);//蜂鸣
  25. long WINAPI EU_Reader_EnterDFU (long ReaderHandle); //进入USB下载程序状态
  26. long WINAPI EU_Reader_LeaveDFU (long ReaderHandle); //离开USB下载程序状态
  27. long WINAPI EU_Reader_Libinfo(char* info);
  28. long WINAPI EU_Reader_ReadEEPROM (long ReaderHandle,int offset,int length,unsigned char *buffer);//从eeprom读取数据
  29. long WINAPI EU_Reader_WriteEEPROM (long ReaderHandle,int offset,int length,unsigned char *buffer);//从eeprom写入数据
  30. long WINAPI EU_Machine_Reset(long ReaderHandle);
  31. void WINAPI EU_Reader_PPS(bool IsEnable);
  32. long WINAPI EU_Reader_GetDeviceVersion(long ReaderHandle,char *VDate);
  33. long WINAPI EU_Reader_GetDeviceSN(long ReaderHandle,char* dev_Ser); //获取设备序列号,从设备获取
  34. long WINAPI EU_Reader_SetDeviceSN(long ReaderHandle,char* dev_Ser); //设置设备序列号
  35. long WINAPI EU_Reader_GetKeybordVersion(long ReaderHandle,char *VDate);
  36. long WINAPI EU_Reader_GetKeybordVersion(long ReaderHandle,char *VDate);
  37. long WINAPI EU_Reader_GetSAMID(long ReaderHandle,char *SAMID);
  38. long WINAPI EU_Reader_SetDeviceReadMode(long ReaderHandle,unsigned char type ); //设置读卡器为主动/被动读卡模式 type==1 主动 type==0被动
  39. long WINAPI EU_Reader_ChangeSlot(long ReaderHandle,unsigned char slot ); //切换卡座
  40. //读取功能表
  41. long WINAPI EU_Reader_ContatctInfo(long ReaderHandle,char *VDate);
  42. long WINAPI EU_Reader_NoContatctInfo(long ReaderHandle,char *VDate);
  43. long WINAPI EU_Reader_GetDeviceCSN(long ReaderHandle,char *data);
  44. long WINAPI EU_DispInfo(long ReaderHandle,unsigned char row,unsigned char list,char *data); //显示信息
  45. long WINAPI EU_DispSound(long ReaderHandle,unsigned char type,unsigned char nMode); //声音提示信息 type(1~14) nMode==0内置键盘语音,nMode==1外置键盘语音
  46. /*
  47. 1、请插卡 2、请刷卡 3、读卡错误 4、请输入密码 5、密码错误 6、操作成功 7、操作超时 8、操作失败 9、请取回卡 10、请重新输入密码 11、请再次输入密码 12、请输入新密码 13、请输入旧密码 14、请确认新密码
  48. */
  49. long WINAPI EU_CtlLight(long ReaderHandle);//清屏,关屏
  50. long WINAPI EU_ChangeLight(long ReaderHandle,unsigned char mode);//改变屏幕亮度 mode=1 调亮 mode=0调暗
  51. long WINAPI EU_GetInputPass(long ReaderHandle, unsigned char ctime, unsigned char *rlen, unsigned char start,unsigned char stop,unsigned char * cpass);//获取密码,带超时 start==0用内置键盘,start==1用外置键盘
  52. long WINAPI EU_GetInputPassID(long ReaderHandle, unsigned char ctime, unsigned char *rlen, unsigned char start,unsigned char stop,unsigned char * cardID,unsigned char * cpass);//获取密码,带超时,带ID
  53. long WINAPI EU_GetTimeOut(long ReaderHandle,unsigned char flag);//获取密码、读磁条超时
  54. long WINAPI EU_PassGet(long ReaderHandle,unsigned char *rlen,unsigned char time,unsigned char start,unsigned char stop,unsigned char * cpass);//获取密码
  55. long WINAPI EU_PassGetID(long ReaderHandle,unsigned char *rlen,unsigned char time,unsigned char start,unsigned char stop,unsigned char * cardID,unsigned char * cpass);//获取密码,带卡号
  56. long WINAPI EU_PassCheck(long ReaderHandle,unsigned char *rlen,unsigned char * cpass); //查下数据是否到了
  57. long WINAPI EU_PassSetDES(long ReaderHandle,unsigned char DES); //设置加密模式3des or des
  58. long WINAPI EU_PassSetDevID(long ReaderHandle,unsigned char *devID);//设置键盘设备ID
  59. long WINAPI EU_PassGetDevID(long ReaderHandle,unsigned char *devID);//获取键盘设备ID
  60. long WINAPI EU_PassSetKeyLen(long ReaderHandle,unsigned char len);//设置密码长度
  61. long WINAPI EU_Reader_Auto(long ReaderHandle,int t_IntType);//
  62. long WINAPI EU_Reader_GetMagCardMode(long ReaderHandle,
  63. unsigned short * Mode,
  64. unsigned short * Track,
  65. unsigned short *fOutType,
  66. unsigned short *fEnter);
  67. /*
  68. 参数:
  69. ReaderHandle:IN 接口句柄;
  70. Mode:OUT Mode=1 通过软件控制读取 Mode=2模拟键盘
  71. Track:OUT 磁条轨道,当为模拟键盘输出时有效
  72. fOutType:OUT 输出模式 0=全部输出,1=去除起始字符,2=只输出数字(卡号)
  73. fEnter:OUT 是否换行 1=换行,0=不换行
  74. 返回值:
  75. 等于 0 表示执行成功;其他值表示失败
  76. */
  77. long WINAPI EU_Reader_SetMagCardMode (long ReaderHandle,
  78. unsigned short Mode,
  79. unsigned short Track,
  80. unsigned short fOutType,
  81. unsigned short fEnter);
  82. /*
  83. 参数:
  84. ReaderHandle:IN 接口句柄;
  85. Mode:IN Mode=1 通过软件控制读取 Mode=2模拟键盘
  86. Track:IN 磁条轨道,当为模拟键盘输出时有效
  87. fOutType:IN 输出模式 0=全部输出,1=去除起始字符,2=只输出数字(卡号)
  88. fEnter:IN 是否换行 1=换行,0=不换行
  89. 返回值:
  90. 等于 0 表示执行成功;其他值表示失败
  91. */
  92. long WINAPI PEU_Reader_ID_N(long ReaderHandle,unsigned char *GetData);
  93. /*############接触CPU操作函数#################*/
  94. long WINAPI EU_Reader_pre_PowerOn(long ReaderHandle,unsigned char EU_Slot_No,unsigned char* Response);//上电 冷 返回数据长度
  95. long WINAPI EU_Reader_hot_PowerOn(long ReaderHandle,unsigned char EU_Slot_No,unsigned char* Response);//上电 热 返回数据长度
  96. long WINAPI EU_Reader_Zpre_PowerOn(long ReaderHandle,unsigned char EU_Slot_No,unsigned char* Response);//住建卡小卡
  97. long WINAPI EU_Reader_PowerOn(long ReaderHandle,unsigned char EU_Slot_No,unsigned char* Response);//上电 返回数据长度 冷+热
  98. long WINAPI EU_Reader_PowerOnHEX(long ReaderHandle,unsigned char EU_Slot_No,unsigned char* Response);//上电 冷+热 返回数据长度
  99. /*
  100. 大卡座EU_Slot_No:0x01
  101. SAM1:0x11
  102. SAM2:0x12
  103. SAM3:0x13
  104. SAM4:0x14
  105. 下同
  106. */
  107. long WINAPI EU_Reader_PowerOff(long ReaderHandle,unsigned char EU_Slot_No);//下电
  108. long WINAPI EU_Reader_GetStatus(long ReaderHandle,unsigned char EU_Slot_No);//获取卡座状态
  109. long WINAPI EU_Reader_Application2(long ReaderHandle,unsigned char EU_Slot_No,
  110. long Lenth_of_Command_APDU,unsigned char* Command_APDU,
  111. unsigned char* Response_APDU); //执行apdu命令 返回数据长度
  112. long WINAPI EU_Reader_Application(long ReaderHandle,unsigned char EU_Slot_No,
  113. long Lenth_of_Command_APDU,unsigned char* Command_APDU,
  114. unsigned char* Response_APDU);
  115. long WINAPI EU_Reader_ApplicationHEX(long ReaderHandle,unsigned char EU_Slot_No,
  116. char* Command_APDU,
  117. char* Response_APDU); //执行apdu命令 返回数据长度
  118. long WINAPI EU_Reader_LongApplication(long ReaderHandle,unsigned char EU_Slot_No,
  119. long Lenth_of_Command_APDU,unsigned char* Command_APDU,
  120. unsigned char* Response_APDU); //执行apdu命令 返回数据长度
  121. //cpuetu=01、02、03、04代表的波特率分别为9600、19200、38400、115200
  122. //unsigned char cpupro ---- 卡的协议类型 =0表示T=0协议 =1表示T=1协议
  123. long WINAPI EU_SetCpupara(long ReaderHandle,unsigned char EU_Slot_No,unsigned char cpupro,unsigned char cpuetu);//设置速率
  124. long WINAPI EU_SetCpuETU(long ReaderHandle,unsigned char EU_Slot_No,unsigned char cpupro,unsigned char cpuetu);//设置速率
  125. /*############ 4442基本操作函数#################*/
  126. long WINAPI EU_Reader_4442_PowerOn(long ReaderHandle,unsigned char *data); //4442卡上电 返回数据长度
  127. long WINAPI EU_Reader_4442_PowerOff(long ReaderHandle); //4442卡下电
  128. long WINAPI EU_Reader_4442_Read(long ReaderHandle,int offset,int len,unsigned char *data); //4442卡读数据
  129. long WINAPI EU_Reader_4442_Write(long ReaderHandle,int offset,int len,unsigned char *data); //4442卡写数据
  130. long WINAPI EU_Reader_4442_Verify(long ReaderHandle,unsigned char *key); //4442卡认证密钥
  131. long WINAPI EU_Reader_4442_Change(long ReaderHandle,unsigned char *newkey); //4442卡修改密钥
  132. long WINAPI EU_Reader_4442_ReadProtect(long ReaderHandle,int offset,int len,unsigned char *data); //4442卡读保护数据
  133. long WINAPI EU_Reader_4442_WriteProtect(long ReaderHandle,int offset,int len,unsigned char *data); //4442卡写保护数据
  134. long WINAPI EU_Reader_4442_ReadCount(long ReaderHandle); //读取4442卡密钥剩余认证次数 返回次数0~3次
  135. /*############ 24cXX基本操作函数#################*/
  136. long WINAPI EU_Reader_24c_PowerOn(long ReaderHandle,unsigned char *data,unsigned char flag); //24cxx卡上电 flag=0为24C01~16 flag=1为24C32~1024
  137. long WINAPI EU_Reader_24c_PowerOff(long ReaderHandle,unsigned char flag); //24cxx卡下电 flag=0为24C01~16 flag=1为24C32~1024
  138. long WINAPI EU_Reader_24c_Read(long ReaderHandle,int offset,int len,unsigned char *data,unsigned char flag); //24cxx卡读数据 flag=0为24C01~16 flag=1为24C32~1024
  139. long WINAPI EU_Reader_24c_Write(long ReaderHandle,int offset,int len,unsigned char *data,unsigned char flag); //24cxx卡写数据 flag=0为24C01~16 flag=1为24C32~1024
  140. /*############ 4428 基本操作函数#################*/
  141. long WINAPI EU_Reader_4428_PowerOn(long ReaderHandle,unsigned char *data); //4428卡上电
  142. long WINAPI EU_Reader_4428_PowerOff(long ReaderHandle); //4428卡下电
  143. long WINAPI EU_Reader_4428_Read(long ReaderHandle,int offset,int len,unsigned char *data); //4428卡读数据
  144. long WINAPI EU_Reader_4428_Write(long ReaderHandle,int offset,int len,unsigned char *data); //4428卡写数据
  145. long WINAPI EU_Reader_4428_Verify(long ReaderHandle,unsigned char *key); //4428卡认证密钥
  146. long WINAPI EU_Reader_4428_Change(long ReaderHandle,unsigned char *newkey); //4428卡修改密钥
  147. long WINAPI EU_Reader_4428_ReadProtect(long ReaderHandle,int offset,int len,unsigned char *data); //4428卡读保护数据
  148. long WINAPI EU_Reader_4428_WriteProtect(long ReaderHandle,int offset,int len,unsigned char *data); //4428卡写保护数据
  149. long WINAPI EU_Reader_4428_ReadCount(long ReaderHandle); //读取4428卡密钥剩余认证次数 返回次数0~8次
  150. /*############非接基本操作函数#################*/
  151. long WINAPI PEU_Reader_SetTypeA(long ReaderHandle);//设置读typeA
  152. long WINAPI PEU_Reader_SetTypeB(long ReaderHandle);//设置读typeB
  153. long WINAPI PEU_Reader_Select(long ReaderHandle,unsigned char cardtype);//选择卡片,41为typea,M1 42为typeb,TypeB卡片需先上电后选卡
  154. long WINAPI PEU_Reader_Request(long ReaderHandle);//typea M1请求卡片
  155. long WINAPI PEU_Reader_RFControl(long ReaderHandle,short flag);//flag=0 关闭天线 flag=1 打开天线
  156. long WINAPI PEU_Reader_Halt(long ReaderHandle);
  157. long WINAPI PEU_Reader_anticoll(long ReaderHandle,unsigned char *uid);//防碰撞 typea M1卡片
  158. /*############ M1卡操作函数#################*/
  159. long WINAPI PEU_Reader_M1Rest(long ReaderHandle,unsigned char *uid);
  160. long WINAPI PEU_Reader_Authentication(long ReaderHandle,unsigned char Mode, unsigned char SecNr);//认证密钥 M1
  161. long WINAPI PEU_Reader_Authentication_Pass(long ReaderHandle,unsigned char Mode, unsigned char SecNr,unsigned char *PassWord);//认证密钥M1 带密钥参数
  162. long WINAPI PEU_Reader_Authentication_PassHEX(long ReaderHandle,unsigned char Mode, unsigned char SecNr,char *PassWord);//认证密钥M1 带密钥参数
  163. long WINAPI PEU_Reader_Readval(long ReaderHandle,unsigned char Addr,unsigned long *value); //读值
  164. long WINAPI PEU_Reader_Initval(long ReaderHandle,unsigned char Addr,unsigned long value);//初始化值
  165. long WINAPI PEU_Reader_Increment(long ReaderHandle,unsigned char Addr,unsigned long value); //增值
  166. long WINAPI PEU_Reader_Decrement(long ReaderHandle,unsigned char Addr,unsigned long value);//减值
  167. long WINAPI PEU_Reader_Read(long ReaderHandle,unsigned char Addr,unsigned char *Data); //读取卡片M1
  168. long WINAPI PEU_Reader_ReadHEX(long ReaderHandle,unsigned char Addr,unsigned char *Data); //读取卡片M1
  169. long WINAPI PEU_Reader_WriteHEX(long ReaderHandle,unsigned char Addr,unsigned char *Data);//写入数据M1
  170. long WINAPI PEU_Reader_Write(long ReaderHandle,unsigned char Addr,unsigned char *Data);//写入数据M1
  171. long WINAPI PEU_Reader_LoadKey(long ReaderHandle,unsigned char Mode,unsigned char SecNr,unsigned char *Key);//装载密钥
  172. /*
  173. SecNr:扇区号
  174. Mode:01 02 03 分别为第一、二、三套密钥KeyA
  175. 04 05 06 分别为第一、二、三套密钥KEYB
  176. */
  177. /*############ ID 卡号 #####################################*/
  178. long WINAPI PEU_Reader_IdCard(long ReaderHandle,unsigned char *Number);
  179. /*############ TypeA CPU 卡操作函数 #################*/
  180. long WINAPI PEU_Reader_PowerOnTypeA(long ReaderHandle,unsigned char* Response);//上电 返回数据长度 失败小于0
  181. long WINAPI PEU_Reader_PowerOnTypeAHEX(long ReaderHandle, char* Response);//上电 返回数据长度 失败小于0
  182. /*############ TypeB CPU 卡操作函数#################*/
  183. long WINAPI PEU_Reader_PowerOnTypeB(long ReaderHandle,unsigned char* Response);//上电 返回数据长度 失败小于0
  184. long WINAPI PEU_Reader_Application(long ReaderHandle,
  185. long Lenth_of_Command_APDU,unsigned char* Command_APDU,
  186. unsigned char* Response_APDU); //type a/b执行apdu命令 返回数据长度 失败小于0
  187. long WINAPI PEU_Reader_ApplicationHEX(long ReaderHandle,
  188. long Lenth_of_Command_APDU, char* Command_APDU,
  189. char* Response_APDU); //type a/b执行apdu命令 返回数据长度 失败小于0
  190. long WINAPI HD_USBkey(long ReaderHandle,unsigned char _Adr, int len);//模拟键盘
  191. /*############ 15693 卡操作函数#################*/
  192. long WINAPI PEU_Reader_Inventory(long ReaderHandle,unsigned char* Response_APDU);//此命令通过防冲突用于得到读卡区域内所有卡片的序列号
  193. long WINAPI PEU_Reader_15693_Read(long ReaderHandle,unsigned char blk_add,unsigned char* Response_APDU);//用来读取1个扇区的值
  194. long WINAPI PEU_Reader_15693_Write(long ReaderHandle,unsigned char blk_add,unsigned char* data,
  195. unsigned char* Response_APDU);//对一个块进行写操作(每次只能写一个块)
  196. long WINAPI PEU_Reader_API(long ReaderHandle,unsigned char* data,unsigned char* Response_APDU);//Data[0] 0代表写API,1代表锁API
  197. long WINAPI PEU_Reader_DSFID(long ReaderHandle,unsigned char* data,unsigned char* Response_APDU);//Data[0] 0代表写DSFID,1代表锁DSFID
  198. long WINAPI PEU_Reader_LockDataBlock(long ReaderHandle,unsigned char blk_add,unsigned char* Response_APDU);//用于锁定块内容。注意:此过程不可逆(不能解锁)块锁定后内容不能在修改。
  199. long WINAPI PEU_Reader_SystemInfor(long ReaderHandle,unsigned char *Response_APDU);//用于得到卡的详细信息
  200. //############################ AT88SC 102 Card #########################################################
  201. long WINAPI EU_Reader_102_PowerOn(long ReaderHandle,unsigned char *data); //102卡上电
  202. long WINAPI EU_Reader_102_PowerOff(long ReaderHandle); //102卡下电
  203. long WINAPI EU_Reader_102_Read(long ReaderHandle,int offset,int len,unsigned char *data); //102卡读数据
  204. long WINAPI EU_Reader_102_Write(long ReaderHandle,int offset,int len,unsigned char *data); //102卡写数据
  205. long WINAPI EU_Reader_102_BrushCard(long ReaderHandle,int offset,int len); //102擦卡
  206. long WINAPI EU_Reader_102_Verify(long ReaderHandle,unsigned char *key); //102用户密码认证
  207. long WINAPI EU_Reader_102_VerifyBrush(long ReaderHandle,int zone,unsigned char *key); //102擦卡密码认证
  208. long WINAPI EU_Reader_102_Change(long ReaderHandle,unsigned char *newkey); //102修改用户密码
  209. long WINAPI EU_Reader_102_ChangeBrushKey(long ReaderHandle,int zone,int len, unsigned char *databuff);//修改擦卡密码 熔断后无效
  210. long WINAPI EU_Reader_102_ClearRead(long ReaderHandle,int zone); //应用区读属性清0   必须用户密码核对正确后方可读卡
  211. long WINAPI EU_Reader_102_ClearWrite(long ReaderHandle,int zone); //应用区写属性清0 个人化后 任何情况下都不可写
  212. long WINAPI EU_Reader_102_Imitate(long ReaderHandle,int mode); //模拟熔断 mode==1为模拟 mode==0为取消模拟
  213. long WINAPI EU_Reader_102_PassCount(long ReaderHandle); //用户密码错误计数器
  214. long WINAPI EU_Reader_102_BrushPassCount(long ReaderHandle); //擦卡密码计时器 个人化后有128次使用,用完即止
  215. long WINAPI EU_Reader_102_Personal(long ReaderHandle); //熔断操作 个人化操作 调用后无法取消
  216. //############################# AT88SC 1604 Card ##############################################################
  217. long WINAPI EU_Reader_1604_PowerOn(long ReaderHandle,unsigned char *data); //1604卡上电
  218. long WINAPI EU_Reader_1604_PowerOff(long ReaderHandle); //1604卡下电
  219. long WINAPI EU_Reader_1604_Read(long ReaderHandle,int offset,int len,unsigned char *data); //1604卡读数据
  220. long WINAPI EU_Reader_1604_Write(long ReaderHandle,int offset,int len,unsigned char *data); //1604卡写数据
  221. long WINAPI EU_Reader_1604_BrushCard(long ReaderHandle,int offset,int len); //1604擦卡
  222. long WINAPI EU_Reader_1604_Verify(long ReaderHandle,int zone,unsigned char *key); //1604密码认证 zone=0为主密码 1为1区密码 2为2区密码 3为3区密码
  223. long WINAPI EU_Reader_1604_VerifyBrush(long ReaderHandle,int zone,unsigned char *key); //1604擦卡密码认证
  224. long WINAPI EU_Reader_1604_Change(long ReaderHandle,int zone,unsigned char *newkey); //1604修改密码
  225. long WINAPI EU_Reader_1604_ChangeBrushKey(long ReaderHandle,int zone,unsigned char *databuff);//修改擦卡密码 熔断后无效
  226. long WINAPI EU_Reader_1604_ClearRead(long ReaderHandle,int zone); //应用区读属性清0   必须用户密码核对正确后方可读卡
  227. long WINAPI EU_Reader_1604_ClearWrite(long ReaderHandle,int zone); //应用区写属性清0 个人化后 任何情况下都不可写
  228. long WINAPI EU_Reader_1604_Imitate(long ReaderHandle,int mode); //模拟熔断 mode==1为模拟 mode==0为取消模拟
  229. long WINAPI EU_Reader_1604_PassCount(long ReaderHandle,int zone); //密码错误计数器
  230. long WINAPI EU_Reader_1604_BrushPassCount(long ReaderHandle,int zone); //擦卡密码错误计时器 共8次
  231. long WINAPI EU_Reader_1604_Personal(long ReaderHandle); //熔断操作 个人化操作 调用后无法取消
  232. //############################### 闪存 Flash ##########################################################
  233. long WINAPI EU_Reader_ReadFlash(long ReaderHandle,int offset,int len,unsigned char *data);
  234. long WINAPI EU_Reader_WriteFlash(long ReaderHandle,int offset,int len,unsigned char *data);
  235. //############################### 读身份证 ############################################################
  236. int rgb2bmp(char *rgb_buffer,int nWidth,int nHeight,FILE*fp1);
  237. long WINAPI PEU_Reader_ID_Request(long ReaderHandle);//身份证寻卡
  238. long WINAPI PEU_Reader_ID_Select(long ReaderHandle);//身份证选卡
  239. long WINAPI PEU_Reader_ReadIDCard(long ReaderHandle, char * pErrMsg);
  240. long WINAPI PEU_Reader_ReadIDCardFp(long ReaderHandle, char * pErrMsg);
  241. long WINAPI PEU_Reader_ID_Read(long ReaderHandle,unsigned char* Response);//身份证读卡
  242. long WINAPI PEU_Reader_ID_Read_Fp(long ReaderHandle,unsigned char *data);/*读取身份证 添加读取指纹信息*/
  243. long WINAPI PEU_Reader_ReadIDMsg(long ReaderHandle, const char* pBmpFile, char *pName, char *pSex, char *pNation, char *pBirth, char *pAddress, char *pCertNo, char *pDepartment , char *pEffectData, char *pExpire,char * pErrMsg);
  244. long WINAPI PEU_Reader_ReadIDMsg_FP(long ReaderHandle, const char* pBmpFile, unsigned char* FpData, char *pName, char *pSex, char *pNation, char *pBirth, char *pAddress, char *pCertNo, char *pDepartment , char *pEffectData, char *pExpire,char * pErrMsg);
  245. long WINAPI PEU_Reader_ReadIDPhotoInfo(long ReaderHandle, char* pBase64FileData, char *pName, char *pSex, char *pNation, char *pBirth, char *pAddress, char *pCertNo, char *pDepartment , char *pEffectData, char *pExpire,char * pErrMsg);
  246. //如果pBmpFileData==NULL,则不生成照片,如需生成照片,这里输出照片数据BASE64编码信息,需分配6025空间
  247. long WINAPI PEU_Reader_ReadIDPhotoInfo_Fp(long ReaderHandle, char* pBmpFileData, unsigned char* pFpData, char *pName, char *pSex, char *pNation, char *pBirth, char *pAddress, char *pCertNo, char *pDepartment , char *pEffectData, char *pExpire,char * pErrMsg);
  248. long WINAPI PEU_Reader_ID_ReadUID(long ReaderHandle,unsigned char* UID);//读身份证ID
  249. long WINAPI PEU_Reader_ID_ReadMsgEx(long ReaderHandle, bool iType, char* bmpFilePath, OUT char* pBaseInfo, OUT char* pbmpPhotoInfo, char* pbase64PhotoInfo, OUT unsigned char* pFPinfo, unsigned char* wlt, char * pErrMsg);
  250. long WINAPI PEU_Reader_ReadIDInfo(long ReaderHandle, char* pBmpFile,char *pName, char *pSex, char *pNation, char *pBirth, char *pAddress, char *pCertNo, char *pDepartment , char *pEffectData, char *pExpire,char * pErrMsg);
  251. long WINAPI PEU_Reader_ReadIDInfo_Fp(long ReaderHandle, char* pBmpFile, unsigned char* pFpData, char *pName, char *pSex, char *pNation, char *pBirth, char *pAddress, char *pCertNo, char *pDepartment , char *pEffectData, char *pExpire,char * pErrMsg);
  252. //bool ZP_decode( unsigned char* tupian, const char* pFilePath, char* pBmpFileData, char* base64Data, char* pErrMsg);
  253. long WINAPI PEU_Reader_ID_GetIDInfo(int type, char * pOutputInfo);
  254. /*
  255. 获取单条身份证信息 char * pOutputInfo
  256. */
  257. int WINAPI GetName(char* pName);
  258. int WINAPI GetSex(char* pSex);
  259. int WINAPI GetNation(char* pNation);
  260. int WINAPI GetBirth(char* pBirth);
  261. int WINAPI GetAddress(char* pAddress);
  262. int WINAPI GetCertNo(char* pCertNo);
  263. int WINAPI GetDepartemt(char* pDepartemt);
  264. int WINAPI GetEffectDate(char* pEffectDate);
  265. int WINAPI GetExpireDate(char* pExpireDate);
  266. int WINAPI GetTXZHM(char* pTXZHM);
  267. int WINAPI GetTXZQFCS(char* pTXZQFCS);
  268. int WINAPI GetB64FileData(char* pB64FileData);
  269. int WINAPI GetBmpFileData(char* pBmpFileData);
  270. int WINAPI GetBmpFile(char* pBmpfilepath);
  271. int WINAPI IsFingerExist();
  272. int WINAPI GetFingerprint(unsigned char* fpInfo);
  273. int WINAPI GetCardType();
  274. int WINAPI GetEnName(char* pEnName);
  275. int WINAPI GetNationalityCode(char* pNationalityCode);
  276. int WINAPI GetCardVersion(char* pCardVersion);
  277. int WINAPI GetAuthorCode(char* pAuthorCode);
  278. int WINAPI GetCardTypeFlag(char* pCardTypeFlag);
  279. //#################################### 歪果仁身份证 ########################################################
  280. long WINAPI PEU_Reader_ID_ReadWGR(long ReaderHandle, const char* pBmpFile, char *pName, char *pSex, char *pNation, char *pBirth, char *pAddress, char *pCertNo, char *pDepartment , char *pEffectData, char *pExpire,char * pErrMsg);
  281. long WINAPI PEU_Reader_SICARD(long ReaderHandle, char* SBKH, char *XM, char *XB, char *MZ, char *CSRQ, char *SHBZHM, char *FKRQ, char *KYXQ,char* ErrMsg);
  282. //#####################################################################################################
  283. /*加密机&sam卡*/
  284. long WINAPI iReadCardBas_SAM(long ReaderHandle,int iType, char* pOutInfo);
  285. long WINAPI iReadCardBas_HSM_Step1(long ReaderHandle, int iType, char* pOutInfo);
  286. long WINAPI iReadCardBas_HSM_Step2(long ReaderHandle, char *pKey, char* pOutInfo);
  287. long WINAPI Rcard(long ReaderHandle,unsigned char ctime,int track,unsigned char *rlen,unsigned char *getdata);//读磁条卡
  288. long WINAPI PEU_Reader_CardInfo(long ReaderHandle,
  289. unsigned char * EUardSN ,
  290. unsigned char * EUardIndate,
  291. unsigned char *MsgInfo,
  292. unsigned char * MsgInfoLen,
  293. int t_IntMode) ;
  294. /**
  295. 参数:
  296. ReaderHandle: [IN] 读卡器句柄,由EU_Reader_Open 函数获得。
  297. EUardSN: [OUT] 卡序列号,2字节
  298. EUardIndate: [OUT] 卡有效期,6字节
  299. MsgInfo: [OUT] 二磁道数据
  300. MsgInfoLen: [OUT] 返回的二磁道数据长度
  301. t_IntMode: [IN] 读卡方式:0x01 表示接触式, 0x02 表示非接触式
  302. 返回值;返回0成功,其它失败
  303. */
  304. long WINAPI HexToStr(unsigned char *Src,int len,unsigned char *Des );
  305. long WINAPI StrToHex(unsigned char *Src, int len,unsigned char *Des);
  306. #ifdef __cplusplus
  307. }
  308. #endif
  309. #endif