first hamlib integration

still only for development purposes.
This commit is contained in:
DJ2LS 2021-02-19 11:08:44 +01:00 committed by GitHub
parent 7f1a502a81
commit 681fe6d8ac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 78 additions and 2 deletions

View file

@ -20,6 +20,8 @@ import helpers
import static
import arq
import Hamlib
@ -58,14 +60,51 @@ class RF():
)
#--------------------------------------------START DECODER THREAD
FREEDV_DECODER_THREAD = threading.Thread(target=self.receive, args=[static.FREEDV_DATA_MODE,static.FREEDV_SIGNALLING_MODE], name="FREEDV_DECODER_THREAD")
FREEDV_DECODER_THREAD.start()
FREEDV_DECODER_THREAD.start()
#--------------------------------------------CONFIGURE HAMLIB
Hamlib.rig_set_debug(Hamlib.RIG_DEBUG_NONE)
# Init RIG_MODEL_DUMMY
self.my_rig = Hamlib.Rig(Hamlib.RIG_MODEL_DUMMY)
self.my_rig.set_conf("rig_pathname", "/dev/Rig")
self.my_rig.set_conf("retry", "5")
self.my_rig.open ()
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 == 'RIG_PTT_SERIAL_RTS':
self.hamlib_ptt_type = Hamlib.RIG_PTT_SERIAL_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)
#--------------------------------------------------------------------------------------------------------
def transmit_arq_ack(self,ack_buffer):
#print(ack_buffer)
static.ARQ_STATE = 'SENDING_ACK'
static.PTT_STATE = True
self.my_rig.set_ptt(self.hamlib_ptt_type,1)
self.c_lib.freedv_open.restype = ctypes.POINTER(ctypes.c_ubyte)
freedv = self.c_lib.freedv_open(static.FREEDV_SIGNALLING_MODE)
bytes_per_frame = int(self.c_lib.freedv_get_bits_per_modem_frame(freedv)/8)
@ -100,11 +139,14 @@ class RF():
self.stream_tx.write(bytes(txbuffer))
self.stream_tx.write(bytes(txbuffer))
self.my_rig.set_ptt(self.hamlib_ptt_type,0)
static.PTT_STATE = False
static.ARQ_STATE = 'RECEIVING_DATA'
#--------------------------------------------------------------------------------------------------------
# GET ARQ BURST FRAME VOM BUFFER AND MODULATE IT
def transmit_arq_burst(self):
self.my_rig.set_ptt(self.hamlib_ptt_type,1)
static.PTT_STATE = True
static.ARQ_STATE = 'SENDING_DATA'
@ -210,6 +252,7 @@ class RF():
static.ARQ_STATE = 'IDLE'
#static.ARQ_STATE = 'RECEIVING_SIGNALLING'
static.PTT_STATE = False
self.my_rig.set_ptt(self.hamlib_ptt_type,0)
#--------------------------------------------------------------------------------------------------------
def receive(self,data_mode,signalling_mode):
force = False

View file

@ -19,6 +19,7 @@ MYGRID = b''
TNC_STATE = b'IDLE'
PTT_STATE = False
#---------------------------------
# Server Defaults
@ -26,6 +27,38 @@ HOST = "localhost"
PORT = 3000
#---------------------------------
# HAMLIB DEFAULTS
#RIG_PTT_NONE
#No PTT available
#RIG_PTT_RIG
#Legacy PTT
#RIG_PTT_SERIAL_DTR
#PTT control through serial DTR signal
#RIG_PTT_SERIAL_RTS
#PTT control through serial RTS signal
#RIG_PTT_PARALLEL
#PTT control through parallel port
#RIG_PTT_RIG_MICDATA
#Legacy PTT, supports RIG_PTT_ON_MIC/RIG_PTT_ON_DATA
#RIG_PTT_CM108
#PTT control through CM108 GPIO pin
HAMLIB_PTT_TYPE = 'RIG_PTT_NONE'
#-------------------------
# FreeDV Defaults
FREEDV_RECEIVE = True