I discovered some things today while doing GDL90 message parsing:

1) I didn't understand CRC16, and I had a subtle error causing some messages to fail. Fixed now
2) Part of the GDL90 document says to refer to RTCA/DO-282, Section 2.2 for how a payload is specified. This document is not free, because of course it isn't.
3) Stratux was written in go. Reverse engineering parts of the source is challenging for me as I don't know go.
4) Staring a bitshifts and hex will make you go slowly mad

I got all the CRC stuff working in the end. Not sure what I'm doing about the paywall (definitely not paying $800 for a specification that should be free). I'll probably reverse engineer it out of one of the other open source GDL90 parsers.

It has been a while since I got to sit down and be in "the zone" with code. It feels nice.