<fieldset id="drb0p"><optgroup id="drb0p"><mark id="drb0p"></mark></optgroup></fieldset>
<fieldset id="drb0p"></fieldset>
<center id="drb0p"></center>
<samp id="drb0p"></samp>
  • 国内精品久久久久久中文字幕_人妻少妇精品无码专区二区_蜜臀AV人妻久久无码精品麻豆_99精品国产一区二区三区_国内精品久久久久久TV

    非接觸式IC卡讀寫(xiě)器在QT平臺(tái)的二次開(kāi)發(fā)范例

    2019-05-30 18:01:00
    諾塔斯智能科技
    原創(chuàng)
    5308
    摘要:?目前有部分客戶在使用QT平臺(tái)上接入我們的智能卡讀寫(xiě)器產(chǎn)品,因此,我們專(zhuān)門(mén)為QT用戶提供了一套開(kāi)發(fā)包,部分范例如下,如需詳細(xì)開(kāi)發(fā)范例和技術(shù)支持,請(qǐng)聯(lián)系我們! 第一,我們需要導(dǎo)入 我們定義的頭文件,#include "LotusCardDriver.h",這個(gè)里面做了一些相關(guān)定義,具體請(qǐng)參考開(kāi)發(fā)范例源文件。 第二、在main()函數(shù)中對(duì)設(shè)備進(jìn)行初始化;

    首先我們需要認(rèn)識(shí)一下,什么是QT。

    是一個(gè)1991年由Qt Company開(kāi)發(fā)的跨平臺(tái)C++圖形用戶界面應(yīng)用程序開(kāi)發(fā)框架。它既可以開(kāi)發(fā)GUI程序,也可用于開(kāi)發(fā)非GUI程序,比如控制臺(tái)工具和服務(wù)器。Qt是面向?qū)ο蟮目蚣?,使用特殊的代碼生成擴(kuò)展(稱(chēng)為元對(duì)象編譯器(Meta Object Compiler, moc))以及一些宏,Qt很容易擴(kuò)展,并且允許真正地組件編程。

    QT平臺(tái)

    目前有部分客戶在使用QT平臺(tái)上接入我們的智能卡讀寫(xiě)器產(chǎn)品,因此,我們專(zhuān)門(mén)為QT用戶提供了一套開(kāi)發(fā)包,部分范例如下,如需詳細(xì)開(kāi)發(fā)范例和技術(shù)支持,請(qǐng)聯(lián)系我們!

    第一,我們需要導(dǎo)入 我們定義的頭文件,#include "LotusCardDriver.h",這個(gè)里面做了一些相關(guān)定義,具體請(qǐng)參考開(kāi)發(fā)范例源文件。

    第二、在main()函數(shù)中對(duì)設(shè)備進(jìn)行初始化;

    int main(int argc, char *argv[])
    {
        BOOL bResult = FALSE;
        LotusHandle  hLotusCard = LotusCardOpenDevice("",0,0,0,0,NULL);
        if( hLotusCard != -1)
        {
            //TestIcCard(hLotusCard);
            ChangeM1Password(hLotusCard);
            LotusCardCloseDevice(hLotusCard);
        }
        else
        {
            printf("error %d\r\n", hLotusCard);
        }
        cout << "Hello World!" << endl;
        return hLotusCard;
    //    return 0;
    }


    設(shè)備初始化通過(guò)LotusCardOpenDevice("",0,0,0,0,NULL)方法實(shí)現(xiàn)。參數(shù)strDeviceName:為字符長(zhǎng)度為0使用USB通道,否則使用串口通道
    參數(shù)nVID\nPID參數(shù)如果為0,動(dòng)態(tài)庫(kù)使用內(nèi)部定義值,原則上建議使用0,除非范例有明確賦值。
    特別聲明:使用外部讀寫(xiě)接口優(yōu)先,參見(jiàn)回調(diào)函數(shù)
    /**
    * 打開(kāi)設(shè)備

    * @param strDeviceName
    *            串口設(shè)備名稱(chēng)
    * @param nVID
    *            USB設(shè)備VID
    * @param nPID
    *            USB設(shè)備PID
    * @param nUsbDeviceIndex
    *            USB設(shè)備索引
    * @param unRecvTimeOut
    *            接收超時(shí)
    * @param bUseExendReadWrite
    *            是否使用外部讀寫(xiě)通道 如果沒(méi)有設(shè)備寫(xiě)權(quán)限時(shí),可以使用外部USB或串口進(jìn)行通訊,
    *            需要改造callBackProcess中相關(guān)代碼完成讀寫(xiě)工作 目前范例提供USB操作
    * @return 設(shè)備句柄
    */

    public native int OpenDevice(String strDeviceName, int nVID, int nPID,
    int nUsbDeviceIndex, int unRecvTimeOut, boolean bUseExendReadWrite);
    第三、非接觸式IC卡的讀寫(xiě)操作,需要對(duì)密碼的驗(yàn)證,密碼正確即可實(shí)現(xiàn)對(duì)IC卡的讀寫(xiě)。

    void TestIcCard(LotusHandle hLotusCard)
    {
        LotusCardParamStruct sttLotusCardParam;
        BOOL bResult = FALSE;
        bResult = LotusCardBeep(hLotusCard, 10);
        unsigned int nCardNo = 0;
        if(FALSE == bResult) return;
        int nRequestType = RT_NOT_HALT;
          //獲取卡號(hào) 同執(zhí)行下面三個(gè)函數(shù)
          memset(&sttLotusCardParam, 0x00, sizeof(sttLotusCardParam));
          bResult = LotusCardGetCardNo(hLotusCard,nRequestType, &sttLotusCardParam);
          if(FALSE == bResult) return;
          memcpy(&nCardNo, sttLotusCardParam.arrCardNo, 4);
          printf("卡號(hào)nCardNo 0x%x\r\n", nCardNo);
          //裝載密碼A
          memset(&sttLotusCardParam.arrKeys, 0x00, sizeof(sttLotusCardParam.arrKeys));
          sttLotusCardParam.arrKeys[0]=0xff;
          sttLotusCardParam.arrKeys[1]=0xff;
          sttLotusCardParam.arrKeys[2]=0xff;
          sttLotusCardParam.arrKeys[3]=0xff;
          sttLotusCardParam.arrKeys[4]=0xff;
          sttLotusCardParam.arrKeys[5]=0xff;
          sttLotusCardParam.nKeysSize = 6;
          bResult =LotusCardLoadKey(hLotusCard, AM_A, 0, &sttLotusCardParam);
          if(FALSE == bResult) return;
          //驗(yàn)證密碼
          bResult =LotusCardAuthentication(hLotusCard, AM_A, 0, &sttLotusCardParam);
          if(FALSE == bResult) return;
          //讀
          bResult=LotusCardRead(hLotusCard, 2, &sttLotusCardParam);
          if(FALSE == bResult) return;
          //寫(xiě)
          memset(&sttLotusCardParam.arrBuffer, 0x00, sizeof(sttLotusCardParam.arrBuffer));
          sttLotusCardParam.arrBuffer[0] = 0x00;
          sttLotusCardParam.arrBuffer[1] = 0x01;
          sttLotusCardParam.arrBuffer[2] = 0x02;
          sttLotusCardParam.arrBuffer[3] = 0x03;
          sttLotusCardParam.arrBuffer[4] = 0x04;
          sttLotusCardParam.arrBuffer[5] = 0x05;
          sttLotusCardParam.arrBuffer[6] = 0x06;
          sttLotusCardParam.arrBuffer[7] = 0x07;
          sttLotusCardParam.arrBuffer[8] = 0x08;
          sttLotusCardParam.arrBuffer[9] = 0x09;
          sttLotusCardParam.arrBuffer[10] = 0x0a;
          sttLotusCardParam.arrBuffer[11] = 0x0b;
          sttLotusCardParam.arrBuffer[12] = 0x0c;
          sttLotusCardParam.arrBuffer[13] = 0x0d;
          sttLotusCardParam.arrBuffer[14] = 0x0e;
          sttLotusCardParam.arrBuffer[15] = 0x0f;
          sttLotusCardParam.nBufferSize=16;
          bResult=LotusCardWrite(hLotusCard, 2, &sttLotusCardParam);
          if(FALSE == bResult) return;
          bResult = LotusCardInitValue(hLotusCard, 2, 10);
          if(FALSE == bResult) return;
          printf("初始化值成功!\r\n");
          //減值
          bResult=LotusCardDecrement(hLotusCard, 2, 1);
          if(FALSE == bResult) return;
          printf("減值成功!\r\b");
    /*      //中止
          bResult=LotusCardHalt(hLotusCard);
          if(FALSE == bResult) return;*/

    以上內(nèi)容是非接觸式IC卡讀寫(xiě)器在QT平臺(tái)的讀寫(xiě)范例,用戶在開(kāi)發(fā)過(guò)程中如有技術(shù)問(wèn)題,請(qǐng)聯(lián)系我們。

    發(fā)表評(píng)論
    評(píng)論通過(guò)審核后顯示。
    熱門(mén)文章推薦
    關(guān)于PSAM卡、SAM卡、SIM卡的特征和區(qū)別 2019-03-22 由于人們對(duì)PSAM卡、SAM卡、SIM卡的概念理解不到位加之很少仔細(xì)的對(duì)PSAM卡、SAM卡、SIM卡實(shí)物進(jìn)行區(qū)別,容易將PSAM卡、SAM卡、SIM卡混為一談。諾塔斯智能科技就PSAM卡、SAM卡、SIM卡三者特征和作用進(jìn)行介紹,幫助大家對(duì)PSAM卡、SAM卡、SIM卡進(jìn)行深刻的認(rèn)識(shí)和區(qū)分。
    M1卡常見(jiàn)問(wèn)題和處理方法 2019-02-21 M1卡是恩智浦出品的芯片縮寫(xiě),全稱(chēng)為NXP Mifare1系列,常用的有S50及S70兩種型號(hào),截止到2013年11月4日,已經(jīng)有國(guó)產(chǎn)芯片與其兼容,利用PVC封裝M1芯片、感應(yīng)天線,然后壓制成型后而制作的卡即是智能卡行業(yè)所說(shuō)的M1卡。M1卡的優(yōu)點(diǎn)是可讀可寫(xiě)的多功能卡,缺點(diǎn)是:價(jià)格稍貴,感應(yīng)距離短,目前適合非定額消費(fèi)系統(tǒng)、停車(chē)場(chǎng)系統(tǒng)、門(mén)禁考勤系統(tǒng)等,目前應(yīng)用最廣泛的非接觸式IC卡。
    NFC數(shù)據(jù)交換格式(NDEF)規(guī)范 2019-05-28 為實(shí)現(xiàn)標(biāo)簽和NFC設(shè)備,及NFC設(shè)備之間的交互通信,NFC論壇定義了稱(chēng)為NFC數(shù)據(jù)交換格式(NDEF)的通用數(shù)據(jù)格式。 NDEF是輕量級(jí)的緊湊的二進(jìn)制格式,可帶有URL,vCard和NFC定義的各種數(shù)據(jù)類(lèi)型。
    非接觸式IC卡(M1卡)區(qū)塊讀寫(xiě)控制 2019-02-21 非接觸式IC卡系列中的Mifare One (M1卡)的優(yōu)點(diǎn)是可讀可寫(xiě)的多功能卡,缺點(diǎn)是:價(jià)格稍貴,感應(yīng)距離短,目前適合非定額消費(fèi)系統(tǒng)、停車(chē)場(chǎng)系統(tǒng)、門(mén)禁考勤系統(tǒng)等,目前應(yīng)用最廣泛的 非接觸式IC卡。諾塔斯智能科技專(zhuān)業(yè)從事非接觸式IC卡讀寫(xiě)器的研發(fā)與銷(xiāo)售,為各行業(yè)用戶提供專(zhuān)業(yè)的IC卡系統(tǒng)解決方案。
    聯(lián)系我們
    聯(lián)系人: 張經(jīng)理
    電話: 400-023-6659
    傳真: 023-68798110
    Email: 843718693@qq.com
    QQ: 843718693
    微信: Lotus-Smart
    微博: lotusreader
    旺旺: 諾塔斯智能科技有限公司
    地址: 重慶市江北區(qū)宏帆路36號(hào)宏帆天地1棟6樓
    • 諾塔斯智能科技在線客服
      在線客服
    • 重慶諾塔斯智能科技有限公司微信公眾號(hào)
      關(guān)注微信
    • 諾塔斯智能科技網(wǎng)上商城
      網(wǎng)上商城
    移動(dòng)訪問(wèn)
    日本添下边视频全过程_人妻少妇精品无码专区二区_蜜臀AV人妻久久无码精品麻豆_99精品国产一区二区三区
    <fieldset id="drb0p"><optgroup id="drb0p"><mark id="drb0p"></mark></optgroup></fieldset>
    <fieldset id="drb0p"></fieldset>
    <center id="drb0p"></center>
    <samp id="drb0p"></samp>
  • 团风县| 进贤县| 福贡县| 桐梓县| 南丹县| 达孜县| 茂名市| 望城县| 栾川县| 无为县| 唐河县| 屏边| 广汉市| 保靖县| 富裕县| 景东| 安泽县| 郁南县| 天祝| 嘉祥县| 大足县| 荣昌县| 云龙县| 大理市| 安康市| 山阳县| 潞城市| 当阳市| 且末县| 金塔县| 盐源县| 阳春市| 蓝山县| 长治市| 楚雄市| 吉水县| 龙门县| 五华县| 双柏县| 敦煌市| 桃园县|