moved APRS to a per master config
This commit is contained in:
parent
1ba5db5f3c
commit
3912657bb6
|
@ -26,6 +26,9 @@ updated if the items in the main configuraiton file (usually hblink.cfg)
|
||||||
change.
|
change.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
# Added config option for APRS in the master config section
|
||||||
|
# Modified by KF7EEL - 10-15-2020
|
||||||
|
|
||||||
import configparser
|
import configparser
|
||||||
import sys
|
import sys
|
||||||
import const
|
import const
|
||||||
|
@ -259,6 +262,7 @@ def build_config(_config_file):
|
||||||
CONFIG['SYSTEMS'].update({section: {
|
CONFIG['SYSTEMS'].update({section: {
|
||||||
'MODE': config.get(section, 'MODE'),
|
'MODE': config.get(section, 'MODE'),
|
||||||
'ENABLED': config.getboolean(section, 'ENABLED'),
|
'ENABLED': config.getboolean(section, 'ENABLED'),
|
||||||
|
'APRS_ENABLED': config.getboolean(section, 'APRS_ENABLED'),
|
||||||
'REPEAT': config.getboolean(section, 'REPEAT'),
|
'REPEAT': config.getboolean(section, 'REPEAT'),
|
||||||
'MAX_PEERS': config.getint(section, 'MAX_PEERS'),
|
'MAX_PEERS': config.getint(section, 'MAX_PEERS'),
|
||||||
'IP': gethostbyname(config.get(section, 'IP')),
|
'IP': gethostbyname(config.get(section, 'IP')),
|
||||||
|
@ -331,3 +335,4 @@ if __name__ == '__main__':
|
||||||
return not _acl[0]
|
return not _acl[0]
|
||||||
|
|
||||||
print(acl_check(b'\x00\x01\x37', CONFIG['GLOBAL']['TG1_ACL']))
|
print(acl_check(b'\x00\x01\x37', CONFIG['GLOBAL']['TG1_ACL']))
|
||||||
|
|
||||||
|
|
|
@ -164,6 +164,7 @@ TGID_ACL: PERMIT:ALL
|
||||||
[MASTER-1]
|
[MASTER-1]
|
||||||
MODE: MASTER
|
MODE: MASTER
|
||||||
ENABLED: True
|
ENABLED: True
|
||||||
|
APRS_ENABLED: False
|
||||||
REPEAT: True
|
REPEAT: True
|
||||||
MAX_PEERS: 10
|
MAX_PEERS: 10
|
||||||
EXPORT_AMBE: False
|
EXPORT_AMBE: False
|
||||||
|
|
|
@ -27,6 +27,9 @@ works stand-alone before troubleshooting any applications that use it. It has
|
||||||
sufficient logging to be used standalone as a troubleshooting application.
|
sufficient logging to be used standalone as a troubleshooting application.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
# Added config option for APRS in the master config section. Will only send packets to APRS-IS if each master is enabled.
|
||||||
|
# Modified by KF7EEL - 10-15-2020
|
||||||
|
|
||||||
# Specifig functions from modules we need
|
# Specifig functions from modules we need
|
||||||
from binascii import b2a_hex as ahex
|
from binascii import b2a_hex as ahex
|
||||||
from binascii import a2b_hex as bhex
|
from binascii import a2b_hex as bhex
|
||||||
|
@ -482,7 +485,8 @@ class HBSYSTEM(DatagramProtocol):
|
||||||
and self._peers[_peer_id]['SOCKADDR'] == _sockaddr:
|
and self._peers[_peer_id]['SOCKADDR'] == _sockaddr:
|
||||||
logger.info('(%s) Peer is closing down: %s (%s)', self._system, self._peers[_peer_id]['CALLSIGN'], int_id(_peer_id))
|
logger.info('(%s) Peer is closing down: %s (%s)', self._system, self._peers[_peer_id]['CALLSIGN'], int_id(_peer_id))
|
||||||
self.transport.write(b''.join([MSTNAK, _peer_id]), _sockaddr)
|
self.transport.write(b''.join([MSTNAK, _peer_id]), _sockaddr)
|
||||||
if self._CONFIG['APRS']['ENABLED']:
|
#if self._CONFIG['APRS']['ENABLED']:
|
||||||
|
if self._config['APRS_ENABLED'] == True:
|
||||||
fn = 'nom_aprs'
|
fn = 'nom_aprs'
|
||||||
f = open(fn)
|
f = open(fn)
|
||||||
output = []
|
output = []
|
||||||
|
@ -523,7 +527,9 @@ class HBSYSTEM(DatagramProtocol):
|
||||||
#APRS IMPLEMENTATION
|
#APRS IMPLEMENTATION
|
||||||
conta = 0
|
conta = 0
|
||||||
lista_blocco=['ysf', 'xlx', 'nxdn', 'dstar', 'echolink','p25', 'svx']
|
lista_blocco=['ysf', 'xlx', 'nxdn', 'dstar', 'echolink','p25', 'svx']
|
||||||
if self._CONFIG['APRS']['ENABLED'] and not str(_this_peer['CALLSIGN'].decode('UTF-8')).replace(' ', '').isalpha() :
|
#if self._CONFIG['SYSTEMS']['APRS_ENABLED']['ENABLED'] and self._CONFIG['APRS']['ENABLED'] and not str(_this_peer['CALLSIGN'].decode('UTF-8')).replace(' ', '').isalpha() :
|
||||||
|
# Check if master has APRS enabled instead of global.
|
||||||
|
if self._config['APRS_ENABLED'] and not str(_this_peer['CALLSIGN'].decode('UTF-8')).replace(' ', '').isalpha() :
|
||||||
file = open("nom_aprs","r")
|
file = open("nom_aprs","r")
|
||||||
linee = file.readlines()
|
linee = file.readlines()
|
||||||
file.close()
|
file.close()
|
||||||
|
@ -624,9 +630,10 @@ class HBSYSTEM(DatagramProtocol):
|
||||||
rx_utile = dati[2][0:3]+'.'+dati[2][3:]
|
rx_utile = dati[2][0:3]+'.'+dati[2][3:]
|
||||||
tx_utile = dati[3][0:3]+'.'+dati[3][3:]
|
tx_utile = dati[3][0:3]+'.'+dati[3][3:]
|
||||||
|
|
||||||
|
# Modified latitude and longitude strings from original, kept getting "uncompressed location" error from aprs.fi. Also will add Color Code to status, not yet working.
|
||||||
AIS.sendall(str(dati[0])+">APRS,TCPIP*,qAC,"+str(self._CONFIG['APRS']['CALLSIGN'])+":!"+str(lat_utile)[:-2]+lat_verso+"/"+str(lon_utile)[:-1]+lon_verso+"r"+str(self._CONFIG['APRS']['MESSAGE'])+' RX: '+str(rx_utile)+' TX: '+str(tx_utile))
|
AIS.sendall(str(dati[0])+">APRS,TCPIP*,qAC,"+str(self._CONFIG['APRS']['CALLSIGN'])+":!"+str(lat_utile)[:7]+lat_verso+"/"+str(lon_utile)[:8]+lon_verso+"r"+str(self._CONFIG['APRS']['MESSAGE'])+' RX: '+str(rx_utile)[:8]+' TX: '+str(tx_utile)[:8]) # + ' CC: ' + str(_this_peer['COLORCODE']).decode('UTF-8'))
|
||||||
logging.info('APRS INVIATO')
|
#logging.info(str(dati[0])+">APRS,TCPIP*,qAC,"+str(self._CONFIG['APRS']['CALLSIGN'])+":!"+str(lat_utile)[:7]+lat_verso+"/"+str(lon_utile)[:8]+lon_verso+"r"+str(self._CONFIG['APRS']['MESSAGE'])+' RX: '+str(rx_utile)[:8]+' TX: '+str(tx_utile)[:8] + ' CC:' + str(_this_peer['COLORCODE']))
|
||||||
|
logging.info('APRS INVIATO / APRS Packet Sent')
|
||||||
|
|
||||||
if conta == 0:
|
if conta == 0:
|
||||||
if self._CONFIG['APRS']['REPORT_INTERVAL'] > 3:
|
if self._CONFIG['APRS']['REPORT_INTERVAL'] > 3:
|
||||||
|
@ -958,8 +965,10 @@ if __name__ == '__main__':
|
||||||
systems[system] = OPENBRIDGE(system, CONFIG, report_server)
|
systems[system] = OPENBRIDGE(system, CONFIG, report_server)
|
||||||
else:
|
else:
|
||||||
systems[system] = HBSYSTEM(system, CONFIG, report_server)
|
systems[system] = HBSYSTEM(system, CONFIG, report_server)
|
||||||
|
logger.info(CONFIG['SYSTEMS'][system]['APRS_ENABLED'])
|
||||||
reactor.listenUDP(CONFIG['SYSTEMS'][system]['PORT'], systems[system], interface=CONFIG['SYSTEMS'][system]['IP'])
|
reactor.listenUDP(CONFIG['SYSTEMS'][system]['PORT'], systems[system], interface=CONFIG['SYSTEMS'][system]['IP'])
|
||||||
logger.debug('(GLOBAL) %s instance created: %s, %s', CONFIG['SYSTEMS'][system]['MODE'], system, systems[system])
|
logger.debug('(GLOBAL) %s instance created: %s, %s', CONFIG['SYSTEMS'][system]['MODE'], system, systems[system])
|
||||||
|
|
||||||
reactor.run()
|
reactor.run()
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue