-
Notifications
You must be signed in to change notification settings - Fork 1
/
readcard.cpp
52 lines (43 loc) · 1.15 KB
/
readcard.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include "ReadCard.h"
ReadCard::ReadCard(QObject *parent):QThread(parent){
stopped=false;
}
ReadCard* ReadCard::readcard=new ReadCard();
void ReadCard::stop()
{
mutex.lock();
stopped=true;
mutex.unlock();
}
void ReadCard::start(QString reqType)
{
mutex.lock();
stopped=false;
this->reqType=reqType;
QThread::start();
mutex.unlock();
}
ReadCard *ReadCard::getReadCard()
{
return readcard;
}
void ReadCard::run()
{
while(!stopped){
SCard::getReader()->SetReader();
SCard::getReader()->ConnectReader();
RecvBuffer recvBuffer;
DWORD recLen=sizeof(recvBuffer);
BYTE comm[] = { 0xFF, 0xCA, 0x01, 0x00,0x00 }; //传入命令
DWORD commLen = sizeof(comm);
while (!SCard::getReader()->ConnectReader());
SCard::getReader()->SendCommand(comm, commLen, recvBuffer, &recLen);
QString uid=Util::toQString(Util::calStrUId(recvBuffer,recLen));
SCard::getReader()->DisConnectReader();
emit readSuccess(uid,reqType);
sleep(3);
#ifdef DEBUG
qDebug()<<uid;
#endif
}
}