# Sample AIVDM data sentences provided from real data by Kurt Schwehr
# Mike Greene, Neal Arundale, and AISHub.
#
# This file is Copyright 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;s<HtKR20EHE:0@T4@Dn2222222216L961O5Gf0NSQEp6ClRp8,0*1C
!AIVDM,2,2,1,A,88888888880,2*25
#       MessageID:        5
#       RepeatIndicator:  0
#       UserID:           351759000
#       AISversion:       0
#       IMOnumber:        9134270
#       callsign:         3FOF8  
#       name:             EVER DIADEM         
#       shipandcargo:     70
#       dimA:             225
#       dimB:             70
#       dimC:             1
#       dimD:             31
#       fixtype:          1
#       ETAminute:        0
#       ETAhour:          16
#       ETAday:           15
#       ETAmonth:         5
#       draught:          12.2
#       destination:      NEW YORK            
#       dte:              0
#       Spare:            0
#
# Type 6:
# From Kurt Schwehr
# Text decode for this one came from regrouping the binary data dump from Kurt's
# ais_msg_6.py on one of his test sentences.  It's unknown what's in the binary
# data block.  The Maritec sdecoder confirms the preamble decoder but doesn't
# display the data block.
!AIVDM,1,1,,B,6B?n;be:cbapalgc;i6?Ow4,2*4A
#       MessageID:        6
#	RepeatIndicator:  1
#	UserID:           150834090
#	SeqNum:           3
#	DestinationID:    313240222
#	RetransmitFlag:   False
#	Spare:            0
#       DAC               669
#       FID               11
#	Data:             48:eb2f118f7ff1
#
# Type 6, DAC 235, FID 10 (GLA, Rep. Ireland)
# From Christian Gagneraud:
# Decoding with Kanaton software.
# !AIVDM,1,1,4,B,6>jR0600V: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<MWE@,4*01
#	SourceMMSI:       655901842
#	MMSI1:            158483613
#	MMSI2:            321823389
#	MMSI3:            836359488
#	MMSI4:            0
#
# Type 7:
# This was from Mike Greene and had a dump attached. Decode is known good.
# noaadata-0.43 fails on this message
!AIVDM,1,1,,B,7`0Pv1L:Ac8rbgPKHA8`P,2*56
#        Message Type:    7
#        RepeatIndicator: 2
#        SourceMMSI:      537411077
#        MMSI1:           43101326
#        MMSI2:           717096664
#        MMSI3:           76161024
#
# Type 8:
# Text decode for this one came from regrouping the binary data dump from Kurt's
# ais_msg_8.py on one of his test sentences.  It's unknown what's in the binary
# data block.
!AIVDM,1,1,,A,85Mwp`1Kf3aCnsNvBWLi=wQuNhA5t43N`5nCuI=p<IBfVqnMgPGs,0*47
#       MessageID:          8
#	RepeatIndicator:    0
#       UserID:             366999712
#       ApplicationID:      23480
#       DAC                 366
#       FID                 22
#       Data:               256:3a53dbb7be4a773137f87d7b0445f040dea05d93f593783194ae9b9d9dbe05fb
#
# Type 8:
# From Kurt Schwehr. Spans more than one AIVDM fragment. Known good.
# Analyzed in <4BE6A423.8000007@ccom.unh.edu>, 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<<Rv1t<ot=@1,2*54
# "18/05/2012 18:15:37" !AIVDO,1,1,4,B,8>jR06@0Bk3:wOli;<`WPhh<1rqVBQf2V@Pdt0J82avIM2b<<Rv1t<ot=@1,2*54
#    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=0x30CAFD(53°017.693 N)
#    Longitude=0x59DA7(006°008.039 W)
#    Date and time=0x944F(18 17h15m)
#    Average wind speed=0x3(3 kts)
#    Wind gust=0x6(6 kt(s))
#    Wind direction=0xC(12 degree(s))
#    Wind gust direction=0xF(15 degree(s))
#    Air temperature=0x2E6(14.2 degree(s) Celcius)
#    Relative humidity=0x32(50percent)
#    Dew point=0x143(12.3 degree(s) Celcius)
#    Air pressure=0xE0(1024 hPa)
#    Air pressure tendency=0x2(2(increasing))
#    Horizontal visibility=0x99(15.3 NM)
#    Water level=0x10(-8.4 m)
#    Water level trend=0x1(1 hPa)
#    Surface current speed=0x67(10.3 kts)
#    Surface current direction=0x100(256 degree(s))
#    Current speed #2=0x68(10.4 kts)
#    Current direction #2=0x101(257 degree(s))
#    Current measuring level #2=0xA(10 m)
#    Current speed #3=0x7E(12.6 kts)
#    Current direction #3=0xCB(203 degree(s))
#    Current measuring level #3=0x14(20 m)
#    Significant wave height=0x2A(4.2 m)
#    Wave period=0x23(35 Sec)
#    Wave direction=19(25 degree(s))
#    Swell height=0x17(2.3) m
#    Swell period=0x30(48 Sec)
#    Swell direction=0x7C(124 degree(s))
#    Sea state=0x3(3 Beaufort)
#    Water temperature=0xDF(12.3 degree(s) Celcius)
#    Precipitation=0x6(6 according to WMO)
#    Salinity=0x35(5.3 permil)
#    Ice=0x0(0)
#
# Type 8, DAC 1, FID 11 (IMO 236 Met/Hydro message)
# From Christian Gagneraud:
# Same set-up as above, but the NMEA stream to the Kanaton has been stopped,
# causing the Kanaton to send a message with all bits set to 1, meaning "no
# data available"
!AIVDO,1,1,4,B,8>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 <paul@courbis.com>
!AIVDM,1,1,,B,83aDChPj2d<dL<uM=hhhI?a@6HP0,0*40
#	Message type           : 8
# 	Repleat Indicator      : 0
#	MMSI                   : 244650946
#	DAC                    : 200
#	FID                    : 10
#	VIN                    : 02103547
#	Length                 : 390
#	Beam                   : 50
#	Vessel type            : 8010
#	Type text              : "Motor freighter"
#	Hazard                 : 0
#	Hazard text            : "0 blue cones/lights"
#	Draught                : 204
#	Loaded                 : 1
#	Loaded text            : "Unloaded"
#	speed_q                : false
#	course_q               : false
#	heading_q              : false
#
# This is a Type 8 blob that spoofs being Inland AIS Ship Static data.
# but has garbage in the shiptype, vin, and other fields.
# Curiously, it seems to have been emitted by the same ship (or, anyway,
# the same MMSI) as the previous and valid one.
# Paul Courbis <paul@courbis.com>
!AIVDM,2,1,4,A,83aDChPj2d<dL<uM=hhhI?a@6HP0e9QvUEEEOPPrE4t880>p2JqA6wimt: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>>5<PikP,0*37
#       Message Type             : 12
#       Repeat Indicator         : 0
#       MMSI                     : 2275200
#       Sequence Number          : 0
#       Destination MMSI         : 215724000
#       Retransmit flag          : 0
#       Text                     : PLEASE REPORT TO JOBOURG TRAFFIC CHANNEL 13
!AIVDM,1,1,,A,<5?SIj1;GbD07??4,0*38
#       Message Type             : 12
#       Repeat Indicator         : 0
#       MMSI                     : 351853000
#       Sequence Number          : 0
#       Destination MMSI         : 316123456
#       Retransmit flag          : 0
#       Text                     : GOOD
!AIVDM,1,1,,A,<5?SIj5Cp;NPD81>H0,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,<CR3B@<0TO3j5@PmkiP31BCPphPDB13;CPihkP=?D?PmP3B5GPpn,0*3A
#       Message Type             : 12
#       Repeat Indicator         : 1
#       MMSI                     : 237032000
#       Sequence Number          : 3
#       Destination MMSI         : 2391100
#       Retransmit flag          : 1
#       Text                     : EP 531 CARS 80 TRACKS 103 MOTO 5 CREW 86
!AIVDM,1,1,,A,<9NS8O1ROcS0>9P81?f31<<PD5CD,0*46
#       Message Type             : 12
#       Repeat Indicator         : 0
#       MMSI                     : 636012668
#       Sequence Number          : 0
#       Destination MMSI         : 413118000
#       Retransmit flag          : 0
#       Text                     : NI HAO.CALL TEST
# From AISHub
!AIVDM,2,1,1,A,<39KdV8jIGtP7E4P@=PjEP>P81@9P>5GPI9BP?<P4P25CP6B=P1<P6E:19B1,0*02
!AIVDM,2,2,1,A,80,4*1B
#       Message Type             : 12
#       Repeat Indicator         : 0
#       MMSI                     : 211217560
#       Sequence Number          : 2
#       Destination MMSI         : 211378120
#       Retransmit flag          : 0
#       Text                     : GUD PM 2U N HAPI NEW YIR OL D BES FRM AL FUJAIRAH
# Type 13:
# From AISHub. This message was shipped to acknowledge the last type 12 and is
# verified by the fact that the MMSI fields are right. 
!AIVDM,1,1,,A,=39UOj0jFs9R,0*65
#       Message Type             : 13
#       Repeat Indicator         : 0
#       MMSI                     : 211378120
#       MMSI number 1            : 211217560
#
# Type 14:
# From AIS Hub via Neal Arundale.  Dumps by ais.py.
# Verified by the text being readable.
!AIVDM,1,1,,A,>5?Per18=HB1U:1@E=B0m<L,2*51
#       Message Type             : 14
#       Repeat Indicator         : 0
#       MMSI                     : 351809000
#       Text                     : RCVD YR TEST MSG
!AIVDM,1,1,,A,>3R1p10E3;;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,?h3Ovn1GP<K0<P@59a0,2*04,d-077,S1832,t004248.00,T48.85520485,r07RPAL1,1272415370
#	Message Type             : 15
#	Repeat Indicator         : 3
#	MMSI                     : 3669720
#	First interrogated MMSI  : 367014320
#	First message type       : 3
#	First slot offset        : 516
#	Second message type      : 5
#	Second slot offset       : 617
#	Second interrogated MMSI : 0
#	Message type             : 0
#	Slot offset              : 0
#
# Type 15:
# From Christian Gagneraud via aishub
# This is the 160-bit variant of type 15 with two MMSIs.
!AIVDM,1,1,,A,?39a?2PjKFFPD01o:Gq1igvp2<3w,0*0B
#
# Type 16:
# From AISHub. These are only a regression test to check that the C and Python
# decoders do the same thing, not yet checked against other
# decoders. 
#
# This is the 96-bit version addressing just one destination MMSI.
!AIVDM,1,1,,A,@01uEO@mMk7P<P00,0*18
#       Message Type             : 16
#       Repeat Indicator         : 0
#       MMSI                     : 2053501
#       Interrogated MMSI 1      : 224251000
#       First slot offset        : 200
#       First slot increment     : 0
#
# FIX-ME: Need an example of the 144-bit variant of type 16 with two MMSIs, g.
#
# Type 17:
# From AISHub. This is only a regression test to check that the C and Python
# decoders do the same thing, not yet checked against other
# decoders. 
!AIVDM,2,1,5,A,A02VqLPA4I6C07h5Ed1h<OrsuBTTwS?r:C?w`?la<gno1RTRwSP9:BcurA8a,0*3A
!AIVDM,2,2,5,A,:Oko02TSwu8<:Jbb,0*11
#	Message Type             : 17
#	Repeat Indicator         : 0
#	MMSI                     : 2734450
#	Longitude                : 17478
#	Latitude                 : 35992
#	DGNSS data               : 376:7c0556c07031febbf52924fe33fa2933ffa0fd2932fdb7062922fe3809292afde9122929fcf7002923ffd20c29aaaa
#
# This one was found in the wild.  It has a negative latitude.
!AIVDM,1,1,1,A,A;wUJKU>io;WlWuwH`W1PpnuN<isf;5iHtOM1S6q?vsvNrNGOqLcr5mfD6t,2*51,d-127,S1378,t024436.00,T36.76385108,r09SCHA1,1272422678
#	Message Type             : 17
#	Repeat Indicator         : 0
#	MMSI                     : 804870766
#	Longitude                : 80669
#	Latitude                 : -26818
#	DGNSS data               : 272:7f7f6289c1838dbd78cc7bb8b17163c7dd0631b93feefe7ba7977f972be85d6e506f
#
# Type 18:
# From Kurt Schwehr. Checked with the noaadata tools.
# I had to regenerate the CRC32 for this one myself, it was missing
# in Kurt's original..
!AIVDM,1,1,,A,B52K>;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,B5O6hr00<veEKmUaMFdEow`UWP06,0*4F
#       Message Type:       18
#       Repeat Indicator:   0
#       MMSI:               368161000
#       Speed Over Ground:  51
#       Position Accuracy:  1
#       Longitude:          -72.2338483333
#       Latitude:           39.480925
#       Course Over Ground: 349
#       True Heading:       511
#       Time Stamp:         17
#       CS Unit:            1
#       Display Flag:       0
#       DSC Flag:           1
#       Band Flag:          1
#       Message 22 Flag:    0
#       Assigned-Mode Flag: 0
#       RAIM:               1
#       Sync State:         3
#       Slot Time-Out:      0
#       Sub Message:        6
#
# Type 19:
# From Mike Greene.  Checked with the noaadata tools. Decode is known good.
# Also checked with the Maritec decoder
!AIVDM,1,1,,B,C5N3SRgPEnJGEBT>NhWAwwo862PaLELTBJ: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=5J1T4W0h97aRh6ba84<h2d;W:Te=eLvH50```q,0*46
!AIVDM,2,2,5,B,:D44QDlp0C1DU00,2*36
#        Message Type:             21
#        Repeat Indicator:         0
#        MMSI:                     123456789
#        Aid Type:                 20
#        Name:                     CHINA ROSE MURPHY EXPRESS ALERT
#        Position Accuracy:        0
#        Longitude:                -122.698591667
#        Latitude:                 47.9206183333
#        Dimension to Bow:         5
#        Dimension to Stern:       5
#        Dimension to Port:        5
#        Dimension to Starboard:   5
#        Type of EPFD:             GPS
#        UTC Second:               50
#        Off-Position Indicator:   0
#        Regional Reserved:        165
#        RAIM Flag:                0
#        Virtual-Aid Flag:         0
#        Assigned-Mode Flag:       0
#
# Type 22:
# From AISHub.  Broadcast case: we won't count this as a full test by
# itself because the bit layout of the addressed case is different.
# (The addressed form seems to be rare or nonexistent in the wild; none
# showed up in a three-hour sample from AISHub, while many broadcasts did.)
# Verified only by the fact that the Python and C decoders get consistent
# results, we haven't actually seen an independent dump of these fields. 
# (The noaadata 0.42 dumper for this type doesn't seem to work.)
!AIVDM,1,1,,A,F030ot22N2P6aoQbhe4736L20000,0*1A
#        Message Type             : 22
#        Repeat Indicator         : 0
#        MMSI                     : 3160048
#        Channel A                : 2087
#        Channel B                : 2088
#        Tx/Rx mode               : 0
#        Power                    : 0
#        NE Longitude             : -44100
#        NE Latitude              : 27330
#        SW Longitude             : -48100
#        SW Latitude              : 25400
#        Addressed                : 0
#        Channel A Band           : 0
#        Channel A Band           : 0
#        Zone size                : 4
#
# Type 22:
# From Christian Gagneraud via aishub
# Addressed case.
!AIVDM,1,1,,A,F@@W>gOP00PH=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:<HP::V=gwv0l48,0*0E
#
# Type 25:
# From Christian Gagneraud via aishub
# Broadcast and not structured
!AIVDM,1,1,,A,I6SWVNP001a3P8FEKNf=Qb0@00S8,0*6B
#
# Type 26:
# From Christian Gagneraud via aishub
# Addressed and structured
!AIVDM,1,1,,A,JB3R0GO7p>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 <marius@kintel.net>
# 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@R0<tqA8tj37>220o0h:2240Ht50000000000,0*3B
!AIVDM,2,1,2,A,542M92h00001@<7;?G0PD4i@R0<tqA8tj37>220o0h: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,402Fha0000Htt<tSF0l4Q@000d20,0*65
# Type 4 with YYYY/MM/DD OK, but HHmmSS N/A
!AIVDM,1,1,,B,4028n@iuiPpttwIWI<Hl>8700PS:,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,6h2E3MPr<buN05p0J00000000000,0*0A
# A type 6, DAC 1, FID 18, used to fail idempotency
!AIVDM,1,1,,B,602E:s0tw@9B0580@00000000000,0*68
# Array of struct, used to crash "gpsdecode -j -e -u"
!AIVDM,1,1,,A,6h2E3MHrg19P0600@00000000000,0*02
!AIVDM,1,1,,A,6h2E3N0rThqP0600J00000000000,0*51
# Temp conversion with unsigned failed
!AIVDM,1,1,,A,8@2<HW@0BkdhF0dcH59=RiRRDqnJ7wfRwwwwwwwwwwwwwwwwwwwwwwwwwt0,2*7D
# {"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"}
# more samples from Stefan
!AIVDM,2,1,2,B,8@2<HV@0BkM5OPiGTU9=TRiS<J>G7wfNwwww,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@2<HVh0BkL8V@Wfp=9=RAA57jC;wwf>wwwwwwwwwwwwwwwwwwwwwwwwwt0,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@2<HW@0Bkb<B0akj59>1@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@2<HV@0BkLfrhhJWM9=SjAk=B@pOwfNwwwwwwwwwwwwwwwwwwwwwwwwwt0,2*66
#{"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"}
!AIVDM,1,1,,A,8@2<HVh0BkM75P`MKU9>31iL: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`m000BkGTp0b<j59?000000000000000O,0*14
!AIVDM,2,2,7,B,p0000000000<0000000@000,2*1C
#{"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"}
# type 6 with unhandled type
!AIVDM,1,1,,A,601uEPprEH2@<P<j00,4*32
#{"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"}
#
# Handle bad padding at the end of type 8 with non byte aligned data blob
!AIVDM,3,1,7,A,85Mwp=iKfGwushJ?gNlt2QU3osVGe:4?cNhQqf2VH8t,0*08
!AIVDM,3,2,7,A,?A;J6b7AwuiqIGLeNiKCPDR7HQR<u;TTFufegr>kCSF,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,D028rqP<QNfp000000000000000,2*0C
#
# type=1 length=163
#
!AIVDM,1,1,,A,13aIkM@P00PJ@qPNL=e@0?wJ28JO,5*63
#
# type=1 length=168
#
!AIVDM,1,1,,A,13aIkM@P00PJ@qPNL=e@0?wJ28JO,0*66
# Unhandled
# !AIVDM,2,1,2,B,53am5`02@=gA0Ptr2204pA8Fl:2222222222220l1HC554I<09UmmsPS,0*62
# !AIVDM,2,2,1,A,p88888888888880,2*6D
#
# !AIVDM,1,1,,A,U31<0OOP000CshrMdl600?wP00SL,0*43
#
# !AIVDM,3,1,3,B,I`1ifG20UrcNTFE?UgLeo@Dk:o6G4hhI8;?vW2?El>D,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@00IQUuTA<Kgt1wvP00S6,0*65
#
# !AIVDM,2,1,3,A,I`1ifG20UrcNTFE?UgLeo@Dk:o6G4hhI8;?vW2?El>Deju@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<DV0l59F222222221WKgqj8,0*49
