We should add a new data type to represent Station ID: callsign + SSID. Notional requirements:
Canonicalize the string representation
n0call → N0CALL
N0CALL-0 → N0CALL
N0CALL- → N0CALL
Accept only callsigns 3 – 7 ASCII characters
Accept only SSIDs in A-Z and numeric 1 to 15
Conversion to/from 6-byte wireline representation
Comparison function (i.e., is this packet for me?)
The data type should probably contain:
The ASCII C string representation
The compressed 6-byte wireline representation
Everything except for (2) is strictly optional, but it is handy to have a type that can be snprintf()'d without further transforms.
Construction should probably involve a round-trip through the compressor to ensure it can be transmitted losslessly.
NOTE: for future protocol designs, I favor the 28-bit representation from js8call, which seems to do a good job of representing all the world's callsigns. We cannot change the ARDOP wireline representation at this time, but I would encourage future protocols to adopt a more complete encoding.
(Continued from discussion in #50)
We should add a new data type to represent Station ID: callsign + SSID. Notional requirements:
Canonicalize the string representation
n0call
→N0CALL
N0CALL-0
→N0CALL
N0CALL-
→N0CALL
Accept only callsigns 3 – 7 ASCII characters
Accept only SSIDs in
A-Z
and numeric1
to15
Conversion to/from 6-byte wireline representation
Comparison function (i.e., is this packet for me?)
The data type should probably contain:
Everything except for (2) is strictly optional, but it is handy to have a type that can be
snprintf()
'd without further transforms.Construction should probably involve a round-trip through the compressor to ensure it can be transmitted losslessly.
NOTE: for future protocol designs, I favor the 28-bit representation from js8call, which seems to do a good job of representing all the world's callsigns. We cannot change the ARDOP wireline representation at this time, but I would encourage future protocols to adopt a more complete encoding.