@@ -305,6 +305,9 @@ def control_reader(self, fifo):
305
305
if typ == Nrf802154Sniffer .CTRL_CMD_INITIALIZED :
306
306
self .initialized .set ()
307
307
elif arg == Nrf802154Sniffer .CTRL_ARG_CHANNEL and typ == Nrf802154Sniffer .CTRL_CMD_SET and payload :
308
+ self .channel = int (payload )
309
+ while self .running .is_set () and not self .setup_done .is_set ():
310
+ time .sleep (0.1 )
308
311
self .serial_queue .put (b'channel ' + payload )
309
312
310
313
self .stop_sig_handler ()
@@ -375,7 +378,7 @@ def serial_writer(self):
375
378
except Queue .Empty :
376
379
break
377
380
378
- def serial_reader (self , dev , channel , queue ):
381
+ def serial_reader (self , dev , queue ):
379
382
"""
380
383
Thread responsible for reading from serial port, parsing the output and storing parsed packets into queue.
381
384
"""
@@ -396,7 +399,7 @@ def serial_reader(self, dev, channel, queue):
396
399
init_cmd = []
397
400
init_cmd .append (b'' )
398
401
init_cmd .append (b'sleep' )
399
- init_cmd .append (b'channel ' + bytes (str (channel ).encode ()))
402
+ init_cmd .append (b'channel ' + bytes (str (self . channel ).encode ()))
400
403
for cmd in init_cmd :
401
404
self .serial_queue .put (cmd )
402
405
@@ -427,7 +430,7 @@ def serial_reader(self, dev, channel, queue):
427
430
rssi = int (m .group (2 ))
428
431
lqi = int (m .group (3 ))
429
432
timestamp = int (m .group (4 )) & 0xffffffff
430
- channel = int (channel )
433
+ channel = int (self . channel )
431
434
queue .put (self .pcap_packet (packet , channel , rssi , lqi , self .correct_time (timestamp )))
432
435
buf = b''
433
436
@@ -473,19 +476,23 @@ def extcap_capture(self, fifo, dev, channel, control_in=None, control_out=None):
473
476
474
477
if control_out :
475
478
self .threads .append (threading .Thread (target = self .control_writer , args = (control_out ,)))
476
- if self .channel :
477
- self .control_send (Nrf802154Sniffer .CTRL_ARG_CHANNEL , Nrf802154Sniffer .CTRL_CMD_SET , self .channel .encode ())
478
479
479
480
if control_in :
480
481
self .threads .append (threading .Thread (target = self .control_reader , args = (control_in ,)))
481
482
482
- self .threads .append (threading .Thread (target = self .serial_reader , args = (self .dev , self . channel , packet_queue ), name = "serial_reader" ))
483
+ self .threads .append (threading .Thread (target = self .serial_reader , args = (self .dev , packet_queue ), name = "serial_reader" ))
483
484
self .threads .append (threading .Thread (target = self .serial_writer , name = "serial_writer" ))
484
485
self .threads .append (threading .Thread (target = self .fifo_writer , args = (fifo , packet_queue ), name = "fifo_writer" ))
485
486
486
487
for thread in self .threads :
487
488
thread .start ()
488
489
490
+ while self .running .is_set () and not self .initialized .is_set ():
491
+ time .sleep (0.1 )
492
+
493
+ time .sleep (0.1 )
494
+ self .control_send (Nrf802154Sniffer .CTRL_ARG_CHANNEL , Nrf802154Sniffer .CTRL_CMD_SET , str (self .channel ).encode ())
495
+
489
496
while is_standalone and self .running .is_set ():
490
497
time .sleep (1 )
491
498
0 commit comments