问题标签 [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.
ais - 如何编辑 MSH、PLC、TEX 和 AIS 文件
可能不是发布此内容的正确站点,但我想知道我是否可以编辑 MSH、TEX、AIS 和 PLC 格式的旧游戏文件。
我在谷歌上搜索了这些格式,但实际上找不到可靠的解决方案。我有这个 :
它们来自一个名为 IGNITION(又名 Bleifuss fun 或 Fun Tracks)的老游戏,我非常喜欢这款游戏,它成就了我的童年。现在我想要以某种方式编辑文件,使汽车具有更平衡的速度或添加新的汽车、地图等。
python - 简单的 Python 语句每隔一段时间就会失败
我正在使用 libais,这是一个非常简单的库来处理海洋 AIS 消息。我已经使用了很多,我确定我的代码没问题。使用 REPL:
失败我的意思是我会得到错误:TypeError:函数只需要2个参数(1个给定)
这是一种奇怪的行为,我认为这与我的环境有关。我认为这在我安装(然后删除)Anaconda 之后就开始发生了。我的平台是RHEL7。我已经删除并重新安装了 libais。没有重建这个服务器,我不知道还能做什么。关于如何解决“每隔一段时间有效”错误的任何想法?
rust - 如何结合 nom 解析器来获得更面向位的数据接口?
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 的读取指针前进,然后手动管理它,但同样,这似乎是不必要的额外工作。
gpsd - AIS 位置信息完成 UTC 获取
使用 gpsdecode 解码 AIVM 句子后,我有一堆 json 结构,每个结构都包含消息类型的所有数据,例如:
我的问题是位置消息(类型 1、2、3)没有完整的 UTC,只是在 0-60 之间的几秒钟内的引用,这是获取此消息的完整 UTC 的正确方法吗?
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.
dataset - 塞纳河船舶航行数据集
Marinetraffic.com 提供了大量关于船舶轨迹历史、状态、统计数据的数据。我对收集类似数据以开发 ETA 预测模块很感兴趣。
java - 与 AIS 转发器的 Android 套接字连接引发 IOException
我正在尝试通过创建与 AIS 转发器的 TCP 连接来通过 WiFi 读取 Android 设备上的 AIS 串行数据。我正在使用 EM-Trak B360 AIS 转发器并使用以下代码在 android 设备上创建一个套接字:
上面的代码通过创建移动热点来实现移动到移动的连接。但是,当连接 AIS 转发器的 Wifi 网络时,它会引发 I/O 异常:软件导致连接中止。
r - R 二进制/十进制转换混淆 - AIS 数据
我正在使用 AIS(自动识别系统)数据来定位船只。我能够按照本指南成功解码几乎所有信息(与此处完成的在线解码相比)。
但是,我遇到了经度部分的问题。我认为这与十进制值为负有关,但我不知道要在我的代码中更改什么以使其正确。
TLDR 版本:如何从二进制字符串 1101001000001001001110010000 获取十进制值 -48196720(或 48196720)?
完整版:
玩具数据:
一旦数据是ASCII,需要转换成二进制
输出:
当我与在线解码器进行比较时,除了经度之外,一切都匹配。在解码器中,结果是 80.3278667(尽管它实际上是 -80.3278667),而我的是 367.0646。试图对此进行逆向工程,我查看了相关的子字符串temp$Binary
:
所以看起来 RevEng 值与我的二进制字符串的右尾匹配,但我无法弄清楚为什么它与完整的二进制字符串不匹配,或者从这里做什么......
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 以确保其正常工作。
我不完全确定问题可能是什么。流程图看起来很简单,但我绝不是数字信号处理方面的专家。
nmea - 类型 5 AIS AIVDM 消息中的第二部分/句子真的很重要吗?
自 1 年前以来,我有一个 AIS 天线接收 AIVDM 语句。
现在我开始使用https://github.com/bcl/aisparser解码句子,发现类型 5 消息有两个 aivdm 句子并不总是连续出现,通常会丢失(至少在我的情况下)第二个句子,使得解码相当复杂。
我试图交换第二部分的句子,看看会发生什么,以及它是否真的很重要。
例如,如果您在https://www.maritec.co.za/tools/aisvdmvdodecoding/中尝试这些句子:
您会注意到唯一的变化是第二对(“错误”的一对,带有“改编”的第二部分)有一个错误的“目的地”,所以, 如果你不感兴趣,那么完成所有的解码工作真的很重要“目的地”领域?
一切顺利