问题标签 [ais]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
59 浏览

ais - 如何编辑 MSH、PLC、TEX 和 AIS 文件

可能不是发布此内容的正确站点,但我想知道我是否可以编辑 MSH、TEX、AIS 和 PLC 格式的旧游戏文件。
我在谷歌上搜索了这些格式,但实际上找不到可靠的解决方案。我有这个 :

截屏

它们来自一个名为 IGNITION(又名 Bleifuss fun 或 Fun Tracks)的老游戏,我非常喜欢这款游戏,它成就了我的童年。现在我想要以某种方式编辑文件,使汽车具有更平衡的速度或添加新的汽车、地图等。

0 投票
1 回答
126 浏览

python - 简单的 Python 语句每隔一段时间就会失败

我正在使用 libais,这是一个非常简单的库来处理海洋 AIS 消息。我已经使用了很多,我确定我的代码没问题。使用 REPL:

失败我的意思是我会得到错误:TypeError:函数只需要2个参数(1个给定)

这是一种奇怪的行为,我认为这与我的环境有关。我认为这在我安装(然后删除)Anaconda 之后就开始发生了。我的平台是RHEL7。我已经删除并重新安装了 libais。没有重建这个服务器,我不知道还能做什么。关于如何解决“每隔一段时间有效”错误的任何想法?

0 投票
0 回答
667 浏览

rust - 如何结合 nom 解析器来获得更面向位的数据接口?

我正在使用nom解码Rust 中的AIS消息。

AIS 消息由位向量组成;每条消息中的各个字段都是任意数量的位长,并且它们并不总是在字节边界上对齐。

然后这个位向量被 ASCII 编码,并嵌入到NMEA语句中。

来自http://catb.org/gpsd/AIVDM.html

数据有效载荷是一个 ASCII 编码的位向量。每个字符代表六位数据。要恢复六位,请从 ASCII 字符值中减去 48;如果结果大于 40,则减去 8。根据 [IEC-PAS],此编码的有效 ASCII 字符以“0”(64)开头,以“w”(87)结尾;但是,不使用中间范围“X”(88)到“_”(95)。

例子

  • !AIVDM,1,1,,A,D03Ovk1T1N>5N8ffqMhNfp0,0*68是 NMEA 句子
  • D03Ovk1T1N>5N8ffqMhNfp0是编码的 AIS 数据
  • 010100000000000011011111111110110011000001100100000001011110001110000101011110001000101110101110111001011101110000011110101110111000000000是解码后的 AIS 数据作为位向量

问题

我把这些列在一起是因为我认为它们可能是相关的……

1. 将 ASCII 解码为位向量

我可以手动完成,通过迭代字符,减去适当的值,并通过做大量的位移工作来构建一个字节数组,等等。这很好,但似乎我应该能够在 nom 中执行此操作,并将其与实际的 AIS 位解析器链接起来,从而消除临时字节数组。

2.读取任意位数

例如,可以从 nom 字节数组中读取 3 位。但是,每次调用bits!似乎一次消耗一个完整的字节(如果读入 a u8)。

例如:

将 3 位读入u8. 但如果我运行take_3_bits两次,我将消耗 16 位流。

我可以结合阅读:

调用get_field_1_and_2会给我一个(u8, u8)元组,其中第一项包含前 2 位,第二项包含接下来的 3 位,但 nom 在读取后仍将前进一个完整字节。

我可以peek用来阻止 nom 的读取指针前进,然后手动管理它,但同样,这似乎是不必要的额外工作。

0 投票
1 回答
707 浏览

gpsd - AIS 位置信息完成 UTC 获取

使用 gpsdecode 解码 AIVM 句子后,我有一堆 json 结构,每个结构都包含消息类型的所有数据,例如:

我的问题是位置消息(类型 1、2、3)没有完整的 UTC,只是在 0-60 之间的几秒钟内的引用,这是获取此消息的完整 UTC 的正确方法吗?

0 投票
1 回答
142 浏览

r - Distance Between Points Within Radius at Time Intervals

Data looks like this:

I want to measure how far the IDs are away from each other within a given radius at each given time interval. I am doing this on 1057 ID's across 16213 time intervals so efficiency is important.

It is important to measure distance between points within a radius because if the points are too far away I don't care. I am trying to measure distances between points who are relatively close. For example I don't care how far away ID 1 is from ID 5 but I care about how far ID 4 is from ID 5.

I am using R and the sp package.

0 投票
2 回答
45 浏览

dataset - 塞纳河船舶航行数据集

Marinetraffic.com 提供了大量关于船舶轨迹历史、状态、统计数据的数据。我对收集类似数据以开发 ETA 预测模块很感兴趣。

0 投票
1 回答
68 浏览

java - 与 AIS 转发器的 Android 套接字连接引发 IOException

我正在尝试通过创建与 AIS 转发器的 TCP 连接来通过 WiFi 读取 Android 设备上的 AIS 串行数据。我正在使用 EM-Trak B360 AIS 转发器并使用以下代码在 android 设备上创建一个套接字:

上面的代码通过创建移动热点来实现移动到移动的连接。但是,当连接 AIS 转发器的 Wifi 网络时,它会引发 I/O 异常:软件导致连接中止。

0 投票
1 回答
281 浏览

r - R 二进制/十进制转换混淆 - AIS 数据

我正在使用 AIS(自动识别系统)数据来定位船只。我能够按照本指南成功解码几乎所有信息(与此处完成的在线解码相比)。

但是,我遇到了经度部分的问题。我认为这与十进制值为负有关,但我不知道要在我的代码中更改什么以使其正确。

TLDR 版本:如何从二进制字符串 1101001000001001001110010000 获取十进制值 -48196720(或 48196720)?

完整版

玩具数据:

一旦数据是ASCII,需要转换成二进制

输出:

当我与在线解码器进行比较时,除了经度之外,一切都匹配。在解码器中,结果是 80.3278667(尽管它实际上是 -80.3278667),而我的是 367.0646。试图对此进行逆向工程,我查看了相关的子字符串temp$Binary

所以看起来 RevEng 值与我的二进制字符串的右尾匹配,但我无法弄清楚为什么它与完整的二进制字符串不匹配,或者从这里做什么......

0 投票
1 回答
1975 浏览

gnuradio - 如何使用 GNURadio 传输 AIS 消息

我无法让它工作:https ://github.com/trendmicro/ais

该软件包含一个 GNURadio Companion 流程图,可将 AIS 消息发送到 USRP。我已经安装了包含的 gr-aistx 库,一切似乎都运行顺利。但是,我可能发送的任何消息似乎都没有被 AIS 接收器接收。

我试过以下。请注意,我不是在空中传输/接收。每个测试连接都是从发射器到接收器的硬接线:

  • 使用包含的 GRC 流程图传输 AIS。此流程图似乎在交替通道上反复发送消息。流程图看起来像这样:

    AIS Frame Builder (custom GRC block) -> GMSK Mod -> Multiply Const (0.9) -> UHD: USRP Sink

  • 使用存储库中包含的 phython 脚本(AIVDM_Encoder 和 AiS_TX)进行传输。

  • 使用 USRP (Ettus X300) 和 HackRF 进行传输。为了让 HackRF 使用 GRC 或脚本进行传输,我必须在安装 gr-osmosdr 后将 UHD: USRP Sink 换成 osmocom sink。
  • 我可以使用硬连线到发射无线电的 AIS 接收器。接收者似乎没有收到任何消息。我已经通过从 Shine Micro AIS 测试仪中抽取消息来验证 AIS 接收器工作正常。https://www.shinemicro.com/product/st162-t1/
  • 我也尝试过使用 gr-ais 的 ais_rx 脚本接收。(https://github.com/bistromath/gr-ais)。我安装了软件并通过 HackRF 接收 AIS 消息。在针对trendmicro 软件进行测试时,没有收到任何AIS 消息。我还使用 Shine Micro Test Set 测试了 gr-ais 以确保其正常工作。

我不完全确定问题可能是什么。流程图看起来很简单,但我绝不是数字信号处理方面的专家。

0 投票
1 回答
265 浏览

nmea - 类型 5 AIS AIVDM 消息中的第二部分/句子真的很重要吗?

自 1 年前以来,我有一个 AIS 天线接收 AIVDM 语句。

现在我开始使用https://github.com/bcl/aisparser解码句子,发现类型 5 消息有两个 aivdm 句子并不总是连续出现,通常会丢失(至少在我的情况下)第二个句子,使得解码相当复杂。

我试图交换第二部分的句子,看看会发生什么,以及它是否真的很重要。

例如,如果您在https://www.maritec.co.za/tools/aisvdmvdodecoding/中尝试这些句子:

您会注意到唯一的变化是第二对(“错误”的一对,带有“改编”的第二部分)有一个错误的“目的地”,所以, 如果你不感兴趣,那么完成所有的解码工作真的很重要“目的地”领域?

一切顺利