<tr id="e4x9y"><fieldset id="e4x9y"></fieldset></tr>
    
    

    <sub id="e4x9y"><p id="e4x9y"></p></sub>
      <blockquote id="e4x9y"><p id="e4x9y"><noscript id="e4x9y"></noscript></p></blockquote>

      <meter id="e4x9y"><td id="e4x9y"></td></meter>
      <cite id="e4x9y"><track id="e4x9y"></track></cite>
      3P免费视频,三上悠亚日韩精品二区,一亚洲一区二区中文字幕,综合色天天久久,中文字幕乱码无码人妻系列蜜桃 ,亚洲中文字幕有码,欧美顶级metart祼体全部自慰,午夜无码福利

      DONSEE東信智能 - 身份證社保卡讀卡智能終端應用服務商

      eastcoms@qq.com
      400-6722-705
      首頁 > 服務支持專區 > 產品支持 > SDK二次開發包和軟件下載

      烏班圖(ubuntu )Linux系統身份證閱讀器開發包(含libwlt2bmp.so身份證相片解碼)

      來源:www.www.yjcsbsb.cn   標簽:ubuntu linux 開發包 相片解碼 libwlt2bmp   發布時間: 2018-10-18 17:07:11

      Ubuntu(友幫拓、優般圖、烏班圖)是一個以桌面應用為主的開源GNU/Linux操作系統,Ubuntu 是基于Debian GNU/Linux,支持x86、amd64(即x64)和ppc架構,由全球化的專業開發團隊(Canonical Ltd)打造的。 

      注意:

      此Linux版本是我公司最新的采用USB接口通訊的開發包,更新了最新的libwlt2bmp.so相片解碼庫,完美支持Linux系統,涵蓋了身份證、M1、CPU、IC等多種卡片的Linux系統應用示例,包括了身份證相片解碼。

      烏班圖(ubuntu )Linux系統身份證閱讀器開發包

      廣東東信智能科技有限公司身份證閱讀器模組模塊,支持身份證、社保卡、CPU卡、M1卡、IC卡、醫保卡、磁條卡、銀行卡等多種卡片識別讀取,提供完善的接口SDK二次開發技術支持,可提供Linux、單片機、ARM的通訊協議以及Android、Windows等系統二次開發包,可以適用于市場上的閘機、門禁、人臉識別考勤機、機器人終端、通道閘等產品使用。

      身份證閱讀器Linux系統開發包

      版本:V2018.09.25(USB版本)

      應用產品:門禁系統、道閘、考勤系統以及人臉識別系統、自助終端、機器人系統等。

      Linux身份證閱讀器部分開發代碼:

      #include "../inc/est100.h"

      #include <string.h>

      #include <stdio.h>

      static long handle;

      //print a line of characters

      static void printchar(char ch, int len)

      {

      while(len--)

      {

      printf("%c", ch);

      }

      printf("\n");

      }

      static void printchar_txt(char ch, char *pText)

      {

      printf("%c\t%s\n", ch, pText);

      }

      static void printByteArray(char *Tag, unsigned char *pSrc, int ilen)

      {

      inti = 0;

      printf( "%s", Tag );

      while( i<ilen )

      {

      printf( "%02X ", pSrc[i] );

      i++;

      }

      printf( "\n" );

      }

      static void ShowToEdit(const char* tag, const char* msg)

      {

      printf( "%s\t%s\n", tag, msg );

      }

      static void CertCard_Test()

      {

      intnRt, i;

      char pName[70]={0};

      char pSex[10]={0};

      char pNation[10]={0};

      char pBirth[50]={0};

      char pAddress[100]={0};

      char pCertNo[50]={0};

      char pDepartment[100]={0};

      char pEffectData[50]={0};

      char pExpire[20]={0};

      char pErrMsg[50]={0};

      char pEnName[150] = { 0 };

      char pEnNation[50] = { 0 };

      char pAuthorCode[150] = { 0 };

      char pCardVersion[150] = { 0 };

      char pTXZHM[50] = { 0 };

      char pTXZQFCS[10] = { 0 };

      nRt = PICC_ReadIDCard(handle);

      if ( nRt != 0 )

      {

      printf( "ReadCertCard fail! nRet=%d\n", nRt );

      return;

      }

      if(GetCardType() == 0)

      {

      GetName(pName);

      GetSex(pSex);

      GetNation(pNation);

      GetBirth(pBirth);

      GetAddress(pAddress);

      GetCertNo(pCertNo);

      GetDepartemt(pDepartment);

      GetEffectDate(pEffectData);

      GetExpireDate(pExpire);

      ShowToEdit( "姓名:", (pName));

      ShowToEdit( "性別:", (pSex));

      ShowToEdit( "民族:", (pNation));

      ShowToEdit( "出生日期:", (pBirth));

      ShowToEdit( "地址:", (pAddress));

      ShowToEdit( "身份證號:", (pCertNo));

      ShowToEdit( "簽發機關:", (pDepartment));

      ShowToEdit( "有效起始日期:", (pEffectData));

      ShowToEdit( "有效截止日期:", (pExpire));

      }

      if(GetCardType() == 1)

      {

      GetName(pName);

      GetEnName(pEnName);

      GetSex(pSex);

      GetNationalityCode(pEnNation);

      GetBirth(pBirth);

      GetCertNo(pCertNo);

      GetEffectDate(pEffectData);

      GetExpireDate(pExpire);

      GetCardVersion(pCardVersion);

      ShowToEdit( "中文姓名:", (pName));

      ShowToEdit( "英文姓名:", (pEnName));

      ShowToEdit( "性別:", (pSex));

      ShowToEdit( "國籍代碼:", (pEnNation));

      ShowToEdit( "永久居留證號碼:", (pCertNo));

      ShowToEdit( "出生日期:", (pBirth));

      ShowToEdit( "證件簽發日期:", (pEffectData));

      ShowToEdit( "證件終止日期:", (pExpire));

      ShowToEdit( "證件版本:", (pCardVersion));

      }

      if(GetCardType() == 2)

      {

      GetName(pName);

      GetSex(pSex);

      GetBirth(pBirth);

      GetAddress(pAddress);

      GetCertNo(pCertNo);

      GetDepartemt(pDepartment);

      GetEffectDate(pEffectData);

      GetExpireDate(pExpire);

      GetTXZHM(pTXZHM);

      GetTXZQFCS(pTXZQFCS);

      ShowToEdit( "姓名:", (pName));

      ShowToEdit( "性別:", (pSex));

      ShowToEdit( "出生日期:", (pBirth));

      ShowToEdit( "地址:", (pAddress));

      ShowToEdit( "身份證號:", (pCertNo));

      ShowToEdit( "簽發機關:", (pDepartment));

      ShowToEdit( "有效起始日期:", (pEffectData));

      ShowToEdit( "有效截止日期:", (pExpire));

      ShowToEdit( "通行證號碼:", (pTXZHM));

      ShowToEdit( "通行證簽發次數:", (pTXZQFCS));

      }

      char szPhotoPath[255] = { 0 };

      sprintf(szPhotoPath, "../list/%s.bmp", pCertNo);

      GetBmpFile("../lib/libwltdecode.so", szPhotoPath);

      }

      static void ICC_CPUCard_Test()

      {

      intnRt, i;

      unsigned char slot = 0x01;

      unsigned char cmd[255] = { 0 };

      unsigned charresp[255]= { 0 };

      unsigned charATR[60] = { 0 };

      intlenth_of_cmd;

      // Get 8 byte Random

      cmd[0] = 0x00;

      cmd[1] = 0x84;

      cmd[2] = 0x00;

      cmd[3] = 0x00;

      cmd[4] = 0x08;

      lenth_of_cmd = 5;

      //CPU Card PowerOn

      nRt = ICC_Reader_pre_PowerOn( handle, slot, resp );

      if( nRt < 0 )

      {

      printf( "CPU Card PowerOn fail! ret=%d\n", nRt );

      return;

      }

      printByteArray( "ATR: ", resp, nRt );

      printByteArray( "CMD: ", cmd, lenth_of_cmd );

      //Send APDU CMD

      memset( resp, 0, 250 );

      nRt = ICC_Reader_Application( handle, slot, lenth_of_cmd, cmd, resp );

      if( nRt < 0 )

      {

      printf( "send APDU CMD fail! ret=%d\n", nRt );

      return;

      }

      printByteArray( "Resp: ", resp, nRt );

      }

      static void PICC_CPUCard_Test()

      {

      int             nRt, i;

      unsigned char   uid[15]  = { 0 };

      unsigned char   cmd[255] = { 0 };

      unsigned char   resp[255]= { 0 };

      unsigned char   ATR[60]  = { 0 };

      int             lenth_of_cmd;

      // Get 8 byte Random

      cmd[0] = 0x00;

      cmd[1] = 0x84;

      cmd[2] = 0x00;

      cmd[3] = 0x00;

      cmd[4] = 0x08;

      lenth_of_cmd = 5;

      //CPU Card PowerOn

      if( PICC_Reader_SetTypeA( handle ) != 0 )

      {

      printf( "PICC_Reader_SetTypeA fail! ret=%d\n", nRt );

      return;

      }

      if( PICC_Reader_Request( handle ) != 0 )

      {

      printf( "PICC_Reader_Request fail! ret=%d\n", nRt );

      return;

      }

      if( PICC_Reader_anticoll( handle, uid ) != 0 )

      {

      printf( "PICC_Reader_anticoll fail! ret=%d\n", nRt );

      return;

      }

      if( PICC_Reader_Select( handle, 0x41 ) != 0 )

      {

      printf( "PICC_Reader_Select fail! ret=%d\n", nRt );

      return;

      }

      nRt = PICC_Reader_PowerOnTypeA( handle, resp );

      if( nRt < 0 )

      {

      printf( "TypeA CPU Card PowerOn fail! ret=%d\n", nRt );

      return;

      }

      printByteArray( "ATR: ", resp, nRt );

      printByteArray( "CMD: ", cmd, lenth_of_cmd );

      memset( resp, 0, 250 );

      nRt = PICC_Reader_Application( handle, lenth_of_cmd, cmd, resp );

      if( nRt < 0 )

      {

      printf( "send APDU CMD fail! ret=%d\n", nRt );

      return;

      }

      printByteArray( "Resp: ", resp, nRt );

      }

      static void M1Card_Test()

      {

      int             nRt, i;

      unsigned char   uid[15]= { 0 };

      unsigned char   password[7] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00 };

      unsigned char   resp[255]= { 0 };

      unsigned charaddr= 0x04;

      unsigned charsncr= 0x01;

      unsigned charmode= 0x61;

      //CPU Card PowerOn

      if( PICC_Reader_SetTypeA( handle ) != 0 )

      {

      printf( "PICC_Reader_SetTypeA fail! ret=%d\n", nRt );

      return;

      }

      if( PICC_Reader_Request( handle ) != 0 )

      {

      printf( "PICC_Reader_Request fail! ret=%d\n", nRt );

      return;

      }

      if( PICC_Reader_anticoll( handle, uid ) != 0 )

      {

      printf( "PICC_Reader_anticoll fail! ret=%d\n", nRt );

      return;

      }

      if( PICC_Reader_Select( handle, 0x41 ) != 0 )

      {

      printf( "PICC_Reader_Select fail! ret=%d\n", nRt );

      return;

      }

      printByteArray( "UID: ", uid, 4 );

      nRt = PICC_Reader_Authentication_Pass( handle, mode, sncr, password );

      if ( nRt != 0 )

      {

      printf( "PICC_Reader_Authentication_Pass fail! ret=%d\n", nRt );

      return;

      }

      nRt = PICC_Reader_Read( handle, addr, resp );

      if( nRt != 0 )

      {

      printf( "PICC_Reader_Read fail! ret=%d\n", nRt );

      return;

      }

      printByteArray( "Data: ", resp, 16 );

      }

      int main(void)

      {

      long nRt;

      intnval;

      handle = ICC_Reader_Open( "USB1" );

      if( handle < 0 )

      {

      printf( "open fail! \n" );

      return 0;

      }

      printchar( '#', 80 );

      printchar_txt( '#', "please choose the action you want:" );

      printchar_txt( '#', "1.Select ICC CPU Card." );

      printchar_txt( '#', "2.Select PICC CPU(A) Card." );

      printchar_txt( '#', "3.Select M1 Card." );

      printchar_txt( '#', "4.Select CertCard." );

      printchar( '#', 80 );

      scanf( "%d", &nval );

      switch( nval )

      {

      case 1:

      {

      printf( "\tICC_CPU_CARD.\n" );

      ICC_CPUCard_Test();

      }

      break;

      case 2:

      {

      printf( "\tPICC_CPU(A)_CARD.\n" );

      PICC_CPUCard_Test();

      }

      break;

      case 3:

      {

      printf( "\tM1_CARD.\n" );

      M1Card_Test();

      }

      break;

      case 4:

      {

      printf( "\tCertCard.\n" );

      CertCard_Test();

      }

      break;

      default:

      printf( "enter err!\n" );

      break;

      }

      ICC_PosBeep( handle, 10 );

      ICC_Reader_Close(handle);

      return 0;

      }


       

       
      QQ在線咨詢
      主站蜘蛛池模板: 熟女一区二区三区| 麻豆一区二区中文字幕| 国产精品一区二区三区性色| 色狠狠色男人| 91全国偷拍免费视频| 性欧美videofree高清精品| 国产精品久久无码一区二区三区网| yiren22亚洲综合高清一区| 人妻久久久一区二区三区| 久久丁香五月天综合网| 国产无套内射又大又猛又粗又爽| www.操| 2021国产精品一卡2卡三卡4卡| 吉川爱美一区二区三区视频| 国产成人综合网亚洲第一| 国产18成人三级在线观看| 久久精品国产99国产精品严洲 | 国产中文一区a级毛片视频| 国产午夜福利精品视频| 差差差很依人| 亚洲AV日韩Aⅴ无码色老头| 女同久久精品国产99国产精品| 亚洲精品亚洲人成人网| 国产精品成人综合色在线| 午夜免费啪视频在线无码| 亚洲AV日韩Aⅴ无码色老头| 天天爽天天摸天天碰| 亚洲日韩第9页| 亚洲AV区| 国产极品嫩模在线观看91| 亚洲第一无码专区天堂| 中文字幕亚洲综合久久青草| 国产精品一区理论片| 国产精品1区2区3区在线观看| 亚洲av综合色一区二区| 中文字幕在线免费观看| 日韩中文精品一二三区| 日本高清视频网站www| 亚洲熟女国产熟女二区三区 | 久久九九有精品国产尤物| 人妻无码专区|