void WorkThread::checkCfun() { QString title = "cfun检测:";//必须要有‘:’ //通过 emit 语句将其发送给界面进行显示,即:这个是标题,如果注释掉的话,界面中就没有 emit report_item(title);//注释掉就没了 QByteArray cmd = "at+cfun?\r\n"; for (int i = 0; i < 3; i++) { QThread::msleep(500); serialPort->readAll(); sendSerialData(cmd); QByteArray resp = removeResponseCmd(getAtCmdResponse(),cmd.simplified()); if ((resp.indexOf(CFUN_OK_0)!=-1) || (resp.indexOf(CFUN_OK_1)!=-1)) { report_result(RESULT_OK); return; } } report_result(RESULT_FAIL); }仿照此写一个wifi检测,并解释每一行代码的意思
时间: 2024-03-29 20:42:18 浏览: 131
void WorkThread::checkWifi() {
QString title = "Wifi检测:"; //必须要有‘:’
emit report_item(title); //通过 emit 语句将其发送给界面进行显示,即:这个是标题,如果注释掉的话,界面中就没有
QByteArray cmd = "AT+CWJAP?\r\n"; //发送检测wifi的AT指令
for (int i = 0; i < 3; i++) { //循环3次
QThread::msleep(500); //等待500ms
serialPort->readAll(); //清空串口缓冲区
sendSerialData(cmd); //发送AT指令
QByteArray resp = removeResponseCmd(getAtCmdResponse(),cmd.simplified()); //获取AT指令的响应,并去掉AT指令本身
if (resp.contains("OK")) { //如果响应中包含OK,则说明wifi连接成功
report_result(RESULT_OK); //上报检测结果为成功
return; //结束函数
}
}
report_result(RESULT_FAIL); //上报检测结果为失败
}
解释:
1. 第1行:定义一个名为checkWifi的函数,返回类型为void,表示不返回值。
2. 第2-4行:定义一个字符串变量title,并赋值为“Wifi检测:”。
3. 第5行:通过emit语句将title发送给界面进行显示。
4. 第6行:定义一个QByteArray类型的变量cmd,并赋值为“AT+CWJAP?\r\n”,即检测wifi的AT指令。
5. 第7-14行:循环3次,每次等待500ms,清空串口缓冲区,发送AT指令,获取AT指令的响应,并去掉AT指令本身。如果响应中包含OK,则说明wifi连接成功,上报检测结果为成功,结束函数;否则,继续循环。
6. 第15-17行:如果循环结束,说明wifi连接失败,上报检测结果为失败。
阅读全文