处理串口线程数据的函数。
void MainWindow::GetSerialData(MsgSerial msgSerial)
{
// qDebug("recv uart : %02x",msgSerial.int_SerialInfo);
switch (msgSerial.int_SerialInfo) {
//串口接收到机械臂发送来的当前的6个参数内容
case 0x92:
//在spin上显示6个数据
DisplayStatusInSpinBox(msgSerial.str_SerialInfo);
break;
//串口接收到停到仓库一(0x52)和仓库二(0x53)位置消息后开始1s计时
case 0x52:
case 0x53:
//计时器
timerSavePic = new QTimer(this);
//设置间隔:1000ms
timerSavePic->setInterval(1000);
//一旦超时则触发SavePic(),即保存一帧图像
//SIGNAL(timeout()):每当计时结束时,计时器归零并重新计时,并发送一个信号激活SLOT()函数
connect(timerSavePic,SIGNAL(timeout()),this,SLOT(SavePic()));
//开始计时
timerSavePic->start();
break;
//货物抓取成功后返回的标志位
case 0x72:
MoveGoodsSuccess();
break;
//在排序过程中机械臂返回的货物的位置号
case 0x71:
DisplaySortInBox(msgSerial.str_SerialInfo);
break;
//货物排序完成后,标志位清零
case 0xb3:
predictImageBoxAndSort = DONOTSORT;
break;
//显示出单片机的地址
case 0xa1:
ui->label_displayIP_2->setText(msgSerial.str_SerialInfo);
break;
default:
break;
}
}