0

Iridium の短いバースト データ サービスからデータのバースト (300 バイトの範囲) を変換する必要があるプロジェクトに取り組んでいます。これはダイヤルアップ接続を置き換えることを目的としているため、短いバーストからデータのバーストを取得し、それらをダイヤルアップ接続の連続ストリームに変換する必要があります。

私は比較的経験の浅いプログラマーであり、私が知っている唯一の言語は Java です。

どうすればデータを変換できますか? タイプの情報パケットがどのように動作し、Java でどのように操作するかについての背景資料はありますか?

[わかりやすくするために編集]

EDIT2:データを逆に変換する必要はありません(ストリームからチャンクへ)

4

1 に答える 1

2

あなたの質問は、あなたがイリジウム トランシーバーと通信するためのソフトウェアを書いているのか、それともサーバー側にいるのか明確ではありませんが、クライアント側にいると仮定します。彼らの Web サイトから判断すると、サーバー側は標準 IP ですネットワーキング。

プログラムは、RS-232 インターフェイスと AT (モデム) コマンド セットを使用してトランシーバーと通信します。Java を使用するには、ある種のシリアル ライブラリが必要になります。私はそのようなもの、特に通信をIPネットワークにブリッジするモデムのバンクを管理するプログラムで幅広い経験を積んできまし。もう 1 つの実行可能なオプションはRxTx ですが、数年前にこれを使用したときは不安定で、数日おきに JVM がクラッシュしていました。どちらを使用しても、シリアル ライブラリを簡単に切り替えることができるJavaComm APIに制限することができます (また、制限する必要があります) 。

シリアル ポートと通信するようになったら、トランシーバーの操作はモデムの操作と同じである必要があります。詳細については doco を参照する必要があります。モデムに忠実であれば、コマンドとデータの 2 つのモードで動作します。コマンド モードでは、CRLF で終了する AT xxx コマンドを送信しています。データ モードの場合は、バイナリ データを送信しています。

バイナリ データの構造は、ほぼ確実に Iridium システムによって決定されるため、それに準拠する必要があります。彼らのドコをもう一度見てください。

独自のデータ プロトコルを定義する余裕がある場合、またはそのプロトコルの上に自由形式のメッセージがある場合、メッセージを論理的にキーワードと値のペアにして、長期的な柔軟性を確保することをお勧めします。スペースが限られている場合 (Iridium デバイスのサイズ制限はかなり厳しいようです)、キーワードを定義済み (クライアントとサーバーで合意) にして、UTF-8 や ASCII の代わりに 2 進整数を送信できます。ストリング。プロトコルには、特に数値を可能な限り凝縮できるように、非常に基本的な型を含めるか、推測する必要があります。

とにかく、これが何を期待するかについての方向性とアイデアをあなたに与えることを願っています...特にJavaからのシリアルポートの使用に関する特定の質問については、コメントを介してお気軽に質問してください。

于 2011-06-03T05:07:40.110 に答える