<p id="xjnxv"><delect id="xjnxv"><font id="xjnxv"></font></delect></p><video id="xjnxv"><output id="xjnxv"></output></video>

<video id="xjnxv"></video><video id="xjnxv"></video>

<video id="xjnxv"><delect id="xjnxv"><listing id="xjnxv"></listing></delect></video>
<p id="xjnxv"><delect id="xjnxv"></delect></p>

<p id="xjnxv"></p><p id="xjnxv"></p>

<p id="xjnxv"><delect id="xjnxv"><listing id="xjnxv"></listing></delect></p>
<p id="xjnxv"><delect id="xjnxv"></delect></p>
<p id="xjnxv"><output id="xjnxv"></output></p>
<p id="xjnxv"><delect id="xjnxv"></delect></p>

<p id="xjnxv"></p>
<video id="xjnxv"></video>

<video id="xjnxv"></video>
<p id="xjnxv"></p>
<p id="xjnxv"></p>
<p id="xjnxv"><delect id="xjnxv"></delect></p>
<p id="xjnxv"></p><p id="xjnxv"></p>

<video id="xjnxv"><output id="xjnxv"><font id="xjnxv"></font></output></video><p id="xjnxv"><delect id="xjnxv"></delect></p>

DONSEE東信智能 - 身份證社??ㄗx卡智能終端應用服務商

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

EST-100/EST-100GS/EST-J13X系列Linux開發包(含身份證、社???、CPU、M1、磁條卡、銀行卡等卡)

來源:www.eastcoms.com   標簽:linux arm x86 x64 sdk 開發包 ubuntu   發布時間: 2020-11-20 18:35:44

廣東東信智能科技有限公司EST免驅系列產品

廣東東信智能科技有限公司DONSEE系列多功能身份證社??ㄗx卡器Linux系統接口SDK開發包,支持  EST-100、EST-100GS、EST-J13X、EST-100G、EST-100U等機型,功能包括身份證信息讀取、社??ㄐ畔⒆x取、IC卡、CPU卡讀取,僅供開發人員和測試人員使用。

Linux開發包下載地址:

DONSEE SDK for Linux 20230825下載

DONSEE SDK for Linux 20230729下載

DONSEE SDK for Linux 20230630下載

國產系統-麒麟-統信等下載


廣東東信智能科技有限公司EST系列Linux開發包

廣東東信智能科技有限公司EST-100/EST-100GS系列Linux SDK開發包

Linux開發包功能說明:

1、ICC CPU Card:接觸式CPU卡

2、PICC CPU(A) Card:非接觸式CPU卡

3、M1 Card:M1卡

4、CertCard:身份證卡

如需其他Linux開發包,可以聯系張工:13922210502

需要注意的是,Linux 種類眾多,分Arm架構和X86 X64構架,不同構架開發包有所不同,Arm的如果是交叉編譯,還需要提供交叉編譯鏈。

要提供的信息:

1. linux  操作系統是32位還是64位?

2. 硬件架構是 x86, arm, mips?

3. 你們開發板運行的程序是交叉編譯碼生成的嗎? 交叉編譯的環境是什么樣的?(ubuntu32/ubuntu64/win32/win64 具體版本)

4. 如果不是交叉編譯, 是否是像樹莓派這種開發板 直接在開發板編譯的?

要提供的文件:

1. 如果是交叉編譯

1)請提供交叉編譯用的工具鏈 

2)請列出工具鏈的使用方法(請注明 gcc 在工具鏈中的具體目錄)

2. 如果是類似樹莓派這種在板子上編譯的,請提供開發板

目前主要編譯過以下編譯鏈環境:

32位gcc-linaro arm-linux-gnueabi

海思麒麟32位

arm-arago-linux-gnueabi

gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu

gcc-linaro-5.3-20170216

gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu

gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf

arm_linux_4.8_arm-nuvoton-linux-uclibceabi

gcc-linaro-aarch64-linux-gnu-4.9-2014.07_linux


#include "donsee.h"

int main()

{

long t_nHandle = -99;

int i = 0;

char pszError[128];

unsigned char Response[1024] = {0};

long t_nRe;

printf("********************************************************\n");

printf("請輸入數字選擇需要測試的功能:\n");

printf("0、測試蜂鳴器和版本號\n");

printf("1、測試 身份證\n");

printf("2、測試 社??╘n");

printf("3、測試 M1 卡\n");

printf("4、測試 非接觸CPU卡\n");

printf("5、測試 銀行卡\n");

printf("6、測試 15693卡\n");

printf("7、測試 接觸CPU卡\n");

printf("8、測試 磁條卡\n");

printf("9、測試 4442卡\n");

printf("10、測試 北京通卡\n");

printf("11、關閉射頻天線\n");

printf("********************************************************\n");

int t_nIndex;

scanf("%d", &t_nIndex);

if (t_nIndex == 0) //測試版本號和蜂鳴器

{

t_nHandle = Donsee_Open("USB");

if (t_nHandle != 0)

{

printf("連接讀卡器失敗,t_nRe = %ld\n", t_nHandle);

return -1;

}

t_nRe = Donsee_Version(Response);

printf("設備版本號:%s\n", Response);

Donsee_Beep(t_nHandle, 0x16);

Donsee_Close();

}

if (t_nIndex == 1) //測試身份證

{

t_nHandle = Donsee_Open("USB");

if (t_nHandle != 0)

{

printf("連接讀卡器失敗,t_nRe = %ld\n", t_nHandle);

return -1;

}

memset(Response, 0, 1024);

// t_nRe = Donsee_ReadIDCardUid(Response);   //身份證Uid,有需要的可以這里獲取

// printf("Donsee_ReadIDCardUid返回:%s\n", Response);

IDINFO idInfo;

char t_arrMsg[256];

// nType [in]:設置身份證讀卡類型:0,文本信息;1,文本+照片;2,文本+照片+指紋

// nMode [in]:設置讀卡模式:0,讀卡1次、拿開后放上重讀;1,連續讀卡

int nType = 1;

int nMode = 1;

memset(&idInfo, 0, sizeof(IDINFO));

char t_szPath[256] = "IDPhoto.bmp";

// char t_szPath[256] = "";

// char t_szPath[256] = NULL;

t_nRe = Donsee_ReadIDCard(nType, nMode, t_szPath, &idInfo, t_arrMsg);

if (t_nRe != 0)

{

printf("讀身份證失敗\n");

Donsee_Close();

return -2;

}

else

{

Donsee_Beep(t_nHandle, 0x16);

printf("讀身份證成功\n");

printf(("中文姓名:%s\n"), idInfo.name);

printf(("英文姓名:%s\n"), idInfo.ENfullname);

printf(("性    別:%s\n"), idInfo.sex);

printf(("民    族:%s\n"), idInfo.people);

printf(("出身日期:%s\n"), idInfo.birthday);

printf(("住    址:%s\n"), idInfo.address);

printf(("身份證號:%s\n"), idInfo.number);

printf(("簽發機關:%s\n"), idInfo.organs);

printf(("有效期開始:%s\n"), idInfo.signdate);

printf(("有效期結束:%s\n"), idInfo.validterm);

printf(("證件類別:%s\n"), idInfo.certType);

printf(("證件版本:%s\n"), idInfo.certVersion);

printf(("通行證號:%s\n"), idInfo.passNu);

printf(("簽發數次:%s\n"), idInfo.signCount);

// printf(("照片文件名:%s\n"), t_cValue);

// printf("1024相片原始數據:\n");

// int i ;

// for ( i = 0; i < 1024; i++)

//{

//printf("%02X ", idInfo.Photo[i]);

//}

// printf("\n");

// if (nType == 2)

//{

//printf("1024指紋數據:\n");

//for ( i = 0; i < 1024; i++)

//{

//;//printf("%02X ", (unsigned char)idInfo.figData[i]);

//}

// }

Donsee_Close();

}

}

if (t_nIndex == 2) //測試社???,三代社??ㄐ枰狿sam秘鑰才能讀取,二代卡不需要(只能插卡讀?。?/p>

{

t_nHandle = Donsee_Open("USB");

if (t_nHandle != 0)

{

printf("連接讀卡器失敗,t_nRe = %ld\n", t_nHandle);

return -1;

}

SSCard_IDINFO cardInfo;

memset(&cardInfo, 0, sizeof(cardInfo));

long t_nRead = Donsee_ReadSSCard(0x11, &cardInfo, pszError);

if (t_nRead != 0)

{

printf("讀社??ㄊ?MSG:%s\n", pszError);

Donsee_Close();

return -2;

}

else

{

Donsee_Beep(t_nHandle, 0x16);

printf("讀社??ǔ晒n");

printf("姓名:%s\n", cardInfo.name);

printf("性別:%s\n", cardInfo.sex);

printf("民族:%s\n", cardInfo.nation);

printf("出生日期:%s\n", cardInfo.birthday);

printf("發證日期:%s\n", cardInfo.signdate);

printf("有效日期:%s\n", cardInfo.validterm);

printf("卡號:%s\n", cardInfo.cardnumber);

printf("社會保障號碼(身份證號):%s\n", cardInfo.idnumber);

printf("城市代碼:%s\n", cardInfo.city);

printf("社??ò姹?%s\n", cardInfo.cardveVrsion);

Donsee_Close();

}

}

if (t_nIndex == 3) //測試M1卡

{

t_nHandle = Donsee_Open("USB");

if (t_nHandle != 0)

{

printf("連接讀卡器失敗,t_nRe = %ld\n", t_nHandle);

return -1;

}

char t_chMsgM1[256] = "";

// t_nRe = Donsee_ReadICUid(t_chMsgM1);  //功能未實現

// if (t_nRe == 0)

//{

//printf("M1 卡 獲取UID成功,UID:%s\n", t_chMsgM1);

// }

// M1尋卡

t_nRe = Donsee_ICRequest();

if (t_nRe != 0)

{

printf("M1 卡片請求 失敗,返回值:%ld\n", t_nRe);

}

t_nRe = Donsee_ICAnticoll(t_chMsgM1); //防碰撞可以出來uid,M1和cpu卡都支持

if (t_nRe != 0)

{

printf("M1 卡片防碰撞 失敗,返回值:%ld\n", t_nRe);

}

t_nRe = Donsee_ICSelect(0x41);

if (t_nRe != 0)

{

printf("TypeA 卡片選擇 失敗,返回值:%ld\n", t_nRe);

}

printf("M1 尋卡成功");

printf("M1 卡 獲取UID成功,UID:%s\n", t_chMsgM1);

int t_nKeyMode = 0x60; // KeyA

int t_nAdd = 5;

t_nRe = Donsee_M1VerifyPass(t_nKeyMode, t_nAdd / 4, "FFFFFFFFFFFF");

if (t_nRe != 0)

{

printf("M1 卡片 Donsee_M1VerifyPass 密鑰認證 失敗,返回值:%ld", t_nRe);

}

else

printf("M1 卡 Donsee_M1VerifyPass 密鑰認證 成功\n");

unsigned char t_chKey[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};

t_nRe = Donsee_M1VerifyPassHex(t_nKeyMode, t_nAdd / 4, t_chKey);

if (t_nRe != 0)

{

printf("M1 卡片 Donsee_M1VerifyPassHex 密鑰認證 失敗,返回值:%ld", t_nRe);

}

else

printf("M1 卡 Donsee_M1VerifyPassHex 密鑰認證 成功\n");

char t_pszReadData[128] = "";

t_nRe = Donsee_M1Read(t_nAdd, t_pszReadData);

if (t_nRe != 0)

{

printf("M1 卡片讀卡 失敗,返回值:%ld\n", t_nRe);

}

else

printf("M1 卡 讀取第 %d 塊數據 成功,Data:%s\n", t_nAdd, t_pszReadData);


t_nRe = Donsee_M1Write(t_nAdd, "0102030405060708090001020304050A");

if (t_nRe != 0)

{

printf("M1 卡片寫卡 失敗,返回值:%ld\n", t_nRe);

}

else

printf("M1 卡 寫入第 %d 塊數據: 0102030405060708090001020304050A, 成功\n", t_nAdd);

memset(t_pszReadData, 0, 128);

t_nRe = Donsee_M1Read(t_nAdd, t_pszReadData);

if (t_nRe != 0)

{

printf("M1 卡片讀卡 失敗,返回值:%ld\n", t_nRe);

}

else

printf("M1 卡 讀取第 %d 塊數據 成功,Data:%s\n", t_nAdd, t_pszReadData);


unsigned long t_nValue = 256;

t_nRe = Donsee_M1Initval(t_nAdd, t_nValue);

if (t_nRe != 0)

{

printf("M1 卡片初始化值 失敗,返回值:%ld\n", t_nRe);

}

else

printf("M1 卡 卡片初始化第 %d 塊 值  成功\n", t_nAdd);

t_nRe = Donsee_M1Increment(t_nAdd, 100);

if (t_nRe != 0)

{

printf("M1 卡片增值 失敗,返回值:%ld\n", t_nRe);

}

else

printf("M1 卡 卡片增值 第 %d 塊  成功\n", t_nAdd);

t_nRe = Donsee_M1Decrement(t_nAdd, 20);

if (t_nRe != 0)

{

printf("M1 卡片減值 失敗,返回值:%ld\n", t_nRe);

}

else

printf("M1 卡 卡片減值第 %d 塊 成功\n", t_nAdd);


t_nRe = Donsee_M1Readval(t_nAdd, &t_nValue);

if (t_nRe != 0)

{

printf("M1 卡片讀值 失敗,返回值:%ld\n", t_nRe);

}

else

printf("M1 卡 卡片讀值 %d 塊   成功,Value = %ld\n", t_nAdd, t_nValue);

t_nRe = Donsee_M1LoadKey(t_nKeyMode, t_nAdd / 4, "FFFFFFFFFFFF");

if (t_nRe != 0)

{

printf("M1 卡片加載密鑰 失敗,返回值:%ld\n", t_nRe);

}

else

printf("M1 卡 卡片加載到密鑰 第%d扇區   成功\n", t_nAdd / 4);

t_nRe = Donsee_M1Verify(t_nKeyMode, t_nAdd / 4);

if (t_nRe != 0)

{

printf("M1 卡片認證加載密鑰 第%d扇區 失敗,返回值:%ld\n", t_nAdd / 4, t_nRe);

}

else

printf("M1 卡 卡片認證加載密鑰 第%d扇區   成功\n", t_nAdd / 4);

Donsee_Beep(t_nHandle, 0x16);

Donsee_Close();

}

if (t_nIndex == 4) //測試非接觸式CPU卡

{

t_nHandle = Donsee_Open("USB");

if (t_nHandle != 0)

{

printf("連接讀卡器失敗,t_nRe = %ld\n", t_nHandle);

return -1;

}

char t_arrDataRe[32] = {0};

char t_arrDataUID[8] = {0};

long t_nSet = Donsee_SetTypeA();

if (t_nSet != 0)

{

printf("TypeA 設置失敗\n") ;

Donsee_Close() ;

return false;

}

long t_nReq = Donsee_ICRequest();

{

printf("TypeA 請求失敗\n") ;

Donsee_Close() ;

return false;

}

long t_nAtl = Donsee_ICAnticoll(t_arrDataUID);

{

printf("TypeA 防碰撞失敗\n") ;

Donsee_Close() ;

return false;

}

printf("TypeA_Anticoll:%s\n", t_arrDataUID);


long t_nSel = Donsee_ICSelect(0x41);

{

printf("TypeA 選卡失敗\n") ;

Donsee_Close() ;

return false;

}

t_nRe = Donsee_PowerOnTypeA(t_arrDataRe);

{

printf("TypeA 上電失敗") ;

Donsee_Close() ;

return false;

}

printf("TypeA_ATR:%s\n", t_arrDataRe);

memset(Response, 0, 1024);

printf("TypeA-APDU發送:0084000008\n");

t_nRe = Donsee_APDUType("0084000008", Response);

printf("TypeA-APDU返回:%s\n", Response);

Donsee_Beep(t_nHandle, 0x16);

Donsee_Close();

}

if (t_nIndex == 5) //測試銀行卡

{

t_nHandle = Donsee_Open("USB");

if (t_nHandle != 0)

{

printf("連接讀卡器失敗,t_nRe = %ld\n", t_nHandle);

return -1;

}

char t_szBankNo[128] = "";

char *p, *q;

unsigned char tmp;

t_nRe = Donsee_GetBankCardNo(t_szBankNo);

if (t_nRe != 0)

printf("讀取銀行卡號失敗\n");

else

{

tmp = (unsigned char)(strchr(t_szBankNo, 'D') - t_szBankNo);

q = (tmp > 0) ? strndup(t_szBankNo, tmp) : strdup(t_szBankNo);

printf("讀取銀行卡號成功:%s\n", q);

Donsee_Beep(t_nHandle, 0x16);

}

Donsee_Close();

}

if (t_nIndex == 6) //測試15693卡

{

t_nHandle = Donsee_Open("USB");

if (t_nHandle != 0)

{

printf("連接讀卡器失敗,t_nRe = %ld\n", t_nHandle);

return -1;

}

char t_chMsg15693[256] = "";

t_nRe = Donsee_15693_Find(t_chMsg15693);

if (t_nRe != 0)

{

printf("15693 尋卡失敗,返回值:%ld\n", t_nRe);

}

else

printf("15693 尋卡成功,UID:%s\n", t_chMsg15693);


t_nRe = Donsee_15693_Info(t_chMsg15693);

if (t_nRe != 0)

{

printf("15693 卡信息獲取失敗,返回值:%ld\n", t_nRe);

}

else

printf("15693 卡信息獲取成功,CardInfo:%s\n", t_chMsg15693);

unsigned char t_nBlkAdd = 0x00;

memset(t_chMsg15693, 0, 256);

t_nRe = Donsee_15693_Read(t_nBlkAdd, t_chMsg15693);

if (t_nRe != 0)

{

printf("15693 卡讀卡失敗,返回值:%ld\n", t_nRe);

}

else

printf("15693 卡讀卡成功,Data:%s\n", t_chMsg15693);


t_nRe = Donsee_15693_Write(t_nBlkAdd, "88898685");

if (t_nRe != 0)

{

printf("15693 卡寫卡失敗,返回值:%ld\n", t_nRe);

}

else

printf("15693 卡寫卡成功,Data:88898685\n");


memset(t_chMsg15693, 0, 256);

t_nRe = Donsee_15693_Read(t_nBlkAdd, t_chMsg15693);

if (t_nRe != 0)

{

printf("15693 卡讀卡失敗,返回值:%ld\n", t_nRe);

}

else

printf("15693 卡讀卡成功,Data:%s\n", t_chMsg15693);

Donsee_Beep(t_nHandle, 0x16);

Donsee_Close();

}

if (t_nIndex == 7) //測試接觸式CPU卡

{

t_nHandle = Donsee_Open("USB");

if (t_nHandle != 0)

{

printf("連接讀卡器失敗,t_nRe = %ld\n", t_nHandle);

return -1;

}

memset(Response, 0, 1024);

t_nRe = Donsee_ColdPowerOn(0x01, Response);

printf("cpu冷復位:%s\n", Response);

memset(Response, 0, 1024);

t_nRe = Donsee_HotPowerOn(0x01, Response);

printf("cpu熱復位:%s\n", Response);

memset(Response, 0, 1024);

t_nRe = Donsee_PowerOn(0x01, Response);

printf("cpu復位:%s\n", Response);

memset(Response, 0, 1024);

printf("cpu-APDU發送:0084000008\n");

t_nRe = Donsee_APDU(0x01, "0084000008", Response);

printf("cpu-APDU返回:%s\n", Response);

Donsee_Beep(t_nHandle, 0x16);

Donsee_Close();

}

if (t_nIndex == 8) //測試磁條卡

{

t_nHandle = Donsee_Open("USB");

if (t_nHandle != 0)

{

printf("連接讀卡器失敗,t_nRe = %ld\n", t_nHandle);

return -1;

}

unsigned char t_nTime = 15;

int t_nTrack = 2;

char t_pszTrackData[512] = "";

t_nRe = Donsee_ReadMagCard(t_nTime, t_nTrack, t_pszTrackData);

if (t_nRe != 0)

{

printf("磁條卡刷卡失敗,返回值:%ld\n", t_nRe);

}

else

printf("磁條卡刷卡成功,TrackData:%s\n", t_pszTrackData);

//設置主動輸出

unsigned char szConfig[3] = {0x02, 0x00, 0x01};

// t_nRe = Donsee_ReadMagType(0x00,szConfig) ;

// if (t_nRe != 0)

// printf("磁條卡設置主動輸出失敗,返回值:%ld\n", t_nRe);

// else

// printf("磁條卡設置主動輸出成功\n");

//設置被動輸出

// t_nRe = Donsee_ReadMagType(0x01,szConfig) ;

// if (t_nRe != 0)

// printf("磁條卡設置被動輸出失敗,返回值:%ld\n", t_nRe);

// else

// printf("磁條卡設置被動輸出成功\n");

Donsee_Beep(t_nHandle, 0x16);

Donsee_Close();

}

if (t_nIndex == 9) //測試4442卡

{

t_nHandle = Donsee_Open("USB");

if (t_nHandle != 0)

{

printf("連接讀卡器失敗,t_nRe = %ld\n", t_nHandle);

return -1;

}

char t_chMsg4442[256] = "";

t_nRe = Donsee_4442_PowerOn(t_chMsg4442);

if (t_nRe == 0)

{

printf("4442 卡 上電成功,UID:%s\n", t_chMsg4442);

}

int t_nCount;

t_nRe = Donsee_4442_ReadCount(&t_nCount);

if (t_nRe == 0)

{

printf("4442 卡 密鑰認證剩余次數:%d次\n", t_nCount);

}

memset(t_chMsg4442, 0, 256);

t_nRe = Donsee_4442_Read(32, 16, t_chMsg4442);

if (t_nRe == 0)

{

printf("4442 卡 讀卡成功,Data:%s\n", t_chMsg4442);

}

t_nRe = Donsee_4442_Verify("FFFFFF");

if (t_nRe == 0)

{

printf("4442 卡 密鑰認證成功\n");

}

t_nRe = Donsee_4442_Write(32, 16, "AAAAAAAAAABBBBBBBBBBCCCCCCCCCCDD");

if (t_nRe == 0)

{

printf("4442 卡 寫卡成功,Data:AAAAAAAAAABBBBBBBBBBCCCCCCCCCCDD\n");

}


t_nRe = Donsee_4442_Read(32, 16, t_chMsg4442);

if (t_nRe == 0)

{

printf("4442 卡 讀卡成功,Data:%s\n", t_chMsg4442);

}

t_nRe = Donsee_4442_WriteProtect(0, 16, "AAAAAAAAAABBBBBBBBBBCCCCCCCCCCDD");

if (t_nRe == 0)

{

printf("4442 卡 寫卡保護成功,Data:AAAAAAAAAABBBBBBBBBBCCCCCCCCCCDD\n");

}


t_nRe = Donsee_4442_ReadProtect(0, 16, t_chMsg4442);

if (t_nRe == 0)

{

printf("4442 卡 讀卡保護成功,Data:%s\n", t_chMsg4442);

}

t_nRe = Donsee_4442_PowerOff();

if (t_nRe == 0)

{

printf("4442 卡 下電成功\n");

}

Donsee_Beep(t_nHandle, 0x16);

Donsee_Close();

}

if (t_nIndex == 10) //測試北京通卡

{

t_nHandle = Donsee_Open("USB");

if (t_nHandle != 0)

{

printf("連接讀卡器失敗,t_nRe = %ld\n", t_nHandle);

return -1;

}

BJT_IDINFO idInfo;

char t_arrMsg[256];

memset(&idInfo, 0, sizeof(BJT_IDINFO));

t_nRe = Donsee_ReadBJTIDCard(&idInfo, t_arrMsg);

if (t_nRe != 0)

{

printf("讀取北京通失敗\n");

Donsee_Close();

return -2;

}

else

Donsee_Beep(t_nHandle, 0x16);

printf("讀取北京通成功\n");

printf(("姓名:%s\n"), idInfo.name);

printf(("性 別:%s\n"), idInfo.sex);

printf(("北京通號:%s\n"), idInfo.cardnumber);

printf(("卡片類型:%s\n"), idInfo.nType);

printf(("證件名稱:%s\n"), idInfo.cardName);

printf(("發卡機構:%s\n"), idInfo.organs);

t_nRe = Donsee_ReadBJTIDCard_Photo("./bjt.jpg", t_arrMsg);

if (t_nRe != 0)

{

printf("讀取北京通頭像失敗\n");

Donsee_Close();

return -2;

}

else

printf("讀取北京通頭像成功\n");

Donsee_Close();

}

if (t_nIndex == 11) //關閉射頻天線

{

t_nHandle = Donsee_Open("USB");

if (t_nHandle != 0)

{

printf("連接讀卡器失敗,t_nRe = %ld\n", t_nHandle);

return -1;

}

Donsee_SwitchRF(0); // 0 關閉天線,1 打開天線

Donsee_Close();

}

}



以下沒有刪除,主要是保留備份,請勿使用。

ARM構架Linux開發包(串口)↓

Linux Java開發包(USB)↓

X86和X64構架linux開發包(USB接口)↓

X86和X64構架linux開發包(串口)↓


 

 
QQ在線咨詢
天天操天天操天天操天天操天天操_黄片在线免费视频观看_免费看无码级毛片_国产欧美另类久久精品蜜芽

<p id="xjnxv"><delect id="xjnxv"><font id="xjnxv"></font></delect></p><video id="xjnxv"><output id="xjnxv"></output></video>

<video id="xjnxv"></video><video id="xjnxv"></video>

<video id="xjnxv"><delect id="xjnxv"><listing id="xjnxv"></listing></delect></video>
<p id="xjnxv"><delect id="xjnxv"></delect></p>

<p id="xjnxv"></p><p id="xjnxv"></p>

<p id="xjnxv"><delect id="xjnxv"><listing id="xjnxv"></listing></delect></p>
<p id="xjnxv"><delect id="xjnxv"></delect></p>
<p id="xjnxv"><output id="xjnxv"></output></p>
<p id="xjnxv"><delect id="xjnxv"></delect></p>

<p id="xjnxv"></p>
<video id="xjnxv"></video>

<video id="xjnxv"></video>
<p id="xjnxv"></p>
<p id="xjnxv"></p>
<p id="xjnxv"><delect id="xjnxv"></delect></p>
<p id="xjnxv"></p><p id="xjnxv"></p>

<video id="xjnxv"><output id="xjnxv"><font id="xjnxv"></font></output></video><p id="xjnxv"><delect id="xjnxv"></delect></p>