有bug,会死机,注意协调各个线程之间的通讯
This commit is contained in:
+20
-56
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user