色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C++ QT開(kāi)發(fā),IC讀寫器程序

鄒振豪 ? 來(lái)源:jf_51178285 ? 作者:jf_51178285 ? 2024-12-30 14:55 ? 次閱讀

第一步:新建一個(gè)qt C++項(xiàng)目

wKgZPGdyP_6AO_KvAAfrLdJihcY379.pngwKgZO2dyQDWABVsZAAgzAvh17MM970.png

在此需要注意,名稱和路徑不能有中文。

第二步:添加控件完成UI布局

wKgZO2dyQKGAQCG_AAF6fUjfXEM123.pngIC讀寫器讀寫IC卡數(shù)據(jù)塊

第三步:開(kāi)始寫代碼

使設(shè)備發(fā)出滴滴響聲

wKgZPGdyQdGAa84uAADRl397VQk748.png

#define BLOCK0_EN   0x01
#define BLOCK1_EN   0x02
#define BLOCK2_EN   0x04
#define NEEDSERIAL  0x08
#define EXTERNKEY   0x10
#define NEEDHALT   0x20
 
//#define NEEDSERIAL  0x08
#define EXTERNKEY   0x10
 
 
//讓讀寫器發(fā)出聲音
typedef  unsigned char (*pcdbeep)(unsigned long xms);
 
//返回本讀寫器獨(dú)一無(wú)二的設(shè)備編號(hào)
typedef  unsigned char (*pcdgetdevicenumber)(unsigned long devicenumber);
 
//輕松讀卡
typedef unsigned char (*piccreadex)(unsigned char ctrlword,unsigned char *serial,unsigned char area,unsigned char keyA1B0,unsigned char *picckey,unsigned char *piccdata0_2);
 
//輕松寫卡
typedef unsigned char (*piccwriteex)(unsigned char ctrlword,unsigned char *serial,unsigned char area, unsigned char keyA1B0,unsigned char *picckey,unsigned char *piccdata0_2);
 
//改單區(qū)密碼
typedef unsigned char (*piccchangesinglekeyex)(unsigned char ctrlword,unsigned char *serial,unsigned char area,unsigned char keyA1B0,unsigned char *piccoldkey,unsigned char *piccdata);
 
//讀出一塊的數(shù)據(jù),也就是16個(gè)字節(jié)
typedef unsigned char (*piccread)(unsigned char block,unsigned char *piccdata);
 
//檢測(cè)輸入數(shù)據(jù)是否為16進(jìn)制數(shù)
static bool checkinput(QString inputstr){
    QString inputyes="0123456789abcdefABCDEF";
    for(int i=0;isetupUi(this);
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
 
 
void MainWindow::on_pushButton_4_clicked()//讓設(shè)備發(fā)出聲響
{
    unsigned char result;
    QLibrary mylib("OUR_MIFARE.dll");
    if (!mylib.load())                //判斷是否正確加載
    {
        QMessageBox::information(NULL, "提示", "動(dòng)態(tài)庫(kù)沒(méi)裝載!原因是動(dòng)態(tài)庫(kù)OUR_MIFARE.dll沒(méi)放在生成exe文件相同目錄下!");
        return;
    }
 
    pcdbeep mypcdbeep = (pcdbeep)mylib.resolve("pcdbeep");
    if (mypcdbeep == NULL)                   //是否成功連接上 idr_beep()函數(shù)
    {
        mylib.unload();
        QMessageBox::information(NULL, "提示", "請(qǐng)檢查函數(shù)名是否正確!");
        return;
 
    }
 
 
    result = mypcdbeep(30);      //這里函數(shù)指針調(diào)用dll中的idr_beep() 函數(shù)
    mylib.unload();
    if(result > 0)
    {
        if(result == 23)
        {
            QMessageBox::information(NULL, "提示", "機(jī)器沒(méi)連上或者驅(qū)動(dòng)沒(méi)下載");
        }
        else
        {
            QMessageBox::information(NULL, "提示", "錯(cuò)誤代碼:" + QString::number(result));
        };
    }
    //qDebug()

讀卡功能

void MainWindow::on_pushButton_3_clicked()//輕松讀卡
{
   unsigned char ctrlword;//控制字
   unsigned char serial[4];//可寫數(shù)組
   unsigned char area;//讀出的區(qū)號(hào)

   unsigned char keyA1B0;//AB密碼認(rèn)證
   unsigned char picckey[6];//存放卡密碼的數(shù)組
   unsigned char piccdata0_2[48];//下標(biāo)0~15存放作為讀出的塊0的數(shù)據(jù),下標(biāo)16~31存放作為讀出的塊1的數(shù)據(jù),下標(biāo)32~47存放作為讀出的塊2的數(shù)據(jù)

   unsigned char status;//返回
unsigned char status1;
   unsigned char result;
   QString piccdata[16];  //卡數(shù)據(jù)緩沖

  //unsigned char myareano = ui->lineEdit_5 ; '指定為第8區(qū)

   //以下控制字含義:讀塊0、塊1、塊2,僅讀指定序列號(hào)的卡,需要每次指定密碼
   if (ui->radioButton->isChecked())
   {

       ctrlword = BLOCK0_EN + BLOCK1_EN + BLOCK2_EN + EXTERNKEY;

   }
   else
   {//內(nèi)部密碼
       ctrlword = BLOCK0_EN + BLOCK1_EN + BLOCK2_EN;
   }



   area = ui->comboBox->currentText().toUShort();

   keyA1B0 = 1;//用A密碼

   //qDebug()text().mid(0,2);
   //qDebug()text().mid(2,2);

   // qDebug()text().mid(2,2);
   // qDebug()text().mid(2,2);

   QString Key_str = ui->lineEdit->text().trimmed();


   if(Key_str.length() < 12)
   {
       QMessageBox::information(NULL, "提示", "密碼長(zhǎng)度不夠12位!");
       ui-?>lineEdit->setFocus();
       return;

   }

   char c;
   for (int var = 0; var < 12; ++var)
   {
       c = Key_str.at(var).toLatin1();
       if(!((('0' <= c) && (c <= '9')) || (('A' <= c) && (c <= 'F')) || (('a' <= c) && (c <= 'f'))))
       {
         QMessageBox::information(NULL, "提示", "密碼輸入字符不正確!");
         //ui-?>lineEdit->setSelection(var,1);
         ui->lineEdit->setSelection(var,1);
         ui->lineEdit->setFocus();
         return;
       }
   }


   bool ok;
//    picckey[0]=(unsigned char)(Key_str.mid(0,2).toUShort(nullptr,16));
//    picckey[1] = Key_str.mid(2,2).toShort();
//    picckey[2] = Key_str.mid(4,2).toShort();
//    picckey[3] = Key_str.mid(6,2).toShort();
//    picckey[4] = Key_str.mid(8,2).toShort();
//    picckey[5] = Key_str.mid(10,2).toShort();

   for(int i = 0; i < 6; i++)
   {
       picckey[i]=QString(Key_str.mid(i*2,2)).toInt(&ok,16);
   }



   QLibrary mylib("OUR_MIFARE.dll");
   if (!mylib.load())                //判斷是否正確加載
   {
       QMessageBox::information(NULL, "提示", "動(dòng)態(tài)庫(kù)沒(méi)裝載!原因是動(dòng)態(tài)庫(kù)OUR_MIFARE.dll沒(méi)放在生成exe文件相同目錄下!");
       return;
   }

   piccreadex mypiccreadex = (piccreadex)mylib.resolve("piccreadex");

   status = mypiccreadex(ctrlword,serial,area,keyA1B0,picckey,piccdata0_2);

   if(status == 0)
   {
       //qDebug()setText(QString::asprintf("%02X %02X %02X %02X %02X %02X %02X %02X %02X %02X",picckey[0],picckey[1],picckey[2],picckey[3],picckey[4],picckey[5],picckey[6],serial[1],serial[2],serial[3]));
       ui->lineEdit_2->setText(QString::asprintf("%02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X ",piccdata0_2[0],piccdata0_2[1],piccdata0_2[2],piccdata0_2[3],piccdata0_2[4],piccdata0_2[5],piccdata0_2[6],piccdata0_2[7],piccdata0_2[8],piccdata0_2[9],piccdata0_2[10],piccdata0_2[11],piccdata0_2[12],piccdata0_2[13],piccdata0_2[14],piccdata0_2[15]));
       ui->lineEdit_3->setText(QString::asprintf("%02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X ",piccdata0_2[16],piccdata0_2[17],piccdata0_2[18],piccdata0_2[19],piccdata0_2[20],piccdata0_2[21],piccdata0_2[22],piccdata0_2[23],piccdata0_2[24],piccdata0_2[25],piccdata0_2[26],piccdata0_2[27],piccdata0_2[28],piccdata0_2[29],piccdata0_2[30],piccdata0_2[31]));
       ui->lineEdit_4->setText(QString::asprintf("%02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X ",piccdata0_2[32],piccdata0_2[33],piccdata0_2[34],piccdata0_2[35],piccdata0_2[36],piccdata0_2[37],piccdata0_2[38],piccdata0_2[39],piccdata0_2[40],piccdata0_2[41],piccdata0_2[42],piccdata0_2[43],piccdata0_2[44],piccdata0_2[45],piccdata0_2[46],piccdata0_2[47]));


       piccread mypiccread = (piccread)mylib.resolve("piccread");
       //typedef unsigned char (*piccread)(unsigned char block,unsigned char *piccdata);

      status1 = piccread(area * 4 + 3,piccdata);

       pcdbeep mypcdbeep = (pcdbeep)mylib.resolve("pcdbeep");
       if (mypcdbeep == NULL)                   //是否成功連接上 idr_beep()函數(shù)
       {
         mylib.unload();
         QMessageBox::information(NULL, "提示", "請(qǐng)檢查函數(shù)名是否正確!");
         return;

       }


       result = mypcdbeep(30);      //這里函數(shù)指針調(diào)用dll中的idr_beep() 函數(shù)
       mylib.unload();



   }
   else if(status == 8)
   {
       ui->lineEdit_2->clear();
       ui->lineEdit_3->clear();
       ui->lineEdit_4->clear();
       QMessageBox::information(NULL, "提示", "尋卡錯(cuò)誤,根本就沒(méi)有卡在感應(yīng)區(qū)");

   }
   else if(status == 12)
   {
       ui->lineEdit_2->clear();
       ui->lineEdit_3->clear();
       ui->lineEdit_4->clear();
       QMessageBox::information(NULL, "提示", "密碼認(rèn)證失敗");

   }
   //qDebug()

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • IC
    IC
    +關(guān)注

    關(guān)注

    36

    文章

    6091

    瀏覽量

    178262
  • 讀寫器
    +關(guān)注

    關(guān)注

    3

    文章

    697

    瀏覽量

    39502
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2117

    瀏覽量

    74754
收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    高頻工業(yè)RFID讀寫器

    高頻工業(yè)RFID讀寫器 型號(hào):SG-HF40-485、SG-HF40-TCP 產(chǎn)品功能 高頻工業(yè)讀寫器(RFID)產(chǎn)品用在自動(dòng)化生產(chǎn)線,自動(dòng)化分揀系統(tǒng),零部件組裝產(chǎn)線等情境下,在自動(dòng)化節(jié)點(diǎn)的工位上部
    的頭像 發(fā)表于 05-06 15:33 ?107次閱讀
    高頻工業(yè)RFID<b class='flag-5'>讀寫器</b>

    【技術(shù)案例】Qt 環(huán)境部署 - Ubuntu 篇

    什么是Qt?Qt是一個(gè)跨平臺(tái)C++圖形用戶界面應(yīng)用程序開(kāi)發(fā)框架,可構(gòu)建高性能的桌面、移動(dòng)及Web應(yīng)用程序
    的頭像 發(fā)表于 04-16 17:17 ?281次閱讀
    【技術(shù)案例】<b class='flag-5'>Qt</b> 環(huán)境部署 - Ubuntu 篇

    RFID讀寫器哪種性價(jià)比高?RFID讀寫器哪家做的比較好

    在探討RFID讀寫器性價(jià)比及品牌優(yōu)劣時(shí),我們不得不將目光聚焦于行業(yè)內(nèi)的佼佼者,遠(yuǎn)望谷與遠(yuǎn)景達(dá)無(wú)疑是兩顆璀璨的明星。這兩家企業(yè)不僅在國(guó)內(nèi)RFID及物聯(lián)網(wǎng)領(lǐng)域享有盛譽(yù),更以其卓越的技術(shù)實(shí)力、豐富的產(chǎn)品線
    的頭像 發(fā)表于 01-14 15:38 ?473次閱讀
    RFID<b class='flag-5'>讀寫器</b>哪種性價(jià)比高?RFID<b class='flag-5'>讀寫器</b>哪家做的比較好

    制鞋線體去毛刺工藝段現(xiàn)場(chǎng)RFID讀寫器進(jìn)行數(shù)據(jù)傳輸應(yīng)用

    在制鞋廠的去毛刺工藝段,RFID標(biāo)簽被固定在鞋子上,讀寫器則安裝在生產(chǎn)線上。當(dāng)鞋子經(jīng)過(guò)讀寫器時(shí),讀寫器會(huì)迅速讀取標(biāo)簽中的信息,并將數(shù)據(jù)傳輸給管理系統(tǒng)。
    的頭像 發(fā)表于 01-10 15:03 ?286次閱讀

    基于QT開(kāi)發(fā)國(guó)產(chǎn)主板終端桌面程序 高效、穩(wěn)定、跨平臺(tái)的解決方案

    開(kāi)發(fā)者們面臨的一個(gè)重要挑戰(zhàn)。本文將介紹如何基于QT框架,開(kāi)發(fā)適用于國(guó)產(chǎn)主板的終端桌面程序,并探討其優(yōu)勢(shì)和應(yīng)用場(chǎng)景。 QT是一個(gè)跨平臺(tái)的
    的頭像 發(fā)表于 01-08 15:34 ?681次閱讀

    USB免驅(qū)全協(xié)議IC讀寫器 QT程序開(kāi)發(fā)

    ? 讀取15693卡,IC讀卡如下入所示: 15693卡片,通常指的是符合ISO/IEC 15693標(biāo)準(zhǔn)的非接觸式智能卡或RFID卡。以下是對(duì)15693卡片的詳細(xì)介紹: 一、基本概述 15693
    的頭像 發(fā)表于 12-30 17:42 ?424次閱讀
    USB免驅(qū)全協(xié)議<b class='flag-5'>IC</b>卡<b class='flag-5'>讀寫器</b> <b class='flag-5'>QT</b><b class='flag-5'>程序</b><b class='flag-5'>開(kāi)發(fā)</b>

    手持式RFID讀寫器可以當(dāng)pda手持終端用嗎

    隨著科技的不斷進(jìn)步,手持式RFID讀寫器作為一種新興的便攜式讀寫器,逐漸在各行各業(yè)中發(fā)揮著重要作用。而在很多場(chǎng)景下,手持式RFID讀寫器是否能替代傳統(tǒng)的PDA(數(shù)據(jù)采集終端)手持終端也成為了一個(gè)備受
    的頭像 發(fā)表于 12-05 14:58 ?491次閱讀
    手持式RFID<b class='flag-5'>讀寫器</b>可以當(dāng)pda手持終端用嗎

    超高頻讀寫器究竟是什么,能做什么?一文讀懂!

    在物聯(lián)網(wǎng)技術(shù)日新月異的今天,超高頻讀寫器作為射頻識(shí)別(RFID)技術(shù)的重要組成部分,正逐漸滲透到我們生活的各個(gè)領(lǐng)域。那么,超高頻讀寫器究竟是什么?它又能做些什么呢?本文將帶您一探究竟。一、超高頻
    的頭像 發(fā)表于 10-23 14:41 ?612次閱讀
    超高頻<b class='flag-5'>讀寫器</b>究竟是什么,能做什么?一文讀懂!

    工業(yè)制造行業(yè)的RFID讀寫器形狀大小如何選型

    在工業(yè)制造行業(yè),RFID讀寫器的形狀和大小選型主要取決于具體的應(yīng)用場(chǎng)景、工作環(huán)境、安裝條件以及讀寫需求。以下是一些關(guān)鍵的選型因素和建議:
    的頭像 發(fā)表于 10-16 10:24 ?488次閱讀
    工業(yè)制造行業(yè)的RFID<b class='flag-5'>讀寫器</b>形狀大小如何選型

    巴魯夫rfid讀頭國(guó)產(chǎn)平替版——高頻RFID讀寫器

    隨著RFID技術(shù)的不斷發(fā)展,國(guó)內(nèi)RFID企業(yè)的數(shù)量也在不斷地變多,國(guó)產(chǎn)RFID讀寫器的質(zhì)量也越來(lái)越高。具有著價(jià)格實(shí)惠、質(zhì)量可靠等特點(diǎn),成為了可平替國(guó)外RFID產(chǎn)品的首要選擇。健永科技的高頻RFID讀寫器JY-H830,是一款可平替巴魯夫rfid讀頭的國(guó)產(chǎn)RFID
    的頭像 發(fā)表于 10-10 16:05 ?799次閱讀
    巴魯夫rfid讀頭國(guó)產(chǎn)平替版——高頻RFID<b class='flag-5'>讀寫器</b>

    使用TRF7970A的NFC/HF RFID讀寫器

    電子發(fā)燒友網(wǎng)站提供《使用TRF7970A的NFC/HF RFID讀寫器.pdf》資料免費(fèi)下載
    發(fā)表于 09-18 14:42 ?0次下載
    使用TRF7970A的NFC/HF RFID<b class='flag-5'>讀寫器</b>

    嵌入式QT常見(jiàn)開(kāi)發(fā)方式有哪些?

    嵌入式QT常見(jiàn)開(kāi)發(fā)方式有哪些? 嵌入式工程師在學(xué)習(xí)和使用Qt進(jìn)行開(kāi)發(fā)時(shí),常見(jiàn)的幾種開(kāi)發(fā)方式包括: 1.
    發(fā)表于 08-12 10:05

    藍(lán)牙RFID讀寫器智慧畜牧芯片掃描儀JY-U706 #RFID #手持機(jī) #RFID讀寫器

    RFID讀寫器
    健永科技
    發(fā)布于 :2024年07月19日 15:26:13

    涉密領(lǐng)域好幫手-RFID GJB固定式讀寫器

    RFID GJB固定式讀寫器以其高安全性、耐用堅(jiān)固、高性能參數(shù)和多協(xié)議兼容等特點(diǎn),成為軍事領(lǐng)域和涉密領(lǐng)域的理想選擇。RFID GJB固定式讀寫器將在更多領(lǐng)域展現(xiàn)其獨(dú)特的魅力,并逐漸實(shí)現(xiàn)成為各領(lǐng)域中不可或缺的重要設(shè)備。
    的頭像 發(fā)表于 06-24 15:29 ?861次閱讀
    涉密領(lǐng)域好幫手-RFID GJB固定式<b class='flag-5'>讀寫器</b>

    RFID讀寫器選擇指南:專家解答您的疑惑

    一芯未來(lái)在這些普通的RFID讀寫器基礎(chǔ)上,自主研發(fā)、生產(chǎn)、銷售的超高頻 RFID國(guó)軍標(biāo)讀寫器,外觀小巧,結(jié)構(gòu)堅(jiān)固可靠,采用防水、防震及寬溫度適應(yīng)范圍設(shè)計(jì)。在軍事領(lǐng)域具有更廣泛的應(yīng)用前景和潛力,為部隊(duì)提供了高效、可靠的物資和人員管理解決方案。
    的頭像 發(fā)表于 06-14 16:40 ?956次閱讀
    RFID<b class='flag-5'>讀寫器</b>選擇指南:專家解答您的疑惑
    主站蜘蛛池模板: 青青热久久综合网伊人 | 综合色中色 | 亚洲日产2020乱码草莓毕 | 新版孕妇bbwbbwbbw | 亚洲国产精品综合久久一线 | 96精品视频| 国产学生在线播放精品视频 | 无限资源在线看影院免费观看 | 亚洲精品拍拍央视网出文 | 久久免费高清 | 春暖花开 性 欧洲 | 日本wwwhdsex69| 99婷婷久久精品国产一区二区 | 伊人影院综合网 | 羞羞答答的免费视频在线观看 | 欧美性色生活片天天看99顶级 | 99久久精品国产交换 | 亚洲成人网导航 | 四虎国产精品高清在线观看 | 亚洲国产高清视频在线观看 | 芭乐视频网页版在线观看 | 亚洲AV 无码AV 中文字幕 | 校园高h肉耽文 | 日本亚洲精品无码区国产电影 | 99热久久视频只有精品6国产 | 3344永久在线观看视频免费 | 久久不射视频 | 艳照门在线观看 | 国产精品久久大陆 | 在线播放免费人成视频 | 我们中文在线观看免费完整版 | 亚洲黄色高清视频 | 亚洲AV天堂无码麻豆电影 | FERRCHINA内入内射 | 中文字幕1| 久久精品国产首叶 | 一起碰一起噜一起草视频 | 午夜勾魂曲 | 亚洲精品国偷拍自产在线观看蜜臀 | 一个人看的HD免费高清视频 | 人妻中文字幕无码久久AV爆 |

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品