加工後シート検査の設定プログラムを作成中。

起動直後に、センサー種、カメラ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 # スライダー設定待ちに戻る

コメント

このブログの人気の投稿