Commit Graph

232 Commits

Author SHA1 Message Date
Rossen Georgiev ecb9ce71fb add sonarcloud config 2021-11-27 19:44:24 +00:00
Rossen Georgiev 3d316742e6 remove scrutinizer conf 2021-11-27 19:42:56 +00:00
Rossen Georgiev 0d5f9fbf22 tweak build process 2021-11-27 19:42:02 +00:00
Rossen Georgiev d40d7a48a1 bump to v0.7.0 2021-11-27 19:36:15 +00:00
Rossen e17efe2a29
Merge pull request #66 from rossengeorgiev/joergschultzelutter-master
Updated: Support for the 'more recent' reply/ack msg format from 1999 #61
2021-11-27 19:33:42 +00:00
Rossen Georgiev 303fe826bd parse: rework message rejack parsing + update tests 2021-11-27 19:31:07 +00:00
Rossen Georgiev 8928424a9c convert tests to use unittest 2021-11-27 16:25:01 +00:00
Joerg Schultze-Lutter 171ce425b4 Removed unnecessary comments 2021-11-27 16:10:55 +00:00
Joerg Schultze-Lutter 90f05c9a4a Added test script for new APRS 'message' format field 'ackMsgNo' 2021-11-27 16:10:55 +00:00
Joerg Schultze-Lutter bee37df76d Fixed final msg parser bug when no msgno was present 2021-11-27 16:10:55 +00:00
Joerg Schultze-Lutter a1deb2ffa3 ackMsgNo support (http://www.aprs.org/aprs11/replyacks.txt)
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
2021-11-27 16:10:55 +00:00
Rossen Georgiev 8d1822ec2d fix phg_gain calculation being incorrect on py2 2021-11-27 15:33:16 +00:00
Rossen Georgiev 71a97f3438 parsing: calculate power,height,gain,range for PHG 2021-11-27 15:28:55 +00:00
Rossen Georgiev bbe1f4dc61 Merge branch 'TheCranston-master'; close #64 2021-11-27 14:52:04 +00:00
Rossen Georgiev 2e9c4a9c56 parsing: refine PHGR code and update tests 2021-11-27 14:51:11 +00:00
TheCranston dc90983cb6 Update common.py
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.
2021-11-27 14:14:19 +00:00
Rossen Georgiev a3e205f001 Merge branch 'wsmitchell3-dev'; Close #43 2021-11-27 13:45:58 +00:00
Rossen Georgiev cf32c15a44 fix test_unsupported_formats_raising; wasn't checking every type before 2021-11-27 13:44:38 +00:00
Rossen Georgiev 09db998143 refine unsupported packet type message 2021-11-27 13:43:38 +00:00
Bill Mitchell 3c82d6463e Moved unsupported format list to larger scope, use the dictionary keys
to test if a packet is in the unsupported list.
2021-11-27 13:22:46 +00:00
Bill Mitchell e79aafe29a Roll back previous commit 2021-11-27 13:20:56 +00:00
Bill Mitchell 3a12e45342 If parsing fails on body after succeeding on head, return the
partially-parsed packet as part of the error.
2021-11-27 13:20:56 +00:00
Bill Mitchell a14da1d78d When packet type is unsupported, give error message which specifies
the packet type.
2021-11-27 13:20:56 +00:00
Rossen Georgiev 4557e44e02 remove 3rd-party from unsupport list in the comment 2021-11-27 13:19:40 +00:00
Rossen Georgiev 4d47818791 Merge branch 'wsmitchell3-third-party-v2'
Close #45
2021-11-27 13:03:37 +00:00
Rossen Georgiev e1eda0e53a fix unittest import in test_thirdparty 2021-11-27 12:57:23 +00:00
Bill Mitchell 6b96f01db2 Added ParseError to third-party packet error handling 2021-11-27 12:10:20 +00:00
Bill Mitchell 2e22a3c985 Updated testing to include third-party packets 2021-11-27 12:10:20 +00:00
Bill Mitchell 3659faa509 Added third-party packet support 2021-11-27 12:10:20 +00:00
Rossen Georgiev f5776bf2f7 ci: add py3.9 2021-02-17 22:19:40 +00:00
Rossen 55d85c6bc5
Move to Github Actions (#59) 2021-01-21 23:27:50 +00:00
Rossen Georgiev 097ba853c4 bump v0.6.37 2019-10-26 20:17:21 +01:00
Rossen Georgiev 512d97122c fix StopIteration breaking a test on py37+ 2019-10-08 20:02:24 +01:00
Rossen Georgiev 2f0f74a06d fix SyntaxWarning for py38 and remove py33 on travis 2019-10-08 19:42:53 +01:00
Rossen Georgiev c3c886e5c6 fix #54; getting a float instead of integer 2019-10-08 19:38:17 +01:00
Rossen Georgiev 5a84e5fd0b travis: remove py2.6 add py3.7 2019-06-02 11:24:47 +01:00
Rossen Georgiev 94b89a6da4 parsing: fix incorrect parsing of msgNo
msgNo should accept alphanumeric characters

fix #36
2018-01-20 14:55:23 +00:00
Rossen Georgiev acb4c66ff9 fix #39; typos 2018-01-20 14:38:23 +00:00
Rossen Georgiev 39a9c0a1a4 fix #35 #lines not being filtered on python3 2017-09-28 21:15:14 +01:00
Rossen Georgiev b6d67fd66d docs: fix print syntax in example
Fixes #32
2017-09-23 13:35:01 +01:00
Bryce Salmi 96d914b29d Initial telemetry packet report (#27) 2017-03-19 11:48:09 +00:00
Rossen Georgiev 7d5dafa649 PositionReport: validate lat and long
added input validation for latitude and longitude
2017-03-12 12:33:13 +02:00
Liu Huayu 9cee09b7a8 Correct param name in examples docs (#24) 2017-03-05 03:33:56 +00:00
Rossen Georgiev b1939176c6 add py3.6 + nightly to travis 2017-02-21 19:46:12 +02:00
Rossen Georgiev f6a952a109 bump to v0.6.46 2017-01-28 23:24:20 +02:00
Rossen Georgiev 8a3a677c07 fix parsing of message ACK/REJ; #23 2017-01-28 23:22:21 +02:00
Rossen Georgiev ef5ecb8db5 scrutinizer enable code rating 2016-09-08 23:49:47 +03:00
Rossen Georgiev aaa1848586 docs: fix repo link 2016-08-16 22:50:03 +01:00
Rossen Georgiev 0017a7cc11 update documetation links to rtd; #20 2016-08-16 22:33:58 +01:00
Rossen Georgiev 5563a6d8c7 refactor total_seconds() for py2.6 comp 2016-08-16 22:28:00 +01:00