本スクリプトを起動するためのコードで、MONOSTICKからのデータを読み込み、解釈されたデータの標準出力を行います。
読み出し方法
以下のコード例では、都度 MONOSTICK からデータを受信したかどうかを確認し、受信していればMain()に渡す処理を行っています。
from apppal import AppPAL
...
def mainloop(PAL):
global end_flag
try:
from Main_user import Main
except:
mainflag = False
else:
mainflag = True
if PAL.ReadSensorData():
if mainflag:
Main(PAL)
else:
PAL.ShowSensorData()
...
if __name__ == '__main__':
...
try:
PAL = AppPAL(port=options.target, baud=options.baud, tout=0.05, sformat=options.format, autolog=bEnableLog, err=bEnableErrMsg, stdinput=options.stdinp, Logfilename=options.file)
except:
print("Cannot open \"AppPAL\" class...")
exit(1)
while True:
try:
mainloop(PAL)
except KeyboardInterrupt:
break
del PAL
まず、AppPALオブジェクトを生成します。オブジェクト生成時にシリアルポートの設定も行うため、シリアルポートの設定パラメータを引数として渡します。
PPAL = AppPAL(port=options.target, baud=options.baud, tout=0.05, sformat=options.format, autolog=bEnableLog, err=bEnableErrMsg, stdinput=options.stdinp, Logfilename=options.file)
次にmainloop()でシリアルデータが来ているかどうかを判断するために ReadSensorData() を呼びます。返り値が True だったら、解釈したをMain()に渡します。
def mainloop(PAL):
# ユーザが処理を記述するMain関数がインポートできるか確認する。
try:
from Main_user import Main
except:
mainflag = False
else:
mainflag = True
# データがあるかどうかの確認
if PAL.ReadSensorData():
if mainflag:
# Main関数が読めたらPALオブジェクトをMain()に渡す
Main(PAL)
else:
# Main関数が読めなかったらコンソールにデータを表示する。
PAL.ShowSensorData()
受け取る辞書に関してはこちらを参照してください。