schwehr / libais

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

Broken handling of single-line messages with a tag block #203

Open hogend opened 4 years ago

hogend commented 4 years ago

Single-line messages are never parsed because of

tag_block.py: 147: if sentence_num == 1: self.groups[group_id] = { 'line_nums': [self.line_num], 'lines': [line], 'matches': [match], 'times': [time], } return

i.e. sentence_num == 1 always returns and the subsequent decoding code is unreachable.

Suggested fix: if sentence_num == 1: self.groups[group_id] = { 'line_nums': [], 'lines': [], 'matches': [], 'times': [], }

then the data will be appended and, if sentence_num == sentence_total, decoded.