moved config to file
This commit is contained in:
parent
84dee59b37
commit
0056e1e09e
17
config.py
17
config.py
@ -106,6 +106,7 @@ def build_config(_config_file):
|
|||||||
CONFIG['GLOBAL'] = {}
|
CONFIG['GLOBAL'] = {}
|
||||||
CONFIG['REPORTS'] = {}
|
CONFIG['REPORTS'] = {}
|
||||||
CONFIG['LOGGER'] = {}
|
CONFIG['LOGGER'] = {}
|
||||||
|
CONFIG['GPS_DATA'] = {}
|
||||||
CONFIG['ALIASES'] = {}
|
CONFIG['ALIASES'] = {}
|
||||||
CONFIG['SYSTEMS'] = {}
|
CONFIG['SYSTEMS'] = {}
|
||||||
|
|
||||||
@ -141,6 +142,20 @@ def build_config(_config_file):
|
|||||||
if not CONFIG['LOGGER']['LOG_FILE']:
|
if not CONFIG['LOGGER']['LOG_FILE']:
|
||||||
CONFIG['LOGGER']['LOG_FILE'] = '/dev/null'
|
CONFIG['LOGGER']['LOG_FILE'] = '/dev/null'
|
||||||
|
|
||||||
|
elif section == 'GPS_DATA':
|
||||||
|
CONFIG['GPS_DATA'].update({
|
||||||
|
'DATA_DMR_ID': config.get(section, 'DATA_DMR_ID'),
|
||||||
|
'USER_APRS_SSID': config.get(section, 'USER_APRS_SSID'),
|
||||||
|
'CALL_TYPE': config.get(section, 'CALL_TYPE'),
|
||||||
|
'USER_APRS_COMMENT': config.get(section, 'USER_APRS_COMMENT'),
|
||||||
|
'APRS_LOGIN_CALL': config.get(section, 'APRS_LOGIN_CALL'),
|
||||||
|
'APRS_LOGIN_PASSCODE': config.get(section, 'APRS_LOGIN_PASSCODE'),
|
||||||
|
'APRS_SERVER': config.get(section, 'APRS_SERVER'),
|
||||||
|
'APRS_PORT': config.get(section, 'APRS_PORT'),
|
||||||
|
})
|
||||||
|
if not CONFIG['LOGGER']['LOG_FILE']:
|
||||||
|
CONFIG['LOGGER']['LOG_FILE'] = '/dev/null'
|
||||||
|
|
||||||
elif section == 'ALIASES':
|
elif section == 'ALIASES':
|
||||||
CONFIG['ALIASES'].update({
|
CONFIG['ALIASES'].update({
|
||||||
'TRY_DOWNLOAD': config.getboolean(section, 'TRY_DOWNLOAD'),
|
'TRY_DOWNLOAD': config.getboolean(section, 'TRY_DOWNLOAD'),
|
||||||
@ -182,7 +197,7 @@ def build_config(_config_file):
|
|||||||
'SOFTWARE_ID': bytes(config.get(section, 'SOFTWARE_ID').ljust(40)[:40], 'utf-8'),
|
'SOFTWARE_ID': bytes(config.get(section, 'SOFTWARE_ID').ljust(40)[:40], 'utf-8'),
|
||||||
'PACKAGE_ID': bytes(config.get(section, 'PACKAGE_ID').ljust(40)[:40], 'utf-8'),
|
'PACKAGE_ID': bytes(config.get(section, 'PACKAGE_ID').ljust(40)[:40], 'utf-8'),
|
||||||
'GROUP_HANGTIME': config.getint(section, 'GROUP_HANGTIME'),
|
'GROUP_HANGTIME': config.getint(section, 'GROUP_HANGTIME'),
|
||||||
'OPTIONS': b''.join([b'Type=HBlink;', bytes(config.get(section, 'OPTIONS'), 'utf-8')]),
|
'OPTIONS': bytes(config.get(section, 'OPTIONS'), 'utf-8'),
|
||||||
'USE_ACL': config.getboolean(section, 'USE_ACL'),
|
'USE_ACL': config.getboolean(section, 'USE_ACL'),
|
||||||
'SUB_ACL': config.get(section, 'SUB_ACL'),
|
'SUB_ACL': config.get(section, 'SUB_ACL'),
|
||||||
'TG1_ACL': config.get(section, 'TGID_TS1_ACL'),
|
'TG1_ACL': config.get(section, 'TGID_TS1_ACL'),
|
||||||
|
235
gps_data-SAMPLE.cfg
Normal file
235
gps_data-SAMPLE.cfg
Normal file
@ -0,0 +1,235 @@
|
|||||||
|
# PROGRAM-WIDE PARAMETERS GO HERE
|
||||||
|
# PATH - working path for files, leave it alone unless you NEED to change it
|
||||||
|
# PING_TIME - the interval that peers will ping the master, and re-try registraion
|
||||||
|
# - how often the Master maintenance loop runs
|
||||||
|
# MAX_MISSED - how many pings are missed before we give up and re-register
|
||||||
|
# - number of times the master maintenance loop runs before de-registering a peer
|
||||||
|
#
|
||||||
|
# ACLs:
|
||||||
|
#
|
||||||
|
# Access Control Lists are a very powerful tool for administering your system.
|
||||||
|
# But they consume packet processing time. Disable them if you are not using them.
|
||||||
|
# But be aware that, as of now, the configuration stanzas still need the ACL
|
||||||
|
# sections configured even if you're not using them.
|
||||||
|
#
|
||||||
|
# REGISTRATION ACLS ARE ALWAYS USED, ONLY SUBSCRIBER AND TGID MAY BE DISABLED!!!
|
||||||
|
#
|
||||||
|
# The 'action' May be PERMIT|DENY
|
||||||
|
# Each entry may be a single radio id, or a hypenated range (e.g. 1-2999)
|
||||||
|
# Format:
|
||||||
|
# ACL = 'action:id|start-end|,id|start-end,....'
|
||||||
|
# --for example--
|
||||||
|
# SUB_ACL: DENY:1,1000-2000,4500-60000,17
|
||||||
|
#
|
||||||
|
# ACL Types:
|
||||||
|
# REG_ACL: peer radio IDs for registration (only used on HBP master systems)
|
||||||
|
# SUB_ACL: subscriber IDs for end-users
|
||||||
|
# TGID_TS1_ACL: destination talkgroup IDs on Timeslot 1
|
||||||
|
# TGID_TS2_ACL: destination talkgroup IDs on Timeslot 2
|
||||||
|
#
|
||||||
|
# ACLs may be repeated for individual systems if needed for granularity
|
||||||
|
# Global ACLs will be processed BEFORE the system level ACLs
|
||||||
|
# Packets will be matched against all ACLs, GLOBAL first. If a packet 'passes'
|
||||||
|
# All elements, processing continues. Packets are discarded at the first
|
||||||
|
# negative match, or 'reject' from an ACL element.
|
||||||
|
#
|
||||||
|
# If you do not wish to use ACLs, set them to 'PERMIT:ALL'
|
||||||
|
# TGID_TS1_ACL in the global stanza is used for OPENBRIDGE systems, since all
|
||||||
|
# traffic is passed as TS 1 between OpenBridges
|
||||||
|
[GLOBAL]
|
||||||
|
PATH: ./
|
||||||
|
PING_TIME: 5
|
||||||
|
MAX_MISSED: 3
|
||||||
|
USE_ACL: True
|
||||||
|
REG_ACL: PERMIT:ALL
|
||||||
|
SUB_ACL: DENY:1
|
||||||
|
TGID_TS1_ACL: PERMIT:ALL
|
||||||
|
TGID_TS2_ACL: PERMIT:ALL
|
||||||
|
|
||||||
|
|
||||||
|
# NOT YET WORKING: NETWORK REPORTING CONFIGURATION
|
||||||
|
# Enabling "REPORT" will configure a socket-based reporting
|
||||||
|
# system that will send the configuration and other items
|
||||||
|
# to a another process (local or remote) that may process
|
||||||
|
# the information for some useful purpose, like a web dashboard.
|
||||||
|
#
|
||||||
|
# REPORT - True to enable, False to disable
|
||||||
|
# REPORT_INTERVAL - Seconds between reports
|
||||||
|
# REPORT_PORT - TCP port to listen on if "REPORT_NETWORKS" = NETWORK
|
||||||
|
# REPORT_CLIENTS - comma separated list of IPs you will allow clients
|
||||||
|
# to connect on. Entering a * will allow all.
|
||||||
|
#
|
||||||
|
# ****FOR NOW MUST BE TRUE - USE THE LOOPBACK IF YOU DON'T USE THIS!!!****
|
||||||
|
[REPORTS]
|
||||||
|
REPORT: True
|
||||||
|
REPORT_INTERVAL: 60
|
||||||
|
REPORT_PORT: 4321
|
||||||
|
REPORT_CLIENTS: 127.0.0.1
|
||||||
|
|
||||||
|
|
||||||
|
# SYSTEM LOGGER CONFIGURAITON
|
||||||
|
# This allows the logger to be configured without chaning the individual
|
||||||
|
# python logger stuff. LOG_FILE should be a complete path/filename for *your*
|
||||||
|
# system -- use /dev/null for non-file handlers.
|
||||||
|
# LOG_HANDLERS may be any of the following, please, no spaces in the
|
||||||
|
# list if you use several:
|
||||||
|
# null
|
||||||
|
# console
|
||||||
|
# console-timed
|
||||||
|
# file
|
||||||
|
# file-timed
|
||||||
|
# syslog
|
||||||
|
# LOG_LEVEL may be any of the standard syslog logging levels, though
|
||||||
|
# as of now, DEBUG, INFO, WARNING and CRITICAL are the only ones
|
||||||
|
# used.
|
||||||
|
#
|
||||||
|
[LOGGER]
|
||||||
|
LOG_FILE: /tmp/gps_data.log
|
||||||
|
LOG_HANDLERS: console-timed
|
||||||
|
LOG_LEVEL: DEBUG
|
||||||
|
LOG_NAME: HBlink3 GPS/Data
|
||||||
|
|
||||||
|
# DOWNLOAD AND IMPORT SUBSCRIBER, PEER and TGID ALIASES
|
||||||
|
# Ok, not the TGID, there's no master list I know of to download
|
||||||
|
# This is intended as a facility for other applcations built on top of
|
||||||
|
# HBlink to use, and will NOT be used in HBlink directly.
|
||||||
|
# STALE_DAYS is the number of days since the last download before we
|
||||||
|
# download again. Don't be an ass and change this to less than a few days.
|
||||||
|
[ALIASES]
|
||||||
|
TRY_DOWNLOAD: True
|
||||||
|
PATH: ./
|
||||||
|
PEER_FILE: peer_ids.json
|
||||||
|
SUBSCRIBER_FILE: subscriber_ids.json
|
||||||
|
TGID_FILE: talkgroup_ids.json
|
||||||
|
PEER_URL: https://www.radioid.net/static/rptrs.json
|
||||||
|
SUBSCRIBER_URL: https://www.radioid.net/static/users.json
|
||||||
|
STALE_DAYS: 1
|
||||||
|
|
||||||
|
# GPS/Data Application - by KF7EEL
|
||||||
|
# Configure the settings for the DMR GPS to APRS position application here.
|
||||||
|
#
|
||||||
|
# DATA_DMR_ID - This is the DMR ID that users send DMR GPS data.
|
||||||
|
# CALL_TYPE - gorup or unit. Group if you want users to send data to a talk group,
|
||||||
|
# unit if you want users to send data as a private call.
|
||||||
|
# USER_APRS_SSID - Default APRS SSID assigned to user APRS positions.
|
||||||
|
# USER_APRS_COMMENT - Default Comment attached to user APRS positions.
|
||||||
|
# APRS_LOGIN_CALL, PASSCODE, SERVER, and PORT - Login settings for APRS-IS.
|
||||||
|
[GPS_DATA]
|
||||||
|
DATA_DMR_ID: 9099
|
||||||
|
CALL_TYPE: unit
|
||||||
|
USER_APRS_SSID: 15
|
||||||
|
USER_APRS_COMMENT: HBLink3 GPS Decode -
|
||||||
|
APRS_LOGIN_CALL: N0CALL
|
||||||
|
APRS_LOGIN_PASSCODE: 12345
|
||||||
|
APRS_SERVER: rotate.aprs2.net
|
||||||
|
APRS_PORT: 14580
|
||||||
|
|
||||||
|
|
||||||
|
# OPENBRIDGE INSTANCES - DUPLICATE SECTION FOR MULTIPLE CONNECTIONS
|
||||||
|
# OpenBridge is a protocol originall created by DMR+ for connection between an
|
||||||
|
# IPSC2 server and Brandmeister. It has been implemented here at the suggestion
|
||||||
|
# of the Brandmeister team as a way to legitimately connect HBlink to the
|
||||||
|
# Brandemiester network.
|
||||||
|
# It is recommended to name the system the ID of the Brandmeister server that
|
||||||
|
# it connects to, but is not necessary. TARGET_IP and TARGET_PORT are of the
|
||||||
|
# Brandmeister or IPSC2 server you are connecting to. PASSPHRASE is the password
|
||||||
|
# that must be agreed upon between you and the operator of the server you are
|
||||||
|
# connecting to. NETWORK_ID is a number in the format of a DMR Radio ID that
|
||||||
|
# will be sent to the other server to identify this connection.
|
||||||
|
# other parameters follow the other system types.
|
||||||
|
#
|
||||||
|
# ACLs:
|
||||||
|
# OpenBridge does not 'register', so registration ACL is meaningless.
|
||||||
|
# Proper OpenBridge passes all traffic on TS1.
|
||||||
|
# HBlink can extend OPB to use both slots for unit calls only.
|
||||||
|
# Setting "BOTH_SLOTS" True ONLY affects unit traffic!
|
||||||
|
# Otherwise ACLs work as described in the global stanza
|
||||||
|
|
||||||
|
##[OBP-1]
|
||||||
|
##MODE: OPENBRIDGE
|
||||||
|
##ENABLED: True
|
||||||
|
##IP:
|
||||||
|
##PORT: 62035
|
||||||
|
##NETWORK_ID: 3129100
|
||||||
|
##PASSPHRASE: password
|
||||||
|
##TARGET_IP: 1.2.3.4
|
||||||
|
##TARGET_PORT: 62035
|
||||||
|
##BOTH_SLOTS: True
|
||||||
|
##USE_ACL: True
|
||||||
|
##SUB_ACL: DENY:1
|
||||||
|
##TGID_ACL: PERMIT:ALL
|
||||||
|
|
||||||
|
# MASTER INSTANCES - DUPLICATE SECTION FOR MULTIPLE MASTERS
|
||||||
|
# HomeBrew Protocol Master instances go here.
|
||||||
|
# IP may be left blank if there's one interface on your system.
|
||||||
|
# Port should be the port you want this master to listen on. It must be unique
|
||||||
|
# and unused by anything else.
|
||||||
|
# Repeat - if True, the master repeats traffic to peers, False, it does nothing.
|
||||||
|
#
|
||||||
|
# MAX_PEERS -- maximun number of peers that may be connect to this master
|
||||||
|
# at any given time. This is very handy if you're allowing hotspots to
|
||||||
|
# connect, or using a limited computer like a Raspberry Pi.
|
||||||
|
#
|
||||||
|
# ACLs:
|
||||||
|
# See comments in the GLOBAL stanza
|
||||||
|
[MASTER-1]
|
||||||
|
MODE: MASTER
|
||||||
|
ENABLED: False
|
||||||
|
REPEAT: True
|
||||||
|
MAX_PEERS: 10
|
||||||
|
EXPORT_AMBE: False
|
||||||
|
IP:
|
||||||
|
PORT: 54000
|
||||||
|
PASSPHRASE: password
|
||||||
|
GROUP_HANGTIME: 5
|
||||||
|
USE_ACL: True
|
||||||
|
REG_ACL: DENY:1
|
||||||
|
SUB_ACL: DENY:1
|
||||||
|
TGID_TS1_ACL: PERMIT:ALL
|
||||||
|
TGID_TS2_ACL: PERMIT:ALL
|
||||||
|
|
||||||
|
# PEER INSTANCES - DUPLICATE SECTION FOR MULTIPLE PEERS
|
||||||
|
# There are a LOT of errors in the HB Protocol specifications on this one!
|
||||||
|
# MOST of these items are just strings and will be properly dealt with by the program
|
||||||
|
# The TX & RX Frequencies are 9-digit numbers, and are the frequency in Hz.
|
||||||
|
# Latitude is an 8-digit unsigned floating point number.
|
||||||
|
# Longitude is a 9-digit signed floating point number.
|
||||||
|
# Height is in meters
|
||||||
|
# Setting Loose to True relaxes the validation on packets received from the master.
|
||||||
|
# This will allow HBlink to connect to a non-compliant system such as XLXD, DMR+ etc.
|
||||||
|
#
|
||||||
|
# ACLs:
|
||||||
|
# See comments in the GLOBAL stanza
|
||||||
|
|
||||||
|
[PEER-1]
|
||||||
|
MODE: PEER
|
||||||
|
ENABLED: True
|
||||||
|
LOOSE: True
|
||||||
|
EXPORT_AMBE: False
|
||||||
|
IP:
|
||||||
|
PORT: 54002
|
||||||
|
MASTER_IP: 10.10.10.105
|
||||||
|
MASTER_PORT: 54070
|
||||||
|
PASSPHRASE: passw0rd
|
||||||
|
CALLSIGN: GPS
|
||||||
|
RADIO_ID: 9099
|
||||||
|
RX_FREQ: 000000000
|
||||||
|
TX_FREQ: 000000000
|
||||||
|
TX_POWER: 0
|
||||||
|
COLORCODE: 1
|
||||||
|
SLOTS: 1
|
||||||
|
LATITUDE: 47.0000
|
||||||
|
LONGITUDE: -120.0000
|
||||||
|
HEIGHT: 0
|
||||||
|
LOCATION: Somewhere, Cool
|
||||||
|
DESCRIPTION: GPS to APRS
|
||||||
|
URL: www.github.com/kf7eel/hblink3
|
||||||
|
SOFTWARE_ID: 20170620
|
||||||
|
PACKAGE_ID: MMDVM_HBlink
|
||||||
|
GROUP_HANGTIME: 5
|
||||||
|
OPTIONS:
|
||||||
|
USE_ACL: True
|
||||||
|
SUB_ACL: DENY:1
|
||||||
|
TGID_TS1_ACL: PERMIT:ALL
|
||||||
|
TGID_TS2_ACL: PERMIT:ALL
|
||||||
|
|
38
gps_data.py
38
gps_data.py
@ -75,21 +75,6 @@ __status__ = 'pre-alpha'
|
|||||||
# Must have the following at line 1054 in bridge.py to forward group vcsbk, also there is a typo there:
|
# Must have the following at line 1054 in bridge.py to forward group vcsbk, also there is a typo there:
|
||||||
# self.group_received(_peer_id, _rf_src, _dst_id, _seq, _slot, _frame_type, _dtype_vseq, _stream_id, _data)
|
# self.group_received(_peer_id, _rf_src, _dst_id, _seq, _slot, _frame_type, _dtype_vseq, _stream_id, _data)
|
||||||
|
|
||||||
############################# Configuration Variables - Change these #############################
|
|
||||||
# DMR ID for GPS and data
|
|
||||||
data_id = 9099
|
|
||||||
|
|
||||||
# Group call or Unit (private) call
|
|
||||||
call_type = 'unit'
|
|
||||||
# APRS-IS login information
|
|
||||||
aprs_callsign = 'N0CALL'
|
|
||||||
aprs_passcode = 12345
|
|
||||||
aprs_server = 'rotate.aprs2.net'
|
|
||||||
aprs_port = 14580
|
|
||||||
user_ssid = '15'
|
|
||||||
aprs_comment = 'HBLink3 GPS Decoder - '
|
|
||||||
|
|
||||||
|
|
||||||
##################################################################################################
|
##################################################################################################
|
||||||
|
|
||||||
# Headers for GPS by model of radio:
|
# Headers for GPS by model of radio:
|
||||||
@ -178,10 +163,10 @@ class DATA_SYSTEM(HBSYSTEM):
|
|||||||
sms_hex = str(ba2hx(bitarray(re.sub("\)|\(|bitarray|'", '', packet_assembly))))
|
sms_hex = str(ba2hx(bitarray(re.sub("\)|\(|bitarray|'", '', packet_assembly))))
|
||||||
#NMEA GPS sentence
|
#NMEA GPS sentence
|
||||||
if '$GPRMC' in final_packet:
|
if '$GPRMC' in final_packet:
|
||||||
logger.info(final_packet + '\n')
|
#logger.info(final_packet + '\n')
|
||||||
nmea_parse = re.sub('A\*.*|.*\$', '', str(final_packet))
|
nmea_parse = re.sub('A\*.*|.*\$', '', str(final_packet))
|
||||||
loc = pynmea2.parse(nmea_parse, check=False)
|
loc = pynmea2.parse(nmea_parse, check=False)
|
||||||
logger.info('Latitude: ' + str(loc.lat) + str(loc.lat_dir) + ' Longitude: ' + str(loc.lon) + str(loc.lon_dir) + ' Direction: ' + str(loc.true_course) + ' Speed: ' + str(loc.spd_over_grnd))
|
logger.info('Latitude: ' + str(loc.lat) + str(loc.lat_dir) + ' Longitude: ' + str(loc.lon) + str(loc.lon_dir) + ' Direction: ' + str(loc.true_course) + ' Speed: ' + str(loc.spd_over_grnd) + '\n')
|
||||||
# Begin APRS format and upload
|
# Begin APRS format and upload
|
||||||
## aprs_loc_packet = str(get_alias(int_id(_rf_src), subscriber_ids)) + '-' + str(user_ssid) + '>APRS,TCPIP*:/' + str(datetime.datetime.utcnow().strftime("%H%M%Sh")) + str(final_packet[29:36]) + str(final_packet[39]) + '/' + str(re.sub(',', '', final_packet[41:49])) + str(final_packet[52]) + '[/' + aprs_comment + ' DMR ID: ' + str(int_id(_rf_src))
|
## aprs_loc_packet = str(get_alias(int_id(_rf_src), subscriber_ids)) + '-' + str(user_ssid) + '>APRS,TCPIP*:/' + str(datetime.datetime.utcnow().strftime("%H%M%Sh")) + str(final_packet[29:36]) + str(final_packet[39]) + '/' + str(re.sub(',', '', final_packet[41:49])) + str(final_packet[52]) + '[/' + aprs_comment + ' DMR ID: ' + str(int_id(_rf_src))
|
||||||
aprs_loc_packet = str(get_alias(int_id(_rf_src), subscriber_ids)) + '-' + str(user_ssid) + '>APRS,TCPIP*:/' + str(datetime.datetime.utcnow().strftime("%H%M%Sh")) + str(loc.lat[0:7]) + str(loc.lat_dir) + '/' + str(loc.lon[0:8]) + str(loc.lon_dir) + '[/' + aprs_comment + ' DMR ID: ' + str(int_id(_rf_src))
|
aprs_loc_packet = str(get_alias(int_id(_rf_src), subscriber_ids)) + '-' + str(user_ssid) + '>APRS,TCPIP*:/' + str(datetime.datetime.utcnow().strftime("%H%M%Sh")) + str(loc.lat[0:7]) + str(loc.lat_dir) + '/' + str(loc.lon[0:8]) + str(loc.lon_dir) + '[/' + aprs_comment + ' DMR ID: ' + str(int_id(_rf_src))
|
||||||
@ -200,14 +185,14 @@ class DATA_SYSTEM(HBSYSTEM):
|
|||||||
# End APRS-IS upload
|
# End APRS-IS upload
|
||||||
# Assume this is an SMS message
|
# Assume this is an SMS message
|
||||||
if '$GPRMC' not in final_packet:
|
if '$GPRMC' not in final_packet:
|
||||||
logger.info(final_packet)
|
#logger.info(final_packet)
|
||||||
sms = codecs.decode(bytes.fromhex(''.join(sms_hex[74:-8].split('00'))), 'utf-8')
|
sms = codecs.decode(bytes.fromhex(''.join(sms_hex[74:-8].split('00'))), 'utf-8')
|
||||||
logger.info('Received SMS from ' + str(get_alias(int_id(_rf_src), subscriber_ids)) + ', DMR ID: ' + str(int_id(_rf_src)) + ': ' + str(sms))
|
logger.info('\n' + 'Received SMS from ' + str(get_alias(int_id(_rf_src), subscriber_ids)) + ', DMR ID: ' + str(int_id(_rf_src)) + ': ' + str(sms) + '\n')
|
||||||
# Reset the packet assembly to prevent old data from returning.
|
# Reset the packet assembly to prevent old data from returning.
|
||||||
packet_assembly = ''
|
packet_assembly = ''
|
||||||
#logger.info(_seq)
|
#logger.info(_seq)
|
||||||
#logger.info(_dtype_vseq)
|
#logger.info(_dtype_vseq)
|
||||||
logger.info(ahex(bptc_decode(_data)).decode('utf-8', 'ignore'))
|
#logger.info(ahex(bptc_decode(_data)).decode('utf-8', 'ignore'))
|
||||||
#logger.info(bitarray(re.sub("\)|\(|bitarray|'", '', str(bptc_decode(_data)).tobytes().decode('utf-8', 'ignore'))))
|
#logger.info(bitarray(re.sub("\)|\(|bitarray|'", '', str(bptc_decode(_data)).tobytes().decode('utf-8', 'ignore'))))
|
||||||
|
|
||||||
else:
|
else:
|
||||||
@ -219,6 +204,7 @@ class DATA_SYSTEM(HBSYSTEM):
|
|||||||
#************************************************
|
#************************************************
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
#global aprs_callsign, aprs_passcode, aprs_server, aprs_port, user_ssid, aprs_comment, call_type, data_id
|
||||||
import argparse
|
import argparse
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
@ -241,6 +227,18 @@ if __name__ == '__main__':
|
|||||||
# Call the external routine to build the configuration dictionary
|
# Call the external routine to build the configuration dictionary
|
||||||
CONFIG = config.build_config(cli_args.CONFIG_FILE)
|
CONFIG = config.build_config(cli_args.CONFIG_FILE)
|
||||||
|
|
||||||
|
data_id = int(CONFIG['GPS_DATA']['DATA_DMR_ID'])
|
||||||
|
|
||||||
|
# Group call or Unit (private) call
|
||||||
|
call_type = CONFIG['GPS_DATA']['CALL_TYPE']
|
||||||
|
# APRS-IS login information
|
||||||
|
aprs_callsign = CONFIG['GPS_DATA']['APRS_LOGIN_CALL']
|
||||||
|
aprs_passcode = int(CONFIG['GPS_DATA']['APRS_LOGIN_PASSCODE'])
|
||||||
|
aprs_server = CONFIG['GPS_DATA']['APRS_SERVER']
|
||||||
|
aprs_port = int(CONFIG['GPS_DATA']['APRS_PORT'])
|
||||||
|
user_ssid = CONFIG['GPS_DATA']['USER_APRS_SSID']
|
||||||
|
aprs_comment = CONFIG['GPS_DATA']['USER_APRS_COMMENT']
|
||||||
|
|
||||||
# Start the system logger
|
# Start the system logger
|
||||||
if cli_args.LOG_LEVEL:
|
if cli_args.LOG_LEVEL:
|
||||||
CONFIG['LOGGER']['LOG_LEVEL'] = cli_args.LOG_LEVEL
|
CONFIG['LOGGER']['LOG_LEVEL'] = cli_args.LOG_LEVEL
|
||||||
|
Loading…
Reference in New Issue
Block a user