21
21
if "tracking_selection" not in st .session_state :
22
22
st .session_state .tracking_selection = None
23
23
if "selected_drones" not in st .session_state :
24
- st .session_state .selected_drones = None
24
+ st .session_state .selected_drones = []
25
25
if "script_file" not in st .session_state :
26
26
st .session_state .script_file = None
27
27
if "inactivity_time" not in st .session_state :
@@ -193,25 +193,25 @@ def draw_map():
193
193
194
194
menu ()
195
195
196
- map_options = ( "Google Sat" , "Google Hybrid" )
196
+ map_options = [ "Google Sat" , "Google Hybrid" ]
197
197
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" ,
200
200
label = ":world_map: **:blue[Tile Server]**" ,
201
201
options = map_options ,
202
- index = map_options . index ( st . session_state . map_server )
202
+ index = 0
203
203
)
204
204
205
- st . session_state . tracking_selection = tiles_col [1 ].selectbox (
206
- key = "drone_track " ,
205
+ tiles_col [1 ].selectbox (
206
+ key = "tracking_selection " ,
207
207
label = ":dart: **:green[Track Drone]**" ,
208
208
options = get_drones (),
209
209
on_change = change_center (),
210
- index = get_drones ().index (st .session_state .tracking_selection ) if st .session_state .tracking_selection else None ,
211
210
placeholder = "Select a drone to track..." ,
212
211
)
213
212
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 )
215
215
216
216
if st .session_state .map_server == "Google Sat" :
217
217
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():
222
222
name = st .session_state .map_server , tiles = tileset , attr = "Google" , max_zoom = 20
223
223
)
224
224
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" )
226
226
mode = ":joystick: **:green[Manual (armed)]**" if st .session_state .armed else ":joystick: **:red[Manual (disarmed)]**"
227
227
with tiles_col [4 ]:
228
228
st .caption (mode )
@@ -233,12 +233,16 @@ def draw_map():
233
233
draw_map ()
234
234
235
235
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." )
242
246
st .session_state .script_file = st .file_uploader (
243
247
key = "flight_uploader" ,
244
248
label = "**:violet[Upload Autonomous Mission Script]**" ,
0 commit comments