AIS目标信息解析

.

 暗码数据格式

!XXYYY,A,B,C,N,Data,V*HH<CR><LF>

1

XX:使用的设备,“AI”是船载标志,“BS”是基站标志。

YYY:语句类型,VDM表示封装的是他船信息,VDO表示封装的是本船信息。

A:电文的长度可能很长,需要几句语句。此处规定了发送本条信息需要的报文条数(1-9)。

B:本条报文的序列数(1-9),此字段不能为空。

C:连续报文的识别码(0-9),给每一份新的多语句电文按序列指配编号,每次加1,计数到9后返回0,对要求多语句的电文,电文的每一句包含同样序列的电文号,它用于识别包含同一电文各个部分的语句。这样,使其他语句可以与包含该同一电文的各语句相互穿插。在电文可以使用一个语句时,该字段为空。

N:AIS的信道指示为“A”或“B”,报文是从信道“A”还是“B”接收。本信道指示与接收该数据包时与AIS的运行状态有关。当不提供频道识别时,本数据为空。信道“A”或“B”的VHF信道号,可用AIS的一个ACA语句查询得到。

Data:封装的数据部分,封装的最大长度的限制是语句的总字符数不超过82.对于用多语句传送的电文,本字段支持最多62个有效字符。而对于单语句传送的电文,最多为63个有效字符。

V:填充位数(比特数),二进制比特数必须是6的倍数,如果不是,要加入1-5个填充比特。本参数指示加到最后一个6比特编码字符上的比特数。未加入填充比特时,本数值为0,本字段不可以为空。(即填充字符,由于每条消息语句总位数必须是6的整数倍,否则需填充0-5个字符)

HH:检验字段。AIS数据采用8位CRC,取其8位CRC校验码的高四位,并转化为16进制数,构成AIS校验码的第一位,取其8位CRC校验码的低四位,转化为16进制数后构成校验码的第二位。当AIS接收设备收到一条AIS电文后,按照8位CRC对其数据部分进行重新校验,生成的校验值如果与电文自带的校验值相同,说明电文数据在传输过程中没有出错。如果不同,则说明数据在传输过程中出错了。

< CR > < LF >:语句结束标志。

AIS信息分动态信息和静态信息

动态信息包含经纬度、航向、航速等信息

静态信息报告名称、呼号、长宽、目的地等信息

A类船舶的动态是1、2、3号包,静态是5、24AB包

基站动态是4号包,无静态

B类船舶动态是18、19号,静态是19、24AB包

 

除此之外21号是浮标灯标、9号是飞行器,其他包可查看标准。

        m_infomsg代表封装的数据部分

BYTE outSix[100] = {};

        EightStrToSix(m_infomsg, outSix);

        BYTE Identifycmd;//0-5 6

        Identifycmd = GetByteValFromInfo(outSix, 0, 6);

        switch (Identifycmd)

        {

        case 1:

        case 2:

        case 3:

            paraseTargetinfobyModeAMove(outSix, dev);

            break;

        case 5:

            paraseTargetinfobyModeAStatic5(outSix, dev);

            break;

        case 18:

            paraseTargetinfobyModeBMove18(outSix, dev);

            break;

        case 19:

            paraseTargetinfobyModeBMove19(outSix, dev);

            break;

        case 24:

            if (channel=="A")

            {

                paraseTargetinfobyModeStatic24A(outSix, dev);

            }

            else if (channel == "B")

            {

                paraseTargetinfobyModeStatic24B(outSix, dev);

            }

            break;

        default:

            break;

        }

        m_infomsg = "";

5号包例子

!AIVDM,2,1,9,B,56:j0tP00003CW34000iD`TpTpLQDwCW340000160`V4540Ht0h000000000,0*68

!AIVDM,2,2,9,B,0000000000<,2*22

这个包分2次发的,第一次传的56:j0tP00003CW34000iD`TpTpLQDwCW340000160`V4540Ht0h000000000

第二次传的0000000000,完整包需要把这俩合并为56:j0tP00003CW34000iD`TpTpLQDwCW340000160`V4540Ht0h0000000000000000000

解析如下

AISTargetStaticInformation aimInfo;

    BYTE repeatnym;//6-7 2

    DWORD mmsi;//8-37  30

    //BYTE  version;//38-39  2

    DWORD imoNum;//40-69  30

    //char  telnum[7];//70-111 42

    //char  name[15];//112-231 120

    BYTE  boatType;//232-239 8

    WORD  boatA;//240-248 9

    WORD  boatB;//249-257 9

    BYTE  boatC;//258-263 6

    BYTE  boatD;//264-269 6

    //BYTE  gpsType;//270-273 4

    //DWORD arrivetime;//271-290  20

    BYTE  Waterdraft;//291-298  8

    //char destName[20];//299-418 120

    repeatnym = GetByteValFromInfo(outSix, 6, 2);

    mmsi = GetDWordValFromInfo(outSix, 8, 30);

    imoNum = GetDWordValFromInfo(outSix, 40, 30);

    CStringEx strtelNum = GetStringValFromInfo(outSix, 70, 42);

    strtelNum.TrimEnd('@');

    CStringEx strBoatName = GetStringValFromInfo(outSix, 112, 120);

    strBoatName.TrimEnd('@');

    boatType = GetByteValFromInfo(outSix, 232, 8);

    boatA = GetWordValFromInfo(outSix, 240, 9);

    boatB = GetWordValFromInfo(outSix, 249, 9);

    boatC = GetByteValFromInfo(outSix, 258, 6);

    boatD = GetByteValFromInfo(outSix, 264, 6);

    Waterdraft = GetByteValFromInfo(outSix, 291, 8);

    CStringEx strDestName = GetStringValFromInfo(outSix, 299, 120);

    strDestName.TrimEnd('@');

1号包例子

!AIVDM,1,1,3,A,169DvlgP1R8KPtvFBfOCt3?h0@RT,0*03

169DvlgP1R8KPtvFBfOCt3?h0@RT信息内容的解析如下:

AISTargetInfor aimInfo;

    BYTE repeatnym;//6-7 2

    DWORD mmsi;//8-37  30

    BYTE state;//38-41 4

    BYTE turnrate;//42-49 8

    WORD speed;//50-59  10

    BYTE accuracy;//60   1

    DWORD lon;//61-88  28

    DWORD lat;//89-115   27

    WORD  grounddirect;//116-127 12

    WORD  headdirect;//128-136   9

    repeatnym = GetByteValFromInfo(outSix, 6, 2);

    mmsi = GetDWordValFromInfo(outSix, 8, 30);

    state = GetByteValFromInfo(outSix, 38, 4);

    turnrate = GetByteValFromInfo(outSix, 42, 8);

    speed = GetWordValFromInfo(outSix, 50, 10);

    accuracy = GetByteValFromInfo(outSix, 60, 1);

    lon = GetDWordValFromInfo(outSix, 61, 28);

    lat = GetDWordValFromInfo(outSix, 89, 27);

    grounddirect = GetWordValFromInfo(outSix, 116, 12);

    headdirect = GetWordValFromInfo(outSix, 128, 9);

    double boatspeed = speed / 10.0;

    double boatlon = lon / 10000.0 / 60.0;

    double boatlat = lat / 10000.0 / 60.0;

    float boatgrounddirect = float(grounddirect / 10.0);

    float boatheaddirect = headdirect;

18号包例子

!AIVDM,1,1,,B,B6:cf;00@B9K@t4CCQbCp0U4SP00,0*77

B6:cf;00@B9K@t4CCQbCp0U4SP00信息内容解析如下

AISTargetInfor aimInfo;

    BYTE repeatnym;//6-7 2

    DWORD mmsi;//8-37  30

    //BYTE  reserve;//38-45  8

    WORD speed;//46-55  10

    BYTE accuracy;//56   1

    DWORD lon;//57-84  28

    DWORD lat;//85-111   27

    WORD  grounddirect;//112-123 12

    WORD  headdirect;//124-132   9

    repeatnym = GetByteValFromInfo(outSix, 6, 2);

    mmsi = GetDWordValFromInfo(outSix, 8, 30);

    /*state = GetByteValFromInfo(outSix, 38, 4);

    turnrate = GetByteValFromInfo(outSix, 42, 8);*/

    speed = GetWordValFromInfo(outSix, 46, 10);

    accuracy = GetByteValFromInfo(outSix, 56,1);

    lon = GetDWordValFromInfo(outSix, 57, 28);

    lat = GetDWordValFromInfo(outSix, 85, 27);

    grounddirect = GetWordValFromInfo(outSix, 112, 12);

    headdirect = GetWordValFromInfo(outSix, 124, 9);

    double boatspeed = speed / 10.0;

    double boatlon = lon / 10000.0 / 60.0;

    double boatlat = lat / 10000.0 / 60.0;

    float boatgrounddirect = float(grounddirect / 10.0);

    float boatheaddirect = headdirect;

19号包例子

!AIVDM,1,1,,A,C6:a=6@00::0Bv4CcsjrrEv0l@:jb:6@:L>@bOQkgb00S2841200,0*6F

C6:a=6@00::0Bv4CcsjrrEv0l@:jb:6@:L>@bOQkgb00S2841200信息解析如下

AISTargetInfor aimInfo;

    AISTargetStaticInformation aimstaticInfo;

    BYTE repeatnym;//6-7 2

    DWORD mmsi;//8-37  30

    //BYTE  reserve;//38-45  8

    WORD speed;//46-55  10

    BYTE accuracy;//56   1

    DWORD lon;//57-84  28

    DWORD lat;//85-111   27

    WORD  grounddirect;//112-123 12

    WORD  headdirect;//124-132   9

    //BYTE  utc;//133-138   6

    //BYTE  reserve2;//139-142  4

    //char  name[15];//143-262 120

    BYTE  boatType;//263-270 8

    BYTE  boatA;//271-279 9

    BYTE  boatB;//280-288 9

    BYTE  boatC;//289-293 6

    BYTE  boatD;//294-299 6

    repeatnym = GetByteValFromInfo(outSix, 6, 2);

    mmsi = GetDWordValFromInfo(outSix, 8, 30);

    /*state = GetByteValFromInfo(outSix, 38, 4);

    turnrate = GetByteValFromInfo(outSix, 42, 8);*/

    speed = GetWordValFromInfo(outSix, 46, 10);

    accuracy = GetByteValFromInfo(outSix, 56, 1);

    lon = GetDWordValFromInfo(outSix, 57, 28);

    lat = GetDWordValFromInfo(outSix, 85, 27);

    grounddirect = GetWordValFromInfo(outSix, 112, 12);

    headdirect = GetWordValFromInfo(outSix, 124, 9);

    CStringEx strBoatName = GetStringValFromInfo(outSix, 143, 120);

    boatType = GetByteValFromInfo(outSix, 263, 8);

    boatA = GetByteValFromInfo(outSix, 271, 9);

    boatB = GetByteValFromInfo(outSix, 280, 9);

    boatC = GetByteValFromInfo(outSix, 289, 6);

    boatD = GetByteValFromInfo(outSix, 294, 6);

    double boatspeed = speed / 10.0;

    double boatlon = lon / 10000.0 / 60.0;

    double boatlat = lat / 10000.0 / 60.0;

    float boatgrounddirect = float(grounddirect / 10.0);

    float boatheaddirect = headdirect;

19号包例子

!AIVDM,1,2,,B,C6:`uH@0029li;4C=Wp03wvof2LV@NbhB2L@bOccT000S0DD1SOP,0*26

24  A号包例子

!AIVDM,1,1,,A,H6:W8f1L4pME`PDpQDw3OS40000,2*25

H6:W8f1L4pME`PDpQDw3OS40000信息解析如下

AISTargetStaticInformation aimInfo;

    BYTE repeatnym;//6-7 2

    DWORD mmsi;//8-37  30

    //BYTE  version;//38-39  2

    //char  name[15];//40-159 120

   

    repeatnym = GetByteValFromInfo(outSix, 6, 2);

    mmsi = GetDWordValFromInfo(outSix, 8, 30);

    CStringEx strBoatName = GetStringValFromInfo(outSix, 40, 120);

    strBoatName.TrimEnd('@');

24 B号包例子

!AIVDM,1,1,,B,H6:W8f56B5AB>2=20000005@844W,0*06

H6:W8f56B5AB>2=20000005@844W,0*06信息解析如下

BYTE repeatnym;//6-7 2

    DWORD mmsi;//8-37  30

    //BYTE  version;//38-39  2

    BYTE  boatType;//40-47 8

    //char  mID[7];//48-89 42

    //char  telnum[7];//90-131 42

    WORD  boatA;//132-140 9

    WORD  boatB;//141-149 9

    BYTE  boatC;//150-155 6

    BYTE  boatD;//156-160 6

    repeatnym = GetByteValFromInfo(outSix, 6, 2);

    mmsi = GetDWordValFromInfo(outSix, 8, 30);

    CStringEx strtelNum = GetStringValFromInfo(outSix, 90, 42);

    /*strtelNum.TrimEnd('@');*/

    boatType = GetByteValFromInfo(outSix, 40, 8);

    boatA = GetWordValFromInfo(outSix, 132, 9);

    boatB = GetWordValFromInfo(outSix, 141, 9);

    boatC = GetByteValFromInfo(outSix, 150, 6);

    boatD = GetByteValFromInfo(outSix, 156, 6);

首先需要将8比特转6比特字节算法请下载https://download.csdn.net/download/u013358093/60254452

之后将字符串转化为6比特字节数组,算法请看

AIS解析中将字符串转化为6比特字节数组c++.txt-互联网文档类资源-CSDN下载

转化为6比特字节数组后,从数组中按照位解析具体内容

AIS解析从6比特字节数组中解析具体信息.txt-互联网文档类资源-CSDN下载

 查看完整说明及函数代码请下载AIS数据协议解析完整版.doc-互联网文档类资源-CSDN下载

表2 数据帧信息报文格式及内容定义

设备名称

信息名称

数据长度

字节序号

信息属性

数据定义

备注

AIS数据帧的编码格式

帧头标志

6字节

第0~5字节

ASCII码

!AIVDM

!:起始标志,十六进制为21H;

AI:AIS标志标识,十六进制为41H,49H;

VDM:数据内容标志,十六进制为56H,44H,4DH;

数据间隔标志

1字节

第6字节

“,”

该字节十六进制为:2CH

需要发送语句的数目

1字节

第7字节

1~9

数据间隔标志

1字节

第8字节

“,”

该字节十六进制为:2CH

当前语句的数目

1字节

第9字节

1~9

数据间隔标志

1字节

第10字节

“,”

该字节十六进制为:2CH

连续信息识别码

1字节

第11字节

0~9或没有值(见注释1)

数据间隔标志

1字节

第12字节

“,”

该字节十六进制为:2CH

AIS通道

1字节

第13字节

ASCII码:A或B或没有值(见注释2)

数据间隔标志

1字节

第14字节

“,”

该字节十六进制为:2CH

发送的信息

N字节

第15~15+N-1 字节

信息1、2、3、4、5、18、19、24.1≤N≤62(见注释3)

数据间隔标志

1字节

第15+N字节

“,”

该字节十六进制为:2CH

填充位的数目

1字节

第16+N字节

0~5

代码和标志

1字节

第17+N字节

‘*’

该字节十六进制为:2AH

代码和

2字节

第18+N~19+N字节

hh

“!”与“*”之间的字符代码异或,不含“!”和“*”

数据终止标志

2字节

第20+N~21+N字节

<CR><LF>

十六进制为:0DH,0AH

注释1:连续信息识别码为一个信息提供0~9的识别码,它是连续分配的,并且为每一个多语句信息增加1。连续信息识别码的数值在9之后重新使用0。对于一个需要多个语句才能表达的信息,信息中的每个语句包含相同的连续信息识别码。连续信息识别码用来识别那些包含了同一个信息的一部分的语句。这将使那些携带全部的包含一个单独信息的语句交叉存取成为可能。对于那些一个语句就可以表达的信息,这个字节应该没有值。

注释2:AIS频道用“A”或“B”指示。这个频道指示与AIS接收信息包时的工作情况有关。当频道指示没有提供时,这个字节将没有值。

注释3:这部分可支持60个有效字符。在某些情况下,这部分最多可支持62个有效字符:

当信息只用一个语句就可以传送,连续信息识别码没有值时,这个压缩部分允许一个额外的有效字符。

当AIS频道没有值时,这个压缩部分允许一个额外的有效字符。

只有在允许连续信息识别码和AIS频道同时没有值的情况下,有效字符数才可能最大达到62个。

注释4:只需解析消息包1、2、3、5、18、19、24即可。

 

附:信息1、信息2、信息3

参数

比特数

说明

消息识别码

6

消息1、2、或3的标识符 

转发指示符

2

用于显示一个消息被转发的次数。0-3默认=0;3=不再转发;

用户识别码

30

MMSI

航行状态

4

0=在航(主机推动);1=锚泊;2=失控;3=操纵受限;4=吃水受限;5=靠泊;6=搁浅;

7=从事捕鱼;8=靠船帆提供动力;9=为将来船舶运输DG,HS,MP或IMO规定的有毒或污染

C类货物的航行状态修正所保留;10=为将来船舶运输DG,HS,MP或IMO规定的有毒或污染

A类货物的航行状态修正所保留;11-14=为将来使用保留;15=未定义,默认

转向率

ROTais

8

±127[-128(十六进制80)表示无法获得,应为默认]。以ROTAIS=4.733 SQRT(ROTINDICATED)度/分钟编码,ROTNIDICATED为转向率(720°/min),由外部传感器显示。

+127=每分钟右转720°以上

-127=每分钟左转720°以上

对地航速

10

对地航速,以1/10kn为单位,(0kn—102.2kn)

1023=不可用,1022=102.2kn或以上

船位精确度

1

1=高(<10m,DGNSS接收机的差分模式);0=低(>10m,GNSS接收机或其他电子定位装置的自主模式);默认为0

经度

28

经度,1/10000分(±180°,东=正,西=负;181°(十六进制6791AC0)=不可用=默认)

纬度

27

纬度,1/10000分(±90°,北=正,南=负;91°(十六进制3412140)=不可用=默认)

对地航向

12

对地航向1/10度(0-3599)。3600(十六进制E10)=不可用=默认;不应采用3601-4095

真航向

9

度数(0-359),(511表示不可用=默认)

时间标记

6

报告产生时的UTC秒(0-59);如不可用则为60,也为默认值;如电子定位系统以估算模式(船位推算法)运行,为62;如定位系统以人工输入方法运行,为61;如定位系统未运行,为63

为地区性应用所保留

4

保留由地方主管机关定义。如未作地区性使用,则应设置为0.地区性使用不应采用0

备用位

1

未用,应设为0

RAIM标志

1

电子定位设备的RAIM(接收机自主完整性监测)标志;0=RAIM未使用=默认;1=RAIM使用

通信状态

19

总的位数

168

附:信息4

参数

比特数

说明

消息识别码

6

消息4=基地台发出的UTC和位置报告 

转发指示符

2

用于显示一个消息被重发的次数。0-3默认=0;3=不再转发;

用户识别码

30

MMSI

UTC年份

14

1-9999;0=无UTC年份=预设

UTC月份

4

1-12;0=无UTC月份=预设,13-15不使用

UTC日期

5

1-31;0=无UTC日期=预设

UTC小时

5

0-23;24=无UTC小时=预设,不用25-31

UTC分钟

6

0-59;60=无UTC分钟=预设,不用61-63

UTC秒

6

0-59;60=无UTC年份=预设,不用61-63

船位精确度

1

1=高(<10m,DGNSS接收机的差分模式);0=低(>10m,GNSS接收机或其他电子定位装置的自主模式);预设=0

经度

28

经度,1/10000分(±180°,东=正,西=负;181°(十六进制6791AC0)=不可用=默认)

纬度

27

纬度,1/10000分(±90°,北=正,南=负;91°(十六进制3412140)=不可用=默认)

电子定位装置的类型

4

差分修正的采用在上文中“船位精确度”一栏中定义;0=未定义(预设);1=GPS;2=GLONASS;3=结合GPS/GLONASS;4=罗兰C;5=Chayka;6=组合导航系统;7=观测;8-15=不使用

备用位

1

未用,应设为0

RAIM标志

1

电子定位设备的RAIM(接收机自主完整性监测)标志;0=RAIM未使用=默认;1=RAIM使用

通信状态

19

SOTDMA通信状态

总的位数

168

附 信息5

参数

比特数

说明

消息识别码

6

消息5的标识符

转发指示符

2

用于显示一个消息被转发的次数。0-3默认=0;3=不再转发;

用户识别码

30

MMSI

AIS版本指示符

2

0=台站遵循AIS版本0;1-3=台站

IMO号码

30

1-999999999;0=不可用=默认

呼号

42

7x6位ASCII字符,“@@@@@@@”=不可用=默认

名称

120

最大20字符的六位ASCII,“@@@@@@@@@@@@@@@@@@@@”=不可用=预设

船舶及载货类型

8

0=不可用或非船舶=预设

1-99

100-199=为地区性使用保留

200-255=为今后使用保留

尺度/位置参照

30

报告位置的参照点,也显示船舶的尺度(m)

电子定位

装置类型

4

0=未定义(预设);1=GPS;2=GLONASS;3=组合GPS/GLONASS;4=罗兰C;5=Chayka;6=综合导航系统;7=观测;8-15=不用

预计到达时间(ETA)

20

预计到达时间;MMDDHHMM UTC

19-16位:月,1-12;0=不可用=默认

15-11位:日期,1-31;0=不可用=默认

10-6位:小时,0-23;24=不可用=默认

5-0位:分钟,1-59;60=不可用=默认

当前最深静态

吃水量

8

单位1/10m,255=吃水25.5m或更深,0=不可用=预设

目的地

120

最多20个字符,采用6位ASCII,“@@@@@@@@@@@@@@@@@@@@”=不可用=预设

数据终端设备

指示符

1

数据终端设备(0=可用,1=不可用=默认)

备用码

1

备用码。未用,应设为零

位数

424

占两个时隙

附消息18

参数

比特数

说明

消息识别码

6

该信息的识别码

转发指示符

2

用于显示一个消息被重发的次数。0-3;预设=0;3=不应再转发;

用户识别码

30

MMSI

为地区或区域应用保留

8

保留由区域或地方主管机关定义。如无地区或区域应用,则应设为0.地区性使用不应采用0

对地航速

10

以1/10kn为单位的对地航速,(0kn—102.2kn)

1023=不可用,1022=102.2kn或以上

船位精确度

1

1=高(<10m,DGNSS接收机的差分模式=;0=低(>10m,GNSS接收机或其他电子定位装置的自主模式);默认为0;

经度

28

经度,1/10000分(±180°,东=正,西=负;181°(十六进制6791AC0)=不可用=默认)

纬度

27

纬度,1/10000分(±90°,北=正,南=负;91°(十六进制3412140)=不可用=默认)

对地航向

12

对地航向1/10度(0-3599)。3600(十六进制E10)=不可用=默认;不应采用3601-4095

真航向

9

度数(0-359),(511表示不可用=默认)

时间标记

6

报告产生时的UTC秒(0-59);如不可用则为60,也为默认值;如电子定位系统以估算模式(船位推算法)运行,为62;如定位系统以人工输入方法运行,为61;如定位系统未运行,为63

为地区性应用所保留

4

保留由地方主管机关定义。如未作地区性使用,则应设置为0.地区性使用不应采用0

备用位

4

未用,应设为0

RAIM标志

1

电子定位设备的RAIM(接收机自主完整性监测)标志;0=RAIM未使用=默认;1=RAIM使用

通信状态选择标志

1

0=SOTDMA通信状态;1=ITDMA通信状态;

通讯状态

19

如通信状态选择标志位0,则为SOTDMA通信状态,或如通信状态选择标志设为1,则为ITDMA通信状态

总的位数

168

占一个时隙

附 消息19

参数

比特数

说明

消息识别码

6

该信息的识别码

转发指示符

2

用于显示一个消息被重的次数。0-3,预设=0;3=不再转发;

用户识别码

30

MMSI

为地区性应用所保留

8

保留由地方主管机关定义。如未作地区性使用,则应设置为0.地区性使用不应采用0

对地航速

10

对地航速,以1/10kn为单位,(0kn—102.2kn)

1023=不可用,1022=102.2kn或以上

船位精确度

1

1=高(<10m,DGNSS接收机的差分模式=;0=低(>10m,GNSS接收机或其他电子定位装置的自主模式);预设为0;

经度

28

经度,1/10000分(±180°,东=正,西=负;181°(十六进制6791AC0)=不可用=默认)

纬度

27

纬度,1/10000分(±90°,北=正,南=负;91°(十六进制3412140)=不可用=默认)

对地航向

12

对地航向1/10度(0-3599)。3600(十六进制E10)=不可用=默认;不应采用3601-4095

真航向

9

度数(0-359),(511表示不可用=默认)

时间标记

6

报告产生时的UTC秒(0-59);如不可用则为60,也为默认值;如电子定位系统以估算模式(船位推算法)运行,为62;如定位系统以人工输入方法运行,为61;如定位系统未运行,为63

为地区性应用所保留

4

保留由地方主管机关定义。如未作地区性使用,则应设置为0.地区性使用不应采用0

名称

120

最大20字符的6为ASCII,“@@@@@@@@@@@@@@@@@@@@”=无=预设

船舶及载货类型

8

0=不可用或非船舶=预设

1-99

100-199=为地区性使用保留

200-255=为今后使用保留

船舶尺度/位置参照

30

报告位置参照点,显示船舶的尺度(m)

电子定位

装置类型

4

0=未定义(预设);1=GPS;2=GLONASS;3=结合GPS/GLONASS;4=罗兰C;5=Chayka;6=组合导航系统;7=观测;8-15=不使用

RAIM标志

1

电子定位设备的RAIM(接收机自主完整性监测)标志;0=RAIM未使用=默认;1=RAIM使用

数据终端

1

数据终端准备(0=可用,1=不可用默认)

备用位

5

未用,应设为0

总的位数

312

占两个时隙

消息24A部分

参数

比特数目

说明

消息ID

6

消息24的标识符;固定为24

转发指示符

2

由转发器使用,表明消息已被转发多少次。 0 = 默认值;3 = 不再转发

用户 ID

30

MMSI编号

部分编号

2

消息部分编号的标识符;对于A部分固定为0

名称

120

MMSI注册船只的名称。最长20字符的6比特ASCII码,@@@@@@@@@@@@@@@@@@@@ = 不可用 =默认值

比特数目

160

占用一个时间周期

消息24B部分

参数

比特数目

说明

消息ID

6

消息24的标识符;固定为24

转发指示符

2

由转发器使用,表明消息已被转发多少次。0 =默认值;3 = 不再转发

用户 ID

30

MMSI编号

部分编号

2

消息部分编号的标识符;对于B部分固定为1

船舶类型和
货物类型

8

0 = 不可用或没有船只 = 默认值
1-99 = 如第3.3.2节的规定
100-199 = 留做区域性用途
200-255 = 留做将来使用

卖主 ID

42

由制造商规定的一个装置的唯一识别码(任选;“@@@@@@@” = 不可用 = 默认值)

呼号

42

MMSI注册船只的呼号。7 × 6 比特ASCII字符,“@@@@@@@” = 不可用 = 默认值

船舶大小/位置参考。或者,对未注册的子船,用母船的 MMSI 。

30

以米为单位的船只的大小和所报告位置的参考点(见图41和第3.3.3节)。或者,对一艘未注册的子船,在该数据信息字段中用与其关联的母船的MMSI

备用

6

比特数目

168

占用一个时间周期

注:

1.如果本协议规定的数据包格式以及对消息包的解析存在异议,以IEC61162标准和ITU-RM.1371协议为准。

2.参考语句:

!AIVDM,1,1,,A,16:l2F@P2:87JfT==0WsTwwp0000,0*5C<CR><LF>        (其它船动态信息)

!AIVDM,2,1,4,A,53duq<01uNW?TPLcJ20nqJq<d4h6222222222216DPJ:B4000?t888888888,0*3A<CR><LF>   

(其它船静态信息)

设备状态正常语句:!AISBC,stateok,K*hh<CR><LF>

注:

 1. hh是校验码,交验内容为!和*之间的内容,此处应为62.

      2.该语句每10秒发送一次,成功接收该语句表明设备工作正常,若21秒内不能接收到该语句,表明设备出现故障。

6比特 ASCII 码

船舶类型

船舶类型说明

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

feibaoqq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值