みちびきのL6を受信し高精度な測位(CLAS)を行う(1回目)

LabVIEWのWindows版とLinux版の互換性は?

こんにちはドルフィンシステム福島です。

毎日、暑い日が続いております。
皆様、いかがお過ごしでしょうか。

今年から私は、日傘を使用することにしました。
晴雨兼用の折りたたみ傘で127gと軽量なので常にカバンに入れておいても気にならないので導入しました。

とても快適です。近々、日傘の件もメールニュースでお届けできればと思っています。

ところで、LabVIEWといえばWindows上の開発環境ですが、実はLinux版も用意されていてLabVIEW 2021 SP1からUbuntu 18, 20でも動作するようになり、ぐぐっと身近になりました。

Linux上でGUIプログラミングを行うには色々と手間が掛かりますが、手慣れたLabVIEWで開発できれば相当な効率化が図れます。

今回は、Windowsで作成したLabVIEWコードをLinux版で動作するかどうか、互換性を調べてみました。


テスト内容と環境

Windows環境(LabVIEW 2020)で作成したプロジェクトをLinux版 LabVIEW(2021)で開いてみます。

LabVIEW 2020のコードををLabVIEW 2021で開くので、バージョン変換が入ります。バージョン変換も問題ないか調査します。


Windows 環境

  • Windows 10 (64bit)
  • LabVIEW 2020 SP1(32bit)で保存したLabVIEWプロジェクト


Linux環境

  • Ubuntu Linux Desktop 22.04
  • LabVIEW 2021 SP1 (64bit)


2バイトコードファイル名は大丈夫か?

一番気になったのは、2バイトコードファイル名。

お作法的にはどうかと思いますが、ファイルの分かりやすさを優先して日本語のファイル名を付与しているVIがいくつかあります。

日本語ファイル名に関しては、普通のVIでは問題なくロードも実行も出来ました。

ただウィンドウタイトルの文字が化けています。これはフォントが問題なのか良く分かりませんが。


VIプロパティを見ると文字列としては正しく表示されています。


上図のSave as VI nameを一度オフにしてからオンにすると正しく表示されるようになりました。フォント情報が設定され直したのでしょうか。ただもう一度オフにするとまた文字が化けますが。


新規VIを作成しVIプロパティでWindow titleを設定すると正しく表示されます。


2バイトコードの制御器ラベル問題

次にWindows上で作成したVIについて見ていきます。

Windowsではこの2バイトコードのラベルが・・・


Linux版で開くと、2バイトコードのラベルが消えています・・・


制御器には「ラベル」・「キャプション」と2種類ありますが、どちらも2バイトコードは消えてしまいました。ですがASCIIコードは大丈夫でした。どうも2バイトコードは消えてしまうようです。

Linux版との互換性を考慮する場合は、ラベルなどはASCIIコードで作成しておく必要がありそうです。

ちなみにブロックダイアグラムのラベルも消えています・・・


2バイトコード列挙体問題

問題は列挙(タイプ制御器)。

下図のように列挙文字列がなくなっています。ついでに制御器のラベル文字列も消えています。


列挙帯のプロパティを開くと文字列自体が消えているので、情報が失われてしまったようです。

ちなみにWindowsでASCIIコードで入力し直してからLinux版で開くと正しく表示され、データが消えてしまうこともありませんでした。


クラスメンバ名が2バイトコードの場合は悲惨

LabVIEWクラスメンバ名に2バイトコードを使っていると、こちらも影響を受けます。

ラベルが消えています・・・


もちろんメンバをプロパティノードで読み込んでいる部分も消えています・・・


ですがプロパティ選択は出来て選択すれば


結線は出来ます。


LabVIEWのバージョン変換がおかしいのか?

LabVIEWは各バージョン毎にソースコードが固定されてしまうので、他のバージョンのLabVIEWで開くためには変換が必要です。2020→2021などバージョンが上がる場合はそのまま開くことが出来ますが、下げる場合は変換作業が必要になります。

今回の検証では2020→2021なので自動的に変換されます。

もしかしたらこの変換時に異常が起きているのかと思い、念のため2020→2020で開いてみることにしました。


Linux環境

  • CentOS 8
  • LabVIEW 2020 SP1


果たして、その結果は?

全然ダメですね。2バイトコードのラベルは消えていますし、プロジェクトエクスプローラーでは2バイトコードファイル名も表示されていません。


まとめ

  • Windows版で作成したVIやプロジェクトは問題なく開けそう。
  • 日本語ファイル名のVIも問題なく開ける。
  • VIのウィンドウタイトルはVIプロパティで"same as vi name"をオフにしないと文字化けする。
  • Windows環境で作成したVIの日本語の制御器ラベルはLinux環境で空欄になる。
  • クラスタ内の要素のラベルが日本語名の場合クラスタが壊れる。

LabVIEW 2021で作成→LabVIEW 2021(Linux)で読み込みも試して見たかったのですが、割愛しました。恐らく結果は一緒でしょう。

以上、ドルフィンシステム福島でした。


コメント