schwehr / libais

C++ decoder for Automatic Identification System for tracking ships and decoding maritime information
Other
215 stars 94 forks source link

HandlsAds/TimeUTC doesn't handle missing fields #217

Open andyvan-trabus opened 2 years ago

andyvan-trabus commented 2 years ago

I was running the tag_block code on a file of AIS messages, and I got an exception:

File "/home/avanpelt/git/libais/ais/tag_block.py", line 135, in put decoded = nmea_messages.DecodeLine(match['payload']) File "/home/avanpelt/git/libais/ais/nmea_messages.py", line 470, in DecodeLine message = HANDLERSsentence File "/home/avanpelt/git/libais/ais/nmea_messages.py", line 127, in HandleAds TimeUtc(fields) File "/home/avanpelt/git/libais/ais/nmea_messages.py", line 52, in TimeUtc seconds, fractional_seconds = FloatSplit(float(fields['seconds'])) TypeError: float() argument must be a string or a number, not 'NoneType'

line = '$ANADS,L3 AIS ID,,A,4,I,N*02' sentence = 'ADS' fields = {'talker': 'AN', 'sentence': 'ADS', 'id': 'L3 AIS ID', 'time_utc': None, 'hours': None, 'minutes': None, 'seconds': None, 'alarm': '', 'time_sync_method': '4', 'pos_src': 'I', 'time_src': 'N', 'checksum': '02'}