Decode the 'new' ackMsgNo for ack/rej responses and standard
APRS messages while still honoring the original format from aprs101.pdf
The following assumptions apply when handling APRS messages in general:
Option 1: no message ID present:
send no ACK
outgoing messages have no msg number attachment
Example data exchange 1:
DF1JSL-4>APRS,TCPIP*,qAC,T2PRT::WXBOT :94043
WXBOT>APRS,qAS,KI6WJP::DF1JSL-4 :Mountain View CA. Today,Sunny High 60
Example data exchange 2:
DF1JSL-4>APRS,TCPIP*,qAC,T2SPAIN::EMAIL-2 :blah@gmail.com Hallo
EMAIL-2>APJIE4,TCPIP*,qAC,AE5PL-JF::DF1JSL-4 :Email sent to blah@gmail.com
Option 2: old message number format is present: (example: msg{12345)
Send ack with message number from original message (ack12345)
All outgoing messages have trailing msg number ( {abcde ); can be numeric or
slphanumeric counter. See aprs101.pdf chapter 14
Example data exchange 1:
DF1JSL-4>APRS,TCPIP*,qAC,T2SP::EMAIL-2 :blah@gmail.com Hallo{12345
EMAIL-2>APJIE4,TCPIP*,qAC,AE5PL-JF::DF1JSL-4 :ack12345
EMAIL-2>APJIE4,TCPIP*,qAC,AE5PL-JF::DF1JSL-4 :Email sent to blah@gmail.com{891
DF1JSL-4>APOSB,TCPIP*,qAS,DF1JSL::EMAIL-2 :ack891
Example data exchange 2:
DF1JSL-4>APRS,TCPIP*,qAC,T2CSNGRAD::EMAIL-2 :blah@gmail.com{ABCDE
EMAIL-2>APJIE4,TCPIP*,qAC,AE5PL-JF::DF1JSL-4 :ackABCDE
EMAIL-2>APJIE4,TCPIP*,qAC,AE5PL-JF::DF1JSL-4 :Email sent to blah@gmail.com{893
DF1JSL-4>APOSB,TCPIP*,qAS,DF1JSL::EMAIL-2 :ack893
Option 3: new messages with message ID but without trailing retry msg ids: msg{AB}
Do NOT send extra ack
All outgoing messages have 2-character msg id, followed by message ID from original message
Example:
User sends message "Hello{AB}" to MPAD
MPAD responds "Message content line 1{DE}AB" to user
MPAD responds "Message content line 2{DF}AB" to user
AB -> original message
DE, DF -> message IDs generated by MPAD
Example data exchange 1:
DF1JSL-4>APRS,TCPIP*,qAC,T2NUERNBG::WXBOT :99801{AB}
WXBOT>APRS,qAS,KI6WJP::DF1JSL-4 :Lemon Creek AK. Today,Scattered Rain/Snow and Patchy Fog 50% {QL}AB
DF1JSL-4>APOSB,TCPIP*,qAS,DF1JSL::WXBOT :ackQL}AB
WXBOT>APRS,qAS,KI6WJP::DF1JSL-4 :High 40{QM}AB
DF1JSL-4>APOSB,TCPIP*,qAS,DF1JSL::WXBOT :ackQM}AB
Example data exchange 2:
DF1JSL-4>APRS,TCPIP*,qAC,T2SPAIN::EMAIL-2 :blah@gmail.com Hallo{AB}
EMAIL-2>APJIE4,TCPIP*,qAC,AE5PL-JF::DF1JSL-4 :Email sent to blah@gmail.com{OQ}AB
DF1JSL-4>APOSB,TCPIP*,qAS,DF1JSL::EMAIL-2 :ackOQ}AB
Option 4: new messages with message ID and with trailing retry msg ids: msg{AB}CD
Follow the instructions as per http://www.aprs.org/aprs11/replyacks.txt
Example data exchange 1:
DF1JSL-4>APRS,TCPIP*,qAC,T2CZECH::WXBOT :99801{LM}AA
WXBOT>APRS,qAS,KI6WJP::DF1JSL-4 :Lemon Creek AK. Today,Scattered Rain/Snow and Patchy Fog 50% {QP}LM
DF1JSL-4>APOSB,TCPIP*,qAS,DF1JSL::WXBOT :ackQP}LM
WXBOT>APRS,qAS,KI6WJP::DF1JSL-4 :High 40{QQ}LM
DF1JSL-4>APOSB,TCPIP*,qAS,DF1JSL::WXBOT :ackQQ}LM
Example data exchange 2:
DF1JSL-4>APRS,TCPIP*,qAC,T2SP::EMAIL-2 :blah@gmail.com Welt{DE}FG
EMAIL-2>APJIE4,TCPIP*,qAC,AE5PL-JF::DF1JSL-4 :Email sent to blah@gmail.com{OS}DE
DF1JSL-4>APOSB,TCPIP*,qAS,DF1JSL::EMAIL-2 :ackOS}DE
This comprehends the PHGR custom message that MUST be terminated by "/" and the standard PHG message of 4 chars. The math "Should" be done for the "R" in terms of direction but that has been omitted.
I have an app that uses consumer, but needs to pass in some kwargs
for consumption at consumer function call time. This patch adds
kwargs support to consumer creation as well as passing those kwargs
at consumer callback time.