sample.aivdm 46 KB

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