Skip to content

Commit 62fe302

Browse files
Upgrade to aprslib 0.7.0
1 parent 75eed9d commit 62fe302

File tree

4 files changed

+17
-4
lines changed

4 files changed

+17
-4
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,3 +132,4 @@ log.html
132132
output.xml
133133
report.html
134134
.DS_Store
135+
.idea

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,11 @@ My first test case
9696

9797
- When you need to define strings which contain multiple spaces, escaping these strings won't work as Robot will try to interpret these as list values. You need to construct them as Robot-conform strings with ``${SPACE}``. Example: ``ABCD${SPACE}${SPACE}${SPACE}${SPACE}EFGH`` results in ``ABCD____EFGH`` (four blanks between the variable's value).
9898

99-
- Apart from minor helper methods for the connection setup and field check/retrieval, this Robot Framework library does not offer any additional keywords for exchanging data in a proper way. (Almost) every feature that the original [aprslib](https://github.com/rossengeorgiev/aprs-python) offers is supported by this Robot library - nothing more and nothing less. As aprslib does not [support the more recent replyack scheme](http://www.aprs.org/aprs11/replyacks.txt), this keyword library will also not decode these messages in a proper way and you may need to decode them manually. I was thinking about introducing a workaround to this library (the one that [mpad](https://github.com/joergschultzelutter/mpad) uses), but in the end this decoding should rather be done by aprslib itself.
99+
- Apart from minor helper methods for the connection setup and field check/retrieval, this Robot Framework library does not offer any additional keywords for exchanging data in a proper way. (Almost) every feature that the original [aprslib](https://github.com/rossengeorgiev/aprs-python) offers is supported by this Robot library - nothing more and nothing less.
100100

101101
- The current version of the Robot Framework does not support WHILE loops (planned for RF 5.x) which would permit the Robot script to run endlessly (when needed). Loops can only be triggered with the help of finite FOR loops. This should be enough for testing but unless a real WHILE loop is made available for the Robot Framework, you can't build an APRS messaging server which will not terminate after a certain point in time.
102102

103-
- The ```Receive APRS Packet``` keyword has no timeout which means that it will only return back from this code if it has found a message that is to be returned back to Robot. If you depend on timeout, you may need to amend your APRS-IS filter settings and handle the filter process in your code.
103+
- The ```Receive APRS Packet``` keyword has no timeout which means that it will only return from its code if it has found a message that is to be returned to Robot. If you depend on timeout, you may need to amend your APRS-IS filter settings and handle the filter process in your code.
104104

105105
- The keyword ``Send APRS Packet`` will __not__ check whether the APRS-IS connection has been establised read-only (``N0CALL`` call sign) or read-write.
106106

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
aprs-python>=0.6.47
1+
aprslib>=0.7.0
22
robotframework>=3.2

src/AprsLibrary.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
)
3131
logger = logging.getLogger(__name__)
3232

33-
__version__ = "0.5.0"
33+
__version__ = "0.6.0"
3434
__author__ = "Joerg Schultze-Lutter"
3535

3636

@@ -454,6 +454,12 @@ def get_msgno(self, aprs_packet):
454454
aprs_packet=aprs_packet, field_name="msgNo"
455455
)
456456

457+
@keyword("Get Ack Message Number Value from APRS Packet")
458+
def get_ackmsgno(self, aprs_packet):
459+
return self.get_value_from_aprs_packet(
460+
aprs_packet=aprs_packet, field_name="ackMsgNo"
461+
)
462+
457463
# This is the core function which will extract the requested
458464
# field name from our packet(s). The packet can either be in
459465
# raw format (str or bytes) OR decoded. If you try to access
@@ -542,6 +548,12 @@ def check_packet_msgno(self, aprs_packet):
542548
aprs_packet=aprs_packet, field_name="msgNo"
543549
)
544550

551+
@keyword("Check If APRS Packet Contains Ack Message Number")
552+
def check_packet_ackmsgno(self, aprs_packet):
553+
return self.check_if_field_exists_in_packet(
554+
aprs_packet=aprs_packet, field_name="ackMsgNo"
555+
)
556+
545557
# This is the core function which will check if a field exists
546558
# in our packet(s). The packet can either be in
547559
# raw format (str or bytes) OR decoded.

0 commit comments

Comments
 (0)