i made emulate program for qgroundcontrol. i am getting fake data from fake drone and sending this data to qgroundcontrol via Mavlink on UDP.
soucre code below.
i want to show on qgroundcontrol several drones. at this moment i see only one.
please show how can i put 2 drones on surface of qgroundcontrol
HeartBeatSender::HeartBeatSender()
{
socket.bind(QHostAddress(QHostAddress::AnyIPv4), myPort, QAbstractSocket::ShareAddress | QAbstractSocket::ReuseAddressHint);
socket.open(QIODevice::ReadWrite);
connect(&heartbeatTimer, &QTimer::timeout, this, &HeartBeatSender::sendHeartBeat);
heartbeatTimer.start(heartbitInterval);
connect(&globalPositionTimer, &QTimer::timeout, this, &HeartBeatSender::sendGlobalPosition);
globalPositionTimer.start(globalPositionTimerInterval);
}
void HeartBeatSender::sendHeartBeat()
{
mavlink_message_t msg;
mavlink_msg_heartbeat_pack(1, MAV_COMP_ID_AUTOPILOT1, &msg, 8, MAV_AUTOPILOT_PX4, 0, 0, MAV_STATE_ACTIVE);
respondWithMavlinkMessage(msg);
qDebug () << “send heartbeat autopilot…”;
}
void HeartBeatSender::sendGlobalPosition()
{
mavlink_message_t msg;
static int local_lat = 539000000; local_lat += 100000;
static int local_lon = 275666700; local_lon += 100000;
mavlink_msg_global_position_int_pack(1, MAV_COMP_ID_AUTOPILOT1, &msg, 100, lat + local_lat, lon + local_lon , alt, 300100, 0, 0, 0, 0);
respondWithMavlinkMessage(msg);
qDebug () << "send global position...: lat = " << lat + local_lat << ", lon = " << lon + local_lon << ", alt = " << alt;
}