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