Commit c2e00688 by NitefullWind

完善读实体卡功能。

parent 4c845058
...@@ -116,6 +116,9 @@ void FMVipDispatcher::createSysIcon() ...@@ -116,6 +116,9 @@ void FMVipDispatcher::createSysIcon()
void FMVipDispatcher::onQuit() void FMVipDispatcher::onQuit()
{ {
if(fmTask != nullptr) {
fmTask->stopTask();
}
qDebug() << __FUNCTION__; qDebug() << __FUNCTION__;
LPSTR data = QuitCMD; LPSTR data = QuitCMD;
unsigned int a; unsigned int a;
......
...@@ -15,6 +15,8 @@ class Reader : public QObject ...@@ -15,6 +15,8 @@ class Reader : public QObject
public: public:
Reader() Reader()
{ {
s_end = true;
r_end = false;
s_initsuc = false; s_initsuc = false;
s_reader = NULL; s_reader = NULL;
this->moveToThread(&m_thread); this->moveToThread(&m_thread);
...@@ -22,51 +24,70 @@ public: ...@@ -22,51 +24,70 @@ public:
} }
public slots: public slots:
bool connectReader(QString& error)
{
QVariantMap map;
if(!ReadCfg::readvalueforheadlist(CFG_FILENAME, CFG_SECTION_READER, map))
return false;
s_initsuc = ConnectDevice(map.value(CFG_READER_PORT).toInt(),
map.value(CFG_READER_BAUD).toInt(),
map.value(CFG_READER_SECTION).toInt(),
map.value(CFG_READER_PWD).toString(),
s_reader,
error);
return s_initsuc;
}
bool readVipNO() bool readVipNO()
{ {
QString vipNo; QString vipNo;
QString error; QString error;
bool sign = false;
//HANDLE s_reader = NULL;
r_end = true;
qDebug() << "son:" <<QThread::currentThreadId(); qDebug() << "son:" <<QThread::currentThreadId() << "s_initsuc:" << s_initsuc;
if(!s_initsuc) if(s_end && !s_initsuc)
{ {
while(!connectReader(error))
do
{
QVariantMap map;
sign = ReadCfg::readvalueforheadlist(CFG_FILENAME, CFG_SECTION_READER, map);
//qDebug() << map;
if(sign)
sign = ConnectDevice(map.value(CFG_READER_PORT).toInt(),
map.value(CFG_READER_BAUD).toInt(),
map.value(CFG_READER_SECTION).toInt(),
map.value(CFG_READER_PWD).toString(),
s_reader,
error);
if(!sign)
s_reader = NULL;
else
s_initsuc = sign;
Sleep(500); Sleep(500);
s_initsuc = true; }while(s_end && !sign);
} }
qDebug() << "HANDLE" << s_reader; qDebug() << "s_reader" << s_reader;
while(!ReadCard(s_reader, 1, vipNo, error))
while(s_end && !ReadCard(s_reader, 1, vipNo, error))
Sleep(500); Sleep(500);
emit getVipNO(vipNo); if(!s_end)
{
r_end = false;
return false;
}
emit getVipNO(vipNo);
r_end = false;
} }
bool disconnectReader() void disconnectReader()
{ {
if(s_reader!=NULL) s_end = false;
{ while(r_end)
DisConnectDevice(s_reader); Sleep(500);
} if(s_initsuc || s_reader > 0)
{
DisConnectDevice(s_reader);
s_reader = NULL;
s_initsuc = false;
}
} }
signals: signals:
...@@ -74,6 +95,8 @@ signals: ...@@ -74,6 +95,8 @@ signals:
void getVipNO(QString VipNO); void getVipNO(QString VipNO);
private: private:
bool s_end;
bool r_end;
bool s_initsuc; bool s_initsuc;
HANDLE s_reader; HANDLE s_reader;
QThread m_thread; QThread m_thread;
......
...@@ -32,7 +32,6 @@ FMVipLogin::~FMVipLogin() ...@@ -32,7 +32,6 @@ FMVipLogin::~FMVipLogin()
void FMVipLogin::onstartreader() void FMVipLogin::onstartreader()
{ {
qDebug() << "#####################################111111";
emit startreader(); emit startreader();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment