From fe8b9d6161b1786b8a7ce17f75b814fc6c20c576 Mon Sep 17 00:00:00 2001 From: wh201906 Date: Sun, 3 May 2020 00:14:49 +0800 Subject: [PATCH] Complete Mifare Simulate function --- module/mifare.cpp | 6 ++++-- ui/mf_sim_simdialog.cpp | 16 +++++++++++++++- ui/mf_sim_simdialog.h | 8 +++++++- ui/mf_sim_simdialog.ui | 20 +++++++++++++++++++- 4 files changed, 45 insertions(+), 5 deletions(-) diff --git a/module/mifare.cpp b/module/mifare.cpp index fe0d56d..1817ad3 100644 --- a/module/mifare.cpp +++ b/module/mifare.cpp @@ -564,8 +564,10 @@ void Mifare::wipeE() void Mifare::simulate() { - MF_Sim_simDialog dialog; - dialog.exec(); + MF_Sim_simDialog dialog(cardType.type); + connect(&dialog, &MF_Sim_simDialog::sendCMD, util, &Util::execCMD); + if(dialog.exec() == QDialog::Accepted) + ui->funcTab->setCurrentIndex(1); } diff --git a/ui/mf_sim_simdialog.cpp b/ui/mf_sim_simdialog.cpp index 356239b..c0ba180 100644 --- a/ui/mf_sim_simdialog.cpp +++ b/ui/mf_sim_simdialog.cpp @@ -1,11 +1,12 @@ #include "mf_sim_simdialog.h" #include "ui_mf_sim_simdialog.h" -MF_Sim_simDialog::MF_Sim_simDialog(QWidget *parent) : +MF_Sim_simDialog::MF_Sim_simDialog(int cardType, QWidget *parent) : QDialog(parent), ui(new Ui::MF_Sim_simDialog) { ui->setupUi(this); + this->cardType = cardType; } MF_Sim_simDialog::~MF_Sim_simDialog() @@ -50,3 +51,16 @@ void MF_Sim_simDialog::on_fBox_clicked(bool checked) ui->xBox->setEnabled(false); } } + +void MF_Sim_simDialog::on_buttonBox_accepted() +{ + QString paras; + paras += (ui->uBox->isChecked() ? "u " + ui->uEdit->text() + " " : ""); + paras += (ui->nBox->isChecked() ? "n " + ui->nEdit->text() + " " : ""); + paras += (ui->iBox->isChecked() ? "i " : ""); + paras += (ui->xBox->isChecked() ? "x " : ""); + paras += (ui->eBox->isChecked() ? "e " : ""); + paras += (ui->fBox->isChecked() ? "f " + ui->fEdit->text() + " " : ""); + paras += (ui->rBox->isChecked() ? "r " : ""); + emit sendCMD(QString("hf mf sim ") + "*" + QString::number(cardType) + " " + paras.trimmed()); +} diff --git a/ui/mf_sim_simdialog.h b/ui/mf_sim_simdialog.h index 84be8d2..7fa53a1 100644 --- a/ui/mf_sim_simdialog.h +++ b/ui/mf_sim_simdialog.h @@ -2,6 +2,7 @@ #define MF_SIM_SIMDIALOG_H #include +#include namespace Ui { @@ -13,7 +14,7 @@ class MF_Sim_simDialog : public QDialog Q_OBJECT public: - explicit MF_Sim_simDialog(QWidget *parent = nullptr); + explicit MF_Sim_simDialog(int cardType, QWidget *parent = nullptr); ~MF_Sim_simDialog(); private slots: @@ -23,6 +24,11 @@ private slots: private: Ui::MF_Sim_simDialog *ui; + int cardType; +signals: + void sendCMD(QString cmd); +private slots: + void on_buttonBox_accepted(); }; #endif // MF_SIM_SIMDIALOG_H diff --git a/ui/mf_sim_simdialog.ui b/ui/mf_sim_simdialog.ui index d66bcc0..97b4edf 100644 --- a/ui/mf_sim_simdialog.ui +++ b/ui/mf_sim_simdialog.ui @@ -7,7 +7,7 @@ 0 0 461 - 351 + 456 @@ -46,6 +46,12 @@ 0 + + + 100 + 16777215 + + @@ -90,6 +96,12 @@ 0 + + + 100 + 16777215 + + @@ -236,6 +248,12 @@ 0 + + + 100 + 16777215 + +