问题标签 [preon]

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 回答
58 浏览

java - 为什么 Preon 为内部类的引用提供 java.lang.InstantiationException?

这是 ImageTest 文件的修改版本,它将图像类嵌入到主类中并产生 InstantiationException。我想知道为什么会抛出这个运行时异常,以及是否可以在不将内部类拆分为单独的文件的情况下解决它...

0 投票
1 回答
79 浏览

java - 使用 Java Preon 库对单个类进行多个 @ImportStatic 注释

我想知道是否有办法为 Preon 的单个类使用多个 @ImportStatic 注释?

我试过了:

然而,这些都不是有效的......

我有一个规范,要求我查看外部(父)类的枚举值(classA),如果它与特定值匹配,那么我还必须对其他对象的枚举值之一进行枚举检查( classB) 在继续阅读下一个字段之前。

编辑:这是我第一次尝试解决方案,基本上是复制 ImportStatic 并制作 ImportStatic2 注释......必须看看它的效果如何。

0 投票
1 回答
496 浏览

java - Preon 无法编码/解码 little endian

背景

我正在尝试使用preon库来编码/解码二进制数据。当我为大端配置字节顺序时,我的 1 字节结构工作正常,但为小端配置失败。似乎字节序会影响 preon 中的字节内数据。看来这个问题涉及同样的问题,但没有解决小端方面的问题。


我附上了一个简单的案例来证明这个问题。

PreonLittleEndianNumber.java 中是否存在缺陷,或者在指定小端字节顺序时 preon 根本不起作用?


PreonTest.java

PreonBigEndianNumber.java

PreonLittleEndianNumber.java

pom.xml

0 投票
0 回答
264 浏览

swift - Swift 中的二进制解析就像 Java 中的 Preon

我需要使用 Swift 解析二进制数据。谁能告诉我如何在 Swift 中实现 Java Preon 库之类的东西?

QByte,这里有更多信息......

我正在开发一个应用程序来编程收音机。该程序必须从各种无线电中读取和写入数据,当然,每个无线电制造商都以不同的方式对数据进行编码。该程序必须能够 1. 使用无线电使用的协议通过串行端口读取数据, 2. 解析数据。需要有一种语言来指定特定收音机的数据格式,3. 解码数据并使用解析和解码的数据填充对象,4. 允许用户编辑数据,5. 将修改后的数据编码回对讲机所需的数据格式, 6. 将更改后的配置数据写回对讲机。解析代码需要执行第2、3、5项。其他的我知道怎么做。

起初我以为 Preon 可以执行第 2、3 和 5 项。我刚刚发现 Preon 无法对数据进行编码。由于 Preon 不受支持,我现在怀疑 Preon 是否可用。

由于每个制造商的数据格式不同,因此数据以多种方式表示。一台收音机只是将数据编码为 ASCII 字符。因此 144MHz 的频率可能会以 ASCII 字符“144000000”的形式传输。布尔值将表示为 ASCII 0 或 1。其他无线电以位对数据进行编码。数字表示为 16 位无符号短整数、32 位无符号整数或 BCD 数字。布尔值使用 1 位。

我可以硬编码例程来解析、解码和编码,但是这很难记录和修改,并且很难添加新的收音机。

那么,这个解释能帮助你理解我想要做什么吗?

有谁知道任何可以与 Swift 一起使用来完成这些任务的库?

0 投票
1 回答
591 浏览

java - 使用 Kaitai Struct 解析操作码

在 Kaitai Struct 中迈出第一步,我一直在尝试将 BSON 解析器作为练习。我解析 BSON 元素的 .ksy 代码现在看起来像这样:

您可能已经注意到,有很多重复。if每当一个人想要做额外的元素类型时,就需要去重复块。更糟糕的是,您基本上必须在每个此类字段中复制 3 次内容,即:

我的目标语言是Java。在 Kaitai 之前,我只尝试过 Preon,我们有这样的子句:

在那里,您会根据“前缀”的值自动获取这两个元素。在开泰可以吗?