add igate functionality
This commit is contained in:
parent
54bcba195d
commit
5fab3e3d36
@ -254,3 +254,12 @@ temporary_directory = "/tmp"
|
||||
|
||||
services_enabled = False
|
||||
services_decoders = ["ft8", "ft4", "wspr", "packet"]
|
||||
|
||||
# === aprs igate settings ===
|
||||
# if you want to share your APRS decodes with the aprs network, configure these settings accordingly
|
||||
aprs_callsign = "N0CALL"
|
||||
aprs_igate_enabled = False
|
||||
aprs_igate_server = "euro.aprs2.net"
|
||||
aprs_igate_password = ""
|
||||
# beacon uses the receiver_gps setting, so if you enable this, make sure the location is correct there
|
||||
aprs_igate_beacon = False
|
||||
|
8
csdr.py
8
csdr.py
@ -26,7 +26,7 @@ import signal
|
||||
import threading
|
||||
from functools import partial
|
||||
|
||||
from owrx.kiss import KissClient
|
||||
from owrx.kiss import KissClient, DirewolfConfig
|
||||
from owrx.wsjt import Ft8Chopper, WsprChopper, Jt9Chopper, Jt65Chopper, Ft4Chopper
|
||||
|
||||
import logging
|
||||
@ -562,11 +562,7 @@ class dsp(object):
|
||||
self.direwolf_config = "{tmp_dir}/openwebrx_direwolf_{myid}.conf".format(tmp_dir=self.temporary_directory, myid=id(self))
|
||||
self.direwolf_port = KissClient.getFreePort()
|
||||
file = open(self.direwolf_config, "w")
|
||||
file.write("""
|
||||
MODEM 1200
|
||||
KISSPORT {port}
|
||||
AGWPORT off
|
||||
""".format(port=self.direwolf_port))
|
||||
file.write(DirewolfConfig().getConfig(self.direwolf_port))
|
||||
file.close()
|
||||
else:
|
||||
self.direwolf_config = None
|
||||
|
37
owrx/kiss.py
37
owrx/kiss.py
@ -2,6 +2,7 @@ import socket
|
||||
import time
|
||||
import logging
|
||||
import random
|
||||
from owrx.config import PropertyManager
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@ -11,6 +12,42 @@ TFEND = 0xDC
|
||||
TFESC = 0xDD
|
||||
|
||||
|
||||
class DirewolfConfig(object):
|
||||
def getConfig(self, port):
|
||||
pm = PropertyManager.getSharedInstance()
|
||||
|
||||
config = """
|
||||
MYCALL {callsign}
|
||||
MODEM 1200
|
||||
KISSPORT {port}
|
||||
AGWPORT off
|
||||
""".format(
|
||||
port=port,
|
||||
callsign=pm["aprs_callsign"],
|
||||
)
|
||||
|
||||
if pm["aprs_igate_enabled"]:
|
||||
config += """
|
||||
IGSERVER {server}
|
||||
IGLOGIN {callsign} {password}
|
||||
""".format(
|
||||
server=pm["aprs_igate_server"],
|
||||
callsign=pm["aprs_callsign"],
|
||||
password=pm["aprs_igate_password"],
|
||||
)
|
||||
|
||||
if pm["aprs_igate_beacon"]:
|
||||
(lat, lon) = pm["receiver_gps"]
|
||||
lat = "{0}^{1:.2f}{2}".format(int(lat), (lat - int(lat)) * 60, "N" if lat > 0 else "S")
|
||||
lon = "{0}^{1:.2f}{2}".format(int(lon), (lon - int(lon)) * 60, "E" if lon > 0 else "W")
|
||||
|
||||
config += """
|
||||
PBEACON sendto=IG delay=0:30 every=60:00 symbol="igate" overlay=R lat={lat} long={lon} comment="OpenWebRX APRS gateway"
|
||||
""".format(lat=lat, lon=lon)
|
||||
|
||||
return config
|
||||
|
||||
|
||||
class KissClient(object):
|
||||
@staticmethod
|
||||
def getFreePort():
|
||||
|
Loading…
Reference in New Issue
Block a user