有bug,会死机,注意协调各个线程之间的通讯

This commit is contained in:
hm
2020-03-10 15:30:38 +08:00
parent 8f94ed1d47
commit 2ab7d435fc
7 changed files with 256 additions and 258 deletions
+20 -56
View File
@@ -13,11 +13,11 @@ MavLinkNode::MavLinkNode(QObject *parent) : QObject(parent)
Mission = new MissionProcess();
Mission->setRunFrq(200);
Mission->start();
//Mission->start();
Parameterthread = new QThread();
//Parameterthread = new QThread();
}
@@ -200,52 +200,52 @@ void MavLinkNode::Mavlinkparse(quint32 src,QByteArray datagram)
switch(status.parse_state)
{
case MAVLINK_PARSE_STATE_UNINIT:{
qDebug() << "MAVLINK_PARSE_STATE_UNINIT";
//qDebug() << "MAVLINK_PARSE_STATE_UNINIT";
}break;
case MAVLINK_PARSE_STATE_IDLE:{
qDebug() << "MAVLINK_PARSE_STATE_IDLE";
//qDebug() << "MAVLINK_PARSE_STATE_IDLE";
}break;
case MAVLINK_PARSE_STATE_GOT_STX:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_STX";
//qDebug() << "MAVLINK_PARSE_STATE_GOT_STX";
}break;
case MAVLINK_PARSE_STATE_GOT_LENGTH:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_LENGTH";
//qDebug() << "MAVLINK_PARSE_STATE_GOT_LENGTH";
}break;
case MAVLINK_PARSE_STATE_GOT_INCOMPAT_FLAGS:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_INCOMPAT_FLAGS";
//qDebug() << "MAVLINK_PARSE_STATE_GOT_INCOMPAT_FLAGS";
}break;
case MAVLINK_PARSE_STATE_GOT_COMPAT_FLAGS:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_COMPAT_FLAGS";
//qDebug() << "MAVLINK_PARSE_STATE_GOT_COMPAT_FLAGS";
}break;
case MAVLINK_PARSE_STATE_GOT_SEQ:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_SEQ";
//qDebug() << "MAVLINK_PARSE_STATE_GOT_SEQ";
}break;
case MAVLINK_PARSE_STATE_GOT_SYSID:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_SYSID";
//qDebug() << "MAVLINK_PARSE_STATE_GOT_SYSID";
}break;
case MAVLINK_PARSE_STATE_GOT_COMPID:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_COMPID";
//qDebug() << "MAVLINK_PARSE_STATE_GOT_COMPID";
}break;
case MAVLINK_PARSE_STATE_GOT_MSGID1:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_MSGID1";
//qDebug() << "MAVLINK_PARSE_STATE_GOT_MSGID1";
}break;
case MAVLINK_PARSE_STATE_GOT_MSGID2:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_MSGID2";
//qDebug() << "MAVLINK_PARSE_STATE_GOT_MSGID2";
}break;
case MAVLINK_PARSE_STATE_GOT_MSGID3:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_MSGID3";
//qDebug() << "MAVLINK_PARSE_STATE_GOT_MSGID3";
}break;
case MAVLINK_PARSE_STATE_GOT_PAYLOAD:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_PAYLOAD";
//qDebug() << "MAVLINK_PARSE_STATE_GOT_PAYLOAD";
}break;
case MAVLINK_PARSE_STATE_GOT_CRC1:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_CRC1";
//qDebug() << "MAVLINK_PARSE_STATE_GOT_CRC1";
}break;
case MAVLINK_PARSE_STATE_GOT_BAD_CRC1:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_BAD_CRC1";
//qDebug() << "MAVLINK_PARSE_STATE_GOT_BAD_CRC1";
}break;
case MAVLINK_PARSE_STATE_SIGNATURE_WAIT:{
qDebug() << "MAVLINK_PARSE_STATE_SIGNATURE_WAIT";
//qDebug() << "MAVLINK_PARSE_STATE_SIGNATURE_WAIT";
}break;
}
}
@@ -286,8 +286,9 @@ void MavLinkNode::MAVLinkRcv_Handler(mavlink_message_t msg)
//case MAVLINK_MSG_ID_MISSION_REQUEST:
case MAVLINK_MSG_ID_MISSION_REQUEST_INT:
case MAVLINK_MSG_ID_MISSION_ACK:
MissionParse(msg);
Mission->MissionParse(msg);
break;
//参数
case MAVLINK_MSG_ID_PARAM_REQUEST_LIST:
case MAVLINK_MSG_ID_PARAM_REQUEST_READ:
@@ -404,43 +405,6 @@ void MavLinkNode::CommandParse(mavlink_message_t msg)
}
}
void MavLinkNode::MissionParse(mavlink_message_t msg)
{
switch (msg.msgid) {
//航线部分
case MAVLINK_MSG_ID_MISSION_COUNT: {//飞控发来计数值,然后开始读取
mavlink_msg_mission_count_decode(&msg,&vehicle.mission_count);
//Mavlink_msg_mission_request_int(0);
}break;
case MAVLINK_MSG_ID_MISSION_ITEM: {
mavlink_msg_mission_item_decode(&msg,&vehicle.mission_item);
}break;
case MAVLINK_MSG_ID_MISSION_ITEM_INT: {
mavlink_msg_mission_item_int_decode(&msg,&vehicle.mission_item_int);
//emit mission_recieve_item(vehicle.mission_item_int);
if((vehicle.mission_count.count-1) >= (vehicle.mission_item_int.seq+1))
{
//Mavlink_msg_mission_request_int(vehicle.mission_item_int.seq + 1);
}
else {
//Mavlink_msg_mission_ack();
}
}break;
case MAVLINK_MSG_ID_MISSION_REQUEST: {
mavlink_msg_mission_request_decode(&msg,&vehicle.mission_request);
//emit mission_item_request(vehicle.mission_request.seq);
}break;
case MAVLINK_MSG_ID_MISSION_REQUEST_INT: {
mavlink_msg_mission_request_int_decode(&msg,&vehicle.mission_request_int);
//emit mission_item_request_int(vehicle.mission_request_int.seq);
}break;
}
}