在QT中使用qextserialport类,为何在串口接收函数中使用QMessageBox,会重复几次弹出相同的对话框?????? 10
很奇怪的现象啊!!!!!!!!!有些又只弹出一次,不知道哪里出错了~~~~如下代码中“0xAA”那个标签同时弹出两个一样的对话框,要关闭左边那个才可以关闭右边那个如下代码...
很奇怪的现象啊!!!!!!!!!有些又只弹出一次,不知道哪里出错了~~~~
如下代码中“0xAA”那个标签同时弹出两个一样的对话框,要关闭左边那个才可以关闭右边那个
如下代码中的“2”那个标签中的也是
有时候又弹出好几次的相同的,求解!!
代码如下:
void MainWindow::readMyCom(){ QByteArray temp; temp = myCom->readAll(); for (int i = 0; i < temp.size(); i++) { revbuffer[index++] = temp.at(i); } if (START == revbuffer[0] && index == revbuffer[1]) { switch (revbuffer[2]) { case 1: { break; } case 2: { if (MI_OK != revbuffer[STATUS]) { /* 清空发送缓冲区 */ memset(sendbuffer, 0, BUFFER_LEN); QMessageBox::critical(this, tr("错误提示"), tr("请将IC卡放在读\r\n卡器通信范围内")); } else { QMessageBox::about(this, tr("操作成功"), tr("寻卡成功")); } break; }
case 0xAA: {
QMessageBox::warning(this, tr("握手成功"), tr("与读卡器设\r\n备握手成功")); break; }
default : { break; } } /* 数据处理完毕,接收指针,接收缓冲区清零 */ index = 0; memset(revbuffer, 0, BUFFER_LEN); }/* if (START == revbuffer[0] && index == revbuffer[1]) */}
也就是出现一个现象,QMessageBox引发一个串口接收信号,导致接收信号再一次发射,那么QMessageBox与串口联系上了??这是什么关系呢??我用qdebug调试输出信息,的确是引发发射接收信号了 展开
如下代码中“0xAA”那个标签同时弹出两个一样的对话框,要关闭左边那个才可以关闭右边那个
如下代码中的“2”那个标签中的也是
有时候又弹出好几次的相同的,求解!!
代码如下:
void MainWindow::readMyCom(){ QByteArray temp; temp = myCom->readAll(); for (int i = 0; i < temp.size(); i++) { revbuffer[index++] = temp.at(i); } if (START == revbuffer[0] && index == revbuffer[1]) { switch (revbuffer[2]) { case 1: { break; } case 2: { if (MI_OK != revbuffer[STATUS]) { /* 清空发送缓冲区 */ memset(sendbuffer, 0, BUFFER_LEN); QMessageBox::critical(this, tr("错误提示"), tr("请将IC卡放在读\r\n卡器通信范围内")); } else { QMessageBox::about(this, tr("操作成功"), tr("寻卡成功")); } break; }
case 0xAA: {
QMessageBox::warning(this, tr("握手成功"), tr("与读卡器设\r\n备握手成功")); break; }
default : { break; } } /* 数据处理完毕,接收指针,接收缓冲区清零 */ index = 0; memset(revbuffer, 0, BUFFER_LEN); }/* if (START == revbuffer[0] && index == revbuffer[1]) */}
也就是出现一个现象,QMessageBox引发一个串口接收信号,导致接收信号再一次发射,那么QMessageBox与串口联系上了??这是什么关系呢??我用qdebug调试输出信息,的确是引发发射接收信号了 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询