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

ADSB: Add Sagetech driver #15123

Merged
merged 7 commits into from
Sep 15, 2020
Merged

Conversation

magicrub
Copy link
Contributor

This adds a driver for the Sagetech ADSB transceiver. The ADSB wiki page is getting a little out of date so I plan to update that as well.

  • Created ADSB_Backend
  • abstracted MAVink specific work into it's own AP_ADSB_MAVLink driver for uAvionix
  • Added Sagetech driver for the XP protocol. There is an MX protocol for newer products that is also available but not yet implemented. This driver is set up prepared for that future protocol and parse for either protocol within this sagetech driver.
  • Sagetech ADSB-in is implemented but not tested. I only had ASSB-out hardware to test with.
  • general rework of a variety of ADSB related minor improvements
  • adds math library of byte parsing to load arrays
  • adds math library to convert math bases (example: dec 12345 to 0x12345)

It would be nice if some people could test with uAvionix Ping products just to sanity check that there is no impact on them.

Code change impact on fmuv1:
Target Text Data BSS Total
without PR (master):
bin/arduplane 967604 1172 195636 1164412
with PR:
bin/arduplane 971292 1172 195636 1168100

delta: 3688 program bytes

@magicrub
Copy link
Contributor Author

This was failing CI on several unrelated code paths and it would fail in a different place when I retriggered CI. I see there's a few autotest related commits in master so rebased. Fingers crossed!

@magicrub
Copy link
Contributor Author

rebased

@magicrub
Copy link
Contributor Author

I just realized that I can use the serial manager protocol as the protocol option and remove this new param from adsb.

@magicrub
Copy link
Contributor Author

I removed the new param and replaced it with a simple ::detect() call that checks for the already-required serial protocol setting. This means only 1 thing is needed to be set instead of 2 to enable this sensor. This is also an easy way-forward for Sagetech MX and uAvionix's GDL90/UDP drivers which are in the pipeline

@magicrub magicrub merged commit 3cc9853 into ArduPilot:master Sep 15, 2020
@tridge
Copy link
Contributor

tridge commented Oct 6, 2020

this should not have been merged without proper review and testing

@magicrub
Copy link
Contributor Author

magicrub commented Oct 6, 2020

@tridge see PR #15517 for revert.

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

Successfully merging this pull request may close these issues.

None yet

5 participants