Hi guys,
I'm new to the forum and I'm busy with a little project, but I've run into some trouble.
I've got a camera system which is triggered by a pulse coming out of the Fixhawk, which is working perfectly in autopilot mode.
Now I'm trying to trigger the camera manually. I've taken a look at this RC groups thread which was dealing with a similar issue.
I'm developing using Mavlink and Python.
What I've got so far:
I'm sending the camera trigger message as shown in the linked thread, using this command:
command_long_send(mc.target_system, mc.target_component,
mav_codes.MAV_CMD_DO_DIGICAM_CONTROL, 0,
0, 0, 0, 0, 1, 0, 0)
I'm then reading the mavlink packets, and I am getting an ACK:
COMMAND_ACK {command : 203, result : 3}
So the correct command is issued, however, result 3 relates to this message:
enums['MAV_CMD_ACK'][3] = EnumEntry('MAV_CMD_ACK_ERR_ACCESS_DENIED', '''The system is refusing to accept this command from this source / communication partner.''')
I'm not sure how to proceed. I've tried running the command from within the mavlink class itself. I've tried disabling autopilot.
Any help will be greatly appreciated!
EDIT: It appears that ANY command sent using command_long gets rejected (with the same result in the acknowledgement).
For example, I can request the log list using log_request_list_send, which works fine, but attempting the same using command_long_send - along with the code 117 for log list request - results in the same access denied ACK
Replies
If your not emulating a GCS and sending heart beat packets the copter will not except your commands. I would just set a switch on your radio and set that to trigger the relay switch you set.