RT FIFO で文字列を使用することはできますか?
使用ソフトウェア:
使用ソフトウェア・バージョン: 7.1
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: N/A
問題: リアルタイムVIで最高優先順位ループと通常優先順位ループ間でデータの受け渡しを行いたいと思います。文字列タイプのシェア変数を作成すると、RT FIFO を有効にさせる部分が灰色表示され設定できません。回避策はありますか?
解決策: 最高優先順位ループを実行させるには、通常優先順位ループとリソースを共有するもの (グローバル変数やLabVIEW キュー)を含むことは推奨いたしません。通常優先順位ループがそれらをアクセスすると最高優先順位ループの実行を妨げるようなことが発生します。RT FIFO VI や、シェア変数のRT FIFO は実行を妨げるようなことを行わずに実行されます。
文字列を最高優先順位ループに入れるのは推奨しません。文字列の長さが変更される動作は新たなメモリを確保することにつながります。これはLabVIEW Real-Time Memory Manager を呼び出すのでループに多少のジッタ与える原因になります。ですので、文字列の長さが変わるものの使用は推奨いたしません。
文字列を使用する必要がある場合、一度バイト配列などに変換する必要があります。
数値>>変換 パレットにある
文字列をバイト配列に変換 などの関数を使用して変換します。これによって文字列は符号なしバイト配列になりまして、RT FIFO にふくめることができます。FIFO から読み取る際、
バイト配列を文字列に変換 で文字列に再度変換します。
関連リンク: Developer Zone Tutorial: LabVIEW Real-Time Memory Management
添付:
報告日時: 01/11/2005
最終更新日: 12/31/2007
ドキュメントID: 3HAG4LUW
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.