-
Notifications
You must be signed in to change notification settings - Fork 228
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
Support Stratux. #61
Support Stratux. #61
Conversation
Where's the code that processes this data? Is there some documentation of the format it expects? |
Stratux's go implementation processes the data generated at port 30006, in the given format that I implemented. One contributor already did some preliminary test and reported that it works fine: cyoung/stratux#811. Stratux is a very popular system used by pilots to build their own ads-b/gnss/ahrs device that could feed real-time data to apps like Foreflight. It is considered extremely useful by pilots. https://github.com/cyoung/stratux/blob/master/main/sdr.go is the file that invokes the dump1090 binary. https://github.com/cyoung/stratux/blob/master/main/traffic.go#L77 is the specification for the JSON format accepted by stratux, which corresponds to the content the TCP output function generates using sprintf. EDIT: the code in this PR is based on the stratux official one here: https://github.com/stratux/dump1090/tree/9a4fb850937565cfeadd1e5889cddbf93f45faf5 |
30006 has historically been used for other formats (I believe Basestation uses it) so probably this should default to off (i.e. you must pass |
Changed the implementation to use NULL as default value for the port string, so |
As mentioned above, I have been testing this proposed PR in some Stratux implementations - in fact my own Pi4 Stratux build script is including it as well (see my repo) - it works fine so far so I strongly support this PR. |
Haven't forgotten about this one, I'm just trying to find time to review & merge it. |
Made the changes according to the review. |
@Determinant Would you mind - if @mutability agrees - to remove these few lines from your PR?
|
The reason that mlat output is suppressed for some formats is that historically there have been problems with synthesized mlat messages being forwarded in a form where there is nothing to identify them as originating from mlat. Then they end up getting fed back into systems that are expecting off-the-air ADS-B messages and are incorrectly treated as messages from the aircraft, not synthetic positions. I'd be OK with forwarding mlat to the Stratux format if the messages are unambiguously identified as being sourced from mlat, not off-the-air. That said, a better approach is to skip the whole synthesize-ADS-B-position-messages step and just feed mlat results directly from mlat-client to stratux (e.g. using the pseudo-basestation output that mlat-client can generate) |
From a technical standpoint, probably. I just don't want to really get into parsing this stuff for such a niche usecase - and since achieving it by just forwarding to the Stratux-output-port is so simple, that was my recommendation. I don't mind adding an "IsMlat" key to the JSON output. That's the beauty of JSON I guess - so easily extensible without breaking compatibility. If @Determinant is willing to add this, I'm happy. If not, I might do a pull request with this change separately later on. |
I have the same question as @mutability -- does this introduce additional messages (types) that could confuse Stratux? (i.e. by only removing the |
@Determinant no, that shouldn't be a problem. Stratux handles these mlat messages well and displays them accordingly in the web interface (upstream and EU): |
@mutability removed the lines according to @b3nn0 's suggestion and tested it on my device. |
I merged this after:
One notable change is that message timestamps are now emitted as UTC; previously they used an ISO8601 format that claimed UTC time (with a trailing Z) but the emitted timestamp was actually local time. I assume the intent here was for it to really be UTC. I did some basic testing and it seems to emit plausible data but I don't have a real stratux set up to plug it into. Can you try it out and check that it's working OK? |
Seems to work fine here. Will do some more testing, but I think it's good. |
This PR enables using dump1090-fa in Stratux.
I like this project and appreciate the effort made by FlightAware to continuously improve the well-known dump1090 code base. I hope that I can use it as the drop-in replacement on my Stratux build, because the patched version of dump1090 repo shipped in stratux is very out of date.