1# Sample AIVDM data sentences provided from real data by Kurt Schwehr 2# Mike Greene, Neal Arundale, and AISHub. 3# 4# This file is Copyright (c) 2010 by the GPSD project 5# BSD terms apply: see the file COPYING in the distribution root for details. 6# 7# Type 1: 8# From Kurt Schwehr. Dump was attached. 9# Checked using the noaadata tools and the Maritec decoder. 10!AIVDM,1,1,,A,15RTgt0PAso;90TKcjM8h6g208CQ,0*4A 11# MessageID: 1 12# RepeatIndicator: 0 13# UserID: 371798000 14# NavigationStatus: 0 15# ROT: -127 16# SOG: 12.3 17# PositionAccuracy: 1 18# longitude: -123.395383333 19# latitude: 48.38163333333 20# COG: 224 21# TrueHeading: 215 22# TimeStamp: 33 23# RegionalReserved: 0 24# Spare: 0 25# RAIM: False 26# state_syncstate: 0 27# state_slottimeout: 2 28# state_slotoffset: 1249 29# 30# Type 1: 31# From Kurt Schwehr. Dump was attached. Checked using the noaadata tools. 32!AIVDM,1,1,,A,16SteH0P00Jt63hHaa6SagvJ087r,0*42 33# MessageID: 1 34# RepeatIndicator: 0 35# UserID: 440348000 36# NavigationStatus: 0 37# ROT: -128 38# SOG: 0 39# PositionAccuracy: 0 40# longitude: -70.7582 41# latitude: 43.08015 42# COG: 93.4 43# TrueHeading: 511 44# TimeStamp: 13 45# RegionalReserved: 0 46# Spare: 0 47# RAIM: False 48# state_syncstate: 0 49# stare_slottimeout: 2 50# state_slotoffset: 506 51# 52# Type 2: 53# From Kurt Schwehr. Dump was attached. Checked using the noaadata tools. 54# I had to regenerate the CRC32 for this one myself, it was missing in 55# Kurt's original. 56!AIVDM,1,1,,B,25Cjtd0Oj;Jp7ilG7=UkKBoB0<06,0*60 57# MessageID: 2 58# RepeatIndicator: 0 59# UserID: 356302000 60# NavigationStatus: 0 61# ROT: 127 62# SOG: 13.9 63# PositionAccuracy: 0 64# longitude: -71.62614333333333333333333333 65# latitude: 40.39235833333333333333333333 66# COG: 87.7 67# TrueHeading: 91 68# TimeStamp: 41 69# RegionalReserved: 0 70# Spare: 0 71# RAIM: False 72# state_syncstate: 0 73# state_slottimeout: 3 74# state_slotoffset: 6 75# 76# Type 3: 77# From Kurt Schwehr. Dump was attached. Checked using the noaadata tools. 78!AIVDM,1,1,,A,38Id705000rRVJhE7cl9n;160000,0*40 79# MessageID: 3 80# RepeatIndicator: 0 81# UserID: 563808000 82# NavigationStatus: 5 83# ROT: 0 84# SOG: 0 85# PositionAccuracy: 1 86# longitude: -76.32753333333333333333333333 87# latitude: 36.91 88# COG: 252 89# TrueHeading: 352 90# TimeStamp: 35 91# RegionalReserved: 0 92# Spare: 0 93# RAIM: False 94# state_syncstate: 0 95# state_slottimeout: 0 96# state_slotoffset: 0 97# 98# Type 4: 99# From Kurt Schwehr. Dump was attached. 100# Checked using the noaadata tools and the Maritec decoder. 101!AIVDM,1,1,,A,403OviQuMGCqWrRO9>E6fE700@GO,0*4D 102# MessageID: 4 103# RepeatIndicator: 0 104# UserID: 3669702 105# Time_year: 2007 106# Time_month: 5 107# Time_day: 14 108# Time_hour: 19 109# Time_min: 57 110# Time_sec: 39 111# PositionAccuracy: 1 112# Position_longitude: -76.35236166666666666666666667 113# Position_latitude: 36.88376666666666666666666667 114# fixtype: 7 115# Spare: 0 116# RAIM: False 117# state_syncstate: 0 118# state_slottimeout: 4 119# state_slotoffset: 1503 120# 121# Type 5: 122# From Kurt Schwehr. Dump was attached. 123# Checked using the noaadata tools and the Maritec decoder. 124!AIVDM,2,1,1,A,55?MbV02;H;s<HtKR20EHE:0@T4@Dn2222222216L961O5Gf0NSQEp6ClRp8,0*1C 125!AIVDM,2,2,1,A,88888888880,2*25 126# MessageID: 5 127# RepeatIndicator: 0 128# UserID: 351759000 129# AISversion: 0 130# IMOnumber: 9134270 131# callsign: 3FOF8 132# name: EVER DIADEM 133# shipandcargo: 70 134# dimA: 225 135# dimB: 70 136# dimC: 1 137# dimD: 31 138# fixtype: 1 139# ETAminute: 0 140# ETAhour: 16 141# ETAday: 15 142# ETAmonth: 5 143# draught: 12.2 144# destination: NEW YORK 145# dte: 0 146# Spare: 0 147# 148# Type 6: 149# From Kurt Schwehr 150# Text decode for this one came from regrouping the binary data dump from Kurt's 151# ais_msg_6.py on one of his test sentences. It's unknown what's in the binary 152# data block. The Maritec sdecoder confirms the preamble decoder but doesn't 153# display the data block. 154!AIVDM,1,1,,B,6B?n;be:cbapalgc;i6?Ow4,2*4A 155# MessageID: 6 156# RepeatIndicator: 1 157# UserID: 150834090 158# SeqNum: 3 159# DestinationID: 313240222 160# RetransmitFlag: False 161# Spare: 0 162# DAC 669 163# FID 11 164# Data: 48:eb2f118f7ff1 165# 166# Type 6, DAC 235, FID 10 (GLA, Rep. Ireland) 167# From Christian Gagneraud: 168# Decoding with Kanaton software. 169# !AIVDM,1,1,4,B,6>jR0600V:C0>da4P106P00,2*02 170# AIS channel:1 171# Message ID=6 172# Repeat Indicator=0 173# Source ID (MMSI)=992509976 174# Sequence number=0 175# Destination ID (MMSI)=2500912 176# Retransmit flag =0 177# Spare =0 178# Binary Data 179# Application identifier=0x3ACA(15050) 180# DAC=235(Specific) 181# Function identifier =10(GLA) 182# Application data: 183# Analogue internal=0x112->13.700V 184# Analogue input1=0x1->0.050V 185# Analogue input2=0x1->0.050V 186# AtoN status=0x14:Racon status=2(RACON operational), Ligth 187# status=2(light OFF), Good health=0(good health) 188# Digital status=0x00:In7=0,In6=0,In5=0,In4=0,In3=0,In2=0,In1=0,In0=0 189# Off position=0x00 190# Spare=0x00 191!AIVDM,1,1,4,B,6>jR0600V:C0>da4P106P00,2*02 192# 193# From AISHub. This type 6 has no data. It's paired with the 194# following type 7; both are verified by the match in the MMSI fields. 195# This one is fully verified by the Maritec decoder. 196!AIVDM,1,1,,A,63u?;TP0`QJ<06P000,4*43 197# Message Type : 6 198# Repeat Indicator : 0 199# MMSI : 265538450 200# Sequence Number : 0 201# Destination MMSI : 2655651 202# Retransmit flag : 0 203# DAC : 1 204# FID : 40 205# Data : 16:0000 206# 207# FIX-ME: We need a type 6 test case that requires more than one AIVDM fragment. 208# 209# Type 6: 210# Advertised as DAC 1, FID 12, but full of garbage. 211!AIVDM,1,1,,A,63LBA4;WBevJ04k0=@E=B0td,0*17 212# Advertised as DAC 1, FID 14, but full of garbage 213!AIVDM,1,1,,A,6h2E:81>NmKC04p0J<000?vv20Ru,0*31 214# Advertised as DAC 1, FID 18, but full of 0 215!AIVDM,1,1,,B,6h2E3MDrDRiB0580@00000000000,0*04 216 217# Type 7: 218# From AISHub - reported immediately after the preceding type 6, 219# which matches it. One destination MMSI. noaadata-0.43 fails 220# on this message (Kurt says his decoder only handles the longest case). 221!AIVDM,1,1,,A,702R5`hwCjq8,0*6B 222# Message Type : 7 223# Repeat Indicator : 0 224# MMSI : 2655651 225# MMSI number 1 : 265538450 226# 227# Type 7: 228# From Kurt Schwehr. Three destination MMSIs. 229# noaadata-04.2 fails on this message 230!AIVDM,1,1,,A,7IiQ4T`UjA9lC;b:M<MWE@,4*01 231# SourceMMSI: 655901842 232# MMSI1: 158483613 233# MMSI2: 321823389 234# MMSI3: 836359488 235# MMSI4: 0 236# 237# Type 7: 238# This was from Mike Greene and had a dump attached. Decode is known good. 239# noaadata-0.43 fails on this message 240!AIVDM,1,1,,B,7`0Pv1L:Ac8rbgPKHA8`P,2*56 241# Message Type: 7 242# RepeatIndicator: 2 243# SourceMMSI: 537411077 244# MMSI1: 43101326 245# MMSI2: 717096664 246# MMSI3: 76161024 247# 248# Type 8: 249# Text decode for this one came from regrouping the binary data dump from Kurt's 250# ais_msg_8.py on one of his test sentences. It's unknown what's in the binary 251# data block. 252!AIVDM,1,1,,A,85Mwp`1Kf3aCnsNvBWLi=wQuNhA5t43N`5nCuI=p<IBfVqnMgPGs,0*47 253# MessageID: 8 254# RepeatIndicator: 0 255# UserID: 366999712 256# ApplicationID: 23480 257# DAC 366 258# FID 22 259# Data: 256:3a53dbb7be4a773137f87d7b0445f040dea05d93f593783194ae9b9d9dbe05fb 260# 261# Type 8: 262# From Kurt Schwehr. Spans more than one AIVDM fragment. Known good. 263# Analyzed in <4BE6A423.8000007@ccom.unh.edu>, seems to be military traffic 264# with a mis-entered MMSI. 265!AIVDM,2,1,6,A,8>qc9wiKf>d=Cq5r0mdew:?DLq>1LmhHrsqmBCKnJ50,0*30 266!AIVDM,2,2,6,A,3OLc=UCRp,0*4A,b003660465 267# Message Type 8 268# Repeat Indicator 0 269# MMSI 999999999 270# DAC 366 271# FID 22 272# Data 256:eb0d4f917a035b2dfca3d4739381735c18ebbe754936f66850037dcacd9538b8 273# 274# Type 8, DAC 1, FID 11 (IMO 236 Met/Hydro message) 275# From Christian Gagneraud: 276# Specific NMEA messages with hard-coded Met/hydro values have been 277# send to a Kanaton, according to its default input settings 278# ($_HDXX,VAL*CS, where XX is the parameter index, 0 to 30, VAL is the 279# scaled parameter value, and CS the checksum). The resulting AIVDO 280# sentence has been decoded using the Kanaton software. Sent data, 281# kanaton decoder output and gpsd JSON output all match each other. 282!AIVDO,1,1,4,B,8>jR06@0Bk3:wOli;<`WPhh<1rqVBQf2V@Pdt0J82avIM2b<<Rv1t<ot=@1,2*54 283# "18/05/2012 18:15:37" !AIVDO,1,1,4,B,8>jR06@0Bk3:wOli;<`WPhh<1rqVBQf2V@Pdt0J82avIM2b<<Rv1t<ot=@1,2*54 284# AIS channel:1 285# Message ID=8 286# Repeat Indicator=0 287# Source ID (MMSI)=992509977 288# Spare=0 289# Binary Data 290# Application identifier=0x004B(75) 291# DAC=1(International) 292# Function identifier =11(Reserved for international operational applications) 293# Application data: 294# Latitude=0x30CAFD(53°017.693 N) 295# Longitude=0x59DA7(006°008.039 W) 296# Date and time=0x944F(18 17h15m) 297# Average wind speed=0x3(3 kts) 298# Wind gust=0x6(6 kt(s)) 299# Wind direction=0xC(12 degree(s)) 300# Wind gust direction=0xF(15 degree(s)) 301# Air temperature=0x2E6(14.2 degree(s) Celcius) 302# Relative humidity=0x32(50percent) 303# Dew point=0x143(12.3 degree(s) Celcius) 304# Air pressure=0xE0(1024 hPa) 305# Air pressure tendency=0x2(2(increasing)) 306# Horizontal visibility=0x99(15.3 NM) 307# Water level=0x10(-8.4 m) 308# Water level trend=0x1(1 hPa) 309# Surface current speed=0x67(10.3 kts) 310# Surface current direction=0x100(256 degree(s)) 311# Current speed #2=0x68(10.4 kts) 312# Current direction #2=0x101(257 degree(s)) 313# Current measuring level #2=0xA(10 m) 314# Current speed #3=0x7E(12.6 kts) 315# Current direction #3=0xCB(203 degree(s)) 316# Current measuring level #3=0x14(20 m) 317# Significant wave height=0x2A(4.2 m) 318# Wave period=0x23(35 Sec) 319# Wave direction=19(25 degree(s)) 320# Swell height=0x17(2.3) m 321# Swell period=0x30(48 Sec) 322# Swell direction=0x7C(124 degree(s)) 323# Sea state=0x3(3 Beaufort) 324# Water temperature=0xDF(12.3 degree(s) Celcius) 325# Precipitation=0x6(6 according to WMO) 326# Salinity=0x35(5.3 permil) 327# Ice=0x0(0) 328# 329# Type 8, DAC 1, FID 11 (IMO 236 Met/Hydro message) 330# From Christian Gagneraud: 331# Same set-up as above, but the NMEA stream to the Kanaton has been stopped, 332# causing the Kanaton to send a message with all bits set to 1, meaning "no 333# data available" 334!AIVDO,1,1,4,B,8>jR06@0Bk3:vOli;L`nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwt1,2*0E 335# "18/05/2012 18:45:37" !AIVDO,1,1,4,B,8>jR06@0Bk3:vOli;L`nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwt1,2*0E 336# AIS channel:1 337# Message ID=8 338# Repeat Indicator=0 339# Source ID (MMSI)=992509977 340# Spare=0 341# Binary Data 342# Application identifier=0x004B(75) 343# DAC=1(International) 344# Function identifier =11(Reserved for international operational applications) 345# Application data: 346# Latitude=0x30CAF9(53°017.689 N) 347# Longitude=0x59DA5(006°008.037 W) 348# Date and time=0x946D(18 17h45m) 349# Average wind speed=0x7F(127 kts) 350# Wind gust=0x7F(127 kt(s)) 351# Wind direction=0x1FF(511 degree(s)) 352# Wind gust direction=0x1FF(511 degree(s)) 353# Air temperature=0x7FF(144.7 degree(s) Celcius) 354# Relative humidity=0x7F(127percent) 355# Dew point=0x3FF(82.3 degree(s) Celcius) 356# Air pressure=0x1FF(1311 hPa) 357# Air pressure tendency=0x3(3()) 358# Horizontal visibility=0xFF(25.5 NM) 359# Water level=0x1FF(41.1 m) 360# Water level trend=0x3(3 hPa) 361# Surface current speed=0xFF(25.5 kts) 362# Surface current direction=0x1FF(511 degree(s)) 363# Current speed #2=0xFF(25.5 kts) 364# Current direction #2=0x1FF(511 degree(s)) 365# Current measuring level #2=0x1F(31 m) 366# Current speed #3=0xFF(25.5 kts) 367# Current direction #3=0x1FF(511 degree(s)) 368# Current measuring level #3=0x1F(31 m) 369# Significant wave height=0xFF(25.5 m) 370# Wave period=0x3F(63 Sec) 371# Wave direction=1FF(511 degree(s)) 372# Swell height=0xFF(25.5) m 373# Swell period=0x3F(63 Sec) 374# Swell direction=0x1FF(511 degree(s)) 375# Sea state=0xF(15 Beaufort) 376# Water temperature=0x3FF(92.3 degree(s) Celcius) 377# Precipitation=0x7(7 according to WMO) 378# Salinity=0x1FF(51.1 permil) 379# Ice=0x3(3) 380# 381# Type 8, DAC 1, FID 31 (IMO 289 Met/Hydro message) 382# From Christian Gagneraud: 383# Kanaton3 with all data marked as not available, checked with KanAton3_configV2.0.4.exe 384!AIVDO,1,1,5,A,8>jR06@0Gwli:QQUP3en?wvlFR06EuOwgwl?wnSwe7wvlOwwsAwwnSGmwvh0,0*51 385# AIS channel:1 386# Message ID=8 387# Repeat Indicator=0 388# Source ID (MMSI)=992509977 389# Spare=0 390# Binary Data 391# Application identifier=0x005F(95) 392# DAC=1(International) 393# Function identifier =31(Reserved for international operational applications) 394# Application data: 395# Longitude=0x59DAC(006°008.044 W) 396# Latitude=0x30CB00(53°017.696 N) 397# Pos. acc.=0 398# Date and time=0xEDD8(29 23h24m) 399# Average wind speed=0x7F(127 kts) 400# Wind gust=0x7F(127 kt(s)) 401# Wind direction=0x168(360 degree(s)) 402# Wind gust direction=0x168(360 degree(s)) 403# Air temperature=0xFFFFFC00(-102.4 degree(s) Celcius) 404# Relative humidity=0x65(101percent) 405# Dew point=0x1F5(50.1 degree(s) Celcius) 406# Air pressure=0x1FF(1310 hPa) 407# Air pressure tendency=0x3(3(Not available)) 408# Horizontal visibility=0x7F(12.7 NM) 409# Water level=0xFA1(30.01 m) 410# Water level trend=0x3(3) 411# Surface current speed=0xFF(25.5 kts) 412# Surface current direction=0x168(360 degree(s)) 413# Current speed #2=0xFF(25.5 kts) 414# Current direction #2=0x168(360 degree(s)) 415# Current measuring level #2=0x1F(31 m) 416# Current speed #3=0xFF(25.5 kts) 417# Current direction #3=0x168(360 degree(s)) 418# Current measuring level #3=0x1F(31 m) 419# Significant wave height=0xFF(25.5 m) 420# Wave period=0x3F(63 Sec) 421# Wave direction=168(360 degree(s)) 422# Swell height=0xFF(25.5) m 423# Swell period=0x3F(63 Sec) 424# Swell direction=0x168(360 degree(s)) 425# Sea state=0xD(13 Beaufort) 426# Water temperature=0x1F5(50.1 degree(s) Celcius) 427# Precipitation=0x7(7 according to WMO) 428# Salinity=0x1FE(51.0 permil) 429# Ice=0x3(3) 430# 431# Type 8, DAC 200, FID 10 (Inland AIS Ship Static and Voyage Data) 432# Paul Courbis <paul@courbis.com> 433!AIVDM,1,1,,B,83aDChPj2d<dL<uM=hhhI?a@6HP0,0*40 434# Message type : 8 435# Repleat Indicator : 0 436# MMSI : 244650946 437# DAC : 200 438# FID : 10 439# VIN : 02103547 440# Length : 390 441# Beam : 50 442# Vessel type : 8010 443# Type text : "Motor freighter" 444# Hazard : 0 445# Hazard text : "0 blue cones/lights" 446# Draught : 204 447# Loaded : 1 448# Loaded text : "Unloaded" 449# speed_q : false 450# course_q : false 451# heading_q : false 452# 453# This is a Type 8 blob that spoofs being Inland AIS Ship Static data. 454# but has garbage in the shiptype, vin, and other fields. 455# Curiously, it seems to have been emitted by the same ship (or, anyway, 456# the same MMSI) as the previous and valid one. 457# Paul Courbis <paul@courbis.com> 458!AIVDM,2,1,4,A,83aDChPj2d<dL<uM=hhhI?a@6HP0e9QvUEEEOPPrE4t880>p2JqA6wimt:Ow,0*22 459!AIVDM,2,2,4,A,UPP8k;JvOeD,2*7F 460# Message type : 8 461# Repleat Indicator : 0 462# MMSI : 244650946 463# DAC : 200 464# FID : 10 465# data : 368:c32c70cf5d370c3064fa50198800b4987e9555557e083a544f082003b809ae511bfc75f0a7ff960808ccb6be7ed5 466# 467# Type 9: 468# From AISHub. Checked with the noaadata tools. 469!AIVDM,1,1,,A,91b77=h3h00nHt0Q3r@@07000<0b,0*69 470# Message Type : 9 471# Repeat Indicator : 0 472# MMSI : 111265591 473# Altitude : 15 474# SOG : 0 475# Position Accuracy : 0 476# Longitude : 7128960 477# Latitude : 34667073 478# Course Over Ground : 0 479# Time Stamp : 28 480# Regional reserved : 0 481# DTE : 0 482# Assigned : 0 483# RAIM flag : 0 484# Radio status : 24597 485# 486# Type 9: 487# From AISHub 488!AIVDM,1,1,,B,91b55wi;hbOS@OdQAC062Ch2089h,0*30 489# Message Type : 9 490# Repeat Indicator : 0 491# MMSI : 111232511 492# Altitude : 303 493# SOG : 42 494# Position Accuracy : 0 495# Longitude : 0xFC683F6 (-6.27884) 496# Latitude : 0x2145300 ( 58.144 ) 497# Course Over Ground : 0x0609 (154.5) 498# Time Stamp : 15 499# Regional reserved : 0 500# DTE : 1 501# Assigned : 0 502# RAIM flag : 0 503# Radio status : 33392 504# 505# Type 10: 506# From Kurt Schwehr. Two destination MMSIs. Checked with the noaadata tools. 507!AIVDM,1,1,,B,:5MlU41GMK6@,0*6C 508# MessageID: 10 509# RepeatIndicator: 0 510# UserID: 366814480 511# Spare1: 0 512# DestID: 366832740 513# Spare2: 0 514# 515# Type 10: 516# From Mike Greene. One destination MMSI. Decode is known good. 517!AIVDM,1,1,,B,:6TMCD1GOS60,0*5B,s36310,d-081,T59.01777335 518# Message Type: 10 519# Repeat Indicator: 0 520# MMSI: 440882000 521# Destination MMSI: 366972000 522# 523# Type 11: 524# From Kurt Schwehr. Checked with the noaadata tools. 525# Message has Coast Guard extended fields following 526!AIVDM,1,1,,B,;4R33:1uUK2F`q?mOt@@GoQ00000,0*5D,s28089,d-103,T39.44353985,x147521,r08TPHI1,1242958962 527# MessageID: 11 528# RepeatIndicator: 0 529# UserID: 304137000 530# Time_year: 2009 531# Time_month: 5 532# Time_day: 22 533# Time_hour: 2 534# Time_min: 22 535# Time_sec: 40 536# PositionAccuracy: 1 537# Position_longitude: -94.40768333333333333333333333 538# Position_latitude: 28.40911666666666666666666667 539# fixtype: 1 540# Spare: 0 541# RAIM: False 542# state_syncstate: 0 543# state_slottimeout: 0 544# state_slotoffset: 0 545# 546# Type 12: 547# From AIS Hub via Neal Arundale. Dumps by ais.py. 548# Verified by the text being readable. 549!AIVDM,1,1,,A,<02:oP0kKcv0@<51C5PB5@?BDPD?P:?2?EB7PDB16693P381>>5<PikP,0*37 550# Message Type : 12 551# Repeat Indicator : 0 552# MMSI : 2275200 553# Sequence Number : 0 554# Destination MMSI : 215724000 555# Retransmit flag : 0 556# Text : PLEASE REPORT TO JOBOURG TRAFFIC CHANNEL 13 557!AIVDM,1,1,,A,<5?SIj1;GbD07??4,0*38 558# Message Type : 12 559# Repeat Indicator : 0 560# MMSI : 351853000 561# Sequence Number : 0 562# Destination MMSI : 316123456 563# Retransmit flag : 0 564# Text : GOOD 565!AIVDM,1,1,,A,<5?SIj5Cp;NPD81>H0,4*4C 566# Message Type : 12 567# Repeat Indicator : 0 568# MMSI : 351853000 569# Sequence Number : 1 570# Destination MMSI : 351809000 571# Retransmit flag : 0 572# Text : THANX 573!AIVDM,1,1,,A,<42Lati0W:Ov=C7P6B?=Pjoihhjhqq0,2*2B 574# Message Type : 12 575# Repeat Indicator : 0 576# MMSI : 271002099 577# Sequence Number : 0 578# Destination MMSI : 271002111 579# Retransmit flag : 1 580# Text : MSG FROM 271002099 581!AIVDM,1,1,,A,<CR3B@<0TO3j5@PmkiP31BCPphPDB13;CPihkP=?D?PmP3B5GPpn,0*3A 582# Message Type : 12 583# Repeat Indicator : 1 584# MMSI : 237032000 585# Sequence Number : 3 586# Destination MMSI : 2391100 587# Retransmit flag : 1 588# Text : EP 531 CARS 80 TRACKS 103 MOTO 5 CREW 86 589!AIVDM,1,1,,A,<9NS8O1ROcS0>9P81?f31<<PD5CD,0*46 590# Message Type : 12 591# Repeat Indicator : 0 592# MMSI : 636012668 593# Sequence Number : 0 594# Destination MMSI : 413118000 595# Retransmit flag : 0 596# Text : NI HAO.CALL TEST 597# From AISHub 598!AIVDM,2,1,1,A,<39KdV8jIGtP7E4P@=PjEP>P81@9P>5GPI9BP?<P4P25CP6B=P1<P6E:19B1,0*02 599!AIVDM,2,2,1,A,80,4*1B 600# Message Type : 12 601# Repeat Indicator : 0 602# MMSI : 211217560 603# Sequence Number : 2 604# Destination MMSI : 211378120 605# Retransmit flag : 0 606# Text : GUD PM 2U N HAPI NEW YIR OL D BES FRM AL FUJAIRAH 607# Type 13: 608# From AISHub. This message was shipped to acknowledge the last type 12 and is 609# verified by the fact that the MMSI fields are right. 610!AIVDM,1,1,,A,=39UOj0jFs9R,0*65 611# Message Type : 13 612# Repeat Indicator : 0 613# MMSI : 211378120 614# MMSI number 1 : 211217560 615# 616# Type 14: 617# From AIS Hub via Neal Arundale. Dumps by ais.py. 618# Verified by the text being readable. 619!AIVDM,1,1,,A,>5?Per18=HB1U:1@E=B0m<L,2*51 620# Message Type : 14 621# Repeat Indicator : 0 622# MMSI : 351809000 623# Text : RCVD YR TEST MSG 624!AIVDM,1,1,,A,>3R1p10E3;;R0USCR0HO>0@gN10kGJp,2*7F 625# Message Type : 14 626# Repeat Indicator : 0 627# MMSI : 237008900 628# Text : EP228 IX48 FG3 DK7 PL56. 629!AIVDM,1,1,,A,>4aDT81@E=@,2*2E 630# Message Type : 14 631# Repeat Indicator : 0 632# MMSI : 311764000 633# Text : TEST 634# 635# Type 15: 636# From Mike Greene. This is the 88-bit variant with one MMSI, 637# message type and offset. Decode is known good. 638!AIVDM,1,1,,A,?5OP=l00052HD00,2*5B 639# Message Type: 15 640# Repeat Indicator: 0 641# MMSI: 368578000 642# Destination MMSI: 5158 643# First Message Type: 5 644# First Slot Offset: 0 645# 646# Type 15: 647# From Kurt Schwehr. This is the 108/112-bit variant with one MMSI and two 648# message types. Includes USCG metadata. Decode is known good. 649!AIVDM,1,1,,B,?h3Ovn1GP<K0<P@59a0,2*04,d-077,S1832,t004248.00,T48.85520485,r07RPAL1,1272415370 650# Message Type : 15 651# Repeat Indicator : 3 652# MMSI : 3669720 653# First interrogated MMSI : 367014320 654# First message type : 3 655# First slot offset : 516 656# Second message type : 5 657# Second slot offset : 617 658# Second interrogated MMSI : 0 659# Message type : 0 660# Slot offset : 0 661# 662# Type 15: 663# From Christian Gagneraud via aishub 664# This is the 160-bit variant of type 15 with two MMSIs. 665!AIVDM,1,1,,A,?39a?2PjKFFPD01o:Gq1igvp2<3w,0*0B 666# 667# Type 16: 668# From AISHub. These are only a regression test to check that the C and Python 669# decoders do the same thing, not yet checked against other 670# decoders. 671# 672# This is the 96-bit version addressing just one destination MMSI. 673!AIVDM,1,1,,A,@01uEO@mMk7P<P00,0*18 674# Message Type : 16 675# Repeat Indicator : 0 676# MMSI : 2053501 677# Interrogated MMSI 1 : 224251000 678# First slot offset : 200 679# First slot increment : 0 680# 681# FIX-ME: Need an example of the 144-bit variant of type 16 with two MMSIs, g. 682# 683# Type 17: 684# From AISHub. This is only a regression test to check that the C and Python 685# decoders do the same thing, not yet checked against other 686# decoders. 687!AIVDM,2,1,5,A,A02VqLPA4I6C07h5Ed1h<OrsuBTTwS?r:C?w`?la<gno1RTRwSP9:BcurA8a,0*3A 688!AIVDM,2,2,5,A,:Oko02TSwu8<:Jbb,0*11 689# Message Type : 17 690# Repeat Indicator : 0 691# MMSI : 2734450 692# Longitude : 17478 693# Latitude : 35992 694# DGNSS data : 376:7c0556c07031febbf52924fe33fa2933ffa0fd2932fdb7062922fe3809292afde9122929fcf7002923ffd20c29aaaa 695# 696# This one was found in the wild. It has a negative latitude. 697!AIVDM,1,1,1,A,A;wUJKU>io;WlWuwH`W1PpnuN<isf;5iHtOM1S6q?vsvNrNGOqLcr5mfD6t,2*51,d-127,S1378,t024436.00,T36.76385108,r09SCHA1,1272422678 698# Message Type : 17 699# Repeat Indicator : 0 700# MMSI : 804870766 701# Longitude : 80669 702# Latitude : -26818 703# DGNSS data : 272:7f7f6289c1838dbd78cc7bb8b17163c7dd0631b93feefe7ba7977f972be85d6e506f 704# 705# Type 18: 706# From Kurt Schwehr. Checked with the noaadata tools. 707# I had to regenerate the CRC32 for this one myself, it was missing 708# in Kurt's original.. 709!AIVDM,1,1,,A,B52K>;h00Fc>jpUlNV@ikwpUoP06,0*4C 710# MessageID: 18 711# RepeatIndicator: 0 712# UserID: 338087471 713# Reserved1: 0 714# SOG: 0.1 715# PositionAccuracy: 0 716# longitude: -74.07213166666666666666666667 717# latitude: 40.68454 718# COG: 79.6 719# TrueHeading: 511 720# TimeStamp: 49 721# RegionalReserved: 0 722# Spare: 0 723# RAIM: True 724# CommStateSelector: 1 725# CommState: 393222 726# Type 18: 727# From Kurt Schwehr. Checked with the noaadata tools. 728!AIVDM,1,1,,A,B52KB8h006fu`Q6:g1McCwb5oP06,0*00 729# MessageID: 18 730# RepeatIndicator: 0 731# UserID: 338088483 732# Reserved1: 0 733# SOG: 0 734# PositionAccuracy: 0 735# longitude: -70.8111966 736# latitude: 43.11555833 737# COG: 171.6 738# TrueHeading: 511 739# TimeStamp: 20 740# RegionalReserved: 0 741# Spare: 0 742# RAIM: True 743# CommStateSelector: 1 744# CommState: 393222 745# Type 18: 746# From Kurt Schwehr. Checked with the noaadata tools. 747!AIVDM,1,1,,B,B5O6hr00<veEKmUaMFdEow`UWP06,0*4F 748# Message Type: 18 749# Repeat Indicator: 0 750# MMSI: 368161000 751# Speed Over Ground: 51 752# Position Accuracy: 1 753# Longitude: -72.2338483333 754# Latitude: 39.480925 755# Course Over Ground: 349 756# True Heading: 511 757# Time Stamp: 17 758# CS Unit: 1 759# Display Flag: 0 760# DSC Flag: 1 761# Band Flag: 1 762# Message 22 Flag: 0 763# Assigned-Mode Flag: 0 764# RAIM: 1 765# Sync State: 3 766# Slot Time-Out: 0 767# Sub Message: 6 768# 769# Type 19: 770# From Mike Greene. Checked with the noaadata tools. Decode is known good. 771# Also checked with the Maritec decoder 772!AIVDM,1,1,,B,C5N3SRgPEnJGEBT>NhWAwwo862PaLELTBJ:V00000000S0D:R220,0*0B 773# MessageID: 19 774# RepeatIndicator: 0 775# UserID: 367059850 776# Spare: 0 777# SOG: 8.7 778# PositionAccuracy: 0 779# longitude: -88.8103916667 780# latitude: 29.543695 781# COG: 335.9 782# TrueHeading: 511 783# TimeStamp: 46 784# Spare2: 0 785# name: CAPT.J.RIMES 786# shipandcargo: 70 787# dimA: 5 788# dimB: 21 789# dimC: 4 790# dimD: 4 791# fixtype: 1 792# RAIM: False 793# DTE: 0 794# Spare3: 0 795# 796# Type 20 (1 offset) 797# From Mike Greene. Checked with the noaadata tools. 798!AIVDM,1,1,,A,Dh3OvjB8IN>4,0*1D 799# Message Type: 20 800# Repeat Indicator: 3 801# MMSI: 3669705 802# Offset 1: 2182 803# Reserved Slots 1: 5 804# Timeout 1: 7 805# Increment 1: 225 806# 807# Type 20 (3 offsets): 808# From Mike Greene. 809!AIVDM,1,1,,B,D030p8@2tN?b<`O6DmQO6D0,2*5D 810# Message Type: 20 811# Repeat Indicator: 0 812# MMSI: 3160097 813# Offset 1: 47 814# Reserved Slots 1: 1 815# Timeout 1: 7 816# Increment 1: 250 817# Offset 2: 2250 818# Reserved Slots 2: 1 819# Timeout 2: 7 820# Increment 2: 1125 821# Offset 3: 856 822# Reserved Slots 3: 5 823# Timeout 3: 7 824# Increment 3: 1125 825# 826# Type 21: 827# Has a Name Extension field 828# From Mike Greene. Decode is verified by the text being readable. 829# Also checked against the Maritec decoder, which verifies 830# everything except the Regional Reserve field. 831!AIVDM,2,1,5,B,E1mg=5J1T4W0h97aRh6ba84<h2d;W:Te=eLvH50```q,0*46 832!AIVDM,2,2,5,B,:D44QDlp0C1DU00,2*36 833# Message Type: 21 834# Repeat Indicator: 0 835# MMSI: 123456789 836# Aid Type: 20 837# Name: CHINA ROSE MURPHY EXPRESS ALERT 838# Position Accuracy: 0 839# Longitude: -122.698591667 840# Latitude: 47.9206183333 841# Dimension to Bow: 5 842# Dimension to Stern: 5 843# Dimension to Port: 5 844# Dimension to Starboard: 5 845# Type of EPFD: GPS 846# UTC Second: 50 847# Off-Position Indicator: 0 848# Regional Reserved: 165 849# RAIM Flag: 0 850# Virtual-Aid Flag: 0 851# Assigned-Mode Flag: 0 852# 853# Type 22: 854# From AISHub. Broadcast case: we won't count this as a full test by 855# itself because the bit layout of the addressed case is different. 856# (The addressed form seems to be rare or nonexistent in the wild; none 857# showed up in a three-hour sample from AISHub, while many broadcasts did.) 858# Verified only by the fact that the Python and C decoders get consistent 859# results, we haven't actually seen an independent dump of these fields. 860# (The noaadata 0.42 dumper for this type doesn't seem to work.) 861!AIVDM,1,1,,A,F030ot22N2P6aoQbhe4736L20000,0*1A 862# Message Type : 22 863# Repeat Indicator : 0 864# MMSI : 3160048 865# Channel A : 2087 866# Channel B : 2088 867# Tx/Rx mode : 0 868# Power : 0 869# NE Longitude : -44100 870# NE Latitude : 27330 871# SW Longitude : -48100 872# SW Latitude : 25400 873# Addressed : 0 874# Channel A Band : 0 875# Channel A Band : 0 876# Zone size : 4 877# 878# Type 22: 879# From Christian Gagneraud via aishub 880# Addressed case. 881!AIVDM,1,1,,A,F@@W>gOP00PH=JrN9l000?wB2HH;,0*44 882# 883# Type 23: 884# From AISHub. Only a regression test to check that the C and Python decoders 885# do the same thing, not yet checked against other decoders. 886!AIVDM,1,1,,B,G02:Kn01R`sn@291nj600000900,2*12 887# Message Type : 23 888# Repeat Indicator : 0 889# MMSI : 2268120 890# NE Longitude : 1578 891# NE Latitude : 30642 892# SW Longitude : 1096 893# SW Latitude : 30408 894# Station Type : 6 895# Ship Type : 0 896# Tx/Rx mode : 0 897# Reporting interval : 9 898# Quiet time : 0 899# 900# Type 24: 901# From Nirgal 902# One pair of type A and Type B messages. 903# Checked against the Maritec decoder. 904!AIVDM,1,1,,A,H42O55i18tMET00000000000000,2*6D 905# MessageID: 24 906# RepeatIndicator: 0 907# UserID: 271041815 908# partnum: 0 909# name: PROGUY 910!AIVDM,1,1,,A,H42O55lti4hhhilD3nink000?050,0*40 911# MessageID: 24 912# RepeatIndicator: 0 913# UserID: 271041815 914# partnum: 0 915# shipandcargo: 60| 916# vendorid: 1D00014 917# callsign: TC6163 918# dimA: 0 919# dimB: 15 920# dimC: 0 921# dimD: 5 922# 923# Type 25: 924# From Christian Gagneraud via aishub 925# Addressed and structured 926!AIVDM,1,1,,A,JB3R0GO7p>vQL8tjw0b5hqpd0706kh9d3lR2vbl0400,2*40 927# 928# Type 25: 929# From Christian Gagneraud via aishub 930# Addressed and not structured 931!AIVDM,1,1,,A,I6SWo?8P00a3PKpEKEVj0?vNP<65,0*73 932# 933# Type 25: 934# From Christian Gagneraud via aishub 935# Broadcast and structured 936!AIVDM,1,1,,A,I8IRGB40QPPa0:<HP::V=gwv0l48,0*0E 937# 938# Type 25: 939# From Christian Gagneraud via aishub 940# Broadcast and not structured 941!AIVDM,1,1,,A,I6SWVNP001a3P8FEKNf=Qb0@00S8,0*6B 942# 943# Type 26: 944# From Christian Gagneraud via aishub 945# Addressed and structured 946!AIVDM,1,1,,A,JB3R0GO7p>vQL8tjw0b5hqpd0706kh9d3lR2vbl0400,2*40 947# 948# Type 26: 949# From Christian Gagneraud via aishub 950# Addressed and not structured 951!AIVDM,1,1,,A,J1@@0IK70PGgT740000000000@000?D0ih1e00006JlPC9C3,0*6B 952# 953# Type 26 954# From Christian Gagneraud via aishub 955# Broadcast and structured 956!AIVDM,1,1,,B,JaL0mr5P000DtRDMddr@0?vF06iD,0*75 957# 958# Type 26 959# From Christian Gagneraud via aishub 960# Broadcast and not structured 961!AIVDM,1,1,,A,J0@00@370>t0Lh3P0000200H:2rN92,4*14 962# 963# Type 27: 964# From Christian Gagneraud via aishub 965# The only message 27 in more than 25 millions messages that is 96 bits long! 966!AIVDM,1,1,,A,KCQ9r=hrFUnH7P00,0*41 967# 968# Type 27: 969# From Marius Kintel <marius@kintel.net> 970# It's apparently more common for these to be 168 bits long (a full slot) 971!AIVDM,1,1,,B,KC5E2b@U19PFdLbMuc5=ROv62<7m,0*16 972# 973############################################################################## 974# Invalid packet tests: 975############################################################################## 976# 977# That fragment misses part 1, yields nothing: 978AIVDM,2,2,1,B,00000000000,2*26 979# 980# 981############################################################################## 982# Type 24 collisions: 983############################################################################## 984# 985# 24B from 271041815: 986# This sentence is missing 24A and is discarded 987!AIVDM,1,1,,A,H42O55lti4hhhilD3nink000?050,0*40 988# gpsdecode: AIVDM message type 24 collision on channel A: 24B sentence from 271041815 without 24A. 989# 990# 24A from mmsi 271041511: 991# context is updated 992!AIVDM,1,1,,A,H42O3qiA8U10Tp0000000000000,2*37 993# 994# 24A from mmsi 271040660: 995# Previous 24A from 271041511 is discarded, context is updated 996!AIVDM,1,1,,A,H42O0U0Lu`@Dno4000000000000,2*18 997# gpsdecode: AIVDM message type 24 collision on channel A : Discarding previous sentence 24A from 271041511. 998# 999# 24B from mmsi 271020195: 1000# Saved in context, but without a valid 24A it's never emitted. 1001!AIVDM,1,1,,A,H42Mh`lUi2hhljiI=mikk000B050,0*17 1002# 1003# 24B from mmsi 271040660: 1004# Success 1005!AIVDM,1,1,,A,H42O0U4Ui3hhhlmI=mmhl000H060,0*2E 1006# 1007############################################################################## 1008# Channel multiplexing test: 1009############################################################################## 1010# simultaneous use of buffers of channels A & B 1011!AIVDM,2,1,6,B,542M92h00001@<7;?G0PD4i@R0<tqA8tj37>220o0h:2240Ht50000000000,0*3B 1012!AIVDM,2,1,2,A,542M92h00001@<7;?G0PD4i@R0<tqA8tj37>220o0h:2240Ht500000000000000,0*3C 1013!AIVDM,2,2,2,A,0000002,2*24 1014!AIVDM,2,2,6,B,00000000000,2*21 1015############################################################################## 1016# Error and corner case tests: 1017############################################################################## 1018# Non printable and control character in data or string fields 1019!AIVDM,1,1,,A,647sBv00b=E006P9>0,4*1B 1020# Type 4 with date/time set to N/A 1021!AIVDM,1,1,,A,402Fha0000Htt<tSF0l4Q@000d20,0*65 1022# Type 4 with YYYY/MM/DD OK, but HHmmSS N/A 1023!AIVDM,1,1,,B,4028n@iuiPpttwIWI<Hl>8700PS:,0*60 1024# Type 4 with year set to 10196 (0x27D4), idempotency used to fail on this one 1025# It has a bad epfd as well. 1026!AIVDM,1,1,,B,4>O7m7Iu@<9qUfbtm`vSnwvH20S8,0*46 1027# Type 22 with MMSI1=4059193694, used to fail due to UBITS() instead of SBITS() 1028!AIVDM,1,1,,B,Fe3>>MOD@GDF?ThcoCk02?ioQie4,0*03 1029# A type 6, DAC 1, FID 18 with plenty of N/A fields, idempotency use to fail 1030!AIVDM,1,1,,B,602E:s0tw@9B0580@00000000000,0*68 1031# A type 6, DAC 1, FID 30. used to fail idempotency 1032!AIVDM,1,1,,B,6h2E3MPr<buN05p0J00000000000,0*0A 1033# A type 6, DAC 1, FID 18, used to fail idempotency 1034!AIVDM,1,1,,B,602E:s0tw@9B0580@00000000000,0*68 1035# Array of struct, used to crash "gpsdecode -j -e -u" 1036!AIVDM,1,1,,A,6h2E3MHrg19P0600@00000000000,0*02 1037!AIVDM,1,1,,A,6h2E3N0rThqP0600J00000000000,0*51 1038# Temp conversion with unsigned failed 1039!AIVDM,1,1,,A,8@2<HW@0BkdhF0dcH59=RiRRDqnJ7wfRwwwwwwwwwwwwwwwwwwwwwwwwwt0,2*7D 1040# {"class":"AIS","device":"stdin","type":8,"repeat":1,"mmsi":2300061,"scaled":true,"dac":1,"fid":11,"lat":64.650,"lon":24.400,"timestamp":"20T18:27Z","wspeed":11,"wgust":12,"wdir":162,"wgustdir":167,"humidity":80,"airtemp":-12.7,"dewpoint":82.3,"pressure":1032,"pressuretend":"decreasing","visibility":25.5,"waterlevel":41.1,"leveltrend":"N/A","cspeed":25.5,"cdir":511,"cspeed2":25.5,"cdir2":511,"cdepth2":31,"cspeed3":25.5,"cdir3":511,"cdepth3":31,"waveheight":25.5,"waveperiod":63,"wavedir":511,"swellheight":25.5,"swellperiod":63,"swelldir":511,"seastate":15,"watertemp":92.3,"preciptype":7,"preciptype_text":"N/A","salinity":51.1,"ice":3,"ice_text":"N/A"} 1041# more samples from Stefan 1042!AIVDM,2,1,2,B,8@2<HV@0BkM5OPiGTU9=TRiS<J>G7wfNwwww,0*32 1043!AIVDM,2,2,2,B,wwwwwwwwwwwwwwwwwwwwwt0,2*26 1044#{"class":"AIS","device":"stdin","type":8,"repeat":1,"mmsi":2300057,"scaled":true,"dac":1,"fid":11,"lat":60.371,"lon":26.962,"timestamp":"20T18:27Z","wspeed":18,"wgust":22,"wdir":99,"wgustdir":99,"humidity":56,"airtemp":-3.1,"dewpoint":82.3,"pressure":1031,"pressuretend":"decreasing","visibility":25.5,"waterlevel":41.1,"leveltrend":"N/A","cspeed":25.5,"cdir":511,"cspeed2":25.5,"cdir2":511,"cdepth2":31,"cspeed3":25.5,"cdir3":511,"cdepth3":31,"waveheight":25.5,"waveperiod":63,"wavedir":511,"swellheight":25.5,"swellperiod":63,"swelldir":511,"seastate":15,"watertemp":92.3,"preciptype":7,"preciptype_text":"N/A","salinity":51.1,"ice":3,"ice_text":"N/A"} 1045!AIVDM,2,1,9,B,8>j`;MP0GhRHI1S`CrTW2?u2Ot1owwnews0F003wwwwwww0001wwwwwwwwh0,0*02 1046!AIVDM,2,2,9,B,00,4*18 1047#{"class":"AIS","device":"stdin","type":8,"repeat":0,"mmsi":992611190,"scaled":true,"dac":1,"fid":31,"lat":54.411,"lon":18.777,"accuracy":false,"timestamp":"20T18:28Z","wspeed":17,"wgust":127,"wdir":132,"wgustdir":511,"humidity":127,"airtemp":1.4,"dewpoint":-0.1,"pressure":1013,"pressuretend":"N/A","visgreater":true,"visibility":12.7,"waterlevel":5.4,"leveltrend":"N/A","cspeed":0.0,"cdir":0,"cspeed2":25.5,"cdir2":511,"cdepth2":31,"cspeed3":25.5,"cdir3":511,"cdepth3":31,"waveheight":0.0,"waveperiod":0,"wavedir":0,"swellheight":25.5,"swellperiod":63,"swelldir":511,"seastate":15,"watertemp":-0.1,"preciptype":"N/A","salinity":51.1,"ice":"N/A"} 1048!AIVDM,1,1,,A,8@2<HVh0BkL8V@Wfp=9=RAA57jC;wwf>wwwwwwwwwwwwwwwwwwwwwwwwwt0,2*0E 1049#{"class":"AIS","device":"stdin","type":8,"repeat":1,"mmsi":2300059,"scaled":true,"dac":1,"fid":11,"lat":60.111,"lon":21.699,"timestamp":"20T18:27Z","wspeed":9,"wgust":10,"wdir":69,"wgustdir":62,"humidity":95,"airtemp":-1.2,"dewpoint":82.3,"pressure":1027,"pressuretend":"decreasing","visibility":25.5,"waterlevel":41.1,"leveltrend":"N/A","cspeed":25.5,"cdir":511,"cspeed2":25.5,"cdir2":511,"cdepth2":31,"cspeed3":25.5,"cdir3":511,"cdepth3":31,"waveheight":25.5,"waveperiod":63,"wavedir":511,"swellheight":25.5,"swellperiod":63,"swelldir":511,"seastate":15,"watertemp":92.3,"preciptype":7,"preciptype_text":"N/A","salinity":51.1,"ice":3,"ice_text":"N/A"} 1050!AIVDM,1,1,,A,8@2<HW@0Bkb<B0akj59>1@juFB4:7wfNwwwwwwwwwwwwwwwwwwwwwwwwwt0,2*55 1051#{"class":"AIS","device":"stdin","type":8,"repeat":1,"mmsi":2300061,"scaled":true,"dac":1,"fid":11,"lat":63.950,"lon":22.833,"timestamp":"20T18:28Z","wspeed":5,"wgust":6,"wdir":189,"wgustdir":178,"humidity":80,"airtemp":-7.2,"dewpoint":82.3,"pressure":1031,"pressuretend":"decreasing","visibility":25.5,"waterlevel":41.1,"leveltrend":"N/A","cspeed":25.5,"cdir":511,"cspeed2":25.5,"cdir2":511,"cdepth2":31,"cspeed3":25.5,"cdir3":511,"cdepth3":31,"waveheight":25.5,"waveperiod":63,"wavedir":511,"swellheight":25.5,"swellperiod":63,"swelldir":511,"seastate":15,"watertemp":92.3,"preciptype":7,"preciptype_text":"N/A","salinity":51.1,"ice":3,"ice_text":"N/A"} 1052!AIVDM,1,1,,A,8@2<HV@0BkLfrhhJWM9=SjAk=B@pOwfNwwwwwwwwwwwwwwwwwwwwwwwwwt0,2*66 1053#{"class":"AIS","device":"stdin","type":8,"repeat":1,"mmsi":2300057,"scaled":true,"dac":1,"fid":11,"lat":60.275,"lon":26.442,"timestamp":"20T18:27Z","wspeed":15,"wgust":18,"wdir":115,"wgustdir":106,"humidity":67,"airtemp":-2.1,"dewpoint":82.3,"pressure":1031,"pressuretend":"decreasing","visibility":25.5,"waterlevel":41.1,"leveltrend":"N/A","cspeed":25.5,"cdir":511,"cspeed2":25.5,"cdir2":511,"cdepth2":31,"cspeed3":25.5,"cdir3":511,"cdepth3":31,"waveheight":25.5,"waveperiod":63,"wavedir":511,"swellheight":25.5,"swellperiod":63,"swelldir":511,"seastate":15,"watertemp":92.3,"preciptype":7,"preciptype_text":"N/A","salinity":51.1,"ice":3,"ice_text":"N/A"} 1054!AIVDM,1,1,,A,8@2<HVh0BkM75P`MKU9>31iL:RBcGwfBwwwwwwwwwwwwwwwwwwwwwwwwwt0,2*5F 1055#{"class":"AIS","device":"stdin","type":8,"repeat":1,"mmsi":2300059,"scaled":true,"dac":1,"fid":11,"lat":60.378,"lon":22.096,"timestamp":"20T18:28Z","wspeed":12,"wgust":14,"wdir":92,"wgustdir":84,"humidity":90,"airtemp":-1.4,"dewpoint":82.3,"pressure":1028,"pressuretend":"decreasing","visibility":25.5,"waterlevel":41.1,"leveltrend":"N/A","cspeed":25.5,"cdir":511,"cspeed2":25.5,"cdir2":511,"cdepth2":31,"cspeed3":25.5,"cdir3":511,"cdepth3":31,"waveheight":25.5,"waveperiod":63,"wavedir":511,"swellheight":25.5,"swellperiod":63,"swelldir":511,"seastate":15,"watertemp":92.3,"preciptype":7,"preciptype_text":"N/A","salinity":51.1,"ice":3,"ice_text":"N/A"} 1056!AIVDM,2,1,7,B,802`m000BkGTp0b<j59?000000000000000O,0*14 1057!AIVDM,2,2,7,B,p0000000000<0000000@000,2*1C 1058#{"class":"AIS","device":"stdin","type":8,"repeat":0,"mmsi":2766080,"scaled":true,"dac":1,"fid":11,"lat":58.867,"lon":23.047,"timestamp":"20T18:30Z","wspeed":0,"wgust":0,"wdir":0,"wgustdir":0,"humidity":0,"airtemp":-60.0,"dewpoint":-20.0,"pressure":800,"pressuretend":"steady","visibility":0.0,"waterlevel":-10.0,"leveltrend":"steady","cspeed":25.5,"cdir":0,"cspeed2":0.0,"cdir2":0,"cdepth2":0,"cspeed3":0.0,"cdir3":0,"cdepth3":0,"waveheight":0.0,"waveperiod":3,"wavedir":0,"swellheight":0.0,"swellperiod":0,"swelldir":0,"seastate":0,"watertemp":429496729.6,"preciptype":0,"preciptype_text":"reserved","salinity":0.0,"ice":0,"ice_text":"no"} 1059# type 6 with unhandled type 1060!AIVDM,1,1,,A,601uEPprEH2@<P<j00,4*32 1061#{"class":"AIS","device":"stdin","type":6,"repeat":0,"mmsi":2053507,"scaled":true,"seqno":2,"dest_mmsi":244670500,"retransmit":false,"dac":200,"fid":3,"data":"16:3200"} 1062# 1063# Handle bad padding at the end of type 8 with non byte aligned data blob 1064!AIVDM,3,1,7,A,85Mwp=iKfGwushJ?gNlt2QU3osVGe:4?cNhQqf2VH8t,0*08 1065!AIVDM,3,2,7,A,?A;J6b7AwuiqIGLeNiKCPDR7HQR<u;TTFufegr>kCSF,0*41 1066!AIVDM,3,3,7,A,Uq:1Kk`e8,4*27 1067# {"class":"AIS","type":8,"repeat":0,"mmsi":366999607,"scaled":false,"dac":366,"fid":57,"data":"510:7ffdef068fbded3c0a1943dfb997b4a10fadec21e6e0a6608f0f44b686a8747ff71e595dcb5ec5b4e05221d886233d2e4916f6eb6fe8ecd38d69792816f3a2d0"} 1068# sample of type 8 fid 16 where persons shouldn't be parsed 1069!AIVDM,1,1,,A,802At?00D000qFap02:lA0b@?3fw0001<:iFP2:rf0cCGp0w00,4*5E 1070#{"class":"AIS","type":8,"repeat":0,"mmsi":2391100,"scaled":false,"dac":1,"fid":16,"data":"240:0000e56a780022b4440a903c3bbf00000130ac568022bab80ad35f803f00"} 1071# I do also have some examples of the type 8 DAC 1 FID 16 messages that should not be converted. I have no examples of the ones that should, but from the documentation, it seems not sure that they actually exist. 1072!AIVDM,3,1,0,A,802UMp@0D002G`lCH2FuR@mE8;;w2d00001h82F0@hm;gh0w00010Wk3<2FG,0*00 1073!AIVDM,3,2,0,A,ePm;5@0w0000iLBaP2F4khlwAH0w0000u7fUP2G=u0m3T@0w00010W:s02F>,0*72 1074!AIVDM,3,3,0,A,Ghm4utWw2P,4*27 1075# 8|0|002711009|1|16|720:00025e8d136025bd890d5520b2ff0ac000000070202580430d4bbf003f000001027cc3302597b60d4b15003f000000c5c4a9802584cf0d3f45803f000000f47ba58025cdf40d4391003f0000010272bb00258e5f0d44f7c9ff0a 1076# 1077# Extra long type 21 message 1078# from AISHub sample data 1079# has data length of 368 1080!AIVDM,2,1,8,B,E03l90w4Q1h3h1:WdPOwwwwwwwwlQdn`:e55020@@@gP0000000000000000,0*47\x0d\x0a 1081!AIVDM,2,2,8,B,00,4*19\x0d\x0a 1082# 1083# type 16 168 bits long 1084# 1085!AIVDM,1,1,,B,@6STUk004lQ206bCKNOBAb6SJ@5s,0*74 1086# 1087# type=20 186 bits long 1088# 1089!AIVDM,1,1,,2,D02E34iFTg6D000000000000002gjG2,0*75 1090!AIVDM,1,1,,2,D02=VVA8`N?`>4N01L=Nfp1>AA0,0*75 1091# 1092# type=20 1093# 1094!AIVDM,1,1,,A,D028rqP<QNfp000000000000000,2*0C 1095# 1096# type=1 length=163 1097# 1098!AIVDM,1,1,,A,13aIkM@P00PJ@qPNL=e@0?wJ28JO,5*63 1099# 1100# type=1 length=168 1101# 1102!AIVDM,1,1,,A,13aIkM@P00PJ@qPNL=e@0?wJ28JO,0*66 1103# Unhandled 1104# !AIVDM,2,1,2,B,53am5`02@=gA0Ptr2204pA8Fl:2222222222220l1HC554I<09UmmsPS,0*62 1105# !AIVDM,2,2,1,A,p88888888888880,2*6D 1106# 1107# !AIVDM,1,1,,A,U31<0OOP000CshrMdl600?wP00SL,0*43 1108# 1109# !AIVDM,3,1,3,B,I`1ifG20UrcNTFE?UgLeo@Dk:o6G4hhI8;?vW2?El>D,0*25 1110# !AIVDM,3,2,3,B,eju@c3Si451FJd9WPU<>BgML6TO918o:?6uoOFu3k@=,0*50 1111# !AIVDM,3,3,3,B,v@,3*23 1112# 1113# !AIVDM,1,1,,A,a5MuRA0@00IQUuTA<Kgt1wvP00S6,0*65 1114# 1115# !AIVDM,2,1,3,A,I`1ifG20UrcNTFE?UgLeo@Dk:o6G4hhI8;?vW2?El>Deju@c3Si451FJd9WPU<>B,0*04 1116# !AIVDM,2,2,3,A,gML6TO918o:?6uoOFu3k@=vE,3*41 1117# 1118# !AIVDM,2,1,3,A,E7`B17L77oK@@@@@@@@@@@@@@@@6@6j5mNK<@10888Qr8`888888888888803Puv,0*09 1119# !AIVDM,2,2,3,A,wf,0*04 1120# 1121# !AIVDM,1,1,,A,H6K>HPPlDU<DV0l59F222222221WKgqj8,0*49 1122