# Sample AIVDM data sentences provided from real data by Kurt Schwehr # Mike Greene, Neal Arundale, and AISHub. # # This file is Copyright (c) 2010 by the GPSD project # BSD terms apply: see the file COPYING in the distribution root for details. # # Type 1: # From Kurt Schwehr. Dump was attached. # Checked using the noaadata tools and the Maritec decoder. !AIVDM,1,1,,A,15RTgt0PAso;90TKcjM8h6g208CQ,0*4A # MessageID: 1 # RepeatIndicator: 0 # UserID: 371798000 # NavigationStatus: 0 # ROT: -127 # SOG: 12.3 # PositionAccuracy: 1 # longitude: -123.395383333 # latitude: 48.38163333333 # COG: 224 # TrueHeading: 215 # TimeStamp: 33 # RegionalReserved: 0 # Spare: 0 # RAIM: False # state_syncstate: 0 # state_slottimeout: 2 # state_slotoffset: 1249 # # Type 1: # From Kurt Schwehr. Dump was attached. Checked using the noaadata tools. !AIVDM,1,1,,A,16SteH0P00Jt63hHaa6SagvJ087r,0*42 # MessageID: 1 # RepeatIndicator: 0 # UserID: 440348000 # NavigationStatus: 0 # ROT: -128 # SOG: 0 # PositionAccuracy: 0 # longitude: -70.7582 # latitude: 43.08015 # COG: 93.4 # TrueHeading: 511 # TimeStamp: 13 # RegionalReserved: 0 # Spare: 0 # RAIM: False # state_syncstate: 0 # stare_slottimeout: 2 # state_slotoffset: 506 # # Type 2: # From Kurt Schwehr. Dump was attached. Checked using the noaadata tools. # I had to regenerate the CRC32 for this one myself, it was missing in # Kurt's original. !AIVDM,1,1,,B,25Cjtd0Oj;Jp7ilG7=UkKBoB0<06,0*60 # MessageID: 2 # RepeatIndicator: 0 # UserID: 356302000 # NavigationStatus: 0 # ROT: 127 # SOG: 13.9 # PositionAccuracy: 0 # longitude: -71.62614333333333333333333333 # latitude: 40.39235833333333333333333333 # COG: 87.7 # TrueHeading: 91 # TimeStamp: 41 # RegionalReserved: 0 # Spare: 0 # RAIM: False # state_syncstate: 0 # state_slottimeout: 3 # state_slotoffset: 6 # # Type 3: # From Kurt Schwehr. Dump was attached. Checked using the noaadata tools. !AIVDM,1,1,,A,38Id705000rRVJhE7cl9n;160000,0*40 # MessageID: 3 # RepeatIndicator: 0 # UserID: 563808000 # NavigationStatus: 5 # ROT: 0 # SOG: 0 # PositionAccuracy: 1 # longitude: -76.32753333333333333333333333 # latitude: 36.91 # COG: 252 # TrueHeading: 352 # TimeStamp: 35 # RegionalReserved: 0 # Spare: 0 # RAIM: False # state_syncstate: 0 # state_slottimeout: 0 # state_slotoffset: 0 # # Type 4: # From Kurt Schwehr. Dump was attached. # Checked using the noaadata tools and the Maritec decoder. !AIVDM,1,1,,A,403OviQuMGCqWrRO9>E6fE700@GO,0*4D # MessageID: 4 # RepeatIndicator: 0 # UserID: 3669702 # Time_year: 2007 # Time_month: 5 # Time_day: 14 # Time_hour: 19 # Time_min: 57 # Time_sec: 39 # PositionAccuracy: 1 # Position_longitude: -76.35236166666666666666666667 # Position_latitude: 36.88376666666666666666666667 # fixtype: 7 # Spare: 0 # RAIM: False # state_syncstate: 0 # state_slottimeout: 4 # state_slotoffset: 1503 # # Type 5: # From Kurt Schwehr. Dump was attached. # Checked using the noaadata tools and the Maritec decoder. !AIVDM,2,1,1,A,55?MbV02;H;sjR0600V:C0>da4P106P00,2*02 # AIS channel:1 # Message ID=6 # Repeat Indicator=0 # Source ID (MMSI)=992509976 # Sequence number=0 # Destination ID (MMSI)=2500912 # Retransmit flag =0 # Spare =0 # Binary Data # Application identifier=0x3ACA(15050) # DAC=235(Specific) # Function identifier =10(GLA) # Application data: # Analogue internal=0x112->13.700V # Analogue input1=0x1->0.050V # Analogue input2=0x1->0.050V # AtoN status=0x14:Racon status=2(RACON operational), Ligth # status=2(light OFF), Good health=0(good health) # Digital status=0x00:In7=0,In6=0,In5=0,In4=0,In3=0,In2=0,In1=0,In0=0 # Off position=0x00 # Spare=0x00 !AIVDM,1,1,4,B,6>jR0600V:C0>da4P106P00,2*02 # # From AISHub. This type 6 has no data. It's paired with the # following type 7; both are verified by the match in the MMSI fields. # This one is fully verified by the Maritec decoder. !AIVDM,1,1,,A,63u?;TP0`QJ<06P000,4*43 # Message Type : 6 # Repeat Indicator : 0 # MMSI : 265538450 # Sequence Number : 0 # Destination MMSI : 2655651 # Retransmit flag : 0 # DAC : 1 # FID : 40 # Data : 16:0000 # # FIX-ME: We need a type 6 test case that requires more than one AIVDM fragment. # # Type 6: # Advertised as DAC 1, FID 12, but full of garbage. !AIVDM,1,1,,A,63LBA4;WBevJ04k0=@E=B0td,0*17 # Advertised as DAC 1, FID 14, but full of garbage !AIVDM,1,1,,A,6h2E:81>NmKC04p0J<000?vv20Ru,0*31 # Advertised as DAC 1, FID 18, but full of 0 !AIVDM,1,1,,B,6h2E3MDrDRiB0580@00000000000,0*04 # Type 7: # From AISHub - reported immediately after the preceding type 6, # which matches it. One destination MMSI. noaadata-0.43 fails # on this message (Kurt says his decoder only handles the longest case). !AIVDM,1,1,,A,702R5`hwCjq8,0*6B # Message Type : 7 # Repeat Indicator : 0 # MMSI : 2655651 # MMSI number 1 : 265538450 # # Type 7: # From Kurt Schwehr. Three destination MMSIs. # noaadata-04.2 fails on this message !AIVDM,1,1,,A,7IiQ4T`UjA9lC;b:M, seems to be military traffic # with a mis-entered MMSI. !AIVDM,2,1,6,A,8>qc9wiKf>d=Cq5r0mdew:?DLq>1LmhHrsqmBCKnJ50,0*30 !AIVDM,2,2,6,A,3OLc=UCRp,0*4A,b003660465 # Message Type 8 # Repeat Indicator 0 # MMSI 999999999 # DAC 366 # FID 22 # Data 256:eb0d4f917a035b2dfca3d4739381735c18ebbe754936f66850037dcacd9538b8 # # Type 8, DAC 1, FID 11 (IMO 236 Met/Hydro message) # From Christian Gagneraud: # Specific NMEA messages with hard-coded Met/hydro values have been # send to a Kanaton, according to its default input settings # ($_HDXX,VAL*CS, where XX is the parameter index, 0 to 30, VAL is the # scaled parameter value, and CS the checksum). The resulting AIVDO # sentence has been decoded using the Kanaton software. Sent data, # kanaton decoder output and gpsd JSON output all match each other. !AIVDO,1,1,4,B,8>jR06@0Bk3:wOli;<`WPhh<1rqVBQf2V@Pdt0J82avIM2b<jR06@0Bk3:wOli;<`WPhh<1rqVBQf2V@Pdt0J82avIM2b<jR06@0Bk3:vOli;L`nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwt1,2*0E # "18/05/2012 18:45:37" !AIVDO,1,1,4,B,8>jR06@0Bk3:vOli;L`nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwt1,2*0E # AIS channel:1 # Message ID=8 # Repeat Indicator=0 # Source ID (MMSI)=992509977 # Spare=0 # Binary Data # Application identifier=0x004B(75) # DAC=1(International) # Function identifier =11(Reserved for international operational applications) # Application data: # Latitude=0x30CAF9(53°017.689 N) # Longitude=0x59DA5(006°008.037 W) # Date and time=0x946D(18 17h45m) # Average wind speed=0x7F(127 kts) # Wind gust=0x7F(127 kt(s)) # Wind direction=0x1FF(511 degree(s)) # Wind gust direction=0x1FF(511 degree(s)) # Air temperature=0x7FF(144.7 degree(s) Celcius) # Relative humidity=0x7F(127percent) # Dew point=0x3FF(82.3 degree(s) Celcius) # Air pressure=0x1FF(1311 hPa) # Air pressure tendency=0x3(3()) # Horizontal visibility=0xFF(25.5 NM) # Water level=0x1FF(41.1 m) # Water level trend=0x3(3 hPa) # Surface current speed=0xFF(25.5 kts) # Surface current direction=0x1FF(511 degree(s)) # Current speed #2=0xFF(25.5 kts) # Current direction #2=0x1FF(511 degree(s)) # Current measuring level #2=0x1F(31 m) # Current speed #3=0xFF(25.5 kts) # Current direction #3=0x1FF(511 degree(s)) # Current measuring level #3=0x1F(31 m) # Significant wave height=0xFF(25.5 m) # Wave period=0x3F(63 Sec) # Wave direction=1FF(511 degree(s)) # Swell height=0xFF(25.5) m # Swell period=0x3F(63 Sec) # Swell direction=0x1FF(511 degree(s)) # Sea state=0xF(15 Beaufort) # Water temperature=0x3FF(92.3 degree(s) Celcius) # Precipitation=0x7(7 according to WMO) # Salinity=0x1FF(51.1 permil) # Ice=0x3(3) # # Type 8, DAC 1, FID 31 (IMO 289 Met/Hydro message) # From Christian Gagneraud: # Kanaton3 with all data marked as not available, checked with KanAton3_configV2.0.4.exe !AIVDO,1,1,5,A,8>jR06@0Gwli:QQUP3en?wvlFR06EuOwgwl?wnSwe7wvlOwwsAwwnSGmwvh0,0*51 # AIS channel:1 # Message ID=8 # Repeat Indicator=0 # Source ID (MMSI)=992509977 # Spare=0 # Binary Data # Application identifier=0x005F(95) # DAC=1(International) # Function identifier =31(Reserved for international operational applications) # Application data: # Longitude=0x59DAC(006°008.044 W) # Latitude=0x30CB00(53°017.696 N) # Pos. acc.=0 # Date and time=0xEDD8(29 23h24m) # Average wind speed=0x7F(127 kts) # Wind gust=0x7F(127 kt(s)) # Wind direction=0x168(360 degree(s)) # Wind gust direction=0x168(360 degree(s)) # Air temperature=0xFFFFFC00(-102.4 degree(s) Celcius) # Relative humidity=0x65(101percent) # Dew point=0x1F5(50.1 degree(s) Celcius) # Air pressure=0x1FF(1310 hPa) # Air pressure tendency=0x3(3(Not available)) # Horizontal visibility=0x7F(12.7 NM) # Water level=0xFA1(30.01 m) # Water level trend=0x3(3) # Surface current speed=0xFF(25.5 kts) # Surface current direction=0x168(360 degree(s)) # Current speed #2=0xFF(25.5 kts) # Current direction #2=0x168(360 degree(s)) # Current measuring level #2=0x1F(31 m) # Current speed #3=0xFF(25.5 kts) # Current direction #3=0x168(360 degree(s)) # Current measuring level #3=0x1F(31 m) # Significant wave height=0xFF(25.5 m) # Wave period=0x3F(63 Sec) # Wave direction=168(360 degree(s)) # Swell height=0xFF(25.5) m # Swell period=0x3F(63 Sec) # Swell direction=0x168(360 degree(s)) # Sea state=0xD(13 Beaufort) # Water temperature=0x1F5(50.1 degree(s) Celcius) # Precipitation=0x7(7 according to WMO) # Salinity=0x1FE(51.0 permil) # Ice=0x3(3) # # Type 8, DAC 200, FID 10 (Inland AIS Ship Static and Voyage Data) # Paul Courbis !AIVDM,1,1,,B,83aDChPj2d !AIVDM,2,1,4,A,83aDChPj2dp2JqA6wimt:Ow,0*22 !AIVDM,2,2,4,A,UPP8k;JvOeD,2*7F # Message type : 8 # Repleat Indicator : 0 # MMSI : 244650946 # DAC : 200 # FID : 10 # data : 368:c32c70cf5d370c3064fa50198800b4987e9555557e083a544f082003b809ae511bfc75f0a7ff960808ccb6be7ed5 # # Type 9: # From AISHub. Checked with the noaadata tools. !AIVDM,1,1,,A,91b77=h3h00nHt0Q3r@@07000<0b,0*69 # Message Type : 9 # Repeat Indicator : 0 # MMSI : 111265591 # Altitude : 15 # SOG : 0 # Position Accuracy : 0 # Longitude : 7128960 # Latitude : 34667073 # Course Over Ground : 0 # Time Stamp : 28 # Regional reserved : 0 # DTE : 0 # Assigned : 0 # RAIM flag : 0 # Radio status : 24597 # # Type 9: # From AISHub !AIVDM,1,1,,B,91b55wi;hbOS@OdQAC062Ch2089h,0*30 # Message Type : 9 # Repeat Indicator : 0 # MMSI : 111232511 # Altitude : 303 # SOG : 42 # Position Accuracy : 0 # Longitude : 0xFC683F6 (-6.27884) # Latitude : 0x2145300 ( 58.144 ) # Course Over Ground : 0x0609 (154.5) # Time Stamp : 15 # Regional reserved : 0 # DTE : 1 # Assigned : 0 # RAIM flag : 0 # Radio status : 33392 # # Type 10: # From Kurt Schwehr. Two destination MMSIs. Checked with the noaadata tools. !AIVDM,1,1,,B,:5MlU41GMK6@,0*6C # MessageID: 10 # RepeatIndicator: 0 # UserID: 366814480 # Spare1: 0 # DestID: 366832740 # Spare2: 0 # # Type 10: # From Mike Greene. One destination MMSI. Decode is known good. !AIVDM,1,1,,B,:6TMCD1GOS60,0*5B,s36310,d-081,T59.01777335 # Message Type: 10 # Repeat Indicator: 0 # MMSI: 440882000 # Destination MMSI: 366972000 # # Type 11: # From Kurt Schwehr. Checked with the noaadata tools. # Message has Coast Guard extended fields following !AIVDM,1,1,,B,;4R33:1uUK2F`q?mOt@@GoQ00000,0*5D,s28089,d-103,T39.44353985,x147521,r08TPHI1,1242958962 # MessageID: 11 # RepeatIndicator: 0 # UserID: 304137000 # Time_year: 2009 # Time_month: 5 # Time_day: 22 # Time_hour: 2 # Time_min: 22 # Time_sec: 40 # PositionAccuracy: 1 # Position_longitude: -94.40768333333333333333333333 # Position_latitude: 28.40911666666666666666666667 # fixtype: 1 # Spare: 0 # RAIM: False # state_syncstate: 0 # state_slottimeout: 0 # state_slotoffset: 0 # # Type 12: # From AIS Hub via Neal Arundale. Dumps by ais.py. # Verified by the text being readable. !AIVDM,1,1,,A,<02:oP0kKcv0@<51C5PB5@?BDPD?P:?2?EB7PDB16693P381>>5H0,4*4C # Message Type : 12 # Repeat Indicator : 0 # MMSI : 351853000 # Sequence Number : 1 # Destination MMSI : 351809000 # Retransmit flag : 0 # Text : THANX !AIVDM,1,1,,A,<42Lati0W:Ov=C7P6B?=Pjoihhjhqq0,2*2B # Message Type : 12 # Repeat Indicator : 0 # MMSI : 271002099 # Sequence Number : 0 # Destination MMSI : 271002111 # Retransmit flag : 1 # Text : MSG FROM 271002099 !AIVDM,1,1,,A,9P81?f31<P81@9P>5GPI9BP?5?Per18=HB1U:1@E=B0m3R1p10E3;;R0USCR0HO>0@gN10kGJp,2*7F # Message Type : 14 # Repeat Indicator : 0 # MMSI : 237008900 # Text : EP228 IX48 FG3 DK7 PL56. !AIVDM,1,1,,A,>4aDT81@E=@,2*2E # Message Type : 14 # Repeat Indicator : 0 # MMSI : 311764000 # Text : TEST # # Type 15: # From Mike Greene. This is the 88-bit variant with one MMSI, # message type and offset. Decode is known good. !AIVDM,1,1,,A,?5OP=l00052HD00,2*5B # Message Type: 15 # Repeat Indicator: 0 # MMSI: 368578000 # Destination MMSI: 5158 # First Message Type: 5 # First Slot Offset: 0 # # Type 15: # From Kurt Schwehr. This is the 108/112-bit variant with one MMSI and two # message types. Includes USCG metadata. Decode is known good. !AIVDM,1,1,,B,?h3Ovn1GPio;WlWuwH`W1PpnuN;h00Fc>jpUlNV@ikwpUoP06,0*4C # MessageID: 18 # RepeatIndicator: 0 # UserID: 338087471 # Reserved1: 0 # SOG: 0.1 # PositionAccuracy: 0 # longitude: -74.07213166666666666666666667 # latitude: 40.68454 # COG: 79.6 # TrueHeading: 511 # TimeStamp: 49 # RegionalReserved: 0 # Spare: 0 # RAIM: True # CommStateSelector: 1 # CommState: 393222 # Type 18: # From Kurt Schwehr. Checked with the noaadata tools. !AIVDM,1,1,,A,B52KB8h006fu`Q6:g1McCwb5oP06,0*00 # MessageID: 18 # RepeatIndicator: 0 # UserID: 338088483 # Reserved1: 0 # SOG: 0 # PositionAccuracy: 0 # longitude: -70.8111966 # latitude: 43.11555833 # COG: 171.6 # TrueHeading: 511 # TimeStamp: 20 # RegionalReserved: 0 # Spare: 0 # RAIM: True # CommStateSelector: 1 # CommState: 393222 # Type 18: # From Kurt Schwehr. Checked with the noaadata tools. !AIVDM,1,1,,B,B5O6hr00NhWAwwo862PaLELTBJ:V00000000S0D:R220,0*0B # MessageID: 19 # RepeatIndicator: 0 # UserID: 367059850 # Spare: 0 # SOG: 8.7 # PositionAccuracy: 0 # longitude: -88.8103916667 # latitude: 29.543695 # COG: 335.9 # TrueHeading: 511 # TimeStamp: 46 # Spare2: 0 # name: CAPT.J.RIMES # shipandcargo: 70 # dimA: 5 # dimB: 21 # dimC: 4 # dimD: 4 # fixtype: 1 # RAIM: False # DTE: 0 # Spare3: 0 # # Type 20 (1 offset) # From Mike Greene. Checked with the noaadata tools. !AIVDM,1,1,,A,Dh3OvjB8IN>4,0*1D # Message Type: 20 # Repeat Indicator: 3 # MMSI: 3669705 # Offset 1: 2182 # Reserved Slots 1: 5 # Timeout 1: 7 # Increment 1: 225 # # Type 20 (3 offsets): # From Mike Greene. !AIVDM,1,1,,B,D030p8@2tN?b<`O6DmQO6D0,2*5D # Message Type: 20 # Repeat Indicator: 0 # MMSI: 3160097 # Offset 1: 47 # Reserved Slots 1: 1 # Timeout 1: 7 # Increment 1: 250 # Offset 2: 2250 # Reserved Slots 2: 1 # Timeout 2: 7 # Increment 2: 1125 # Offset 3: 856 # Reserved Slots 3: 5 # Timeout 3: 7 # Increment 3: 1125 # # Type 21: # Has a Name Extension field # From Mike Greene. Decode is verified by the text being readable. # Also checked against the Maritec decoder, which verifies # everything except the Regional Reserve field. !AIVDM,2,1,5,B,E1mg=5J1T4W0h97aRh6ba84gOP00PH=JrN9l000?wB2HH;,0*44 # # Type 23: # From AISHub. Only a regression test to check that the C and Python decoders # do the same thing, not yet checked against other decoders. !AIVDM,1,1,,B,G02:Kn01R`sn@291nj600000900,2*12 # Message Type : 23 # Repeat Indicator : 0 # MMSI : 2268120 # NE Longitude : 1578 # NE Latitude : 30642 # SW Longitude : 1096 # SW Latitude : 30408 # Station Type : 6 # Ship Type : 0 # Tx/Rx mode : 0 # Reporting interval : 9 # Quiet time : 0 # # Type 24: # From Nirgal # One pair of type A and Type B messages. # Checked against the Maritec decoder. !AIVDM,1,1,,A,H42O55i18tMET00000000000000,2*6D # MessageID: 24 # RepeatIndicator: 0 # UserID: 271041815 # partnum: 0 # name: PROGUY !AIVDM,1,1,,A,H42O55lti4hhhilD3nink000?050,0*40 # MessageID: 24 # RepeatIndicator: 0 # UserID: 271041815 # partnum: 0 # shipandcargo: 60| # vendorid: 1D00014 # callsign: TC6163 # dimA: 0 # dimB: 15 # dimC: 0 # dimD: 5 # # Type 25: # From Christian Gagneraud via aishub # Addressed and structured !AIVDM,1,1,,A,JB3R0GO7p>vQL8tjw0b5hqpd0706kh9d3lR2vbl0400,2*40 # # Type 25: # From Christian Gagneraud via aishub # Addressed and not structured !AIVDM,1,1,,A,I6SWo?8P00a3PKpEKEVj0?vNP<65,0*73 # # Type 25: # From Christian Gagneraud via aishub # Broadcast and structured !AIVDM,1,1,,A,I8IRGB40QPPa0:vQL8tjw0b5hqpd0706kh9d3lR2vbl0400,2*40 # # Type 26: # From Christian Gagneraud via aishub # Addressed and not structured !AIVDM,1,1,,A,J1@@0IK70PGgT740000000000@000?D0ih1e00006JlPC9C3,0*6B # # Type 26 # From Christian Gagneraud via aishub # Broadcast and structured !AIVDM,1,1,,B,JaL0mr5P000DtRDMddr@0?vF06iD,0*75 # # Type 26 # From Christian Gagneraud via aishub # Broadcast and not structured !AIVDM,1,1,,A,J0@00@370>t0Lh3P0000200H:2rN92,4*14 # # Type 27: # From Christian Gagneraud via aishub # The only message 27 in more than 25 millions messages that is 96 bits long! !AIVDM,1,1,,A,KCQ9r=hrFUnH7P00,0*41 # # Type 27: # From Marius Kintel # It's apparently more common for these to be 168 bits long (a full slot) !AIVDM,1,1,,B,KC5E2b@U19PFdLbMuc5=ROv62<7m,0*16 # ############################################################################## # Invalid packet tests: ############################################################################## # # That fragment misses part 1, yields nothing: AIVDM,2,2,1,B,00000000000,2*26 # # ############################################################################## # Type 24 collisions: ############################################################################## # # 24B from 271041815: # This sentence is missing 24A and is discarded !AIVDM,1,1,,A,H42O55lti4hhhilD3nink000?050,0*40 # gpsdecode: AIVDM message type 24 collision on channel A: 24B sentence from 271041815 without 24A. # # 24A from mmsi 271041511: # context is updated !AIVDM,1,1,,A,H42O3qiA8U10Tp0000000000000,2*37 # # 24A from mmsi 271040660: # Previous 24A from 271041511 is discarded, context is updated !AIVDM,1,1,,A,H42O0U0Lu`@Dno4000000000000,2*18 # gpsdecode: AIVDM message type 24 collision on channel A : Discarding previous sentence 24A from 271041511. # # 24B from mmsi 271020195: # Saved in context, but without a valid 24A it's never emitted. !AIVDM,1,1,,A,H42Mh`lUi2hhljiI=mikk000B050,0*17 # # 24B from mmsi 271040660: # Success !AIVDM,1,1,,A,H42O0U4Ui3hhhlmI=mmhl000H060,0*2E # ############################################################################## # Channel multiplexing test: ############################################################################## # simultaneous use of buffers of channels A & B !AIVDM,2,1,6,B,542M92h00001@<7;?G0PD4i@R0220o0h:2240Ht50000000000,0*3B !AIVDM,2,1,2,A,542M92h00001@<7;?G0PD4i@R0220o0h:2240Ht500000000000000,0*3C !AIVDM,2,2,2,A,0000002,2*24 !AIVDM,2,2,6,B,00000000000,2*21 ############################################################################## # Error and corner case tests: ############################################################################## # Non printable and control character in data or string fields !AIVDM,1,1,,A,647sBv00b=E006P9>0,4*1B # Type 4 with date/time set to N/A !AIVDM,1,1,,A,402Fha0000Htt8700PS:,0*60 # Type 4 with year set to 10196 (0x27D4), idempotency used to fail on this one # It has a bad epfd as well. !AIVDM,1,1,,B,4>O7m7Iu@<9qUfbtm`vSnwvH20S8,0*46 # Type 22 with MMSI1=4059193694, used to fail due to UBITS() instead of SBITS() !AIVDM,1,1,,B,Fe3>>MOD@GDF?ThcoCk02?ioQie4,0*03 # A type 6, DAC 1, FID 18 with plenty of N/A fields, idempotency use to fail !AIVDM,1,1,,B,602E:s0tw@9B0580@00000000000,0*68 # A type 6, DAC 1, FID 30. used to fail idempotency !AIVDM,1,1,,B,6h2E3MPrG7wfNwwww,0*32 !AIVDM,2,2,2,B,wwwwwwwwwwwwwwwwwwwwwt0,2*26 #{"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"} !AIVDM,2,1,9,B,8>j`;MP0GhRHI1S`CrTW2?u2Ot1owwnews0F003wwwwwww0001wwwwwwwwh0,0*02 !AIVDM,2,2,9,B,00,4*18 #{"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"} !AIVDM,1,1,,A,8@2wwwwwwwwwwwwwwwwwwwwwwwwwt0,2*0E #{"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"} !AIVDM,1,1,,A,8@21@juFB4:7wfNwwwwwwwwwwwwwwwwwwwwwwwwwt0,2*55 #{"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"} !AIVDM,1,1,,A,8@231iL:RBcGwfBwwwwwwwwwwwwwwwwwwwwwwwwwt0,2*5F #{"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"} !AIVDM,2,1,7,B,802`m000BkGTp0bkCSF,0*41 !AIVDM,3,3,7,A,Uq:1Kk`e8,4*27 # {"class":"AIS","type":8,"repeat":0,"mmsi":366999607,"scaled":false,"dac":366,"fid":57,"data":"510:7ffdef068fbded3c0a1943dfb997b4a10fadec21e6e0a6608f0f44b686a8747ff71e595dcb5ec5b4e05221d886233d2e4916f6eb6fe8ecd38d69792816f3a2d0"} # sample of type 8 fid 16 where persons shouldn't be parsed !AIVDM,1,1,,A,802At?00D000qFap02:lA0b@?3fw0001<:iFP2:rf0cCGp0w00,4*5E #{"class":"AIS","type":8,"repeat":0,"mmsi":2391100,"scaled":false,"dac":1,"fid":16,"data":"240:0000e56a780022b4440a903c3bbf00000130ac568022bab80ad35f803f00"} # 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. !AIVDM,3,1,0,A,802UMp@0D002G`lCH2FuR@mE8;;w2d00001h82F0@hm;gh0w00010Wk3<2FG,0*00 !AIVDM,3,2,0,A,ePm;5@0w0000iLBaP2F4khlwAH0w0000u7fUP2G=u0m3T@0w00010W:s02F>,0*72 !AIVDM,3,3,0,A,Ghm4utWw2P,4*27 # 8|0|002711009|1|16|720:00025e8d136025bd890d5520b2ff0ac000000070202580430d4bbf003f000001027cc3302597b60d4b15003f000000c5c4a9802584cf0d3f45803f000000f47ba58025cdf40d4391003f0000010272bb00258e5f0d44f7c9ff0a # # Extra long type 21 message # from AISHub sample data # has data length of 368 !AIVDM,2,1,8,B,E03l90w4Q1h3h1:WdPOwwwwwwwwlQdn`:e55020@@@gP0000000000000000,0*47\x0d\x0a !AIVDM,2,2,8,B,00,4*19\x0d\x0a # # type 16 168 bits long # !AIVDM,1,1,,B,@6STUk004lQ206bCKNOBAb6SJ@5s,0*74 # # type=20 186 bits long # !AIVDM,1,1,,2,D02E34iFTg6D000000000000002gjG2,0*75 !AIVDM,1,1,,2,D02=VVA8`N?`>4N01L=Nfp1>AA0,0*75 # # type=20 # !AIVDM,1,1,,A,D028rqPD,0*25 # !AIVDM,3,2,3,B,eju@c3Si451FJd9WPU<>BgML6TO918o:?6uoOFu3k@=,0*50 # !AIVDM,3,3,3,B,v@,3*23 # # !AIVDM,1,1,,A,a5MuRA0@00IQUuTADeju@c3Si451FJd9WPU<>B,0*04 # !AIVDM,2,2,3,A,gML6TO918o:?6uoOFu3k@=vE,3*41 # # !AIVDM,2,1,3,A,E7`B17L77oK@@@@@@@@@@@@@@@@6@6j5mNK<@10888Qr8`888888888888803Puv,0*09 # !AIVDM,2,2,3,A,wf,0*04 # # !AIVDM,1,1,,A,H6K>HPPlDU