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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

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

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

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

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

讀取15693卡,IC讀卡器如下入所示:

wKgZO2dyUOaARt_lAAF-jDWrM_U145.png

15693卡片,通常指的是符合ISO/IEC 15693標(biāo)準(zhǔn)的非接觸式智能卡或RFID卡。以下是對(duì)15693卡片的詳細(xì)介紹:

一、基本概述
15693卡片是基于ISO/IEC 15693國(guó)際標(biāo)準(zhǔn)設(shè)計(jì)的非接觸式智能卡,該標(biāo)準(zhǔn)定義了用于非接觸式集成電路卡(即RFID卡)的物理特性、初始化及防沖突方法、傳輸協(xié)議以及傳輸規(guī)范。這種卡片通常用于門(mén)禁系統(tǒng)、圖書(shū)管理、身份識(shí)別、物流追蹤等多種應(yīng)用場(chǎng)景。

二、技術(shù)特點(diǎn)
工作頻率:15693卡片通常工作在13.56MHz的高頻頻段,這是RFID技術(shù)中常用的一個(gè)頻段,具有較遠(yuǎn)的讀寫(xiě)距離和較高的數(shù)據(jù)傳輸速率。
存儲(chǔ)容量:根據(jù)卡片類(lèi)型和芯片的不同,15693卡片的存儲(chǔ)容量會(huì)有所差異。一些卡片可能具有較小的存儲(chǔ)容量,如幾百字節(jié),而一些高級(jí)卡片則可能具有更大的存儲(chǔ)容量,以滿(mǎn)足更復(fù)雜的應(yīng)用需求。
數(shù)據(jù)傳輸:15693卡片采用非接觸式的數(shù)據(jù)傳輸方式,讀寫(xiě)器通過(guò)發(fā)射電磁波來(lái)激活卡片,并與卡片進(jìn)行數(shù)據(jù)傳輸。這種傳輸方式具有快速、準(zhǔn)確、可靠的特點(diǎn)。
安全性:15693卡片通常具有多種安全機(jī)制,如密碼保護(hù)、數(shù)據(jù)加密等,以確保卡片數(shù)據(jù)的安全性和完整性。這些安全機(jī)制可以有效地防止非法讀寫(xiě)和數(shù)據(jù)篡改。
三、應(yīng)用場(chǎng)景
門(mén)禁系統(tǒng):15693卡片可以作為門(mén)禁系統(tǒng)的身份識(shí)別工具,用于控制進(jìn)出特定區(qū)域的權(quán)限。
圖書(shū)管理:在圖書(shū)館中,15693卡片可以用于借閱證、讀者證等,方便讀者借閱圖書(shū)和管理個(gè)人信息
身份識(shí)別:15693卡片還可以用于身份識(shí)別,如企業(yè)員工證、學(xué)生證等,用于驗(yàn)證身份和權(quán)限。
物流追蹤:在物流領(lǐng)域,15693卡片可以用于追蹤貨物的運(yùn)輸狀態(tài)和位置信息,提高物流管理的效率和準(zhǔn)確性。
四、市場(chǎng)現(xiàn)狀與發(fā)展趨勢(shì)
目前,隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展和普及,15693卡片作為RFID技術(shù)的重要組成部分,在各個(gè)領(lǐng)域得到了廣泛的應(yīng)用。未來(lái),隨著技術(shù)的不斷進(jìn)步和應(yīng)用場(chǎng)景的不斷拓展,15693卡片的市場(chǎng)需求將會(huì)持續(xù)增長(zhǎng)。同時(shí),隨著人們對(duì)數(shù)據(jù)安全性的要求越來(lái)越高,15693卡片的安全機(jī)制也將不斷完善,以更好地滿(mǎn)足市場(chǎng)需求。

綜上所述,15693卡片作為一種重要的非接觸式智能卡或RFID卡,在各個(gè)領(lǐng)域具有廣泛的應(yīng)用前景和發(fā)展?jié)摿Α?/p>

QT小程序頁(yè)面:

wKgZO2dyabeAckGZAAC-Wk95-ow300.png

QT代碼:

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
 
void MainWindow::on_pb_beep_clicked()
{
    if(!checkdllos()){return;}      //判斷運(yùn)行目錄內(nèi)動(dòng)態(tài)庫(kù)文件是否存在
 
    unsigned char status;
    status = mypcdbeep(30);
    if(status==0){
    }
    else
    {
        disperrinf(status);
    }
}
 
 
void MainWindow::on_pb_getdevnum_clicked()
{
    if(!checkdllos()){return;}      //判斷運(yùn)行目錄內(nèi)動(dòng)態(tài)庫(kù)文件是否存在
 
    unsigned char devicenumber[4];
    unsigned char status;
    status = mypcdgetdevicenumber(devicenumber);
    if(status==0){
        mypcdbeep(30);
        QMessageBox::information(NULL, "提示", QString::asprintf("設(shè)備編號(hào):%03d-%03d-%03d-%03d", devicenumber[0],devicenumber[1],devicenumber[2],devicenumber[3]));
    }
    else
    {
        disperrinf(status);
    }
}
 
 
void MainWindow::on_pb_easyread_clicked()
{
    if(!checkdllos()){return;}      //判斷運(yùn)行目錄內(nèi)動(dòng)態(tài)庫(kù)文件是否存在
 
    unsigned char status;
    unsigned char ctrlword=0x00;    //讀任何卡,不需指定卡號(hào),讀完后不靜止該卡,可賦值NEEDSERIAL及NEEDHALT的組合模式,或?yàn)?
    unsigned char afi;
    unsigned char myuid[8];
    unsigned char startblock;
    unsigned char blocknum;
    unsigned char piccdatabuf[255];
 
    ui->lineEdit_uid->setText("");
    ui->plainTextEdit_data->setPlainText("");
 
    QString afistr=ui->lineEdit_afi->text().trimmed();
    if(afistr.length()==2 and checkinput(afistr)){
        bool ok;
        afi=afistr.toInt(&ok,16);
    }else{
        QMessageBox::critical(NULL, "提示","請(qǐng)輸入2位16進(jìn)制AFI!");
        ui->lineEdit_afi->setFocus();
        return;
    }
 
    startblock=ui->spinBox_star->value();
    blocknum=ui->spinBox_num->value();
 
    if(blocknum>12){
        QMessageBox::critical(NULL, "提示","一次最多只能讀取12塊數(shù)據(jù)!");
        return;
    }
 
    status = myiso15693readex(ctrlword,afi,startblock,blocknum,myuid,piccdatabuf);
    if(status==0){
        mypcdbeep(30);
        QString uidstr="";
        for(int i=0;ilineEdit_uid->setText(uidstr);
        QString datastr="";
        for(int i=1;i<=piccdatabuf[0];i++){
            datastr=datastr+QString::asprintf("%02X ", piccdatabuf[i]);
        }
        ui-?>plainTextEdit_data->setPlainText(datastr);
        QMessageBox::information(NULL, "提示", "讀卡成功,卡片UID:"+uidstr);
    }
    else
    {
        if(status==46){
            QString uidstr="";
            for(int i=0;ilineEdit_uid->setText(uidstr);
            QMessageBox::information(NULL, "提示", "本次讀取的塊數(shù)超過(guò)卡片允許的一次讀取最多塊數(shù),讀取卡片UID:"+uidstr);
        }else{
            disperrinf(status);
        }
    }
}
 
 
void MainWindow::on_pb_easywrite_clicked()
{
    if(!checkdllos()){return;}      //判斷運(yùn)行目錄內(nèi)動(dòng)態(tài)庫(kù)文件是否存在
 
    unsigned char status;
    unsigned char ctrlword=0x00;    //讀任何卡,不需指定卡號(hào),讀完后不靜止該卡,可賦值NEEDSERIAL及NEEDHALT的組合模式,或?yàn)?
    unsigned char afi=0x00;
    unsigned char myuid[8];
    unsigned char startblock;
    unsigned char blocknum;
    unsigned char piccdatabuf[255];
    unsigned char eachblocksize;
 
    ui->lineEdit_uid->setText("");
 
    QString afistr=ui->lineEdit_afi->text().trimmed();
    if(afistr.length()==2 and checkinput(afistr)){
        bool ok;
        afi=afistr.toInt(&ok,16);
    }else{
        QMessageBox::critical(NULL, "提示","請(qǐng)輸入2位16進(jìn)制AFI!");
        return;
    }
 
    startblock=ui->spinBox_star->value();
    blocknum=ui->spinBox_num->value();
 
    if(blocknum>12){
        QMessageBox::critical(NULL, "提示","一次最多只能寫(xiě)12塊數(shù)據(jù)!");
        return;
    }
 
    switch(ui->comboBox_cardtype->currentIndex()){
    case 0:
        eachblocksize=4;
        break;
    case 1:
        eachblocksize=8;
        break;
    default:
        eachblocksize=32;
        break;
    }
 
    piccdatabuf[0]=blocknum*eachblocksize;
 
    //檢測(cè)寫(xiě)卡數(shù)據(jù)
    QChar ch;
    QString writinf = ui->plainTextEdit_data->toPlainText().trimmed();
    QString writinf1 = "";
    int m = 1;
    int n = 0;
    char s;
 
    if(writinf.length()plainTextEdit_data->setFocus();
        return;
    }
 
    ch = writinf.at(0);
    s = writinf.at(0).toLatin1();
    for(int i=0; i=49){
                    break;
                }
            }
        }
        else if(s == ' '){
 
        }
        else
        {
            QMessageBox::critical(NULL, "提示", "寫(xiě)卡數(shù)據(jù)錯(cuò)誤,請(qǐng)輸入正確的16進(jìn)制數(shù)據(jù)!");
            ui->plainTextEdit_data->setFocus();
            return;
        }
    }
 
    if(m<=piccdatabuf[0]){
        QMessageBox::critical(NULL, "提示", "寫(xiě)卡數(shù)據(jù)不足,請(qǐng)輸入"+QString::asprintf("錯(cuò)誤代碼:%d", piccdatabuf[0])+"個(gè)字節(jié)16進(jìn)制數(shù)據(jù)!");
        ui-?>plainTextEdit_data->setFocus();
        return;
    }
 
    status = myiso15693writeex(ctrlword,afi,startblock,blocknum,myuid,piccdatabuf);
 
    if(status==0){
        mypcdbeep(30);
        QString uidstr="";
        for(int i=0;ilineEdit_uid->setText(uidstr);
        QMessageBox::information(NULL, "提示", "寫(xiě)卡成功,卡片UID:"+uidstr);
    }
    else
    {
        if(status==45){
            QString uidstr="";
            for(int i=0;ilineEdit_uid->setText(uidstr);
            QMessageBox::information(NULL, "提示", "每塊字節(jié)數(shù)選錯(cuò),卡片UID:"+uidstr);
        }else{
            disperrinf(status);
        }
    }
}
 
 
void MainWindow::on_pb_search1_clicked()
{
    if(!checkdllos()){return;}      //判斷運(yùn)行目錄內(nèi)動(dòng)態(tài)庫(kù)文件是否存在
 
    unsigned char status;
    unsigned char flags;
    unsigned char afi;
    unsigned char maskuid[8];   //卡號(hào)掩碼,一般可以不理這個(gè)參數(shù)
    unsigned char masklen;
    unsigned char uid[9];
 
    ui->lineEdit_uid->setText("");
 
    ui->lineEdit_flags->setText("36");
    flags=54;
 
    QString afistr=ui->lineEdit_afi->text().trimmed();
    if(afistr.length()==2 and checkinput(afistr)){
        bool ok;
        afi=afistr.toInt(&ok,16);
    }else{
        QMessageBox::critical(NULL, "提示","請(qǐng)輸入2位16進(jìn)制AFI!");
        return;
    }
 
    QString masklstr=ui->lineEdit_masklen->text().trimmed();
    if(masklstr.length()==2 and checkinput(masklstr)){
        bool ok;
        masklen=masklstr.toInt(&ok,16);
    }else{
        QMessageBox::critical(NULL, "提示","請(qǐng)輸入2位16進(jìn)制掩碼長(zhǎng)度!");
        return;
    }
 
    status = myiso15693inventory(flags, afi, masklen, maskuid, uid);
    if(status==0){
        mypcdbeep(30);
        ui->lineEdit_dsfid->setText(QString::asprintf("%02X", uid[0]));
        QString uidstr="";
        for(int i=1;ilineEdit_uid->setText(uidstr);
    }else{
        disperrinf(status);
    }
}
 
 
void MainWindow::on_pb_searchall_clicked()
{
    if(!checkdllos()){return;}      //判斷運(yùn)行目錄內(nèi)動(dòng)態(tài)庫(kù)文件是否存在
 
    unsigned char status;
    unsigned char flags;
    unsigned char afi;
    unsigned char maskuid[8];   //卡號(hào)掩碼,一般可以不理這個(gè)參數(shù)
    unsigned char masklen;
    unsigned char uid[9];
    unsigned char revlen[1];
 
    ui->lineEdit_uid->setText("");
    ui->comboBox_uid->clear();
 
    ui->lineEdit_flags->setText("16");
    flags=22;
 
    QString afistr=ui->lineEdit_afi->text().trimmed();
    if(afistr.length()==2 and checkinput(afistr)){
        bool ok;
        afi=afistr.toInt(&ok,16);
    }else{
        QMessageBox::critical(NULL, "提示","請(qǐng)輸入2位16進(jìn)制AFI!");
        ui->lineEdit_afi->setFocus();
        return;
    }
 
    QString masklstr=ui->lineEdit_masklen->text().trimmed();
    if(masklstr.length()==2 and checkinput(masklstr)){
        bool ok;
        masklen=masklstr.toInt(&ok,16);
    }else{
        QMessageBox::critical(NULL, "提示","請(qǐng)輸入2位16進(jìn)制掩碼長(zhǎng)度!");
        return;
    }
 
    status = myiso15693inventory16(flags, afi, masklen, maskuid,revlen, uid);
    if(status==0){
        mypcdbeep(30);
        ui->lineEdit_dsfid->setText(QString::asprintf("%02X", uid[0]));
        QString uidstr="";
        for(int i=1;ilineEdit_uid->setText(uidstr);
 
//        QStringList strlist;
 
        int j=0;
        while (jcomboBox_uid->addItem(cardinfstr);
            j=j+9;
        }
//        model = new QStringListModel(strlist);      //QStringListModel將QStringList包裝了起來(lái)
//        ui->listView->setModel(model);              //填充到listview
//        ui->listView->setEditTriggers(QAbstractItemView::NoEditTriggers);  //設(shè)置item內(nèi)容不可編輯
    }else{
        disperrinf(status);
    }
}
 
 
void MainWindow::on_pb_quiet_clicked()
{
    if(!checkdllos()){return;}      //判斷運(yùn)行目錄內(nèi)動(dòng)態(tài)庫(kù)文件是否存在
 
    unsigned char status;
    unsigned char flags;
    unsigned char uid[8];
 
    ui->lineEdit_flags->setText("22");
    flags=34;
 
    QString uidstr=ui->lineEdit_uid->text().trimmed();
    if(uidstr.length()==16 and checkinput(uidstr)){
        bool ok;
        for(int i=0;ilineEdit_uid->setFocus();
        return;
    }
 
    status = myiso15693stayquiet(flags, uid);
    if(status==0){
        mypcdbeep(30);
        QMessageBox::information(NULL, "提示", "操作成功,卡片已靜止!");
    }else{
        if(status==40){
            QMessageBox::critical(NULL, "提示","使卡進(jìn)入靜止(Quiet)狀態(tài)失敗!");
        }else{
            disperrinf(status);
        }
    }
}
 
 
void MainWindow::on_pb_select_clicked()
{
    if(!checkdllos()){return;}      //判斷運(yùn)行目錄內(nèi)動(dòng)態(tài)庫(kù)文件是否存在
 
    unsigned char status;
    unsigned char flags;
    unsigned char uid[8];
 
    ui->lineEdit_flags->setText("22");
    flags=34;
 
    QString uidstr=ui->lineEdit_uid->text().trimmed();
    if(uidstr.length()==16 and checkinput(uidstr)){
        bool ok;
        for(int i=0;ilineEdit_uid->setFocus();
        return;
    }
 
    status = myiso15693Select(flags, uid);
    if(status==0){
        mypcdbeep(30);
        QMessageBox::information(NULL, "提示", "操作成功,卡片已在選中狀態(tài)!");
    }else{
        if(status==41){
            QMessageBox::critical(NULL, "提示","使卡進(jìn)入選中狀態(tài)失敗!");
        }else{
            disperrinf(status);
        }
    }
}
 
 
void MainWindow::on_pb_restare_clicked()
{
    if(!checkdllos()){return;}      //判斷運(yùn)行目錄內(nèi)動(dòng)態(tài)庫(kù)文件是否存在
 
    unsigned char status;
    unsigned char flags;
    unsigned char uid[8];
 
    ui->lineEdit_flags->setText("22");
    flags=34;
 
    QString uidstr=ui->lineEdit_uid->text().trimmed();
    if(uidstr.length()==16 and checkinput(uidstr)){
        bool ok;
        for(int i=0;ilineEdit_uid->setFocus();
        return;
    }
 
    status = myiso15693resettoready(flags, uid);
    if(status==0){
        mypcdbeep(30);
        QMessageBox::information(NULL, "提示", "操作成功,卡片已從靜止中重起到準(zhǔn)備狀態(tài)!");
    }else{
        if(status==42){
            QMessageBox::critical(NULL, "提示","讓卡從靜止中重起準(zhǔn)備失敗!");
        }else{
            disperrinf(status);
        }
    }
}
 
 
void MainWindow::on_pb_afi_clicked()
{
    if(!checkdllos()){return;}      //判斷運(yùn)行目錄內(nèi)動(dòng)態(tài)庫(kù)文件是否存在
 
    unsigned char status;
    unsigned char flags;
    unsigned char afi;
    unsigned char uid[8];
 
    ui->lineEdit_flags->setText("22");
    flags=34;
 
    QString afistr=ui->lineEdit_afi->text().trimmed();
    if(afistr.length()==2 and checkinput(afistr)){
        bool ok;
        afi=afistr.toInt(&ok,16);
    }else{
        QMessageBox::critical(NULL, "提示","請(qǐng)輸入2位16進(jìn)制AFI!");
        ui->lineEdit_afi->setFocus();
        return;
    }
 
    QString uidstr=ui->lineEdit_uid->text().trimmed();
    if(uidstr.length()==16 and checkinput(uidstr)){
        bool ok;
        for(int i=0;ilineEdit_uid->setFocus();
        return;
    }
 
    status = myiso15693writeafi(flags, afi,uid);
    if(status==0){
        mypcdbeep(30);
        QMessageBox::information(NULL, "提示", "寫(xiě)AIF操作成功!");
    }else{
        if(status==46){
            QMessageBox::critical(NULL, "提示","寫(xiě)AIF操作失敗!");
        }else{
            disperrinf(status);
        }
    }
}
 
 
void MainWindow::on_pb_dsfid_clicked()
{
    if(!checkdllos()){return;}      //判斷運(yùn)行目錄內(nèi)動(dòng)態(tài)庫(kù)文件是否存在
 
    unsigned char status;
    unsigned char flags;
    unsigned char dsfid;
    unsigned char uid[8];
 
    ui->lineEdit_flags->setText("22");
    flags=34;
 
    QString dsfidstr=ui->lineEdit_dsfid->text().trimmed();
    if(dsfidstr.length()==2 and checkinput(dsfidstr)){
        bool ok;
        dsfid=dsfidstr.toInt(&ok,16);
    }else{
        QMessageBox::critical(NULL, "提示","請(qǐng)輸入2位16進(jìn)制dsfid!");
        ui->lineEdit_dsfid->setFocus();
        return;
    }
 
    QString uidstr=ui->lineEdit_uid->text().trimmed();
    if(uidstr.length()==16 and checkinput(uidstr)){
        bool ok;
        for(int i=0;ilineEdit_uid->setFocus();
        return;
    }
 
    status = myiso15693writedsfid(flags, dsfid,uid);
    if(status==0){
        mypcdbeep(30);
        QMessageBox::information(NULL, "提示", "寫(xiě)DSFID操作成功!");
    }else{
        if(status==41){
            QMessageBox::critical(NULL, "提示","寫(xiě)DSFID操作失敗!");
        }else{
            disperrinf(status);
        }
    }
}
 
 
void MainWindow::on_pb_systeminf_clicked()
{
    if(!checkdllos()){return;}      //判斷運(yùn)行目錄內(nèi)動(dòng)態(tài)庫(kù)文件是否存在
 
    unsigned char status;
    unsigned char flags;
    unsigned char uid[8];
    unsigned char revlen[1];
    unsigned char revbuf[255];
 
    ui->plainTextEdit_data->setPlainText("");
 
    ui->lineEdit_flags->setText("22");
    flags=34;
 
    QString uidstr=ui->lineEdit_uid->text().trimmed();
    if(uidstr.length()==16 and checkinput(uidstr)){
        bool ok;
        for(int i=0;ilineEdit_uid->setFocus();
        return;
    }
 
    status = myiso15693readinfo(flags, uid,revlen,revbuf);
    if(status==0){
        mypcdbeep(30);
        int j=0;
        QString cardinfstr="";
        while (jplainTextEdit_data->setPlainText(cardinfstr);
        QMessageBox::information(NULL, "提示", "讀取卡片系統(tǒng)信息成功!");
    }else{
        disperrinf(status);
    }
}
 
 
void MainWindow::on_pb_secure_clicked()
{
    if(!checkdllos()){return;}      //判斷運(yùn)行目錄內(nèi)動(dòng)態(tài)庫(kù)文件是否存在
 
    unsigned char status;
    unsigned char flags;
    unsigned char startblock;
    unsigned char blocknum;
    unsigned char uid[8];
    unsigned char revlen[1];
    unsigned char revbuf[255];
 
    ui->plainTextEdit_data->setPlainText("");
 
    ui->lineEdit_flags->setText("22");
    flags=34;
 
    startblock=ui->spinBox_star->value();
    blocknum=ui->spinBox_num->value();
 
    QString uidstr=ui->lineEdit_uid->text().trimmed();
    if(uidstr.length()==16 and checkinput(uidstr)){
        bool ok;
        for(int i=0;ilineEdit_uid->setFocus();
        return;
    }
 
    status = myiso15693readsecuritystate(flags, startblock,blocknum,uid,revlen,revbuf);
    if(status==0){
        mypcdbeep(30);
        int j=0;
        QString cardinfstr="";
        while (jplainTextEdit_data->setPlainText(cardinfstr);
        QMessageBox::information(NULL, "提示", "讀取卡片系統(tǒng)信息成功!");
    }else{
        disperrinf(status);
    }
}
 
 
void MainWindow::on_pb_lockafi_clicked()
{
    if(!checkdllos()){return;}      //判斷運(yùn)行目錄內(nèi)動(dòng)態(tài)庫(kù)文件是否存在
 
    int answ=QMessageBox::question (this, "警告", "你確定要鎖定卡片的AFI嗎 ?鎖定后不可以再次修改!", QMessageBox::Ok, QMessageBox::Cancel);
    if (answ ==1024){
        unsigned char status;
        unsigned char flags;
        unsigned char uid[8];
 
        ui->lineEdit_flags->setText("22");
        flags=34;
 
        QString uidstr=ui->lineEdit_uid->text().trimmed();
        if(uidstr.length()==16 and checkinput(uidstr)){
            bool ok;
            for(int i=0;ilineEdit_uid->setFocus();
            return;
        }
 
        status = myiso15693lockafi(flags, uid);
        if(status==0){
            mypcdbeep(30);
            QMessageBox::information(NULL, "提示", "鎖AFI操作成功!");
        }else{
            disperrinf(status);
        }
    }
}
 
 
void MainWindow::on_pb_lockdsfid_clicked()
{
    if(!checkdllos()){return;}      //判斷運(yùn)行目錄內(nèi)動(dòng)態(tài)庫(kù)文件是否存在
 
    int answ=QMessageBox::question (this, "警告", "你確定要鎖定卡片的DSFID嗎 ?鎖定后不可以再次修改!", QMessageBox::Ok, QMessageBox::Cancel);
    if (answ ==1024){
        unsigned char status;
        unsigned char flags;
        unsigned char uid[8];
 
        ui->lineEdit_flags->setText("22");
        flags=34;
 
        QString uidstr=ui->lineEdit_uid->text().trimmed();
        if(uidstr.length()==16 and checkinput(uidstr)){
            bool ok;
            for(int i=0;ilineEdit_uid->setFocus();
            return;
        }
 
        status = myiso15693lockdsfid(flags, uid);
        if(status==0){
            mypcdbeep(30);
            QMessageBox::information(NULL, "提示", "數(shù)據(jù)存儲(chǔ)格式標(biāo)識(shí)DSFID鎖定成功!");
        }else{
            disperrinf(status);
        }
    }
}
 
 
void MainWindow::on_pb_lockdata_clicked()
{
    if(!checkdllos()){return;}      //判斷運(yùn)行目錄內(nèi)動(dòng)態(tài)庫(kù)文件是否存在
 
    int answ=QMessageBox::question (this, "警告", "你確定要鎖定卡片的數(shù)據(jù)塊嗎 ?鎖定后不可以再次修改!", QMessageBox::Ok, QMessageBox::Cancel);
    if (answ ==1024){
        unsigned char status;
        unsigned char flags;
        unsigned char startblock;
        unsigned char uid[8];
 
        ui->lineEdit_flags->setText("22");
        flags=34;
 
        startblock=ui->spinBox_star->value();
 
        QString uidstr=ui->lineEdit_uid->text().trimmed();
        if(uidstr.length()==16 and checkinput(uidstr)){
            bool ok;
            for(int i=0;ilineEdit_uid->setFocus();
            return;
        }
 
        status = myiso15693lockblock(flags,startblock, uid);
        if(status==0){
            mypcdbeep(30);
            QMessageBox::information(NULL, "提示", "數(shù)據(jù)塊鎖定成功!");
        }else{
            disperrinf(status);
        }
    }
}
 
 
void MainWindow::on_pb_read_clicked()
{
    if(!checkdllos()){return;}      //判斷運(yùn)行目錄內(nèi)動(dòng)態(tài)庫(kù)文件是否存在
 
    unsigned char status;
    unsigned char flags;
    unsigned char startblock;
    unsigned char blocknum;
    unsigned char uid[8];
    unsigned char revlen[1];
    unsigned char revbuf[255];
 
    ui->plainTextEdit_data->setPlainText("");
 
    ui->lineEdit_flags->setText("22");
    flags=34;
 
    startblock=ui->spinBox_star->value();
    blocknum=startblock+ui->spinBox_num->value();
 
    QString uidstr=ui->lineEdit_uid->text().trimmed();
    if(uidstr.length()==16 and checkinput(uidstr)){
        bool ok;
        for(int i=0;ilineEdit_uid->setFocus();
        return;
    }
 
    QString blockdata="";
    while (startblocklineEdit_afi->text().trimmed();
    if(afistr.length()==2 and checkinput(afistr)){
         bool ok;
         afi=afistr.toInt(&ok,16);
    }else{
         QMessageBox::critical(NULL, "提示","請(qǐng)輸入2位16進(jìn)制AFI!");
         ui->lineEdit_afi->setFocus();
         return;
    }
 
    QString uidstr=ui->lineEdit_uid->text().trimmed();
    if(uidstr.length()==16 and checkinput(uidstr)){
         for(int i=0;ilineEdit_uid->setFocus();
         return;
    }
 
    if(myiso15693writeuid!=NULL){
        status = myiso15693writeuid(ctrlword,afi,olduid,newuid);
 
        if(status==0){
             mypcdbeep(30);
             QMessageBox::information(NULL, "提示", "寫(xiě)卡成功,卡片UID:"+uidstr);
        }
        else
        {
             if(status==45){
                QMessageBox::critical(NULL, "提示", "寫(xiě)UID失敗,此卡UID不可以改寫(xiě)!");
             }else{
                disperrinf(status);
             }
        }
    }else{
        QMessageBox::critical(NULL, "提示", "myiso15693writeuid函數(shù)未正確載入!");
    }
}
 
審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7950

    瀏覽量

    264860
  • 讀寫(xiě)器
    +關(guān)注

    關(guān)注

    3

    文章

    662

    瀏覽量

    38870
  • Qt
    Qt
    +關(guān)注

    關(guān)注

    1

    文章

    307

    瀏覽量

    37941
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ID讀卡TCP協(xié)議QT程序開(kāi)發(fā)

    ID網(wǎng)絡(luò)讀卡TCP協(xié)議QT程序開(kāi)發(fā)。 TCP(傳輸控制
    的頭像 發(fā)表于 12-31 10:19 ?72次閱讀
    ID讀卡<b class='flag-5'>器</b>TCP<b class='flag-5'>協(xié)議</b><b class='flag-5'>QT</b>小<b class='flag-5'>程序</b><b class='flag-5'>開(kāi)發(fā)</b>

    Android 實(shí)現(xiàn)讀卡讀取各種卡號(hào)的信息

    以超薄便攜USB驅(qū)協(xié)議NFC讀寫(xiě)器為例,開(kāi)發(fā)安卓
    的頭像 發(fā)表于 12-30 15:45 ?76次閱讀
    Android 實(shí)現(xiàn)讀卡<b class='flag-5'>器</b>讀取各種卡號(hào)的信息

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

    第一步:新建一個(gè)qt C++項(xiàng)目 在此需要注意, 名稱(chēng)和路徑不能有中文。 第二步: 添加控件 完成UI布局 IC讀寫(xiě)器讀寫(xiě)IC
    的頭像 發(fā)表于 12-30 14:55 ?50次閱讀
    C++ <b class='flag-5'>QT</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>IC</b><b class='flag-5'>讀寫(xiě)器</b><b class='flag-5'>程序</b>

    QT調(diào)用動(dòng)態(tài)庫(kù)開(kāi)發(fā)IC讀寫(xiě)程序

    ?IC卡特點(diǎn): 1IC的內(nèi)部存儲(chǔ)結(jié)構(gòu)分為16個(gè)扇區(qū),從第0區(qū)到第15區(qū),每個(gè)扇區(qū)有獨(dú)立的密碼和權(quán)限控制字,可作為的密碼和權(quán)限控制字專(zhuān)用獨(dú)立的電子錢(qián)包,每個(gè)扇區(qū)有4個(gè)塊,序號(hào)為第0塊
    的頭像 發(fā)表于 12-30 09:25 ?76次閱讀

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

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

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

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

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

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

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

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

    使用TRF7970A的NFC/HF RFID讀寫(xiě)器

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

    CI520|13.56MHz非接觸式讀寫(xiě)器NFC讀卡芯片(A

    芯片簡(jiǎn)介 1,Ci520 是一個(gè)高度集成的,工作在 13.56 MHz 的非接觸式讀寫(xiě)器芯片,閱讀支持 ISO/IEC 14443 A,可做智能門(mén)鎖、讀手機(jī)模擬(NFC)開(kāi)鎖等應(yīng)用。可pin
    發(fā)表于 09-11 10:35

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

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

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

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

    RFID讀寫(xiě)器選擇指南:專(zhuān)家解答您的疑惑

    一芯未來(lái)在這些普通的RFID讀寫(xiě)器基礎(chǔ)上,自主研發(fā)、生產(chǎn)、銷(xiāo)售的超高頻 RFID國(guó)軍標(biāo)讀寫(xiě)器,外觀小巧,結(jié)構(gòu)堅(jiān)固可靠,采用防水、防震及寬溫度適應(yīng)范圍設(shè)計(jì)。在軍事領(lǐng)域具有更廣泛的應(yīng)用前景和潛力,為部隊(duì)提供了高效、可靠的物資和人員管理解決方案。
    的頭像 發(fā)表于 06-14 16:40 ?632次閱讀
    RFID<b class='flag-5'>讀寫(xiě)器</b>選擇指南:專(zhuān)家解答您的疑惑

    超高頻桌面讀寫(xiě)器功能介紹,為什么要用超高頻RFID讀寫(xiě)器

    超高頻桌面讀寫(xiě)器是一種無(wú)線射頻識(shí)別(RFID)設(shè)備。作為一種高效、準(zhǔn)確的自動(dòng)識(shí)別技術(shù),它可以實(shí)現(xiàn)對(duì)遠(yuǎn)距離范圍內(nèi)的RFID標(biāo)簽進(jìn)行高效讀寫(xiě),無(wú)需接觸或靠近標(biāo)簽,這種超高頻RFID讀寫(xiě)器廣泛應(yīng)用于物流
    的頭像 發(fā)表于 04-16 15:00 ?442次閱讀
    超高頻桌面<b class='flag-5'>讀寫(xiě)器</b>功能介紹,為什么要用超高頻RFID<b class='flag-5'>讀寫(xiě)器</b>?

    Qt上位機(jī)開(kāi)發(fā)實(shí)戰(zhàn)案例

    Qt框架的開(kāi)發(fā)人員能迅速上手和操作。 即使不開(kāi)發(fā)Qt應(yīng)用程序Qt Creator也是一個(gè)
    的頭像 發(fā)表于 03-13 12:31 ?2568次閱讀
    <b class='flag-5'>Qt</b>上位機(jī)<b class='flag-5'>開(kāi)發(fā)</b>實(shí)戰(zhàn)案例
    主站蜘蛛池模板: 亚洲精品视频免费看| 久久伊人电影| 久久成人a毛片免费观看网站| 男欢女爱免费视频| 午夜理伦片免费| 97超碰在线视频 免费| 国产精品第九页| 蜜臀AV色欲A片无码一区| 午夜宅宅伦电影网| av在线色| 久久99精品国产自在自线| 日韩精品一区二区三区色欲AV| 在线观看亚洲免费人成网址 | 亚洲欧美韩国综合色| 爱暖暖1000部免费| 亚洲免费高清视频| 菠萝菠萝蜜高清观看在线| 久久成人午夜电影mp4| 特级做A爰片毛片免费69| 99久久精品国产一区二区三区| 娇妻玩4P被三个男人伺候电影 | 浪荡女天天不停挨CAO日常视| 无码中文字幕热热久久| 9亚洲欧洲免费无码在线| 久久精品国产在热亚洲完整版 | 色99久久久久高潮综合影院| 91在线一区二区| 极品虎白在线观看| 乌克兰10一12x video| xxxx18动漫| 麻花传媒XK在线观看| 日韩精品无码视频一区二区蜜桃| 18禁黄久久久AAA片| 九九黄色大片| 亚洲黄色官网| 国产日韩精品一区二区在线观看| 久久视热频国产这里只有精品23| 袖珍人与大黑人性视频| 光棍天堂在线a| 人妻夜夜爽天天爽三区麻豆AV网站 | 欧美123区|