NI製品ディスカッション

次の結果を表示 
次の代わりに検索 
もしかして: 
返信

PythonとLabVIEWでQRコードを作る2

Highlighted

PythonとLabVIEWでQRコードを作る2

PythonとLabVIEWでQRコードを作る2
Python -c コマンドオプションを利用してQRコードを作ります。
実行環境:Win10、Anaconda3(3系)、LabVIEW2104

 

1.Pythonコマンドラインオプション
参考HP
 [ コマンドラインと環境] 

https://docs.python.jp/3/using/cmdline.html
-cコマンドオプション(-c "command")
 command 内の Python コードを実行します。 command は改行によって区切られた1行以上の文です。通常のモジュールのコードと同じく、行頭の空白文字は意味を持ちます。

2.LabVIEWでPythonコードの実行
コマンドプロンプトに送信する文字列コードをLabVIEW側で作成します。
```
python -c "プログラム”
```
PythonIDE.vi

PythonIDE.png
3.QRコード
前回は、コマンドライン引数からQRコードを生成しましたが、今回は、-cコマンドを利用して作成します。
前回のPythonプログラム以下のように書き換えます。
```
# -*- coding: utf-8 -*-
import qrcode #qrcodeを起動
def QRmaker(code,path):
    img = qrcode.make(str(code)) #''内の文字をQRコードに変換
    #生成したQRコードを表示
    #img.show()
    img.save(str(path)) #QRコードに名前をつけて保存

QRmaker(code,path)
```
LabVIEWでは、codeとpathを関数内に引き渡せるように「テキスト作成」を使います。
この時、前回は問題なかったのですが、Pathを渡す際にフォルダー区切り文字の扱いが違っているために、「文字列検索と置換」を使って「¥」1つを2つに変更しています。(ちょっと理由がわかりません。)
PythonQRcode3.viPythonQRcode3.png

4. numpyを用いた配列の足し算
LabVIEWで作った配列をPythonに渡して、Pythonで計算したのち再びLabVIEWで表示します。
Pythonでは、配列の計算は、numpyモジュールを使いますので、その形式にします。
Ancondaでインストールした場合は、numpyもインストールされています。
Pythonのプログラムは
```
#numpyをインポートその際、npと呼び出し名を変更する。
import numpy as np
#リストを作成します。
x=[xx]
y=[yy]
#リストからnpの配列に変更します。
x1=np.array(x)
y1=np.array(y)
#配列の足し算をします。
st=x1+y1
print(st)
```
まずLabVIEWの配列をリストにします。JSONも使えますが、今回は、普通に文字列にしています。
LabVIEW Array to String.vi

Python Array to String.png

上のPythonプログラムを入れたLabVIEWプログラムは以下のようになります。
Py_np_LV_plus.viの出力は、numpyのarrayの表示がちょっと特殊なので、その変換がごちゃごちゃしています。
Py_np_LV_plus.vi

Py_np_LV_plus.png

 

そこで、array形式から再度List形式に直したのち変換したものが、Py_np_LV_plus2_list.viです。
```
#最後のコマンドで、tolistメソッドを追加してListにしています。
print(st.tolist())
```
Py_np_LV_plus2_list.vi
Py_np_LV_plus2_list.png

メッセージ1/1 (194 閲覧回数)