0

float データを読み込むように DataReader ブロックをどのように構成する必要がありますか? ファイルへの書き込みに成功するために、sig_source と DataWriter ブロックを使用しました。DataReader ブロックの説明が見つからないため、DataWriter ブロックによって生成されたファイルを読み取ることができると期待しています。ただし、ファイルを読み込もうとすると、生成されたデータが表示されません。これが私が従った手順です:

  1. DataWriter を起動
  2. sig_source を開始
  3. ファイルへの出力を確認します (結果 = 成功)
  4. すべてオフにする
  5. DataReader を起動します (DataWriter によって作成されたファイルを指します)。
  6. モニター出力ポート (結果 = データなし)

ソースからデータが流れる前にRedHawkがシンクを必要とする場合に備えて、DataReaderの出力にブロックをアタッチすることも試みました。これもうまくいきませんでした。

編集: DataReader ループ パラメーターが実際に問題であるかどうかを判断するために、追加の実験を行いました。この実験では、DataReader (元のファイルを指す) を DataWriter (新しいファイルを指す) に接続しました。両方のブロックのコンポーネント プロパティは、Youssef の投稿によるものです。これにより、ファイルのコピーが生成されることを期待していました。結果は奇妙でした。新しいファイルはわずか 65536 バイトでしたが、元のファイルははるかに大きくなりました。これらの 65536 バイトで一致するように見えます。さらに、新しいファイルを削除してブロックを再実行しようとすると、出力がありません (つまり、ファイルは再度作成されません)。新しいファイルをもう一度生成するには、DataReader ブロックを黒板から削除して再読み込みする必要があります。

4

2 に答える 2

0

DataReader は、最初の pushPacket の後に EOF を検出したと考えているため、64K のデータのみが送信されています。これは、DataReader のバグのようです。

64K を超えるファイルを送信するには、コードを簡単に変更して動作させることができます。DataReader.py ファイル ($SDROOT/dom/components/DataReader/python/DataReader.py)。見つけます (44 行目?):

self.EOF = True

DataReader_i.initialize() メソッドで。これは次のようになります。

self.EOF = False
于 2013-11-22T13:58:12.087 に答える