fixed watchdog not beeing started

This commit is contained in:
DJ2LS 2021-04-17 17:42:25 +02:00 committed by GitHub
parent 50f088ab5e
commit 1b18000d32
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 34 additions and 10 deletions

View file

@ -515,7 +515,11 @@ def open_dc_and_transmit(data_out, mode, n_frames):
#on a new transmission we reset the timer
static.ARQ_START_OF_TRANSMISSION = int(time.time())
# lets wait a little bit
time.sleep(1)
# transmit data
arq_transmit(data_out)

View file

@ -37,3 +37,6 @@ if __name__ == '__main__':
CMD_SERVER_THREAD = threading.Thread(target=sock.start_cmd_socket, name="cmd server")
CMD_SERVER_THREAD.start()
WATCHDOG_SERVER_THREAD = threading.Thread(target=helpers.watchdog, name="watchdog")
WATCHDOG_SERVER_THREAD.start()

View file

@ -259,6 +259,7 @@ class RF():
buffer += crc # append crc16 to buffer
data = (ctypes.c_ubyte * static.FREEDV_DATA_BYTES_PER_FRAME).from_buffer_copy(buffer)
self.c_lib.freedv_rawdatatx(freedv, mod_out, data) # modulate DATA and safe it into mod_out pointer
self.c_lib.freedv_rawdatapostambletx(freedv, mod_out_postamble)
@ -302,6 +303,7 @@ class RF():
buffer += crc # append crc16 to buffer
data = (ctypes.c_ubyte * static.FREEDV_DATA_BYTES_PER_FRAME).from_buffer_copy(buffer)
self.c_lib.freedv_rawdatatx(freedv, mod_out, data) # modulate DATA and safe it into mod_out pointer
self.c_lib.freedv_rawdatapostambletx(freedv, mod_out_postamble)
@ -400,8 +402,8 @@ class RF():
static.AUDIO_RMS = audioop.rms(data_in, 2)
nbytes = self.c_lib.freedv_rawdatarx(freedv, bytes_out, data_in) # demodulate audio
# logging.debug(self.c_lib.freedv_get_rx_status(freedv))
print("listening-" + str(mode) + " - " + "nin: " + str(nin) + " - " + str(self.c_lib.freedv_get_rx_status(freedv)))
print(static.CHANNEL_STATE)
##print("listening-" + str(mode) + " - " + "nin: " + str(nin) + " - " + str(self.c_lib.freedv_get_rx_status(freedv)))
##print(static.CHANNEL_STATE)
# -------------STUCK IN SYNC DETECTOR
stuck_in_sync_counter += 1
@ -409,6 +411,8 @@ class RF():
stuck_in_sync_10_counter += 1
if mode != 14:
self.c_lib.freedv_set_sync(freedv, 0)
logging.warning("MODEM | SYNC 10 TRIGGER | M:" + str(mode) + " | " + str(static.CHANNEL_STATE))
if stuck_in_sync_counter == 33 and self.c_lib.freedv_get_rx_status(freedv) == 10:
@ -530,10 +534,18 @@ class RF():
# DO UNSYNC AFTER LAST BURST by checking the frame nums agains the total frames per burst
if frame == n_frames_per_burst:
logging.debug("LAST FRAME ---> UNSYNC")
print("jahallo alles erhalten")
bytes_out = (ctypes.c_ubyte * bytes_per_frame)
bytes_out = bytes_out() # get pointer to bytes_out
self.stream_rx.read(static.AUDIO_FRAMES_PER_BUFFER, exception_on_overflow=False)
self.c_lib.freedv_set_sync(freedv, 0) # FORCE UNSYNC
for i in range(0, 3):
dummy_mod = bytes(self.c_lib.freedv_nin(freedv))
self.c_lib.freedv_rawdatarx(freedv, bytes_out, dummy_mod)
#for i in range(0, 3):
# dummy_mod = bytes(self.c_lib.freedv_nin(freedv))
# self.c_lib.freedv_rawdatarx(freedv, bytes_out, dummy_mod)
# clear bytes_out buffer to be ready for next frames after successfull decoding
@ -541,10 +553,15 @@ class RF():
bytes_out = bytes_out() # get pointer to bytes_out
if mode == 14:
self.c_lib.freedv_set_sync(freedv, 0)
for i in range(0, 3):
dummy_mod = bytes(self.c_lib.freedv_nin(freedv))
self.c_lib.freedv_rawdatarx(freedv, bytes_out, dummy_mod)
print("mmmmmh")
bytes_out = (ctypes.c_ubyte * bytes_per_frame)
bytes_out = bytes_out() # get pointer to bytes_out
# self.c_lib.freedv_set_sync(freedv, 0)
# self.stream_rx.read(static.AUDIO_FRAMES_PER_BUFFER, exception_on_overflow=False)
#for i in range(0, 3):
# dummy_mod = bytes(self.c_lib.freedv_nin(freedv))
# self.c_lib.freedv_rawdatarx(freedv, bytes_out, dummy_mod)
else:
# for debugging purposes to receive all data
pass