Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

START_RX_PAIR and REQUEST_AUTOPILOT_CAPABILITIES do not send COMMAND_ACK #6153

Closed
DonLakeFlyer opened this issue Dec 23, 2016 · 9 comments
Closed

Comments

@DonLakeFlyer
Copy link
Contributor

This causes QGC to go into its command retry logic since it thinks the command was lost on the wire. There may be other COMMAND_LONGs with this problem as well that I haven't hit with QGC yet.

@DonLakeFlyer
Copy link
Contributor Author

Also just hit the problem with MAV_CMD_PREFLIGHT_CALIBRATION

@DonLakeFlyer
Copy link
Contributor Author

Two options:

  1. If someone can do a code inpsection of firmware and give me the list of command which have this problem I can add a hack to QGC to not run retry logic for these commands.
  2. If printf() for %f is broken since one of the last merges #1 is not possible I'm going to need to turn off retry logic for all commands when running PX4 firmware. Kind of a big loss from a hardening over lossy connection standpoint.

@mhkabir
Copy link
Member

mhkabir commented Dec 23, 2016

I think we should just make sure we properly ACK all commands.

@DonLakeFlyer
Copy link
Contributor Author

I agree but QGC needs to support firmware version which will not have the fix.

FYI: I already implemented #2 in QGC since at this point I had no other choice and things were fairly broken without it.

@LorenzMeier
Copy link
Member

@DonLakeFlyer Can you revert QGC and test this instead?
#6154

Either revert QGC completely or if you want to support old FW versions do a version check. Don't keep things broken just to support old Firmware builds - that's not our strategy for PX4.

Also please fix QGC to ask for an ACK. The commands QGC sends are not asking for one yet.

@DonLakeFlyer
Copy link
Contributor Author

Also please fix QGC to ask for an ACK. The commands QGC sends are not asking for one yet.

What is the deal with COMMAND_LONG.confirmation? Docs say:
0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)

Which says nothing about it controlling whether you want an Ack back or not. According to current doc setting confirmation=0 would seem like the right thing.

If you want to force people to latest master and next release then I can revert QGC otherwise I'll need version check. Up to you.

@DonLakeFlyer
Copy link
Contributor Author

Also FYI: Not running retry logic doesn't really break things. It just is less user friendly to lossy connections. Up until a few weeks ago that was the way QGC always ran.

@LorenzMeier
Copy link
Member

Sorry, we had repurposed the confirmation field somewhere along the path by changing the comment. Yes, all commands should be confirmed.

Regarding version check: It would be great if you could condition it on ver 1.5.2 - anything including 1.5.2 does not use it, anything above 1.5.2 and dev should use it.

@LorenzMeier
Copy link
Member

This is fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants