I am trying to control my drone with a test app using the mavlink header files at QT 5.14. I can connect to my drone (3DR Solo using OpenSolo 4.0) and I can see and decode all of the messages received from my drone. I send a heartbeat message to my drone at 1Hz. I can see my outgoing message in Wireshark but I do not see anything happening on my drone. There are plenty samples / directions on how to pack and decode messages but I cannot find anything that describes the required sequence to get my done to arm and takeoff. Are there instructions / ladder diagrams that provide the sequence to do various operations using mavlink?
Are you using PX4 or ArduPilot?
Thanks for your reply.
This project has me going in circles because I cannot get control of my drone. I can receive and decode all sorts of messages and I can build many as well. I have tried to send the messages to port 14550 as well as to the drones send port as detected in the first received message from the drone. I cannot get QGroundControl to build so I cannot step through QGC to see where the difference is. . I posited the issue on that forum. QGC downloaded binaries does control my drone so I know the hardware is working correctly
I am trying to control my drone from my test application. Long term, to translate from other control protocols to mavlink. My drone is a 3DR Solo updated with OpenSolo 4.0 which I believe is Arupilot.
I spent much of the day today creating a windows version of the cuart example from the mavlink website. I would like to push it up somewhere to get others to take a look at it. It is not really a finished app rather a simple test tool with threads removed and the linux network stuff replaced by Windows network stuff. In the short term I plan to push it up to my github account but in the long term after I get it working and cleaned up I would be great to add it to the mavlink github examples.
It turns out the problem is based on the fact that Mavlink version 2 is not backward compatible to V1. My Drone sends a sync byte of 0xfe indicating it is actually using V1. my outgoing sync byte was 0xfd. I was using the "latest and greatest’ version V2 Although I could receive and process the messages it was sending I found a note somewhere that said incoming messages of a different version would be ignored
I don’t know if there is a way to close the topic but it is.