mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
fixed watchdog not beeing started
This commit is contained in:
parent
50f088ab5e
commit
1b18000d32
3 changed files with 34 additions and 10 deletions
|
@ -515,7 +515,11 @@ def open_dc_and_transmit(data_out, mode, n_frames):
|
||||||
|
|
||||||
#on a new transmission we reset the timer
|
#on a new transmission we reset the timer
|
||||||
static.ARQ_START_OF_TRANSMISSION = int(time.time())
|
static.ARQ_START_OF_TRANSMISSION = int(time.time())
|
||||||
|
|
||||||
|
|
||||||
|
# lets wait a little bit
|
||||||
|
time.sleep(1)
|
||||||
|
|
||||||
# transmit data
|
# transmit data
|
||||||
arq_transmit(data_out)
|
arq_transmit(data_out)
|
||||||
|
|
||||||
|
|
3
main.py
3
main.py
|
@ -37,3 +37,6 @@ if __name__ == '__main__':
|
||||||
|
|
||||||
CMD_SERVER_THREAD = threading.Thread(target=sock.start_cmd_socket, name="cmd server")
|
CMD_SERVER_THREAD = threading.Thread(target=sock.start_cmd_socket, name="cmd server")
|
||||||
CMD_SERVER_THREAD.start()
|
CMD_SERVER_THREAD.start()
|
||||||
|
|
||||||
|
WATCHDOG_SERVER_THREAD = threading.Thread(target=helpers.watchdog, name="watchdog")
|
||||||
|
WATCHDOG_SERVER_THREAD.start()
|
||||||
|
|
35
modem.py
35
modem.py
|
@ -259,6 +259,7 @@ class RF():
|
||||||
buffer += crc # append crc16 to buffer
|
buffer += crc # append crc16 to buffer
|
||||||
|
|
||||||
data = (ctypes.c_ubyte * static.FREEDV_DATA_BYTES_PER_FRAME).from_buffer_copy(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_rawdatatx(freedv, mod_out, data) # modulate DATA and safe it into mod_out pointer
|
||||||
self.c_lib.freedv_rawdatapostambletx(freedv, mod_out_postamble)
|
self.c_lib.freedv_rawdatapostambletx(freedv, mod_out_postamble)
|
||||||
|
|
||||||
|
@ -302,6 +303,7 @@ class RF():
|
||||||
buffer += crc # append crc16 to buffer
|
buffer += crc # append crc16 to buffer
|
||||||
|
|
||||||
data = (ctypes.c_ubyte * static.FREEDV_DATA_BYTES_PER_FRAME).from_buffer_copy(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_rawdatatx(freedv, mod_out, data) # modulate DATA and safe it into mod_out pointer
|
||||||
self.c_lib.freedv_rawdatapostambletx(freedv, mod_out_postamble)
|
self.c_lib.freedv_rawdatapostambletx(freedv, mod_out_postamble)
|
||||||
|
|
||||||
|
@ -400,8 +402,8 @@ class RF():
|
||||||
static.AUDIO_RMS = audioop.rms(data_in, 2)
|
static.AUDIO_RMS = audioop.rms(data_in, 2)
|
||||||
nbytes = self.c_lib.freedv_rawdatarx(freedv, bytes_out, data_in) # demodulate audio
|
nbytes = self.c_lib.freedv_rawdatarx(freedv, bytes_out, data_in) # demodulate audio
|
||||||
# logging.debug(self.c_lib.freedv_get_rx_status(freedv))
|
# 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("listening-" + str(mode) + " - " + "nin: " + str(nin) + " - " + str(self.c_lib.freedv_get_rx_status(freedv)))
|
||||||
print(static.CHANNEL_STATE)
|
##print(static.CHANNEL_STATE)
|
||||||
|
|
||||||
# -------------STUCK IN SYNC DETECTOR
|
# -------------STUCK IN SYNC DETECTOR
|
||||||
stuck_in_sync_counter += 1
|
stuck_in_sync_counter += 1
|
||||||
|
@ -409,6 +411,8 @@ class RF():
|
||||||
stuck_in_sync_10_counter += 1
|
stuck_in_sync_10_counter += 1
|
||||||
if mode != 14:
|
if mode != 14:
|
||||||
self.c_lib.freedv_set_sync(freedv, 0)
|
self.c_lib.freedv_set_sync(freedv, 0)
|
||||||
|
|
||||||
|
|
||||||
logging.warning("MODEM | SYNC 10 TRIGGER | M:" + str(mode) + " | " + str(static.CHANNEL_STATE))
|
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:
|
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
|
# DO UNSYNC AFTER LAST BURST by checking the frame nums agains the total frames per burst
|
||||||
if frame == n_frames_per_burst:
|
if frame == n_frames_per_burst:
|
||||||
logging.debug("LAST FRAME ---> UNSYNC")
|
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
|
self.c_lib.freedv_set_sync(freedv, 0) # FORCE UNSYNC
|
||||||
for i in range(0, 3):
|
#for i in range(0, 3):
|
||||||
dummy_mod = bytes(self.c_lib.freedv_nin(freedv))
|
# dummy_mod = bytes(self.c_lib.freedv_nin(freedv))
|
||||||
self.c_lib.freedv_rawdatarx(freedv, bytes_out, dummy_mod)
|
# self.c_lib.freedv_rawdatarx(freedv, bytes_out, dummy_mod)
|
||||||
|
|
||||||
# clear bytes_out buffer to be ready for next frames after successfull decoding
|
# 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
|
bytes_out = bytes_out() # get pointer to bytes_out
|
||||||
|
|
||||||
if mode == 14:
|
if mode == 14:
|
||||||
self.c_lib.freedv_set_sync(freedv, 0)
|
print("mmmmmh")
|
||||||
for i in range(0, 3):
|
bytes_out = (ctypes.c_ubyte * bytes_per_frame)
|
||||||
dummy_mod = bytes(self.c_lib.freedv_nin(freedv))
|
bytes_out = bytes_out() # get pointer to bytes_out
|
||||||
self.c_lib.freedv_rawdatarx(freedv, bytes_out, dummy_mod)
|
|
||||||
|
# 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:
|
else:
|
||||||
# for debugging purposes to receive all data
|
# for debugging purposes to receive all data
|
||||||
pass
|
pass
|
||||||
|
|
Loading…
Reference in a new issue