mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
first hamlib integration
still only for development purposes.
This commit is contained in:
parent
7f1a502a81
commit
681fe6d8ac
47
modem.py
47
modem.py
|
@ -20,6 +20,8 @@ import helpers
|
||||||
import static
|
import static
|
||||||
import arq
|
import arq
|
||||||
|
|
||||||
|
import Hamlib
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -58,14 +60,51 @@ class RF():
|
||||||
)
|
)
|
||||||
#--------------------------------------------START DECODER THREAD
|
#--------------------------------------------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 = 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):
|
def transmit_arq_ack(self,ack_buffer):
|
||||||
#print(ack_buffer)
|
#print(ack_buffer)
|
||||||
static.ARQ_STATE = 'SENDING_ACK'
|
static.ARQ_STATE = 'SENDING_ACK'
|
||||||
static.PTT_STATE = True
|
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)
|
self.c_lib.freedv_open.restype = ctypes.POINTER(ctypes.c_ubyte)
|
||||||
freedv = self.c_lib.freedv_open(static.FREEDV_SIGNALLING_MODE)
|
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)
|
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.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.PTT_STATE = False
|
||||||
static.ARQ_STATE = 'RECEIVING_DATA'
|
static.ARQ_STATE = 'RECEIVING_DATA'
|
||||||
#--------------------------------------------------------------------------------------------------------
|
#--------------------------------------------------------------------------------------------------------
|
||||||
# GET ARQ BURST FRAME VOM BUFFER AND MODULATE IT
|
# GET ARQ BURST FRAME VOM BUFFER AND MODULATE IT
|
||||||
def transmit_arq_burst(self):
|
def transmit_arq_burst(self):
|
||||||
|
|
||||||
|
self.my_rig.set_ptt(self.hamlib_ptt_type,1)
|
||||||
static.PTT_STATE = True
|
static.PTT_STATE = True
|
||||||
static.ARQ_STATE = 'SENDING_DATA'
|
static.ARQ_STATE = 'SENDING_DATA'
|
||||||
|
|
||||||
|
@ -210,6 +252,7 @@ class RF():
|
||||||
static.ARQ_STATE = 'IDLE'
|
static.ARQ_STATE = 'IDLE'
|
||||||
#static.ARQ_STATE = 'RECEIVING_SIGNALLING'
|
#static.ARQ_STATE = 'RECEIVING_SIGNALLING'
|
||||||
static.PTT_STATE = False
|
static.PTT_STATE = False
|
||||||
|
self.my_rig.set_ptt(self.hamlib_ptt_type,0)
|
||||||
#--------------------------------------------------------------------------------------------------------
|
#--------------------------------------------------------------------------------------------------------
|
||||||
def receive(self,data_mode,signalling_mode):
|
def receive(self,data_mode,signalling_mode):
|
||||||
force = False
|
force = False
|
||||||
|
|
33
static.py
33
static.py
|
@ -19,6 +19,7 @@ MYGRID = b''
|
||||||
TNC_STATE = b'IDLE'
|
TNC_STATE = b'IDLE'
|
||||||
|
|
||||||
PTT_STATE = False
|
PTT_STATE = False
|
||||||
|
|
||||||
#---------------------------------
|
#---------------------------------
|
||||||
|
|
||||||
# Server Defaults
|
# Server Defaults
|
||||||
|
@ -26,6 +27,38 @@ HOST = "localhost"
|
||||||
PORT = 3000
|
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 Defaults
|
||||||
FREEDV_RECEIVE = True
|
FREEDV_RECEIVE = True
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue