Skip to content

Commit

Permalink
Keep valid toolbar settings after capture restart
Browse files Browse the repository at this point in the history
  • Loading branch information
hubertmis committed Feb 25, 2019
1 parent 2af7e4a commit 963e2a2
Showing 1 changed file with 13 additions and 6 deletions.
19 changes: 13 additions & 6 deletions nrf802154_sniffer/nrf802154_sniffer.py
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,9 @@ def control_reader(self, fifo):
if typ == Nrf802154Sniffer.CTRL_CMD_INITIALIZED:
self.initialized.set()
elif arg == Nrf802154Sniffer.CTRL_ARG_CHANNEL and typ == Nrf802154Sniffer.CTRL_CMD_SET and payload:
self.channel = int(payload)
while self.running.is_set() and not self.setup_done.is_set():
time.sleep(0.1)
self.serial_queue.put(b'channel ' + payload)

self.stop_sig_handler()
Expand Down Expand Up @@ -375,7 +378,7 @@ def serial_writer(self):
except Queue.Empty:
break

def serial_reader(self, dev, channel, queue):
def serial_reader(self, dev, queue):
"""
Thread responsible for reading from serial port, parsing the output and storing parsed packets into queue.
"""
Expand All @@ -396,7 +399,7 @@ def serial_reader(self, dev, channel, queue):
init_cmd = []
init_cmd.append(b'')
init_cmd.append(b'sleep')
init_cmd.append(b'channel ' + bytes(str(channel).encode()))
init_cmd.append(b'channel ' + bytes(str(self.channel).encode()))
for cmd in init_cmd:
self.serial_queue.put(cmd)

Expand Down Expand Up @@ -427,7 +430,7 @@ def serial_reader(self, dev, channel, queue):
rssi = int(m.group(2))
lqi = int(m.group(3))
timestamp = int(m.group(4)) & 0xffffffff
channel = int(channel)
channel = int(self.channel)
queue.put(self.pcap_packet(packet, channel, rssi, lqi, self.correct_time(timestamp)))
buf = b''

Expand Down Expand Up @@ -473,19 +476,23 @@ def extcap_capture(self, fifo, dev, channel, control_in=None, control_out=None):

if control_out:
self.threads.append(threading.Thread(target=self.control_writer, args=(control_out,)))
if self.channel:
self.control_send(Nrf802154Sniffer.CTRL_ARG_CHANNEL, Nrf802154Sniffer.CTRL_CMD_SET, self.channel.encode())

if control_in:
self.threads.append(threading.Thread(target=self.control_reader, args=(control_in,)))

self.threads.append(threading.Thread(target=self.serial_reader, args=(self.dev, self.channel, packet_queue), name="serial_reader"))
self.threads.append(threading.Thread(target=self.serial_reader, args=(self.dev, packet_queue), name="serial_reader"))
self.threads.append(threading.Thread(target=self.serial_writer, name="serial_writer"))
self.threads.append(threading.Thread(target=self.fifo_writer, args=(fifo, packet_queue), name="fifo_writer"))

for thread in self.threads:
thread.start()

while self.running.is_set() and not self.initialized.is_set():
time.sleep(0.1)

time.sleep(0.1)
self.control_send(Nrf802154Sniffer.CTRL_ARG_CHANNEL, Nrf802154Sniffer.CTRL_CMD_SET, str(self.channel).encode())

while is_standalone and self.running.is_set():
time.sleep(1)

Expand Down

0 comments on commit 963e2a2

Please sign in to comment.