mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
catching audio error when closing headless tnc
This commit is contained in:
parent
f9b0fc7da8
commit
bf1c630977
33
tnc/modem.py
33
tnc/modem.py
|
@ -569,22 +569,25 @@ class RF:
|
||||||
:rtype: int
|
:rtype: int
|
||||||
"""
|
"""
|
||||||
nbytes = 0
|
nbytes = 0
|
||||||
while self.stream.active:
|
try:
|
||||||
threading.Event().wait(0.01)
|
while self.stream.active:
|
||||||
while audiobuffer.nbuffer >= nin:
|
threading.Event().wait(0.01)
|
||||||
# demodulate audio
|
while audiobuffer.nbuffer >= nin:
|
||||||
nbytes = codec2.api.freedv_rawdatarx(
|
# demodulate audio
|
||||||
freedv, bytes_out, audiobuffer.buffer.ctypes
|
nbytes = codec2.api.freedv_rawdatarx(
|
||||||
)
|
freedv, bytes_out, audiobuffer.buffer.ctypes
|
||||||
audiobuffer.pop(nin)
|
|
||||||
nin = codec2.api.freedv_nin(freedv)
|
|
||||||
if nbytes == bytes_per_frame:
|
|
||||||
self.log.debug(
|
|
||||||
"[MDM] [demod_audio] Pushing received data to received_queue"
|
|
||||||
)
|
)
|
||||||
self.modem_received_queue.put([bytes_out, freedv, bytes_per_frame])
|
audiobuffer.pop(nin)
|
||||||
self.get_scatter(freedv)
|
nin = codec2.api.freedv_nin(freedv)
|
||||||
self.calculate_snr(freedv)
|
if nbytes == bytes_per_frame:
|
||||||
|
self.log.debug(
|
||||||
|
"[MDM] [demod_audio] Pushing received data to received_queue"
|
||||||
|
)
|
||||||
|
self.modem_received_queue.put([bytes_out, freedv, bytes_per_frame])
|
||||||
|
self.get_scatter(freedv)
|
||||||
|
self.calculate_snr(freedv)
|
||||||
|
except Exception as e:
|
||||||
|
self.log.warning("[MDM] [demod_audio] Stream not active anymore", e=e)
|
||||||
return nin
|
return nin
|
||||||
|
|
||||||
def init_codec2_mode(self, mode, adv):
|
def init_codec2_mode(self, mode, adv):
|
||||||
|
|
Loading…
Reference in a new issue