void WorkThread::checkCpin() { QString title = "cpin检测:";//必须要有‘:’ emit report_item(title); QByteArray cmd = "at+cpin?\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(CPIN_READY) != -1) { report_result(RESULT_OK); return; } } report_result(RESULT_FAIL); }
时间: 2024-04-29 16:19:28 浏览: 14
这段代码是用来检测SIM卡是否插入并且是否可用。它发送AT+CPIN?指令到串口,并且尝试读取串口返回的数据。如果返回的数据中包含CPIN READY字符串,则说明SIM卡可用,函数返回RESULT_OK;否则,函数会尝试最多三次,并且返回RESULT_FAIL。同时,该函数还通过emit report_item(title)和report_result()两个信号将检测结果通知给其他模块。
相关问题
void WorkThread::checkImei() { QString title = "Imei检测:";//必须要有‘:’ emit report_item(title); QByteArray cmd = "at+cgsn\r\n"; for (int i = 0; i < 3; i++) { QThread::msleep(500); serialPort->readAll(); sendSerialData(cmd); QByteArray resp = removeResponseCmd(getAtCmdResponse(),cmd.simplified()).trimmed(); resp = resp.split('\n')[0].simplified(); report_type(IMEI_TYPE,QString(resp)); if ((inputImei.indexOf(QString(resp))!=-1) && resp.length()==IMEI_LEN) { report_result(RESULT_OK); return; } } report_result(RESULT_FAIL); }仿照此写一个wifi的检测
void WorkThread::checkWifi() {
QString title = "Wifi检测:"; //必须要有‘:’
emit report_item(title);
QByteArray cmd = "AT+CWJAP?\r\n";
for (int i = 0; i < 3; i++) {
QThread::msleep(500);
serialPort->readAll();
sendSerialData(cmd);
QByteArray resp = removeResponseCmd(getAtCmdResponse(),cmd.simplified()).trimmed();
resp = resp.split('\n')[0].simplified();
report_type(WIFI_TYPE, QString(resp));
if (resp.contains("OK")) {
report_result(RESULT_OK);
return;
}
}
report_result(RESULT_FAIL);
}
WorkThread *WorkThread::m_instance=nullptr;
这是 WorkThread 类的一个静态成员变量 m_instance 的定义,其初始值为 nullptr。静态成员变量属于类而不属于任何对象,因此可以在类的所有对象之间共享。在这个例子中,m_instance 被用来存储 WorkThread 类的唯一实例,因此它是一个单例模式的实现。由于 m_instance 是私有的静态成员变量,只能通过 WorkThread 类的静态成员函数来访问。