.
暗码数据格式
!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 | 占两个时隙 |
消息24的A部分
参数 | 比特数目 | 说明 |
消息ID | 6 | 消息24的标识符;固定为24 |
转发指示符 | 2 | 由转发器使用,表明消息已被转发多少次。 0 = 默认值;3 = 不再转发 |
用户 ID | 30 | MMSI编号 |
部分编号 | 2 | 消息部分编号的标识符;对于A部分固定为0 |
名称 | 120 | MMSI注册船只的名称。最长20字符的6比特ASCII码,@@@@@@@@@@@@@@@@@@@@ = 不可用 =默认值 |
比特数目 | 160 | 占用一个时间周期 |
消息24的B部分
参数 | 比特数目 | 说明 |
消息ID | 6 | 消息24的标识符;固定为24 |
转发指示符 | 2 | 由转发器使用,表明消息已被转发多少次。0 =默认值;3 = 不再转发 |
用户 ID | 30 | MMSI编号 |
部分编号 | 2 | 消息部分编号的标识符;对于B部分固定为1 |
船舶类型和 | 8 | 0 = 不可用或没有船只 = 默认值 |
卖主 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 码
船舶类型
船舶类型说明