调整部分样式
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user