I’m trying to register a custom camera controller (based on an atmega328p) with my flight controller on Telemetry port 1. I’ve got a Pixhawk 2.1 cube with PX4 version 1.7.3.
I can read messages and subscribe to them with COMMAND_LONG and MAV_CMD_SET_MESSAGE_INTERVAL, so sending commands/messages works.
According to the MAVLink camera protocol description, the flight controller should respond to a heartbeat message from a camera component with a MAV_CMD_REQUEST_CAMERA_INFORMATION command.
My understanding is that I should receive commands from PX4 through COMMAND_LONG messages. However I don’t receive any from the flight controller.
I’m sending like this with 1 Hz. I also tried system_id 1.
uint16_t len=0; mavlink_msg_heartbeat_pack( 2, MAV_COMP_ID_CAMERA, &this->mav_msg_txbuf_pixhawk, MAV_TYPE_GENERIC, MAV_AUTOPILOT_INVALID, MAV_MODE_FLAG_MANUAL_INPUT_ENABLED, 0, MAV_STATE_ACTIVE); len = mavlink_msg_to_send_buffer(this->mav_txbuf, &this->mav_msg_buf_pixhawk); Serial.write(this->mav_txbuf, len);
Any idea where I’m going wrong? Is it possible to attach component systems to the UARTs?
Thanks a lot and best regards, Floxo