When using the linux kernel AX.25 interface, the fmt()
function in ax25socket.cpp (used to be sockets.cpp)
cleans up the packets a bit too much. Specifically it
uses isprint() to select which characters to pass on
and that breaks mic-e, which uses, among others,
decimal characters 28-31 and 127.
I've attached here a small patch that does away with
the isprint() by specifically passing all bytes of
decimal value 28-127 and discarding all other bytes.
This also discards many national characters that are
over 127 decimal, but to me that is just keeping up
with the APRS specification that only talks about 7-bit
ASCII characters. I guess a similar clearly defined
cleaning procedure could be applied to the plain
command mode TNC interface as well.
Tapio, OH2KKU (@iki.fi)
patch, see body of bug report
Logged In: NO
After receiving some heat on aprssig (mainly because aprs
and aprs-is "specifications" are not clear on things) one
might want to let all bytes with a value of 28 or over pass.
This can be done by just removing the second condition of
the if-clause in my previous patch. Or one might even want
to let all bytes (including zero) pass and leave it to
everyone who parses the data to worry about it.
OH2KKU
Logged In: YES
user_id=448632
In fact, telemetry packets and user-defined packets may
have 8-bit data. You need to pass all characters without
modification.