ohos_aisparser:基于 OpenHarmony 的船舶自动识别系统数据解析库项目

 aisparser鸿蒙化适配,提供AIS数据解析能力。

分支4Tags2
文件最后提交记录最后更新时间
add aisparser Signed-off-by: li-yaoyao777 <liyaoyao16@h-partners.com> 5 个月前
测试门禁 Signed-off-by: zhong-luping <zhongluping1@huawei.com>9 天前
add aisparser Signed-off-by: li-yaoyao777 <liyaoyao16@h-partners.com> 5 个月前
fix: 修复静态检查文件 Signed-off-by: ywp123123 <yangweiping7@h-partners.com> 30 天前
add aisparser Signed-off-by: li-yaoyao777 <liyaoyao16@h-partners.com> 5 个月前
add aisparser Signed-off-by: li-yaoyao777 <liyaoyao16@h-partners.com> 5 个月前
Revise the test comments Signed-off-by: li-yaoyao777 <liyaoyao16@h-partners.com> 4 个月前
fix: 修复静态检查文件 Signed-off-by: ywp123123 <yangweiping7@h-partners.com> 30 天前
Revise the test comments Signed-off-by: li-yaoyao777 <liyaoyao16@h-partners.com> 4 个月前
Revise the test comments Signed-off-by: li-yaoyao777 <liyaoyao16@h-partners.com> 4 个月前
add git6bit interface and testcase Signed-off-by: li-yaoyao777 <liyaoyao16@h-partners.com> 4 个月前
fix: 修复静态检查文件 Signed-off-by: ywp123123 <yangweiping7@h-partners.com> 30 天前
add aisparser Signed-off-by: li-yaoyao777 <liyaoyao16@h-partners.com> 5 个月前
add aisparser Signed-off-by: li-yaoyao777 <liyaoyao16@h-partners.com> 5 个月前
add aisparser Signed-off-by: li-yaoyao777 <liyaoyao16@h-partners.com> 5 个月前
add aisparser Signed-off-by: li-yaoyao777 <liyaoyao16@h-partners.com> 5 个月前

aisparser

介绍

aisparser是OpenHarmony系统下设计的船舶自动识别系统(AIS)数据解析三方库。提供完整的AIS消息解析能力,通过无线电信号传输船舶的位置、速度、航向等信息。

安装教程

ohpm install @ohos/aisparser

OpenHarmony ohpm环境配置等更多内容,请参考 如何安装OpenHarmony ohpm包

导入模块

import { AisParser } from '@ohos/aisparser';

示例:

  let result = Aisparser.convSign(0x200, 0x3FF);
  console.info('result = ' + result) 
  // 输出结果:result = -1

示例:

  let result = Aisparser.ais2Ascii(0x10);
  console.info('result = ' + str) 
  // 输出结果:str = p

示例:

  import { SixbitResult, TimeResult } from '@ohos/aisparser';

  let result = Aisparser.ais2Ascii(0x10);
  let sixbitResult = new SixbitResult()
  sixbitResult.bitsData = '0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF';
  sixbitResult.pointer = 0;
  sixbitResult.remainder = 0;
  sixbitResult.remainderBits = 0;
  let datetime = new TimeResult()
  let result = Aisparser.getTimetag(sixbitResult, datetime);
  console.info('result = ' + result) 
  // 输出结果:result = 0
  console.info('datetime.hours = ' + datetime.hours) 
  // 输出结果:datetime.hours = 4
  console.info('datetime.day = ' + datetime.day) 
  // 输出结果:datetime.day = 0
  console.info('datetime.month = ' + datetime.month) 
  // 输出结果:datetime.month = 0
  console.info('datetime.minutes = ' + datetime.minutes) 
  // 输出结果:datetime.minutes = 8

示例:

  import { SixbitResult, TimeResult } from '@ohos/aisparser';

  let aisState = new AisState();
  let aisMsg24 = new Aismsg24();
  let testStr = '!AIVDM,1,1,,A,H69NbPU@0000000000000050@450,0*7C';
  let ret = Aisparser.assembleVdm(aisState, testStr);
  console.info('ret = ' + ret) 
  // 输出结果:ret = 0
  let sixbitState = aisState.sixState;
  let messageId = Aisparser.get6Bit(sixbitState, 6);
  console.info('messageId = ' + messageId) 
  // 输出结果:result = 24

  aisState.sixState = sixbitState;
  console.info('aisState.msgid = ' + aisState.msgid) 
  // 输出结果:aisState.msgid = 0
  console.info('aisState.sequence = ' + aisState.sequence) 
  // 输出结果:aisState.sequence = 0
  console.info('aisState.num = ' + aisState.num) 
  // 输出结果:aisState.num = 0
  console.info('aisState.channel = ' + aisState.channel) 
  // 输出结果:aisState.channel = 65
  let sixState = aisState.sixState;
  console.info('sixState.bitsData = ' + sixState.bitsData) 
  // 输出结果:sixState.bitsData = 'H69NbPU@0000000000000050@450'
  console.info('sixState.pointer = ' + sixState.pointer) 
  // 输出结果:sixState.pointer = 2
  console.info('sixState.remainder = ' + sixState.remainder) 
  // 输出结果:sixState.remainder = 6
  console.info('sixState.remainderBits = ' + sixState.remainderBits) 
  // 输出结果:sixState.remainderBits = 6

  let parseResult = Aisparser.parseAis24(aisState, aisMsg24);
  console.info('parseResult' + parseResult) 
  // 输出结果:parseResult = 0
  console.info('aisMsg24.partNumber = ' + aisMsg24.partNumber) 
  // 输出结果:aisMsg24.partNumber = 1
  console.info('aisMsg24.name = ' + aisMsg24.name) 
  // 输出结果:aisMsg24.name = ''
  console.info('aisMsg24.shipType = ' + aisMsg24.shipType) 
  // 输出结果:aisMsg24.shipType = 80
  console.info('aisMsg24.vendorId = ' + aisMsg24.vendorId) 
  // 输出结果:aisMsg24.vendorId = '@@@@@@@'
  console.info('aisMsg24.callsign = ' + aisMsg24.callsign) 
  // 输出结果:aisMsg24.callsign = '@@@@@@@'
  console.info('aisMsg24.dimBow = ' + aisMsg24.dimBow) 
  // 输出结果:aisMsg24.dimBow = 40
  console.info('aisMsg24.dimStern = ' + aisMsg24.dimStern) 
  // 输出结果:aisMsg24.dimStern = 16
  console.info('aisMsg24.dimPort = ' + aisMsg24.dimPort) 
  // 输出结果:aisMsg24.dimPort = 4
  console.info('aisMsg24.dimStarboard = ' + aisMsg24.dimStarboard) 
  // 输出结果:aisMsg24.dimStarboard = 5
  console.info('aisMsg24.spare = ' + aisMsg24.spare) 
  // 输出结果:aisMsg24.spare = 0
  console.info('aisMsg24.flags = ' + aisMsg24.flags) 
  // 输出结果:aisMsg24.flags = 2
  console.info('aisMsg24.repeat = ' + aisMsg24.repeat) 
  // 输出结果:aisMsg24.repeat = 0
  console.info('aisMsg24.userid = ' + aisMsg24.userid) 
  // 输出结果:aisMsg24.userid = 412592770

接口说明

PositionDdd

位置信息。

属性

名称 类型 只读 说明
latitude number 纬度。
longitude number 经度。

PositionDmm

位置信息。

属性

名称 类型 只读 说明
latDegrees number 纬度的度部分。
latMinutes number 纬度的分部分(带小数)。
lonDegrees number 经度的度部分。
lonMinutes number 经度的分部分(带小数)。

ConvertedPosition

转换位置信息。

属性

名称 类型 只读 说明
latitude number 纬度。
longitude number 经度。

TimeResult

预计到达时间、航路和IMO UTC时间标签。

属性

名称 类型 必填 说明
month number 月份。
day number 日期。
hours number UTC小时。
minutes number UTC分钟。

constructor

constructor()

TimeResult的构造函数。

SixbitResult

用于处理AIS消息中的6位ASCII数据。

属性

名称 类型 必填 说明
bitsData string 原始6位ASCII数据字符串。
pointer number 指向bits中当前字符的指针。
remainder number 剩余位。
remainderBits number 剩余位的数量。

constructor

constructor()

SixbitResult的构造函数。

AisState

AisState 消息解析器状态。

属性

名称 类型 必填 说明
msgid number 消息标识符。
sequence number VDM消息序列号。
total number 消息的总部分数。
num number 最后存储的部分编号。
channel number AIS信道字符。
sixState SixbitResult sixbit解析器状态。

constructor

constructor()

AisState的构造函数。

Sotdma

用于表示通信状态信息。

属性

名称 类型 必填 说明
syncState number 同步状态。
slotTimeout number 时隙超时。
subMessage number 子消息。

constructor

constructor()

Sotdma的构造函数。

Itdma

用于表示通信状态信息。

属性

名称 类型 必填 说明
syncState number 同步状态。
slotInc number 时隙增量。
numSlots number 时隙数量。
keepFlag number 保持标志。

constructor

constructor()

Itdma的构造函数。

Aismsg1

SOTDMA 位置报告。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
navStatus number 航行状态。
rot number 转弯速率。
sog number 对地速度。
posAcc number 位置精度标志。
longitude number 经度。
latitude number 纬度。
cog number 对地航向。
aismsgTemp number 真实航向。
utcSec number UTC秒数。
regional number 区域保留位。
spare number 备用位。
raim number RAIM 标志。
syncState number SOTDMA 同步状态。
slotTimeout number SOTDMA 时隙超时。
subMessage number SOTDMA 子消息。

constructor

constructor()

Aismsg1的构造函数。

Aismsg2

SOTDMA 位置报告。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
navStatus number 航行状态。
rot number 转弯速率。
sog number 对地速度。
posAcc number 位置精度标志。
longitude number 经度。
latitude number 纬度。
cog number 对地航向。
aismsgTemp number 真实航向。
utcSec number UTC秒数。
regional number 区域保留位。
spare number 备用位。
raim number RAIM 标志。
syncState number SOTDMA 同步状态。
slotTimeout number SOTDMA 时隙超时。
subMessage number SOTDMA 子消息。

constructor

constructor()

Aismsg2的构造函数。

Aismsg3

ITDMA 岗位报告。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
navStatus number 航行状态。
rot number 转弯速率。
sog number 对地速度。
posAcc number 位置精度标志。
longitude number 经度。
latitude number 纬度。
cog number 对地航向。
aismsgTemp number 真实航向。
utcSec number UTC秒数。
regional number 区域保留位。
spare number 备用位。
raim number RAIM 标志。
syncState number ITDMA 同步状态。
slotIncrement number ITDMA 时隙增量。
numSlots number ITDMA 时隙数量。
keep number ITDMA 保持标志。

constructor

constructor()

Aismsg3的构造函数。

Aismsg4

基站报告。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
utcYear number UTC 年。
utcMonth number UTC 月。
utcDay number UTC 日。
utcHour number UTC 时。
utcMinute number UTC 分。
utcSecond number UTC 秒。
posAcc number 位置精度标志。
longitude number 经度。
latitude number 纬度。
cog number 对地航向。
aismsgTemp number 真实航向。
utcSec number UTC秒数。
regional number 区域保留位。
spare number 备用位。
raim number RAIM 标志。
syncState number SOTDMA 同步状态。
slotTimeout number SOTDMA 时隙超时。
subMessage number SOTDMA 子消息。

constructor

constructor()

Aismsg4的构造函数。

Aismsg5

船舶静态数据及航行相关数据。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
version number AIS 版本。
imo bigint 国际海事组织编号。
callsign string 呼号。
name string 船名。
shipType number 船舶类型及货物种类。
dimBow number GPS 接收器。船头方向的距离。
dimStern number GPS 接收器。船尾方向的距离。
dimPort number GPS 接收器。左舷方向的距离。
dimStarboard number GPS接收器。与右舷的距离。
posType number 定位设备的类型。
eta bigint 预计到达时间:月 日 小时 分钟。
draught number 最大当前静态吃水。
dest string 船舶目的地。
dte number DTE标志。
spare number 备用位。

constructor

constructor()

Aismsg5的构造函数。

Aismsg6

已处理的二进制消息。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
sequence number 序列号。
destination bigint 目的船舶识别号码。
retransmit string 重新传输。
spare string 备用位。
appid number 应用程序 ID。
data number 数据包内容。

constructor

constructor()

Aismsg6的构造函数。

Aismsg7

船舶静态数据及航行相关数据。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
spare number 备用位。
destidOne bigint 第一个目标MMSI。
sequenceOne number 第一个序列号。
destidTwo bigint 第二个目标MMSI。
sequenceTwo number 第二个序列号。
destidThree bigint 第三个目标MMSI。
sequenceThree number 第三个序列号。
destidFour bigint 第四个目标MMSI。
sequenceFour number 第四个序列号。
numAcks number 应答数量。

constructor

constructor()

Aismsg7的构造函数。

Aismsg8

二进制广播消息,用于传输自定义应用数据。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
spare number 备用位。
appid bigint 应用ID。
data SixbitResult 数据包内容。

constructor

constructor()

Aismsg8的构造函数。

Aismsg9

标准搜救飞机位置报告。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
altitude number 海拔高度。
sog number 对地速度。
posAcc number 位置精度标志。
longitude number 经度。
latitude number 纬度。
cog number 对地航向。
utcSec number UTC秒。
regional number 区域保留位
dte number DTE标志。
spare number 备用位。
assigned number 分配模式标志。
raim number RAIM标志。
commState number 通信状态标志。
sotdma Sotdma SOTDMA通信状态。
itdma Itdma ITDMA通信状态。

constructor

constructor()

Aismsg9的构造函数。

Aismsg10

UTC和日期询问消息,用于请求特定船只发送UTC和日期信息。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
spareOne number 备用位1。
destination bigint 目标MMSI。
spareTwo number 备用位2。

constructor

constructor()

Aismsg10的构造函数。

Aismsg11

UTC和日期响应消息,提供精确的UTC时间和位置信息。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
utcYear number UTC 年。
utcMonth number UTC 月。
utcDay number UTC 日。
utcHour number UTC 时。
utcMinute number UTC 分。
utcSecond number UTC 秒。
posAcc number 位置精度标志。
longitude number 经度。
latitude number 纬度。
posType number 定位设备类型。
spare number 备用位。
raim number RAIM 标志。
syncState number SOTDMA 同步状态。
slotTimeout number SOTDMA 时隙超时。
subMessage number SOTDMA 子消息。

constructor

constructor()

Aismsg11的构造函数。

Aismsg12

寻址安全相关消息,用于在两个特定船舶之间交换安全相关信息。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
sequence number 序列号。
destination bigint 目标MMSI。
retransmit number 重传标志。
spare bigint 备用位。
message string 消息内容。

constructor

constructor()

Aismsg12的构造函数。

Aismsg13

安全相关确认消息。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
spare number 备用位。
destidOne bigint 第一个目标MMSI。
sequenceOne number 第一个序列号。
destidTwo bigint 第二个目标MMSI。
sequenceTwo number 第二个序列号。
destidThree bigint 第三个目标MMSI。
sequenceThree number 第三个序列号。
destidFour bigint 第四个目标MMSI。
sequenceFour number 第四个序列号。
numAcks number 应答数量。

constructor

constructor()

Aismsg13的构造函数。

Aismsg14

安全相关广播消息。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
spare number 备用位。
message string 消息内容。

constructor

constructor()

Aismsg14的构造函数。

Aismsg15

询问请求消息。该消息用于船舶向其它船舶发送询问请求,请求对方发送特定的AIS消息。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
spareOne number 备用位1。
destidOne bigint 第一个目标MMSI。
msgidOneOne number 第一个目标的第一条消息ID。
offsetOneOne bigint 第一个目标第一条消息的时隙偏移。
spareTwo number 备用位2。
msgidOneTwo number 第一个目标的第二条消息ID。
offsetOneTwo number 第一个目标第二条消息的时隙偏移。
spareThree number 备用位3。
destidTwo bigint 第二个目标MMSI。
msgidTwoOne number 第二个目标的第一条消息ID。
offsetTwoOne number 第二个目标第一条消息的时隙偏移。
spareFour number 备用位4。
numReqs number 询问请求的数量。

constructor

constructor()

Aismsg15的构造函数。

Aismsg16

基站分配给移动站的指定模式命令,用于分配时隙和增量。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
spareOne number 备用位1。
destidA bigint 目标A的MMSI标识。
offsetA number 目标A的时隙增量。
incrementA number 目标B的MMSI标识。
destidB bigint 目标B的MMSI标识。
offsetB number 目标B的时隙偏移量。
incrementB number 目标B的时隙增量。
spareTwo number 备用位2。
numCmds number 接收到的命令数量。

constructor

constructor()

Aismsg16的构造函数。

Aismsg17

GNSS二进制广播消息,用于传输差分GNSS修正数据。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
spareOne number 备用位1。
longitude bigint 经度。
latitude bigint 纬度。
spareTwo number 备用位2。
msgType number 消息类型。
stationId number 基站ID。
zCount number 计数。
seqNum number 序列号。
numWords number 数据字数量。
health Sotdma 参考站健康状态。
data SixbitResult 数据包内容。

constructor

constructor()

Aismsg17的构造函数。

Aismsg18

B类船舶的标准载波感知位置报告,根据IEC 62287标准。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
regionalOne number 区域保留位1。
sog number 对地速度。
posAcc number 位置精度标志。
longitude bigint 经度。
latitude bigint 纬度。
cog number 对地航向。
aismsgTemp number 真实航向。
utcSec number UTC秒。
regionalTwo number 区域保留位2
unitFlag number B类CS标志。
displayFlag number 集成消息14显示标志。
dscFlag number DSC能力标志。
bandFlag number 海事频段操作标志。
msgTwoTwoFlag number 消息22频率管理标志。
modeFlag number 自主模式标志。
raim number RAIM标志。
commState number 通信状态标志。
sotdma Sotdma SOTDMA通信状态。
itdma Itdma ITDMA通信状态。

constructor

constructor()

Aismsg18的构造函数。

Aismsg19

B类船舶的扩展设备位置报告,包含更多船舶信息。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
regionalOne number 区域保留位1。
sog number 对地速度。
posAcc number 位置精度标志。
longitude bigint 经度。
latitude bigint 纬度。
cog number 对地航向。
aismsgTemp number 真实航向。
utcSec number UTC秒。
regionalTwo number 区域保留位2
name string 船舶名称。
shipType number 船舶和货物类型。
dimBow number GPS天线距船艏距离。
dimStern number GPS天线距船艉距离。
dimPort number GPS天线距左舷距离。
dimStarboard number GPS天线距右舷距离。
posType number 定位设备类型。
raim number RAIM标志。
dte number DTE标志。
spare number 备用位。

constructor

constructor()

Aismsg19的构造函数。

Aismsg20

数据链路管理消息,用于管理数据链路时隙分配。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
spareOne number 备用位1。
offsetOne number 时隙偏移1。
slotsOne number 时隙数量1。
timeoutOne number 超时时间1。
incrementOne number 时隙增量1。
offsetTwo number 时隙偏移2。
slotsTwo number 时隙数量2。
timeoutTwo number 超时时间2。
incrementTwo number 时隙增量2。
offsetThree number 时隙偏移3。
slotsThree number 时隙数量3。
timeoutThre number 超时时间3。
incrementThree number 时隙增量3。
offsetFour number 时隙偏移4。
slotsFour number 时隙数量4。
timeoutFou number 超时时间4。
incrementFour number 时隙增量4。
spareTwo number 备用位2。
numCmds number 接收到的命令数量。

constructor

constructor()

Aismsg20的构造函数。

Aismsg21

助航设备报告,包含助航设备的详细信息。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
atonType number 助航设备类型。
name string 助航设备名称,ASCII编码。
posAcc number 位置精度标志。
longitude bigint 经度。
latitude bigint 纬度。
dimBow number GPS天线距船艏距离,单位米。
dimStern number GPS天线距船艉距离,单位米。
dimPort number GPS天线距左舷距离,单位米。
dimStarboard number GPS天线距右舷距离,单位米。
posType number 定位设备类型。
utcSec number UTC秒。
offPosition number 离位标志。
regional number 区域保留位
raim number RAIM标志。
aismsgTemp number 虚拟/伪助航设备标志。
assigned number 分配模式标志。
spareOne number 备用位1。
nameExt string 扩展名称,ASCII编码。
spareTwo number 备用位2。

constructor

constructor()

Aismsg21的构造函数。

Aismsg22

信道管理消息,用于管理AIS信道分配。 如果消息针对地理区域,则通过NE和SW位置定义其两个角落; 如果是分配消息,目标MMSI将存储在addressedOne和addressedTwo中。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
spareOne number 备用位1。
channelA number M.1084信道A频率。
channelB number M.1084信道B频率。
txrxMode number 收发模式。
power number 功率级别。
neLongitude number 东北角经度。
neLatitude number 东北角纬度。
addressedOne bigint 目标MMSI。
swLongitude number 西南角经度。
swLatitude number 西南角纬度。
addressedTwo bigint 目标MMSI。
addressed number 寻址标志。
bwA number 信道A带宽。
bwB number 信道B带宽。
tzSize number 过渡区大小。
spareTwo bigint 备用位2。

constructor

constructor()

Aismsg22的构造函数。

Aismsg23

分配命令,用于分配一个地理区域。该地理区域由两个角点定义,分别存储在NE和SW位置。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
spareOne number 备用位1。
neLongitude number 东北角经度。
neLatitude number 东北角纬度。
swLongitude number 西南角经度。
swLatitude number 西南角纬度。
stationType number 基站类型。
shipType number 船舶和货物类型。
spareTwo bigint 备用位2。
txrxMode number 收发模式。
reportInterval number 报告间隔。
quietTime number 静默时间。
spareThree number 备用位3。

constructor

constructor()

Aismsg23的构造函数。

Aismsg24

B类船舶静态数据报告,分为24A和24B两部分。 24A部分包含船舶名称;24B部分包含船舶尺寸、呼号等信息。

属性

名称 类型 必填 说明
msgid number 消息标识符。
repeat number 重发指示器。
userid bigint 用户ID/船舶识别码。
partNumber number 部分编号。
name string 船舶名称。
shipType number 船舶和货物类型。
vendorId string 供应商ID。
callsign string 呼号。
dimBow number GPS天线距船艏距离。
dimStern number GPS天线距船艉距离。
dimPort number GPS天线距左舷距离。
dimStarboard number GPS天线距右舷距离。
spare number 备用位。
flags number A/B部分接收标志位。

constructor

constructor()

Aismsg24的构造函数。

AisParser.getTimetag

getTimetag: (state: object, datetime: object): number;

获取时间戳。

参数:

参数名 类型 必填 说明
state object SixbitResult消息解析器对象。
datetime object TimeResult对象。

返回值:

类型 说明
number 解析获取时间戳的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果解析的位少于 20 位,则返回2。

AisParser.convSign

convSign: (signBit: number, value: number): number;

转换标志信息。

参数:

参数名 类型 必填 说明
signBit number 符号位。
value number 值指针指向值。

返回值:

类型 说明
number 解析转换标志信息的值。

AisParser.ais2Ascii

ais2Ascii: (value: number): string;

转换位置信息。

参数:

参数名 类型 必填 说明
value number 需要转换的6位数值。

返回值:

类型 说明
string 转换位置信息的值。

AisParser.pos2Ddd

pos2Ddd: (latitude: number, longitude: number): PositionDdd

将 1/10000 分钟的位置转换为有符号的十进制(DD.DDDDDD)坐标格式。

参数:

参数名 类型 必填 说明
latitude number 以1/10000 的格式标注纬度值。
longitude number 以 1/10000 的格式标注经度。

返回值:

类型 说明
PositionDdd 返回一个对象,latitude表示转换后的纬度值,longitude表示转换后的经度值。

AisParser.get6Bit

export const get6Bit: (state: object, numbits: number): bigint

从6位ASCII码流中提取指定长度的位数据。

参数:

参数名 类型 必填 说明
state object 指向SixbitResult的对象。
numbits number 需要提取的位数(取值范围0-32)。

返回值:

类型 说明
bigint 返回一个对象,根据调用方指定的位数要求,从原始6位ASCII码流中按需提取位数据。

AisParser.pos2Dmm

pos2Dmm: (latitude: number, longitude: number): PositionDmm;

将 1/10000 分钟的位置转换为有符号的十进制(DD.MM.MMMM)度分格式。

参数:

参数名 类型 必填 说明
latitude number 以1/10000 的格式标注纬度值。
longitude number 以 1/10000 的格式标注经度。

返回值:

类型 说明
PositionDmm 返回一个对象,latDegrees表示转换后维度的度部分,latMinutes表示转换后纬度的分部分(带小数),lonDegrees表示转换后经度的度部分,lonMinutes表示转换后经度的分部分(带小数)。

AisParser.convPos

convPos: (latitude: number, longitude: number): ConvertedPosition;

将未加符号的 1/10000 分钟位置转换为有符号形式。

参数:

参数名 类型 必填 说明
latitude number 指向无符号纬度的指针。
longitude number 指向无符号经度的指针。

返回值:

类型 说明
ConvertedPosition 返回一个对象,latitude表示转换后有符号的维度值,longitude表示转换后有符号的经度值。

AisParser.assembleVdm

assembleVdm: (state: object, str: string): number;

对 AIVDM/AIVDO 语句中的6位数据进行重新组装和提取。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
str string NMEA字符串。

返回值:

类型 说明
number 解析NMEA字符串的状态。
0 完整数据包,解析成功。
1 数据包不完整。
2 NMEA 0183校验和失败。
3 不是AIS消息。
4 nmea_next_field 发生错误。
5 乱序数据包。

AisParser.parseAis1

parseAis1: (state: object, result: object): number;

将ais消息解析为Aismsg1结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg1对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis2

parseAis2: (state: object, result: object): number;

将ais消息解析为Aismsg2结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg2对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis3

parseAis3: (state: object, result: object): number;

将ais消息解析为Aismsg3结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg3对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis4

parseAis4: (state: object, result: object): number;

将ais消息解析为Aismsg4结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg4对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis5

parseAis5: (state: object, result: object): number;

将ais消息解析为Aismsg5结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg5对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis6

parseAis6: (state: object, result: object): number;

将ais消息解析为Aismsg6结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg6对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis7

parseAis7: (state: object, result: object): number;

将ais消息解析为Aismsg7结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg7对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis8

parseAis8: (state: object, result: object): number;

将ais消息解析为Aismsg8结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg8对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis9

parseAis9: (state: object, result: object): number;

将ais消息解析为Aismsg9结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg9对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis10

parseAis10: (state: object, result: object): number;

将ais消息解析为Aismsg10结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg10对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis11

parseAis11: (state: object, result: object): number;

将ais消息解析为Aismsg11结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg11对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis12

parseAis12: (state: object, result: object): number;

将ais消息解析为Aismsg12结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg12对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis13

parseAis13: (state: object, result: object): number;

将ais消息解析为Aismsg13结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg13对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis14

parseAis14: (state: object, result: object): number;

将ais消息解析为Aismsg14结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg14对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis15

parseAis15: (state: object, result: object): number;

将ais消息解析为Aismsg15结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg15对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis16

parseAis16: (state: object, result: object): number;

将ais消息解析为Aismsg16结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg16对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis17

parseAis17: (state: object, result: object): number;

将ais消息解析为Aismsg17结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg17对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis18

parseAis18: (state: object, result: object): number;

将ais消息解析为Aismsg18结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg17对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis19

parseAis19: (state: object, result: object): number;

将ais消息解析为Aismsg19结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg19对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis20

parseAis20: (state: object, result: object): number;

将ais消息解析为Aismsg20结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg20对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis21

parseAis21: (state: object, result: object): number;

将ais消息解析为Aismsg21结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg21对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis22

parseAis22: (state: object, result: object): number;

将ais消息解析为Aismsg22结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg22对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis23

parseAis23: (state: object, result: object): number;

将ais消息解析为Aismsg23结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg23对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

AisParser.parseAis24

parseAis24: (state: object, result: object): number;

将ais消息解析为Aismsg24结构。

参数:

参数名 类型 必填 说明
state object AisState消息解析器对象。
result object Aismsg24对象。

返回值:

类型 说明
number 解析ais消息时的状态。
0 如果没有错误,则返回0。
1 如果出现错误,则返回1。
2 如果存在数据包长度错误,则返回2。

约束与限制

在下述版本验证通过:

  • DevEco Studio: NEXT Release(6.0.1.251), SDK: API12 (5.0.0.71)
  • DevEco Studio: NEXT Developer Beta(6.0.1), SDK: API21 (5.0.0.25)
|---- ohos_aisparser
|     |---- entry  # 示例代码文件夹
|     |---- aisparser  # 库文件夹
|         |---- src
|             |---- main
|                  |---- cpp
|                        |---- types\liblibrary
|                              |---- index.d.ts   # 对外接口
|         |---- index.ets
|     |---- README.md  # 安装使用方法
|     |---- README_zh.md  # 安装使用方法                    

贡献代码

使用过程中发现任何问题都可以提交 Issue,当然,也非常欢迎提交 PR

开源协议

本项目遵循 aisparser Runtimes License

项目介绍

aisparser鸿蒙化适配,提供AIS数据解析能力。

定制我的领域

下载使用量

0

项目总下载次数(含Clone、Pull、 zip 包及 release 下载),每日凌晨更新

语言类型

C46.35%
C++40.7%
ArkTS12.26%
CMake0.37%
Makefile0.19%