Commit 7d25a85a authored by pixhawk's avatar pixhawk

Finished up waypoint interface on ground control side, now is working again

parent 63fe5526
...@@ -313,15 +313,21 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message) ...@@ -313,15 +313,21 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message)
case MAVLINK_MSG_ID_DEBUG: case MAVLINK_MSG_ID_DEBUG:
emit valueChanged(uasId, QString("debug ") + QString::number(mavlink_msg_debug_get_ind(&message)), mavlink_msg_debug_get_value(&message), MG::TIME::getGroundTimeNow()); emit valueChanged(uasId, QString("debug ") + QString::number(mavlink_msg_debug_get_ind(&message)), mavlink_msg_debug_get_value(&message), MG::TIME::getGroundTimeNow());
break; break;
/* case MAVLINK_MSG_ID_WAYPOINT:
case MAVLINK_MSG_ID_WP: {
emit waypointUpdated(this->getUASID(), mavlink_msg_emitwaypoint_get_id(message.payload), mavlink_msg_emitwaypoint_get_x(message.payload), mavlink_msg_emitwaypoint_get_y(message.payload), mavlink_msg_emitwaypoint_get_z(message.payload), mavlink_msg_emitwaypoint_get_yaw(message.payload), (message_emitwaypoint_get_autocontinue(message.payload) == 1 ? true : false), (message_emitwaypoint_get_active(message.payload) == 1 ? true : false)); mavlink_waypoint_t wp;
mavlink_msg_waypoint_decode(&message, &wp);
// FIXME
emit waypointUpdated(uasId, wp.id, wp.x, wp.y, wp.z, wp.yaw, wp.autocontinue, true);
}
break; break;
case MAVLINK_MSG_ID_WP_REACHED: case MAVLINK_MSG_ID_WAYPOINT_REACHED:
qDebug() << "WAYPOINT REACHED"; {
emit waypointReached(this, mavlink_msg_wp_reached_get_id(message.payload)); mavlink_waypoint_reached_t wp;
mavlink_msg_waypoint_reached_decode(&message, &wp);
emit waypointReached(this, wp.id);
}
break; break;
*/
case MAVLINK_MSG_ID_STATUSTEXT: case MAVLINK_MSG_ID_STATUSTEXT:
{ {
QByteArray b; QByteArray b;
...@@ -788,9 +794,20 @@ void UAS::receiveButton(int buttonIndex) ...@@ -788,9 +794,20 @@ void UAS::receiveButton(int buttonIndex)
void UAS::setWaypoint(Waypoint* wp) void UAS::setWaypoint(Waypoint* wp)
{ {
mavlink_message_t msg; mavlink_message_t msg;
// FIXME mavlink_waypoint_set_t set;
//messagePackSetWaypoint(MG::SYSTEM::ID, &message, wp->id, wp->x, wp->y, wp->z, wp->yaw, (wp->autocontinue ? 1 : 0)); set.id = wp->id;
// mavlink_msg_waypoint_pack(MG::SYSTEM::ID, MG::SYSTEM::COMPID, &message, wp->name, wp->id,wp->x, wp->y, wp->z, wp->yaw, (wp->autocontinue ? 1 : 0)); QString name = wp->name;
// FIXME Check if this works properly
name.truncate(MAVLINK_MSG_WAYPOINT_SET_FIELD_NAME_LEN);
strcpy((char*)set.name, name.toStdString().c_str());
set.autocontinue = wp->autocontinue;
set.target_component = 0;
set.target_system = uasId;
set.x = wp->x;
set.y = wp->y;
set.z = wp->z;
set.yaw = wp->yaw;
mavlink_msg_waypoint_set_encode(mavlink->getSystemId(), mavlink->getComponentId(), &msg, &set);
// Send message twice to increase chance of reception // Send message twice to increase chance of reception
sendMessage(msg); sendMessage(msg);
sendMessage(msg); sendMessage(msg);
...@@ -799,8 +816,11 @@ void UAS::setWaypoint(Waypoint* wp) ...@@ -799,8 +816,11 @@ void UAS::setWaypoint(Waypoint* wp)
void UAS::setWaypointActive(int id) void UAS::setWaypointActive(int id)
{ {
mavlink_message_t msg; mavlink_message_t msg;
// FIXME mavlink_waypoint_set_active_t active;
//messagePackChooseWaypoint(MG::SYSTEM::ID, &message, id); active.id = id;
active.target_system = uasId;
active.target_component = 0; // FIXME
mavlink_msg_waypoint_set_active_encode(mavlink->getSystemId(), mavlink->getComponentId(), &msg, &active);
// Send message twice to increase chance of reception // Send message twice to increase chance of reception
sendMessage(msg); sendMessage(msg);
sendMessage(msg); sendMessage(msg);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment