問題タブ [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 投票する
1 に答える
496 参照

java - Preon がリトル エンディアンをエンコード/デコードできない

バックグラウンド

preonライブラリを使用してバイナリ データをエンコード/デコードしようとしています。私の 1 バイト構造は、ビッグ エンディアンのバイト オーダーを構成すると正常に動作しますが、リトル エンディアンでは失敗します。エンディアンがイントラバイト データに影響を与えているようです。この質問は同じ問題に触れているようですが、リトルエンディアンの側面は解決していません。


問題を示す簡単なケースを添付しました。

PreonLittleEndianNumber.java に欠陥がありますか、それともリトル エンディアン バイト オーダーが指定されている場合に preon が機能しないのですか?


PreonTest.java

PreonBigEndianNumber.java

PreonLittleEndianNumber.java

pom.xml

0 投票する
0 に答える
264 参照

swift - Java の Preon のような Swift でのバイナリ解析

Swift を使用してバイナリ データを解析する必要があります。Swift で Java Preon ライブラリのようなものを実装する方法を誰か教えてもらえますか?

QByte、詳細はこちら....

ラジオをプログラムするアプリケーションを開発しています。プログラムは、さまざまなラジオからデータを読み書きする必要があり、もちろん、ラジオのメーカーごとにデータのエンコード方法が異なります。プログラムは、次のことができる必要があります。 1. 無線で使用されるプロトコルを使用して、シリアル ポート経由でデータを読み取ります。 2. データを解析します。特定のラジオのデータ形式を指定するには、言語が必要です。 3. データをデコードし、解析およびデコードされたデータをオブジェクトに入力します。 4. ユーザーがデータを編集できるようにします。 5. 変更されたデータをエンコードして元に戻します。無線が必要とするデータ形式 6. 変更された構成データを無線に書き戻します。解析コードは項目 2、3、および 5 を実行する必要があります。他の項目の実行方法は知っています。

最初、Preon は項目 2、3、および 5 を実行できると思っていました。Preon がデータをエンコードできないことがわかりました。Preon はサポートされていないため、Preon が使用できるかどうかは疑問です。

メーカーごとにデータ形式が異なるため、データの表現方法はさまざまです。1 つの無線は、単にデータを ASCII 文字としてエンコードします。したがって、144MHz の周波数は ASCII 文字 '144000000' として送信される可能性があります。ブール値は、ASCII 0 または 1 として表現されます。他の無線は、データをビット単位でエンコードします。数値は、16 ビットの符号なし short、32 ビットの符号なし整数、または BCD 数値として表されます。ブール値は 1 ビットを使用します。

解析、デコード、およびエンコードするルーチンをハード コードすることもできますが、これは文書化と変更が難しく、新しい無線を追加するのが難しくなります。

それで、この説明は私がやろうとしていることを理解するのに役立ちますか?

これらのタスクを達成するために Swift で使用できるライブラリを知っている人はいますか?

0 投票する
1 に答える
591 参照

java - Kaitai Struct を使用したオペコードの解析

Kaitai Struct での最初のステップとして、練習として BSON パーサーを実行しようとしています。BSON 要素を解析する .ksy コードは次のようになります。

お気づきかもしれませんが、繰り返しがたくさんあります。if追加の要素タイプを実行するたびに、ブロックを複製する必要があります。さらに悪いことに、基本的にそのようなフィールドごとに 3 回複製する必要があります。

私のターゲット言語は Java です。Kaitai の前は Preon しか試していませんでしたが、次のような条項がありました。

そこで、「プレフィックス」の値に基づいて、これら 2 つの要素を自動的に取得します。カイタイでできるんですか?