@@ -207,13 +207,15 @@ pub async fn io_loop(
207
207
// prepare/bind needed TCP listeners
208
208
let mut dhu_listener = None ;
209
209
let mut md_listener = None ;
210
- if !config. read ( ) . await . wired . is_some ( ) {
210
+ let shared_config = config. clone ( ) ;
211
+ let config = config. read ( ) . await . clone ( ) ;
212
+ if !config. wired . is_some ( ) {
211
213
info ! ( "{} 🛰️ Starting TCP server for MD..." , NAME ) ;
212
214
let bind_addr = format ! ( "0.0.0.0:{}" , TCP_SERVER_PORT ) . parse ( ) . unwrap ( ) ;
213
215
md_listener = Some ( TcpListener :: bind ( bind_addr) . unwrap ( ) ) ;
214
216
info ! ( "{} 🛰️ MD TCP server bound to: <u>{}</u>" , NAME , bind_addr) ;
215
217
}
216
- if config. read ( ) . await . dhu {
218
+ if config. dhu {
217
219
info ! ( "{} 🛰️ Starting TCP server for DHU..." , NAME ) ;
218
220
let bind_addr = format ! ( "0.0.0.0:{}" , TCP_DHU_PORT ) . parse ( ) . unwrap ( ) ;
219
221
dhu_listener = Some ( TcpListener :: bind ( bind_addr) . unwrap ( ) ) ;
@@ -225,12 +227,12 @@ pub async fn io_loop(
225
227
let mut md_usb = None ;
226
228
let mut hu_tcp = None ;
227
229
let mut hu_usb = None ;
228
- if config. read ( ) . await . wired . is_some ( ) {
230
+ if config. wired . is_some ( ) {
229
231
info ! (
230
232
"{} 💤 trying to enable Android Auto mode on USB port..." ,
231
233
NAME
232
234
) ;
233
- match usb_stream:: new ( config. read ( ) . await . wired . clone ( ) ) . await {
235
+ match usb_stream:: new ( config. wired . clone ( ) ) . await {
234
236
Err ( e) => {
235
237
error ! ( "{} 🔴 Enabling Android Auto: {}" , NAME , e) ;
236
238
// notify main loop to restart
@@ -258,7 +260,7 @@ pub async fn io_loop(
258
260
}
259
261
}
260
262
261
- if config. read ( ) . await . dhu {
263
+ if config. dhu {
262
264
info ! (
263
265
"{} 🛰️ DHU TCP server: listening for `Desktop Head Unit` connection..." ,
264
266
NAME
@@ -347,11 +349,11 @@ pub async fn io_loop(
347
349
// handling battery in JSON
348
350
let mut rest_server_handle = None ;
349
351
let mut rest_ctx = None ;
350
- if config. read ( ) . await . mitm && config. read ( ) . await . ev {
352
+ if config. mitm && config. ev {
351
353
let ctx = RestContext {
352
354
sensor_channel : None ,
353
- ev_battery_capacity : config. read ( ) . await . ev_battery_capacity ,
354
- ev_factor : config. read ( ) . await . ev_factor ,
355
+ ev_battery_capacity : config. ev_battery_capacity ,
356
+ ev_factor : config. ev_factor ,
355
357
} ;
356
358
let ctx = Arc :: new ( Mutex :: new ( ctx) ) ;
357
359
@@ -391,7 +393,7 @@ pub async fn io_loop(
391
393
file_bytes,
392
394
stream_bytes,
393
395
read_timeout,
394
- config . clone ( ) ,
396
+ shared_config . clone ( ) ,
395
397
) ) ;
396
398
397
399
// Stop as soon as one of them errors
@@ -421,7 +423,7 @@ pub async fn io_loop(
421
423
handle. abort ( ) ;
422
424
}
423
425
// stop EV battery logger if neded
424
- if let Some ( ref path) = config. read ( ) . await . ev_battery_logger {
426
+ if let Some ( ref path) = config. ev_battery_logger {
425
427
let _ = Command :: new ( path) . arg ( "stop" ) . spawn ( ) ;
426
428
}
427
429
0 commit comments