pyModeS icon indicating copy to clipboard operation
pyModeS copied to clipboard

Add ACAS support

Open tuftedocelot opened this issue 4 years ago • 7 comments

Definitely not ready yet. I need to find a source of actual ACAS messages versus reading straight from the specs (not pretty)

tuftedocelot avatar May 21 '20 01:05 tuftedocelot

I updated the structure and functions.

acas.py is meant for DF=0/16. So I moved some functions to BDS61 bds61_st2.py.

I also consolidated some of the functions, and still need to properly test the code before merging. But it looks quite good already.

junzis avatar May 23 '20 21:05 junzis

:+1:

Thanks for the ARA material. I couldn't decide how to return/present that info back.

When it comes to tests, are there any good ADS-B/Mode S message repositories already out there? I checked opensky's Java library and there aren't even any tests in there to borrow valid messages from. The only other thing I could think of was to log any/all messages that I can receive and go spelunking for the relevant message types

tuftedocelot avatar May 23 '20 21:05 tuftedocelot

When it comes to tests, are there any good ADS-B/Mode S message repositories already out there? I checked opensky's Java library and there aren't even any tests in there to borrow valid messages from. The only other thing I could think of was to log any/all messages that I can receive and go spelunking for the relevant message types

@xoolive, do you have any hand-picked BDS61 messages from your recent paper for a proper unit test?

junzis avatar May 23 '20 23:05 junzis

I don't understand the link between ACAS messages and BDS61? (extended squitter emergency/priority status)

Flyer350 avatar Nov 24 '20 13:11 Flyer350

I don't understand the link between ACAS messages and BDS61? (extended squitter emergency/priority status)

It's been a while. I think it was about the coordinated reply in DF=16, which has a very similar structure as BDS 6,1 (subtype 2)

junzis avatar Dec 02 '20 10:12 junzis

The MV field in DF=16 can be any GICB data. This makes the decoding very complicated.

It is similar to what we did with BDS inferring, except that now we are probably getting extended squitter data, and this is very hard to inference without knowing the data selector code.

junzis avatar Dec 02 '20 20:12 junzis

I can run it against DF16 messages, though they all return False from isACAS. I note it says it's for 3,1, but then the string appears to be for 3,0:

    :return: if VDS is 3,1
...
    vds = mv[0:8]
    if vds == "00110000":

Looks like the messages I'm seeing with DF16 are UDS 5,8 and 5,9. Not sure if it'd be helpful to paste them in here, but I thought I'd at least indicate I'd tested isACAS.

tedder avatar Mar 28 '21 17:03 tedder

I am going to pull this into a separate branch and then work from there.

junzis avatar Dec 26 '22 17:12 junzis