86 lines
1.9 KiB
C++
86 lines
1.9 KiB
C++
|
#include "testThread.h"
|
||
|
|
||
|
bool TestThread::setTestList(const QVector<TEST_TYPE> &list)
|
||
|
{
|
||
|
if(onTest){
|
||
|
return false;
|
||
|
}
|
||
|
testList = list;
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
void TestThread::stopTest()
|
||
|
{
|
||
|
quit = true;
|
||
|
}
|
||
|
|
||
|
bool TestThread::isOnTest()
|
||
|
{
|
||
|
return onTest;
|
||
|
}
|
||
|
|
||
|
TestThread::TestThread() {}
|
||
|
|
||
|
TestThread::~TestThread() {}
|
||
|
|
||
|
void TestThread::receiverSerialDataHandle(const QByteArray &data)
|
||
|
{
|
||
|
if(!onTest){
|
||
|
return;
|
||
|
}
|
||
|
unprocessData.append(data);
|
||
|
}
|
||
|
|
||
|
void TestThread::run()
|
||
|
{
|
||
|
onTest = true;
|
||
|
quit = false;
|
||
|
for(int i=0;i<testList.size();i++){
|
||
|
if(quit){
|
||
|
break;
|
||
|
}
|
||
|
TEST_TYPE type = testList[i];
|
||
|
switch (type) {
|
||
|
case SERIAL:
|
||
|
{
|
||
|
for(int i=0;i<11;i++){//等10秒后看看是否串口有输出
|
||
|
if(quit){
|
||
|
break;
|
||
|
}
|
||
|
emit curTestInfoSignal("串口接收",i);
|
||
|
if(i<9){//9秒前把数据清空
|
||
|
unprocessData.clear();
|
||
|
}
|
||
|
sleep(1);
|
||
|
}
|
||
|
if(unprocessData.size()>0){
|
||
|
emit serialRecvResultSignal(true);
|
||
|
}else{
|
||
|
emit serialRecvResultSignal(false);
|
||
|
}
|
||
|
unprocessData.clear();
|
||
|
//todo
|
||
|
bool bsend = false;
|
||
|
for(int i=0;i<5;i++){//测试串口发送
|
||
|
if(quit){
|
||
|
break;
|
||
|
}
|
||
|
emit curTestInfoSignal("串口发送",i);
|
||
|
emit writeDataSignal("version\r\n");
|
||
|
sleep(1);
|
||
|
QString txt = QString::fromLatin1(unprocessData);
|
||
|
if(txt.contains("v")){
|
||
|
bsend = true;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
emit serialSendResultSignal(bsend);
|
||
|
break;
|
||
|
}
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
onTest = false;
|
||
|
}
|