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
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()