Change message interval ardupilot

I am using Mavlink protocol (in c++) to communicate with the ArduPilotMega, I am able to read messages such as ATTITUDE for example.
I am currently getting only 2Hz (message rate) and I would like to increase the it. I found out that I should use MESSAGE_INTERVAL in order to change it, and that I probably need to use the command MAV_CMD_SET_MESSAGE_INTERVAL to set it.

So my question is, how do I send that command using mavlink in c++?

I tried doing this with the code below but it did not work, I guess that I should use the command that I mentioned above but I don't know how.

mavlink_message_t command;
mavlink_message_interval_t interval;

interval.interval_us = 100000;
interval.message_id = 30;

mavlink_msg_message_interval_encode(255, 200, &command, &interval);
p_sensorsPort->write_message(command);

Update:

I also tried this code below, maybe I am not giving it the right system id or component id.

mavlink_message_t command;
mavlink_command_long_t interval;

interval.param1 = MAVLINK_MSG_ID_ATTITUDE;
interval.param2 = 100000;
interval.command = MAV_CMD_SET_MESSAGE_INTERVAL;
interval.target_system = 0;
interval.target_component = 0;

mavlink_msg_command_long_encode(255, 0, &command, &interval);
p_sensorsPort->write_message(command);

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • Hi

    I have the same issue. Did you solve it or not yet?

    Thank

  • Thanks for your answer Chris. Well, I do need it in c++ but maybe I will be able to understand the steps and translate it to c++. Could you please post the details?
  • 3D Robotics

    Do you need to do this in C++? It's easiest to do it in Python using Dronekit

    DroneKit
    DroneKit makes it easy to create custom applications to control any vehicle powered by MAVLink. Best of all, it is open sourced and free for everyone…
This reply was deleted.

Activity