Действительно ли важна вторая часть / предложение в сообщении AIS AIVDM типа 5? - PullRequest
0 голосов
/ 10 июля 2019

У меня есть антенна AIS, получающая предложения AIVDM с 1 года назад.

Теперь я начинаю декодировать предложения с использованием https://github.com/bcl/aisparser и обнаружил, что в сообщениях типа 5 есть два предложения aivdm, которые не всегда приходят последовательно и обычно теряют (по крайней мере, в моем случае) второе предложение, делая декодировку довольно сложный.

Я попытался обменяться предложениями второй части, чтобы увидеть, что происходит и действительно ли это важно.

Например, если вы попробуете эти предложения в https://www.maritec.co.za/tools/aisvdmvdodecoding/:

!AIVDM,2,1,0,A,58wt8Ui`g??r21`7S=:22058<v05Htp000000015>8OA;0sk,0*7B
!AIVDM,2,2,0,A,eQ8823mDm3kP00000000000,2*5D
!AIVDM,2,1,6,A,58wt8Ui`g??r21`7S=:22058<v05Htp000000015>8OA;0sk,0*7B
!AIVDM,2,2,6,A,:062paRLOaD,2*79

вы заметите, что единственным изменением является то, что вторая пара («неправильная» с «адаптированной» второй частью) имеет неправильное «назначение», поэтому действительно важно взять на себя всю работу по декодированию, если вас не интересует поле 'destination'?

Всего наилучшего

1 Ответ

0 голосов
/ 12 июля 2019

Действительно, может быть сложно сопоставить соответствующие две части сообщений типа 5, но вы можете положиться на эту библиотеку, чтобы сделать это за вас: https://github.com/schwehr/libais

import ais
q = ais.nmea_queue.NmeaQueue()
while True:
    msg = next(your_message_iterator)
    q.put(msg)
    if q.qsize():
        d = q.get().get('decoded', None) 
        # Then do whatever you need with d (store it, print it,...)

С этим параметромрезультат q.get_size() может быть 0, если вы являетесь первой частью сообщения типа 5 (или недопустимой последовательностью AIS), или 1, если вы добавили сообщение из одного предложения, или второе предложение, которое соответствует уже присутствующему первому-предложение.

Примечание: Чтобы ответить на ваш вопрос, вы можете получить подробную информацию о том, какая информация зашифрована в каком бите в параграфе " Тип 5: Статические данные и данные, относящиеся к рейсу «on https://gpsd.gitlab.io/gpsd/AIVDM.html. Это поможет вам понять, какие данные будут потеряны, если второе сообщение недействительно.

...