diff --git a/pynmea2/types/proprietary/tnl.py b/pynmea2/types/proprietary/tnl.py index 567c46b..476f1ce 100644 --- a/pynmea2/types/proprietary/tnl.py +++ b/pynmea2/types/proprietary/tnl.py @@ -181,3 +181,32 @@ class TNLPJT(TNL): ('Coordinate System', 'coord_name'), ('Project Name', 'project_name'), ) + +class TNLEVT(TNL, DatetimeFix): + """ + Trimble EVT message (used for events like hardware triggers) + + 0 Talker ID $PTNL + 1 Message ID EVT + 2 Event time. UTC time of event in format hhmmss.ssssss + 3 Port number. Port event markers receiver: "1" or "2" (optional), + if two ports are available. + 4 NNNNNN. Incremental number of events on each independent port. + 5 WWWW. Week number of event (since 06 January 1980). + 6 Day of week. Days denoted 0 = Sunday…6 = Saturday. + 7 Leap second. UTC Leap Second offset from GPS time, + 8 The checksum data, always begins with * + + Example message: + $PTNL,EVT,131007.999785,2,460,2181,5,18*72 + """ + fields = ( + ('Empty', '_'), + ('Sentence Type', 'type'), + ('Timestamp', 'timestamp', timestamp), + ('Port Number', 'port_num', int), + ('Event Number', 'event_num', int), + ('GPS Week Number', 'gps_week_num', int), + ('GPS Day of the Week', 'gps_day_num', int), + ('Leap Seconds', 'leap_secs', int) + ) diff --git a/test/test_tnl.py b/test/test_tnl.py index 06383b8..d1fab8e 100644 --- a/test/test_tnl.py +++ b/test/test_tnl.py @@ -107,3 +107,16 @@ def test_tnlvhd(): assert msg.gps_quality == '3' assert msg.num_sats == 7 assert msg.pdop == 2.4 + +def test_tnlevt(): + data = '$PTNL,EVT,131007.999785,2,460,2181,5,18*72' + msg = pynmea2.parse(data) + assert type(msg) == pynmea2.tnl.TNLEVT + assert msg.manufacturer == 'TNL' + assert msg.type == 'EVT' + assert msg.timestamp == datetime.time(13, 10, 7, 999785, tzinfo=datetime.timezone.utc) + assert msg.port_num == 2 + assert msg.event_num == 460 + assert msg.gps_week_num == 2181 + assert msg.gps_day_num == 5 + assert msg.leap_secs == 18