jontio / JAERO

Demodulate and decode Aero signals. These signals contain SatCom ACARS messages as used by planes beyond VHF ACARS range
https://jontio.zapto.org/hda1/jaero.html
MIT License
224 stars 39 forks source link

Identification for ACARS and ADS-C network streams? #45

Open kevinelliott opened 4 years ago

kevinelliott commented 4 years ago

We are using some JAERO feeds to send data to airframes.io (see https://app.airframes.io/about) which is working well. I'd like to thank you for making JAERO because it has made this possible.

I would like to request two features:

1) feed identification

As feeders to the site are user-centric, the only way we can currently identify a JAERO feed is by it's source IP address. This is problematic when the source feeder's internet provider changes their IP address. Other feeder software, such as acarsdec/vdlm2dec, will include a user-configurable field, such as ident so that they can pass us their "identification". This allows us to not really focus on the IP address as the source of identification.

2) ACARS format enhancements

Right now the format that is sent for the ACARS is not very parsable. It is very difficult to properly extract the data so that further processing can be done. Can we have either enhancements to this format sent (say, in JSON), or perhaps a whole new output type that can send the ACARS data as JSON?

jontio commented 4 years ago

For feed are you just using the stuff that comes out the bottom text edit? The bottom text edit parsing is done in https://github.com/jontio/JAERO/blob/master/JAERO/mainwindow.cpp invoid MainWindow::ACARSslot(ACARSItem &acarsitem) from the look of it and something could be added there for JSON format. Currently I have no plains to put in the work to add this but maybe some here wants to.

For feed ID that would be part of the JSON format so would be done in the same section of code.

jontio commented 3 years ago

Currently in the dev_json branch I've added the JSON formatting (commit 145315f3edcb74257ef82717c9da068337dba025 ). You select "JSON" from output format. That should fix the parsing issue.

For the source id that is easy enough to do in node red. You could either add the source to the object or use something like mqtt and set the topic name as the source. Here is an example of me doing these things...

Untitled2

Untitled3

I'll leave the dev_json branch there for a few days in case someone finds something that needs to be fixed. After that I'll assume it's ok then merge it into the master branch.

kevinelliott commented 3 years ago

Thanks @jontio this is really a great addition and will help us in the community a lot! Very exciting, thank you for your work on this.

Re: feed identification, that works fine for people using Node-RED, but I suspect it adds a lot of overhead for those that don't use it. It would still be fantastic if you could add a flag that allows any arbitrary ident field value to be added to the JSON. This is particularly useful for identifying who gets credit at airframes.io for the contributed data, but also useful for other things. I'd like this to support any length string if possible. Do you think you could add this?

jontio commented 3 years ago

@kevinelliott adding an ident field would be easy enough. The most time consuming thing would be settings GUI and settings persistence, it's always a hassle but not hard. Currently I'm pretty busy so wont do it myself at the moment but happy to take a pull request with the feature added in the meantime if someone what's to do it now. In the meantime I'll merge the dev_json branch into master and do a prerelease binary build

kevinelliott commented 3 years ago

@kevinelliott adding an ident field would be easy enough. The most time consuming thing would be settings GUI and settings persistence, it's always a hassle but not hard. Currently I'm pretty busy so wont do it myself at the moment but happy to take a pull request with the feature added in the meantime if someone what's to do it now. In the meantime I'll merge the dev_json branch into master and do a prerelease binary build

Thanks @jontio ! I can take a stab at it.