Обсуждаем цифровые устройства...
Ответить

AIS NMEA AIVDM/AIVDO protocol decoding, как?

Сб сен 20, 2014 21:47:57

Очень нужна помощь!
Пытаюсь разобраться с кодировкой сообщения AIS (автоматическая идентификационная система, обеспечивающая безопасное передвижение кораблей и самолетов).
На сайте http://catb.org/gpsd/AIVDM.html есть полное описание, но не могу понять...
Нужно из сообщения выдрать параметр COG - курс относительно земли.
К примеру, сообщение (COG=150):
!AIVDM,1,1,,A,166?maw000007qawwB55o4e@050l,0
содержит следующую информацию (декодировано на сайте http://www.aggsoft.com/ais-decoder.htm):
СпойлерPacket Type AIVDM
CHANNEL A
Message Type 1 Scheduled Position Report
Repeat Indicator 0 Default
User ID 409204135
Navigation Status 15 Not defined (default)
Rate of Turn (ROT) 0 Turning right at up to 708 degrees per minute or higher
Speed Over Ground (SOG) 0
Position Accuracy 0 An unaugmented GNSS fix with accuracy > 10 m
Longitude 0.02696666666667 East
Latitude -0.01959166666667 West
Course Over Ground (COG) 150
True Heading (HDG) 150
Time Stamp 40
Reserved for regional 0 Not available (default)
RAIM flag 0 RAIM not in use (default)
Communication State 20532 Sync state: UTC Direct; Slot Timeout: 1 frames respectively are left until slot change; UTC hour: 20, UTC minute: 1
Communication Sync State 0 Sync state: UTC Direct
Communication Slot Timeout 1 Slot Timeout: 1 frames respectively are left until slot change
Communication Sub Message 4148
Communication Utc Hour 8
Communication Utc Minute 13
Communication Time Stamp 30-12-99
Communication Slot Number No value
Communication Received Stations No value
Communication Slot Offset No value

Это:
!AIVDM,1,1,,A,166?maw000007qawwB5>4;@6050l,0
все тоже самое, только COG=360, и время, присутствующее в каждом сообщении для синхронизации, уже другое.

Вся информация содержится в блоке data payload (Field 6): 166?maw000007qawwB5>4;@6050l
Что за 6 битная кодировка ASCII, и как указывается знак и десятичная точка?

пс примеры сообщений сгенерированы программой NemaStudio, доступна в триале на офсайте.

Re: AIS NMEA AIVDM/AIVDO protocol decoding, как?

Пн сен 22, 2014 22:17:33

Что за 6 битная кодировка ASCII, и как указывается знак и десятичная точка?

В таблице 2 приведено соответствие. Вам нужно из последовательности байт выделить группы по 6 бит и далее по таблице получить строку. Там даже дан алгоритм кодирования:
The data payload is an ASCII-encoded bit vector. Each character represents six bits of data. To recover the six bits, subtract 48 from the ASCII character value; if the result is greater than 40 subtract 8.

Re: AIS NMEA AIVDM/AIVDO protocol decoding, как?

Вт сен 23, 2014 00:20:49

да, спасибо! а то я себе какие то сложности при первом прочтении мануала нарисовал :?

Re: AIS NMEA AIVDM/AIVDO protocol decoding, как?

Чт ноя 25, 2021 23:15:26

Тема старая, получилось?
Ответить