私はArduPilotMega(2.6)と通信するためにMavlinkプロトコル(C++)を使用するプロジェクトに取り組んでいます。
例えば、ATTITUDEのようなメッセージを読むことができます。現在のメッセージレート(すべてのメッセージ)は2Hzで、このレートを増やしたいと思います。
変更するためにを使用してMESSAGE_INTERVALと設定する必要があることがわかりました。Mavlinkメッセージレートを変更するArduPilotMega
私の質問は次のとおりです。
C++でmavlinkを使用してこのコマンドメッセージを送信するにはどうすればよいですか?
以下のコードを使って試してみましたが、うまくいきませんでした。私は上記のコマンドを使用しなければならないと思うが、どういうわけかわからない。
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);
アップデート:私も、多分私はそれを右のシステムIDまたはコンポーネント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);
は、たぶん私はtarget_system
、target_component
とsysid
、compid
の違いについて何かをしないのです。私はそれぞれにいくつかの値を試しましたが、何も働かなかった。
コマンドを受け取ったかどうかわからないACKがありますか?