/

PAL_Script.py

TWELITE PAL Scriptの実行用スクリプト
本スクリプトを起動するためのコードで、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()

受け取る辞書に関してはこちらを参照してください。