libID81_SO.cpp 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  1. #include "libID81_SO.h"
  2. #include "unistd.h"
  3. #include "stdio.h"
  4. #include "string.h"
  5. #include "dlfcn.h"
  6. #include "stdlib.h"
  7. #include <string>
  8. void *hlibID81 = NULL;
  9. mEnumScannerDevice EnumScannerDevice = NULL;
  10. mOpenConnection OpenConnection = NULL;
  11. mCloseConnection CloseConnection = NULL;
  12. mCheckHaveIdCard CheckHaveIdCard = NULL;
  13. mTakeOutIdCard TakeOutIdCard = NULL;
  14. mStartScanIdCard StartScanIdCard = NULL;
  15. mSavePicToMemory SavePicToMemory = NULL;
  16. mSavePicToFile SavePicToFile = NULL;
  17. mSavePicToFileII SavePicToFileII = NULL;
  18. mRetainIdCard RetainIdCard = NULL;
  19. mBackIdCard BackIdCard = NULL;
  20. mBackAndHoldIdCard BackAndHoldIdCard = NULL;
  21. mGetID2Info GetID2Info = NULL;
  22. mGetID2InfoEx GetID2InfoEx = NULL;
  23. mGetLastErrorCode GetLastErrorCode = NULL;
  24. mGetLastErrorStr GetLastErrorStr = NULL;
  25. mGetFWVersion GetFWVersion = NULL;
  26. mGetSWVersion GetSWVersion = NULL;
  27. mGetDevStatus GetDevStatus = NULL;
  28. mResetDevice ResetDevice = NULL;
  29. mSoftResetDevice SoftResetDevice = NULL;
  30. mUpdateOnLine UpdateOnLine = NULL;
  31. mCISCalibrate CISCalibrate = NULL;
  32. mSensorCalibrate SensorCalibrate = NULL;
  33. mSetButtonEnable SetButtonEnable = NULL;
  34. mSetAutoFeedEnable SetAutoFeedEnable = NULL;
  35. mSetInitFeedMode SetInitFeedMode = NULL;
  36. mSetHeadFileFormat SetHeadFileFormat = NULL;
  37. mGetID2InfoFromImage GetID2InfoFromImage = NULL;
  38. mGetPassportInfoFromImage GetPassportInfoFromImage = NULL;
  39. mBackIdCardToRerec BackIdCardToRerec = NULL;
  40. mGetIDInfoForeign GetIDInfoForeign = NULL;
  41. mGetIDInfoGAT GetIDInfoGAT = NULL;
  42. mGetIDCardType GetIDCardType = NULL;
  43. mGetAllTypeIdInfo GetAllTypeIdInfo = NULL;
  44. mSetLog SetLog = NULL;
  45. bool load_so(char *cErrorInfo)
  46. {
  47. Dl_info path_info;
  48. dladdr("load_so",&path_info);
  49. char str_FilePath[256]{0};
  50. memcpy(str_FilePath,path_info.dli_fname,strlen(path_info.dli_fname));
  51. printf("first_str_FilePath=%s\n",str_FilePath);
  52. char *pLastSlath=strrchr(str_FilePath,'/');
  53. *pLastSlath=0;
  54. char *a="/keba/libBS-ID81M.keba.so.2.0.3";
  55. strncat(str_FilePath,a,strlen(a));
  56. printf("Second_str_FilePath=%s\n",str_FilePath);
  57. hlibID81 = dlopen(str_FilePath, RTLD_LAZY);
  58. if(hlibID81 == NULL)
  59. {
  60. sprintf(cErrorInfo, "load .so failed.");
  61. return false;
  62. }
  63. EnumScannerDevice = (mEnumScannerDevice)dlsym(hlibID81, "EnumScannerDevice");
  64. if(!EnumScannerDevice)
  65. {
  66. sprintf(cErrorInfo, "load'EnumScannerDevice()'failed!");
  67. return false;
  68. }
  69. OpenConnection = (mOpenConnection)dlsym(hlibID81, "OpenConnection");
  70. if(!OpenConnection)
  71. {
  72. sprintf(cErrorInfo, "load'OpenConnection()'failed!");
  73. return false;
  74. }
  75. CloseConnection = (mCloseConnection)dlsym(hlibID81, "CloseConnection");
  76. if(!CloseConnection)
  77. {
  78. sprintf(cErrorInfo, "load'CloseConnection()'failed!");
  79. return false;
  80. }
  81. CheckHaveIdCard = (mCheckHaveIdCard)dlsym(hlibID81, "CheckHaveIdCard");
  82. if(!CheckHaveIdCard)
  83. {
  84. sprintf(cErrorInfo, "load'CheckHaveIdCard()'failed!");
  85. return false;
  86. }
  87. TakeOutIdCard = (mTakeOutIdCard)dlsym(hlibID81, "TakeOutIdCard");
  88. if(!TakeOutIdCard)
  89. {
  90. sprintf(cErrorInfo, "load'TakeOutIdCard()'failed!");
  91. return false;
  92. }
  93. StartScanIdCard = (mStartScanIdCard)dlsym(hlibID81, "StartScanIdCard");
  94. if(!StartScanIdCard)
  95. {
  96. sprintf(cErrorInfo, "load'StartScanIdCard()'failed!");
  97. return false;
  98. }
  99. SavePicToMemory = (mSavePicToMemory)dlsym(hlibID81, "SavePicToMemory");
  100. if(!SavePicToMemory)
  101. {
  102. sprintf(cErrorInfo, "load'SavePicToMemory()'failed!");
  103. return false;
  104. }
  105. SavePicToFile = (mSavePicToFile)dlsym(hlibID81, "SavePicToFile");
  106. if(!SavePicToFile)
  107. {
  108. sprintf(cErrorInfo, "load'SavePicToFile()'failed!");
  109. return false;
  110. }
  111. SavePicToFileII = (mSavePicToFileII)dlsym(hlibID81, "SavePicToFileII");
  112. if(!SavePicToFileII)
  113. {
  114. sprintf(cErrorInfo, "load'SavePicToFileII()'failed!");
  115. return false;
  116. }
  117. RetainIdCard = (mRetainIdCard)dlsym(hlibID81, "RetainIdCard");
  118. if(!RetainIdCard)
  119. {
  120. sprintf(cErrorInfo, "load'RetainIdCard()'failed!");
  121. return false;
  122. }
  123. BackIdCard = (mBackIdCard)dlsym(hlibID81, "BackIdCard");
  124. if(!BackIdCard)
  125. {
  126. sprintf(cErrorInfo, "load'BackIdCard()'failed!");
  127. return false;
  128. }
  129. BackAndHoldIdCard = (mBackAndHoldIdCard)dlsym(hlibID81, "BackAndHoldIdCard");
  130. if(!BackAndHoldIdCard)
  131. {
  132. sprintf(cErrorInfo, "load'BackAndHoldIdCard()'failed!");
  133. return false;
  134. }
  135. GetID2Info = (mGetID2Info)dlsym(hlibID81, "GetID2Info");
  136. if(!GetID2Info)
  137. {
  138. sprintf(cErrorInfo, "load'GetIDInfo()'failed!");
  139. return false;
  140. }
  141. GetID2InfoEx = (mGetID2InfoEx)dlsym(hlibID81, "GetID2InfoEx");
  142. if(!GetID2InfoEx)
  143. {
  144. sprintf(cErrorInfo, "load'GetIDInfoEx()'failed!");
  145. return false;
  146. }
  147. GetLastErrorCode = (mGetLastErrorCode)dlsym(hlibID81, "GetLastErrorCode");
  148. if(!GetLastErrorCode)
  149. {
  150. sprintf(cErrorInfo, "load'GetLastErrorCode()'failed!");
  151. return false;
  152. }
  153. GetLastErrorStr = (mGetLastErrorStr)dlsym(hlibID81, "GetLastErrorStr");
  154. if(!GetLastErrorStr)
  155. {
  156. sprintf(cErrorInfo, "load'GetLastErrorStr()'failed!");
  157. return false;
  158. }
  159. GetFWVersion = (mGetFWVersion)dlsym(hlibID81,"GetFWVersion");
  160. if(!GetFWVersion)
  161. {
  162. sprintf(cErrorInfo, "load'GetFWVersion()'failed!");
  163. return false;
  164. }
  165. GetSWVersion = (mGetSWVersion)dlsym(hlibID81,"GetSWVersion");
  166. if(!GetSWVersion)
  167. {
  168. sprintf(cErrorInfo, "load'GetSWVersion()'failed!");
  169. return false;
  170. }
  171. GetDevStatus = (mGetDevStatus)dlsym(hlibID81,"GetDevStatus");
  172. if(!GetDevStatus)
  173. {
  174. sprintf(cErrorInfo, "load'GetDevStatus()'failed!");
  175. return false;
  176. }
  177. ResetDevice = (mResetDevice)dlsym(hlibID81,"ResetDevice");
  178. if(!ResetDevice)
  179. {
  180. sprintf(cErrorInfo, "load'ResetDevice()'failed!");
  181. return false;
  182. }
  183. SoftResetDevice = (mSoftResetDevice)dlsym(hlibID81,"SoftResetDevice");
  184. if(!SoftResetDevice)
  185. {
  186. sprintf(cErrorInfo, "load'SoftResetDevice()'failed!");
  187. return false;
  188. }
  189. UpdateOnLine = (mUpdateOnLine)dlsym(hlibID81,"UpdateOnLine");
  190. if(!UpdateOnLine)
  191. {
  192. sprintf(cErrorInfo, "load'UpdateOnLine()'failed!");
  193. return false;
  194. }
  195. CISCalibrate = (mCISCalibrate)dlsym(hlibID81, "CISCalibrate");
  196. if(!CISCalibrate)
  197. {
  198. sprintf(cErrorInfo, "load'CISCalibrate()'failed!");
  199. return false;
  200. }
  201. SensorCalibrate = (mSensorCalibrate)dlsym(hlibID81, "SensorCalibrate");
  202. if(!SensorCalibrate)
  203. {
  204. sprintf(cErrorInfo, "load'SensorCalibrate()'failed!");
  205. return false;
  206. }
  207. SetButtonEnable = (mSetButtonEnable)dlsym(hlibID81, "SetButtonEnable");
  208. if(!SetButtonEnable)
  209. {
  210. sprintf(cErrorInfo, "load'SetButtonEnable()'failed!");
  211. return false;
  212. }
  213. SetAutoFeedEnable = (mSetAutoFeedEnable)dlsym(hlibID81, "SetAutoFeedEnable");
  214. if(!SetAutoFeedEnable)
  215. {
  216. sprintf(cErrorInfo, "load'SetAutoFeedEnable()'failed!");
  217. return false;
  218. }
  219. SetInitFeedMode = (mSetInitFeedMode)dlsym(hlibID81, "SetInitFeedMode");
  220. if(!SetInitFeedMode)
  221. {
  222. sprintf(cErrorInfo, "load'SetInitFeedMode()'failed!");
  223. return false;
  224. }
  225. SetHeadFileFormat = (mSetHeadFileFormat)dlsym(hlibID81, "SetHeadFileFormat");
  226. if(!SetHeadFileFormat)
  227. {
  228. sprintf(cErrorInfo, "load'SetHeadFileFormat()'failed!");
  229. return false;
  230. }
  231. GetID2InfoFromImage = (mGetID2InfoFromImage)dlsym(hlibID81, "GetID2InfoFromImage");
  232. if(!GetID2InfoFromImage)
  233. {
  234. sprintf(cErrorInfo, "load'GetID2InfoFromImage()'failed!");
  235. return false;
  236. }
  237. GetPassportInfoFromImage = (mGetPassportInfoFromImage)dlsym(hlibID81, "GetPassportInfoFromImage");
  238. if(!GetPassportInfoFromImage)
  239. {
  240. sprintf(cErrorInfo, "load'GetPassportInfoFromImage()'failed!");
  241. return false;
  242. }
  243. BackIdCardToRerec = (mBackIdCardToRerec)dlsym(hlibID81, "BackIdCardToRerec");
  244. if(!BackIdCardToRerec)
  245. {
  246. sprintf(cErrorInfo, "load'BackIdCardToRerec()'failed!");
  247. return false;
  248. }
  249. GetIDInfoForeign = (mGetIDInfoForeign)dlsym(hlibID81, "GetIDInfoForeign");
  250. if(!GetIDInfoForeign)
  251. {
  252. sprintf(cErrorInfo, "load'GetIDInfoForeign()'failed!");
  253. return false;
  254. }
  255. GetIDInfoGAT = (mGetIDInfoGAT)dlsym(hlibID81, "GetIDInfoGAT");
  256. if(!GetIDInfoGAT)
  257. {
  258. sprintf(cErrorInfo, "load'GetIDInfoGAT()'failed!");
  259. return false;
  260. }
  261. GetIDCardType = (mGetIDCardType)dlsym(hlibID81, "GetIDCardType");
  262. if(!GetIDCardType)
  263. {
  264. sprintf(cErrorInfo, "load'GetIDCardType()'failed!");
  265. return false;
  266. }
  267. GetAllTypeIdInfo = (mGetAllTypeIdInfo)dlsym(hlibID81, "GetAllTypeIdInfo");
  268. if(!GetAllTypeIdInfo)
  269. {
  270. sprintf(cErrorInfo, "load'GetAllTypeIdInfo()'failed!");
  271. return false;
  272. }
  273. SetLog = (mSetLog)dlsym(hlibID81, "SetLog");
  274. if(!SetLog)
  275. {
  276. sprintf(cErrorInfo, "load'SetLog()'failed!");
  277. return false;
  278. }
  279. return true;
  280. }
  281. bool Unload_so()
  282. {
  283. if(hlibID81)
  284. {
  285. dlclose(hlibID81);
  286. hlibID81 = NULL;
  287. }
  288. }