セクションの複数ページをまとめています。 印刷またはPDF形式で保存...

もとのページに戻る

2024-05-08 現在

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

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