Greetings.
I’m beginner on programming and have lots of interest in mission planner plugin.
I have programmed several plugins with SITL and have saw many possibilities.
I have question as belows :
mission planner have “large vehicle cali” function.
I will connect boat(ardurover) and VTOL(arduplane) to one mission planner.
I will make one dropdown list button and if I click the button
I want to pop up the dialogue and manually calibrate ardurover(it should not calibrate arduplane!!!)
is there way to acheive this?
you don’t need to give me dialogue or button UI code…
I just want to know which mavlink message number can calibrate ardurover magnetic compass manually…
below is my example code :
foreach (MAVLinkInterface mav in MainV2.Comports)
{
if (mav.sysidcurrent != 0)
{
if (mav.MAV.cs.firmware == MissionPlanner.ArduPilot.Firmwares.ArduPlane)
{
plane_lat = mav.MAV.cs.Location.Lat;
plane_lng = mav.MAV.cs.Location.Lng;
plane_alt = mav.MAV.cs.Location.Alt;
plane_home_lat = mav.MAV.cs.HomeLocation.Lat;
plane_home_lng = mav.MAV.cs.HomeLocation.Lng;
plane_voltage = mav.MAV.cs.battery_voltage;
MAVLink.mavlink_command_long_t cmd = new MAVLink.mavlink_command_long_t
{
target_system = mav.MAV.sysid,
target_component = mav.MAV.compid,
command = (ushort)MAVLink.MAV_CMD.DO_SET_HOME,
param1 = 0,
param5 = (float)ship_lat,
param6 = (float)ship_lng,
param7 = (float)0
};
if ((ship_sysid != 0) && (ship_compid != 0) && (is_home_updating_running))
{
mav.sendPacket(cmd, mav.sysidcurrent, mav.compidcurrent);
Console.WriteLine("Home position updated.");
Console.WriteLine(ship_lat);
}
if (mav.MAV.cs.armed)
{
// Update the armed time only once when the vehicle is armed
if (armed_time == DateTime.MinValue)
{
armed_time = DateTime.Now;
}
}
elapsed_after_arming = DateTime.Now - armed_time;
}
else if (mav.MAV.cs.firmware == MissionPlanner.ArduPilot.Firmwares.ArduRover)
{
ship_sysid = mav.sysidcurrent;
ship_compid = mav.compidcurrent;
ship_lat = mav.MAV.cs.Location.Lat;
ship_lng = mav.MAV.cs.Location.Lng;
}
}
Thank you very much in advance…