mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
small code cleanup and error handling
This commit is contained in:
parent
84a6edab4a
commit
1d510d0e79
1 changed files with 45 additions and 55 deletions
36
modem.py
36
modem.py
|
@ -29,17 +29,11 @@ class RF():
|
|||
|
||||
def __init__(self):
|
||||
|
||||
|
||||
# -------------------------------------------- LOAD FREEDV
|
||||
libname = pathlib.Path().absolute() / "codec2/build_linux/src/libcodec2.so"
|
||||
self.c_lib = ctypes.CDLL(libname)
|
||||
# --------------------------------------------CREATE PYAUDIO INSTANCE
|
||||
self.p = pyaudio.PyAudio()
|
||||
# --------------------------------------------GET SUPPORTED SAMPLE RATES FROM SOUND DEVICE
|
||||
#static.AUDIO_SAMPLE_RATE_RX = int(self.p.get_device_info_by_index(static.AUDIO_INPUT_DEVICE)['defaultSampleRate'])
|
||||
#static.AUDIO_SAMPLE_RATE_TX = int(self.p.get_device_info_by_index(static.AUDIO_OUTPUT_DEVICE)['defaultSampleRate'])
|
||||
static.AUDIO_SAMPLE_RATE_TX = 48000
|
||||
static.AUDIO_SAMPLE_RATE_RX = 48000
|
||||
# --------------------------------------------OPEN AUDIO CHANNEL RX
|
||||
self.stream_rx = self.p.open(format=pyaudio.paInt16,
|
||||
channels=static.AUDIO_CHANNELS,
|
||||
|
@ -76,9 +70,12 @@ class RF():
|
|||
FREEDV_PLAYBACK_THREAD.start()
|
||||
|
||||
# --------------------------------------------CONFIGURE HAMLIB
|
||||
|
||||
|
||||
# try to init hamlib
|
||||
try:
|
||||
Hamlib.rig_set_debug(Hamlib.RIG_DEBUG_NONE)
|
||||
|
||||
# Init RIG_MODEL_DUMMY
|
||||
self.my_rig = Hamlib.Rig(static.HAMLIB_DEVICE_ID)
|
||||
self.my_rig.set_conf("rig_pathname", static.HAMLIB_DEVICE_PORT)
|
||||
|
||||
|
@ -94,38 +91,39 @@ class RF():
|
|||
self.my_rig.set_conf("stop_bits", "1")
|
||||
self.my_rig.set_conf("data_bits", "8")
|
||||
|
||||
|
||||
#my_rig.set_ptt(Hamlib.RIG_PTT_RIG,0)
|
||||
#my_rig.set_ptt(Hamlib.RIG_PTT_SERIAL_DTR,0)
|
||||
#my_rig.set_ptt(Hamlib.RIG_PTT_SERIAL_RTS,1)
|
||||
|
||||
|
||||
|
||||
|
||||
if static.HAMLIB_PTT_TYPE == 'RIG_PTT_RIG':
|
||||
self.hamlib_ptt_type = Hamlib.RIG_PTT_RIG
|
||||
|
||||
elif static.HAMLIB_PTT_TYPE == 'RIG_PTT_SERIAL_DTR':
|
||||
self.hamlib_ptt_type = Hamlib.RIG_PTT_SERIAL_DTR
|
||||
|
||||
elif static.HAMLIB_PTT_TYPE == 'RTS':
|
||||
self.hamlib_ptt_type = Hamlib.RIG_PTT_SERIAL_RTS
|
||||
self.my_rig.set_conf("dtr_state", "OFF")
|
||||
self.my_rig.set_conf("ptt_type", "RTS")
|
||||
|
||||
|
||||
elif static.HAMLIB_PTT_TYPE == 'RIG_PTT_PARALLEL':
|
||||
self.hamlib_ptt_type = Hamlib.RIG_PTT_PARALLEL
|
||||
|
||||
elif static.HAMLIB_PTT_TYPE == 'RIG_PTT_RIG_MICDATA':
|
||||
self.hamlib_ptt_type = Hamlib.RIG_PTT_RIG_MICDATA
|
||||
|
||||
elif static.HAMLIB_PTT_TYPE == 'RIG_PTT_CM108':
|
||||
self.hamlib_ptt_type = Hamlib.RIG_PTT_CM108
|
||||
|
||||
else: # static.HAMLIB_PTT_TYPE == 'RIG_PTT_NONE':
|
||||
self.hamlib_ptt_type = Hamlib.RIG_PTT_NONE
|
||||
|
||||
#self.my_rig.set_ptt(self.hamlib_ptt_type, 0)
|
||||
|
||||
|
||||
self.my_rig.open()
|
||||
|
||||
except:
|
||||
print("can't open rig")
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------------------
|
||||
def ptt_and_wait(self, state):
|
||||
|
@ -154,26 +152,18 @@ class RF():
|
|||
|
||||
while True:
|
||||
time.sleep(0.01)
|
||||
#state_before_transmit = static.CHANNEL_STATE
|
||||
|
||||
while len(self.streambuffer) > 0:
|
||||
time.sleep(0.01)
|
||||
if len(self.streambuffer) > 0:
|
||||
self.audio_writing_to_stream = True
|
||||
#print("es geht los...")
|
||||
|
||||
#audio = audioop.ratecv(self.streambuffer,2,1,static.MODEM_SAMPLE_RATE, static.AUDIO_SAMPLE_RATE_TX, None)
|
||||
#self.stream_tx.write(audio[0])
|
||||
|
||||
self.streambuffer = bytes(self.streambuffer)
|
||||
#print(type(self.streambuffer))
|
||||
#print(self.streambuffer)
|
||||
|
||||
# we need t wait a little bit until the buffer is filled. If we are not waiting, we are sending empty data
|
||||
time.sleep(0.1)
|
||||
self.stream_tx.write(self.streambuffer)
|
||||
self.streambuffer = bytes()
|
||||
#static.CHANNEL_STATE = state_before_transmit
|
||||
|
||||
self.audio_writing_to_stream = False
|
||||
# --------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
|
Loading…
Reference in a new issue