スクリプトを使用して自動テストを行う
Note
ここでは、スクリプトを用いて自動テストを行います。 AUTOmeal ではサンプルスクリプトを提供しているため、そのスクリプトを用いて説明します。
サンプルを使ってスクリプトを理解する
AUTOmeal では Python 形式のスクリプトファイルに自動化したい制御・計測・判定の命令を記述し、そのスクリプトを読み込むことでテストを自動化させることができます。
API の使い方を知る
サンプルスクリプトで使用されるシリアル通信の API は以下です。
# ポート ID が "Port1" のポートから [0x01, 0x02, 0x03] を送信します。
send_serial("Port1", [0x01, 0x02, 0x03])
# ポート ID が "Port2" のポート で最後に受信したパケットを取得します。
get_latest_serial("Port2","R")
# 指定したポートで次のデータを受信するまでタイムアウト付きで待機します。
wait_for_next_serial_data("Port2", 5000)
制御ではシリアル通信設定で設定した "ポート ID" と送信したい “パケット” を記載することでポートから送信します。パケットには byte 配列または文字列を記載できます。
計測ではシリアル通信設定で設定した ポート ID と送受信方向 “R/S” を記載すると最新の送信/受信パケットを取得できます。 受信待ちをする場合、ポート ID とタイムアウトまでの時間 (ms) を記載します。
詳細はスクリプトリファレンスを参照してください。
スクリプトの大まかな構成を理解する
シリアル通信設定のポート ID が "Port1" のポートからパケットを送信します。
import automeal as am
import time
# UART を送信します
# ポート ID が "Port1" のポートから パケット を送信します。
am.send_serial("Port1", [0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x03, 0x04])
# 送信待ちを行います。
time.sleep(0.5)
# 受信したパケットの表示を行います。
result_serial = am.get_latest_serial ("Port1", "R")
if len(result_serial) == 0 :
print('受信データはありません。', flush=True)
else :
print(f'Port1受信データ:{result_serial}', flush=True)
# 受信するまで待機 (無限待ち) し、受信したパケットの表示を行います。
result_serial = wait_for_next_serial_data("Port2")
print(f'Port2受信データ:{result_serial}', flush=True)
スクリプトをカスタマイズする
スクリプトをカスタマイズしてみましょう。
シリアル通信で送信するデータを変更します。送信するデータは文字列で記載することもできます。
import automeal as am
import time
# UART を送信します
# ポート ID が "Port1" のポートから パケット を送信します。
am.send_serial("Port1", "Initial")
# 送信待ちを行います。
time.sleep(0.5)
# 受信したパケットの表示を行います。
result_serial = am.get_latest_serial ("Port1", "R")
if len(result_serial) == 0 :
print('受信データはありません。', flush=True)
else :
print(f'Port1受信データ:{result_serial}', flush=True)
# 受信するまで待機し、受信したパケットの表示を行います。
# 5 秒間受信しなかった場合はエラー(例外)となります。
result_serial = wait_for_next_serial_data("Port2", 5000)
print(f'Port2受信データ:{result_serial}', flush=True)
スクリプトの配置、実行方法、結果の確認方法はロジック信号での説明と同じになります。
こちらを参照ください。