|
def show(): |
|
|
|
|
|
from os import environ |
|
import streamlit as st |
|
from microscope_demo_client import MicroscopeDemo |
|
|
|
|
|
|
|
HIVEMQ_BROKER = environ["HIVEMQ_BROKER"] |
|
|
|
port = 8883 |
|
microscopes = [ |
|
"microscope", |
|
"microscope2", |
|
"deltastagetransmission", |
|
"deltastagereflection", |
|
] |
|
|
|
st.title("GUI control") |
|
|
|
microscopeselection = st.selectbox( |
|
"Choose a microscope:", microscopes, index=microscopes.index("microscope2") |
|
) |
|
|
|
access_key = st.text_input(label="Enter your access key here:", max_chars=1000) |
|
|
|
def get_pos_button(): |
|
microscope = MicroscopeDemo( |
|
HIVEMQ_BROKER, |
|
port, |
|
microscopeselection + "clientuser", |
|
access_key, |
|
microscopeselection, |
|
) |
|
|
|
pos = microscope.get_pos() |
|
st.write("x: " + str(pos["x"])) |
|
st.write("y: " + str(pos["y"])) |
|
st.write("z: " + str(pos["z"])) |
|
microscope.end_connection() |
|
|
|
def take_image_button(): |
|
microscope = MicroscopeDemo( |
|
HIVEMQ_BROKER, |
|
port, |
|
microscopeselection + "clientuser", |
|
access_key, |
|
microscopeselection, |
|
) |
|
|
|
st.image( |
|
microscope.take_image(), |
|
caption="Taken from the microscope camera", |
|
use_column_width=True, |
|
) |
|
microscope.end_connection() |
|
|
|
def focus_button(): |
|
microscope = MicroscopeDemo( |
|
HIVEMQ_BROKER, |
|
port, |
|
microscopeselection + "clientuser", |
|
access_key, |
|
microscopeselection, |
|
) |
|
|
|
microscope.focus(focusamount) |
|
st.write("Autofocus complete") |
|
microscope.end_connection() |
|
|
|
def move_button(): |
|
microscope = MicroscopeDemo( |
|
HIVEMQ_BROKER, |
|
port, |
|
microscopeselection + "clientuser", |
|
access_key, |
|
microscopeselection, |
|
) |
|
|
|
microscope.move(xmove, ymove) |
|
st.write("Move complete") |
|
microscope.end_connection() |
|
|
|
st.button("Get position", on_click=get_pos_button) |
|
st.write("") |
|
st.button("Take image", on_click=take_image_button) |
|
st.write("") |
|
focusamount = st.number_input( |
|
"Autofocus amount 1-5000", min_value=1, max_value=5000, step=100, value=1000 |
|
) |
|
st.button("Focus", on_click=focus_button) |
|
st.write("") |
|
xmove = st.number_input("X", min_value=-20000, max_value=20000, step=250, value=0) |
|
ymove = st.number_input("Y", min_value=-20000, max_value=20000, step=250, value=0) |
|
st.button("Move", on_click=move_button) |
|
|