Connecting to drone using TCP handshake

Hello,
We are trying to build a Rust SDK and we are trying to make a handshake to the drone using TCP.
Using sphinx we couldn’t get any connection to Bebop2 and switching to ANAFI4k we do connect to TCP but we don’t get any response of the request.

We would love to hear how we can do that without using the C SDK and to better understand how requests are handled by the drones.

The issues was the request itself. Now it works!
I can’t figure out why the handshake response has a \u{0} at the end:

"{ \"status\": 0, \"c2d_port\": 54321, \"c2d_update_port\": 51, \"c2d_user_port\": 21, \"qos_mode\": 0, \"arstream2_server_stream_port\": 5004, \"arstream2_server_control_port\": 5005 }\u{0}"

But trimming the end for this text seems to do the job.
One thing to note: For Bebop2 I had to disable the from camera (in sphinx) otherwise it was not succeeding ( I think it’s because we currently don’t handle the video stream ).

We would love to hear more info about this topic since we still haven’t managed to send a TAKE OFF command to the drone.

I learned this the hard way:

The arsteam parameters only apply to the Bebop drones.

Anafi ignores those parameters (groundsdk does not send them by default).

Pyparrot or a similar “lightweight” framework can give you the tech details you need for handling ack/non-ack command and event handling.

1 Like