加工後シート検査の設定プログラムを作成中。
起動直後に、センサー種、カメラNo.、画面解像度を選択後、初期設定に入るように変更中。
デスクトップ用のFHD専用と決めてはいるが、ノートパソコン等も使用できるようにしておき、設置時にこの関数の呼び出しをキャンセルするだけで、導入したパソコンシステム専用の プログラム化ができるようにしてみることにした。
def camera_dsp_select(IMX1):
global window01
# カメラと画面解像度の設定ウィンドウを表示
print(datetime.datetime.now(), 'カメラ設定と画面解像度のウィンドウ生成')
# カメラと画面解像度の設定ウィンドウのレイアウトを定義
layout01 = [[sg.Text(' ', font=('Helvetica', 30))],
[sg.Text(' カメラと画面解像度の設定を行ってください ', font=('Helvetica', 30))],
[sg.Text(' ', font=('Helvetica', 30))],
[sg.Text('カメラセンサー IMX298(0),IMX577(1),IMX179(2)')],
[sg.Slider(range=(0, 2), default_value=IMX1, resolution=1, orientation='h',size=(7,1),
key='SLIDER_IMX1', enable_events=True, disable_number_display=True),
sg.Text(str(IMX1), key="-text_IMX1-"),],
[sg.Text('カメラNo. 0<>2 ')],
[sg.Slider(range=(0, 2), default_value=VCAP1, resolution=1, orientation='h',size=(7,1),
key='SLIDER_VCAP1', enable_events=True, disable_number_display=True),
sg.Text(str(VCAP1), key="-text_VCAP1-"),],
[sg.Text('画面サイズ FullHD1920x1080(0):特別解像度(1)')],
[sg.Slider(range=(0, 1), default_value=DSP, resolution=1, orientation='h',size=(5,1),
key='SLIDER_DSP', enable_events=True, disable_number_display=True),
sg.Text(str(DSP), key="-text_DSP-"),],
[sg.Text(' ', font=('Helvetica', 30))],
[sg.Button(' 設定OK(進む) ', font=('Helvetica', 30))],
[sg.Text(' ', font=('Helvetica', 30))]]
# タイトルバー無しのと画面解像度のウィンドウを作成
window01 = sg.Window('Window Title', layout01,no_titlebar=False,keep_on_top=True,modal=True, finalize=True)
window01.refresh() # 文字が表示されない時の対策
winsound.PlaySound("SystemExit", winsound.SND_ALIAS) # 起動進行を聴覚通知
while True:
print(datetime.datetime.now(), 'LED光源チェックイベント入力待ち')
event, values = window01.read(1000) # timeout=数字msキー入力待ち、(key, value)のタプル形式でイベントを受取
print(datetime.datetime.now(), event, values)
if event == sg.WIN_CLOSED: # 画面を閉じる「X」ボタンが押されたら、ループを抜けてソフト終了
window01.close() # ウィンドウ01を閉じる
exit_process0(RELAY_OFF_CMD21,RELAY_OFF_CMD22)
sys.exit()
elif event in (None, ' 設定OK(進む) '):
window01.close() # ウィンドウ01を閉じる
# 「OK」が押されたら、ループを抜けて次に進む
break
elif event == 'SLIDER_DSP': # FullHD、HDの選択で、ウィンドウ等のサイズを変更
DSP = int(values['SLIDER_DSP'])
window["-text_DSP-"].update(str(DSP))
if DSP == 1: # 特別解像度での表示設定(HD設定を仮入れ)
DY1,DX1,SY1,SX1,FONT1 = 1366,768,910,684,8
else: # FHDでの表示設定
DY1,DX1,SY1,SX1,FONT1 = 1920,1080,1280,961,11
continue # スライダー設定待ちに戻る
elif event == 'SLIDER_VCAP1': # カメラのキャプチャーNo.の変更
VCAP1 = int(values['SLIDER_VCAP1'])
window["-text_VCAP1-"].update(str(VCAP1))
continue # スライダー設定待ちに戻る
elif event == 'SLIDER_IMX1': # カメラ(センサー)の変更
IMX1 = int(values['SLIDER_IMX1'])
window["-text_IMX1-"].update(str(IMX1))
continue # スライダー設定待ちに戻る
コメント
コメントを投稿