I am using an arduino to try and communicate with a generic "client device" such as a gimbal or a camera. Software simulation testing worked fine. My code generated and responded to heartbeat, ping, camera configure and camera control commands.
When I started HIL testing, I saw that the MAVLink protocol 3 messages for camera control were being ignored by the test hardware. Basically, any available message that is in common seems to work fine. But the extended messages that are from the ArduPilotMega.xml are not being processed by the hardware.
What I do is send out a heartbeat packet and get a heartbeat back from the test unit. I continue the heartbeat exchange on a 1 sec cycle. I then send a digicam camera control message to the unit but I get no response and the command is not acted on by the device.
I have seen references to the same issue in searches but no responses. It seems there is probably a misunderstanding or lack of knowledge on my part that has me leaving something out in the communication link with the hardware which causes the message failure issue.
I am confident my source and destination mappings are right for the commands. Also, the payload information for the specific commands seems fine. I only have one device to hardware test with right now - so I was thinking it could be a hardware issue. But I really think I am missing something in the way I am talking to or sending the commands to the device.
I haven't been able to find much discussion on the specifics of sending between devices (without an APM type controller in the loop). But it appears everything is setup properly. I just think there is something different or extra that I should be doing when using the extended messages.
I am hoping someone else here has had this issue or knows about it. I really think it is a simple lack of knowledge on my part.
Thanks in advance for any help!