调整部分样式

This commit is contained in:
2026-05-11 09:11:30 +08:00
parent e40a72cd7c
commit c8a5a121c9
31 changed files with 2763 additions and 660 deletions
+86 -33
View File
@@ -49,6 +49,7 @@
#include <QMetaObject>
#include <QMetaProperty>
#include "rfid/rfidfunction.h"
#include <QElapsedTimer>
#define PRINT_CTRL_ADDR_BASE 0xa400
@@ -3788,7 +3789,7 @@ int DevOp::comWriteRFID_data(int type)
*/
int DevOp::RFIDmarkCardUsedAsync()
int DevOp::RFIDmarkCardUsedAsync(int type)
{
UCHAR Cmd[23] = { 0x01, 0x17, 0xA4, 0x20, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
UCHAR revdata[100];
@@ -3806,6 +3807,19 @@ int DevOp::RFIDmarkCardUsedAsync()
qDebug()<<"Cmd["<<i+6<<"]: "<<Cmd[i+6];
}
if(type == 0) {
Cmd[6] = 0x10;
Cmd[7] = 0x0A;
}
else if(type == 1) {
Cmd[6] = 0x10;
Cmd[7] = 0x0B;
}
else if(type == 2) {
Cmd[6] = 0x10;
Cmd[7] = 0x0C;
}
CheckSumOut(Cmd, Cmd[1]);
QByteArray temp;
QByteArray recResponse;
@@ -3813,23 +3827,35 @@ int DevOp::RFIDmarkCardUsedAsync()
if(comForRFID->isOpen())
{
comForRFID->clear(QSerialPort::Input);
comForRFID->clear(QSerialPort::Output);
comForRFID->disconnect(this);
comForRFID->write(temp);
}
else
{
qDebug()<<"read uart for RFID not open!";
}
MySleep(200);
int n = RFIDReadData.size();
if(n>0)
{
recResponse = RFIDReadData;
RFIDReadData.clear();
QString str;
str.sprintf("%d - %d - %d", recResponse.at(0),recResponse.at(1),recResponse.at(2));
qDebug()<<"写数据到数据块6: "<<str;
QElapsedTimer elapsedTimer;
elapsedTimer.start();
while(comForRFID->bytesAvailable() < 8 && !elapsedTimer.hasExpired(2000)) {
QApplication::processEvents(QEventLoop::AllEvents, 100);
}
memcpy(revdata, recResponse.constData(), n);
int n = comForRFID->bytesAvailable();
qDebug() << "RFIDReader response time: " << elapsedTimer.elapsed() << "ms";
connect(comForRFID, &QSerialPort::readyRead, this, &DevOp::readRFIDData);
if(n < 8) {
qDebug() << "读取数据失败, 数据长度不足8字节" << endl << endl;
return 0;
}
n = 8;
recResponse = comForRFID->read(n);
memcpy(revdata, recResponse.constData(), n);
if ((revdata[0] == 0x01) && (revdata[1] == 8) && (revdata[1] == n) && (revdata[2] == 0x5B) && (revdata[3] == 0x20)) //判断是否为写数据返回的数据包
{
bool status = CheckSumIn(revdata, revdata[1]); //计算校验和
@@ -3978,23 +4004,33 @@ int DevOp::setRFIDReaderKey(int mac,int type)
if(comForRFID->isOpen())
{
comForRFID->clear(QSerialPort::Input);
comForRFID->clear(QSerialPort::Output);
comForRFID->disconnect(this);
comForRFID->write(temp);
}
else
{
qDebug()<<"read uart for RFID not open!";
return -2;
}
MySleep(200);
int n = RFIDReadData.size();
if(n>0)
{
recResponse = RFIDReadData;
RFIDReadData.clear();
QString str;
str.sprintf("%d - %d - %d", recResponse.at(0),recResponse.at(1),recResponse.at(2));
qDebug()<<"设置读写器密码: "<<str;
QElapsedTimer elapsedTimer;
elapsedTimer.start();
while(comForRFID->bytesAvailable() < 8 && !elapsedTimer.hasExpired(2000)) {
QApplication::processEvents(QEventLoop::AllEvents, 100);
}
if(n > (int)sizeof(revdata)) n = sizeof(revdata);
int n = comForRFID->bytesAvailable();
qDebug() << "RFIDReader response time: " << elapsedTimer.elapsed() << "ms";
connect(comForRFID, &QSerialPort::readyRead, this, &DevOp::readRFIDData);
if(n < 8) {
qDebug() << "读取数据失败, 数据长度不足8字节" << endl << endl;
return -3;
}
n = 8;
recResponse = comForRFID->read(n);
memcpy(revdata, recResponse.constData(), n);
if ((revdata[0] == 0x03) &&( revdata[1] == 8 )&& (revdata[1] == n) && (revdata[2] == 0xC3) && (revdata[3] == 0x20)) //判断是否为设置地址返回的数据包
{
@@ -4005,6 +4041,7 @@ int DevOp::setRFIDReaderKey(int mac,int type)
{
qDebug() << "设置读写器密码成功!" << endl << endl;
LogInfo::setRunStatusText(tr("设置读写器密码成功!"));
return 0;
}
else
{
@@ -4016,6 +4053,8 @@ int DevOp::setRFIDReaderKey(int mac,int type)
{
qDebug() << "设置读写器密码失败!" << endl << endl;
}
return -4;
}
int DevOp::setRFIDReaderOriginalKey(void)
@@ -4100,25 +4139,36 @@ int DevOp::setRFIDReaderWorkMode(void)
if(comForRFID->isOpen())
{
comForRFID->clear(QSerialPort::Input);
comForRFID->clear(QSerialPort::Output);
comForRFID->disconnect(this);
comForRFID->write(temp);
}
else
{
qDebug()<<"read uart for RFID not open!";
return -1;
}
//sleep(200); // 延时200毫秒等待读写器返回数据,延时太小可能无法接收完整的数据包
MySleep(500);
int n = RFIDReadData.size();
if(n>0)
{
recResponse = RFIDReadData;
RFIDReadData.clear();
QString str;
str.sprintf("%d - %d - %d", recResponse.at(0),recResponse.at(1),recResponse.at(2));
qDebug()<<"设置读写器工作模式: "<<str;
QElapsedTimer elapsedTimer;
elapsedTimer.start();
while(comForRFID->bytesAvailable() < 8 && !elapsedTimer.hasExpired(2000)) {
QApplication::processEvents(QEventLoop::AllEvents, 100);
}
if(n > (int)sizeof(revdata)) n = sizeof(revdata);
memcpy(revdata, recResponse.constData(), n);
int n = comForRFID->bytesAvailable();
qDebug() << "RFIDReader response time: " << elapsedTimer.elapsed() << "ms";
connect(comForRFID, &QSerialPort::readyRead, this, &DevOp::readRFIDData);
if(n < 8) {
qDebug() << "读取数据失败, 数据长度不足8字节" << endl << endl;
return -2;
}
n = 8;
recResponse = comForRFID->read(n);
memcpy(revdata, recResponse.constData(), n);
if ((revdata[0] == 0x03) &&( revdata[1] == 8 )&& (revdata[1] == n) && (revdata[2] == 0xC1) && (revdata[3] == 0x20)) //判断是否为设置地址返回的数据包
{
bool status = CheckSumIn(revdata, revdata[1]); //计算校验和
@@ -4128,6 +4178,7 @@ int DevOp::setRFIDReaderWorkMode(void)
{
qDebug() << "设置读写器工作模式成功!" << endl << endl;
LogInfo::setRunStatusText(tr("设置读写器工作模式成功!"));
return 0;
}
else
{
@@ -4141,6 +4192,8 @@ int DevOp::setRFIDReaderWorkMode(void)
qDebug() << "设置读写器工作模式失败!" << endl << endl;
LogInfo::setRunStatusText("Failed to set RFID reader work mode!");
}
return -3;
}
int DevOp::receiveReadRFID_data(void)