Skip to content

Commit 115bd6a

Browse files
committed
Changing drop downs on overview to make them responsive; only show swarm control multiselect if there are active drones.
1 parent d65a2bd commit 115bd6a

File tree

1 file changed

+20
-16
lines changed

1 file changed

+20
-16
lines changed

cnc/streamlit/overview.py

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
if "tracking_selection" not in st.session_state:
2222
st.session_state.tracking_selection = None
2323
if "selected_drones" not in st.session_state:
24-
st.session_state.selected_drones = None
24+
st.session_state.selected_drones = []
2525
if "script_file" not in st.session_state:
2626
st.session_state.script_file = None
2727
if "inactivity_time" not in st.session_state:
@@ -193,25 +193,25 @@ def draw_map():
193193

194194
menu()
195195

196-
map_options = ("Google Sat", "Google Hybrid")
196+
map_options = ["Google Sat", "Google Hybrid"]
197197
tiles_col = st.columns(5)
198-
st.session_state.map_server = tiles_col[0].selectbox(
199-
# key="map_server",
198+
tiles_col[0].selectbox(
199+
key="map_server",
200200
label=":world_map: **:blue[Tile Server]**",
201201
options=map_options,
202-
index=map_options.index(st.session_state.map_server)
202+
index=0
203203
)
204204

205-
st.session_state.tracking_selection = tiles_col[1].selectbox(
206-
key="drone_track",
205+
tiles_col[1].selectbox(
206+
key="tracking_selection",
207207
label=":dart: **:green[Track Drone]**",
208208
options=get_drones(),
209209
on_change=change_center(),
210-
index=get_drones().index(st.session_state.tracking_selection) if st.session_state.tracking_selection else None,
211210
placeholder="Select a drone to track...",
212211
)
213212

214-
st.session_state.inactivity_time = tiles_col[2].number_input(":heartbeat: **:red[Active Threshold (min)]**", step=1, min_value=1, value=st.session_state.inactivity_time, max_value=600000)
213+
214+
tiles_col[2].number_input(":heartbeat: **:red[Active Threshold (min)]**", step=1, min_value=1, key="inactivity_time", max_value=600000)
215215

216216
if st.session_state.map_server == "Google Sat":
217217
tileset = "https://mt0.google.com/vt/lyrs=s&hl=en&x={x}&y={y}&z={z}&s=Ga"
@@ -222,7 +222,7 @@ def draw_map():
222222
name=st.session_state.map_server, tiles=tileset, attr="Google", max_zoom=20
223223
)
224224

225-
st.session_state.trail_length = tiles_col[3].number_input(":straight_ruler: **:gray[Trail Length]**", step=500, min_value=500, max_value=2500, value=st.session_state.trail_length)
225+
tiles_col[3].number_input(":straight_ruler: **:gray[Trail Length]**", step=500, min_value=500, max_value=2500, key="trail_length")
226226
mode = ":joystick: **:green[Manual (armed)]**" if st.session_state.armed else ":joystick: **:red[Manual (disarmed)]**"
227227
with tiles_col[4]:
228228
st.caption(mode)
@@ -233,12 +233,16 @@ def draw_map():
233233
draw_map()
234234

235235
with col2:
236-
st.session_state.selected_drones = st.multiselect(
237-
label=":helicopter: **:orange[Swarm Control]** :helicopter:",
238-
options=get_drones(),
239-
placeholder="Select one or more drones...",
240-
default=st.session_state.selected_drones
241-
)
236+
drone_list = get_drones()
237+
if len(drone_list) > 0:
238+
st.multiselect(
239+
label=":helicopter: **:orange[Swarm Control]** :helicopter:",
240+
options=drone_list,
241+
default=drone_list,
242+
key="selected_drones"
243+
)
244+
else:
245+
st.caption("No active drones.")
242246
st.session_state.script_file = st.file_uploader(
243247
key="flight_uploader",
244248
label="**:violet[Upload Autonomous Mission Script]**",

0 commit comments

Comments
 (0)