Changed initial state values for some reporting variables. Cosmetic, but avoids unecessary tracabacks.

This commit is contained in:
Cort Buffington 2020-01-13 14:45:17 +00:00
parent ef4514b8e0
commit 58c84cf43a
2 changed files with 36 additions and 36 deletions

View File

@ -405,7 +405,7 @@ class routerHBP(HBSYSTEM):
1: { 1: {
'RX_START': time(), 'RX_START': time(),
'TX_START': time(), 'TX_START': time(),
'RX_SEQ': b'\x00', 'RX_SEQ': 0,
'RX_RFS': b'\x00', 'RX_RFS': b'\x00',
'TX_RFS': b'\x00', 'TX_RFS': b'\x00',
'RX_PEER': b'\x00', 'RX_PEER': b'\x00',
@ -431,7 +431,7 @@ class routerHBP(HBSYSTEM):
2: { 2: {
'RX_START': time(), 'RX_START': time(),
'TX_START': time(), 'TX_START': time(),
'RX_SEQ': b'\x00', 'RX_SEQ': 0,
'RX_RFS': b'\x00', 'RX_RFS': b'\x00',
'TX_RFS': b'\x00', 'TX_RFS': b'\x00',
'RX_PEER': b'\x00', 'RX_PEER': b'\x00',

View File

@ -71,24 +71,24 @@ __status__ = 'pre-alpha'
class bridgeallSYSTEM(HBSYSTEM): class bridgeallSYSTEM(HBSYSTEM):
def __init__(self, _name, _config, _report): def __init__(self, _name, _config, _report):
HBSYSTEM.__init__(self, _name, _config, _report) HBSYSTEM.__init__(self, _name, _config, _report)
self._laststrid = '' self._laststrid = ''
# Status information for the system, TS1 & TS2 # Status information for the system, TS1 & TS2
# 1 & 2 are "timeslot" # 1 & 2 are "timeslot"
self.STATUS = { self.STATUS = {
1: { 1: {
'RX_START': time(), 'RX_START': time(),
'RX_LOSS': 0, 'RX_LOSS': 0,
'RX_SEQ': '\x00', 'RX_SEQ': 0,
'RX_RFS': '\x00', 'RX_RFS': b'\x00',
'TX_RFS': '\x00', 'TX_RFS': b'\x00',
'RX_STREAM_ID': '\x00', 'RX_STREAM_ID': b'\x00',
'TX_STREAM_ID': '\x00', 'TX_STREAM_ID': b'\x00',
'RX_TGID': '\x00\x00\x00', 'RX_TGID': b'\x00\x00\x00',
'TX_TGID': '\x00\x00\x00', 'TX_TGID': b'\x00\x00\x00',
'RX_TIME': time(), 'RX_TIME': time(),
'TX_TIME': time(), 'TX_TIME': time(),
'RX_TYPE': const.HBPF_SLT_VTERM, 'RX_TYPE': const.HBPF_SLT_VTERM,
@ -96,13 +96,13 @@ class bridgeallSYSTEM(HBSYSTEM):
2: { 2: {
'RX_START': time(), 'RX_START': time(),
'RX:LOSS': 0, 'RX:LOSS': 0,
'RX_SEQ': '\x00', 'RX_SEQ': 0,
'RX_RFS': '\x00', 'RX_RFS': b'\x00',
'TX_RFS': '\x00', 'TX_RFS': b'\x00',
'RX_STREAM_ID': '\x00', 'RX_STREAM_ID': b'\x00',
'TX_STREAM_ID': '\x00', 'TX_STREAM_ID': b'\x00',
'RX_TGID': '\x00\x00\x00', 'RX_TGID': b'\x00\x00\x00',
'TX_TGID': '\x00\x00\x00', 'TX_TGID': b'\x00\x00\x00',
'RX_TIME': time(), 'RX_TIME': time(),
'TX_TIME': time(), 'TX_TIME': time(),
'RX_TYPE': const.HBPF_SLT_VTERM, 'RX_TYPE': const.HBPF_SLT_VTERM,
@ -115,10 +115,10 @@ class bridgeallSYSTEM(HBSYSTEM):
_bits = _data[15] _bits = _data[15]
if _call_type == 'group': if _call_type == 'group':
# Is this is a new call stream? # Is this is a new call stream?
new_stream = (_stream_id != self.STATUS[_slot]['RX_STREAM_ID']) new_stream = (_stream_id != self.STATUS[_slot]['RX_STREAM_ID'])
if new_stream: if new_stream:
self.STATUS[_slot]['RX_START'] = pkt_time self.STATUS[_slot]['RX_START'] = pkt_time
self.STATUS[_slot]['RX_LOSS'] = 0 self.STATUS[_slot]['RX_LOSS'] = 0
@ -130,20 +130,20 @@ class bridgeallSYSTEM(HBSYSTEM):
if _seq > (self.STATUS[_slot]['RX_SEQ'] + 1): if _seq > (self.STATUS[_slot]['RX_SEQ'] + 1):
#print(_seq, self.STATUS[_slot]['RX_SEQ']) #print(_seq, self.STATUS[_slot]['RX_SEQ'])
self.STATUS[_slot]['RX_LOSS'] += _seq - (self.STATUS[_slot]['RX_SEQ'] + 1) self.STATUS[_slot]['RX_LOSS'] += _seq - (self.STATUS[_slot]['RX_SEQ'] + 1)
# Final actions - Is this a voice terminator? # Final actions - Is this a voice terminator?
if (_frame_type == const.HBPF_DATA_SYNC) and (_dtype_vseq == const.HBPF_SLT_VTERM) and (self.STATUS[_slot]['RX_TYPE'] != const.HBPF_SLT_VTERM): if (_frame_type == const.HBPF_DATA_SYNC) and (_dtype_vseq == const.HBPF_SLT_VTERM) and (self.STATUS[_slot]['RX_TYPE'] != const.HBPF_SLT_VTERM):
call_duration = pkt_time - self.STATUS[_slot]['RX_START'] call_duration = pkt_time - self.STATUS[_slot]['RX_START']
logger.info('(%s) *CALL END* STREAM ID: %s SUB: %s (%s) PEER: %s (%s) TGID %s (%s), TS %s, Loss: %s, Duration: %s', \ logger.info('(%s) *CALL END* STREAM ID: %s SUB: %s (%s) PEER: %s (%s) TGID %s (%s), TS %s, Loss: %s, Duration: %s', \
self._system, int_id(_stream_id), get_alias(_rf_src, subscriber_ids), int_id(_rf_src), get_alias(_peer_id, peer_ids), int_id(_peer_id), get_alias(_dst_id, talkgroup_ids), int_id(_dst_id), _slot, self.STATUS[_slot]['RX_LOSS'], call_duration) self._system, int_id(_stream_id), get_alias(_rf_src, subscriber_ids), int_id(_rf_src), get_alias(_peer_id, peer_ids), int_id(_peer_id), get_alias(_dst_id, talkgroup_ids), int_id(_dst_id), _slot, self.STATUS[_slot]['RX_LOSS'], call_duration)
for _target in self._CONFIG['SYSTEMS']: for _target in self._CONFIG['SYSTEMS']:
if _target != self._system: if _target != self._system:
_target_status = systems[_target].STATUS _target_status = systems[_target].STATUS
_target_system = self._CONFIG['SYSTEMS'][_target] _target_system = self._CONFIG['SYSTEMS'][_target]
# BEGIN STANDARD CONTENTION HANDLING # BEGIN STANDARD CONTENTION HANDLING
# #
# The rules for each of the 4 "ifs" below are listed here for readability. The Frame To Send is: # The rules for each of the 4 "ifs" below are listed here for readability. The Frame To Send is:
@ -169,8 +169,8 @@ class bridgeallSYSTEM(HBSYSTEM):
if _frame_type == const.HBPF_DATA_SYNC and _dtype_vseq == const.HBPF_SLT_VHEAD and self.STATUS[_slot]['RX_STREAM_ID'] != _stream_id: if _frame_type == const.HBPF_DATA_SYNC and _dtype_vseq == const.HBPF_SLT_VHEAD and self.STATUS[_slot]['RX_STREAM_ID'] != _stream_id:
logger.info('(%s) Call not routed for subscriber %s, call route in progress on target: HBSystem: %s, TS: %s, TGID: %s, SUB: %s', self._system, int_id(_rf_src), _target, _slot, int_id(_target_status[_slot]['TX_TGID']), int_id(_target_status[_slot]['TX_RFS'])) logger.info('(%s) Call not routed for subscriber %s, call route in progress on target: HBSystem: %s, TS: %s, TGID: %s, SUB: %s', self._system, int_id(_rf_src), _target, _slot, int_id(_target_status[_slot]['TX_TGID']), int_id(_target_status[_slot]['TX_RFS']))
continue continue
# ACL Processing # ACL Processing
if self._CONFIG['GLOBAL']['USE_ACL']: if self._CONFIG['GLOBAL']['USE_ACL']:
if not acl_check(_rf_src, self._CONFIG['GLOBAL']['SUB_ACL']): if not acl_check(_rf_src, self._CONFIG['GLOBAL']['SUB_ACL']):
@ -204,7 +204,7 @@ class bridgeallSYSTEM(HBSYSTEM):
logger.info('(%s) CALL DROPPED ON EGRESS WITH STREAM ID %s ON TGID %s BY SYSTEM TS2 ACL', _target, int_id(_stream_id), int_id(_dst_id)) logger.info('(%s) CALL DROPPED ON EGRESS WITH STREAM ID %s ON TGID %s BY SYSTEM TS2 ACL', _target, int_id(_stream_id), int_id(_dst_id))
_target_status[_slot]['TX_STREAM_ID'] = _stream_id _target_status[_slot]['TX_STREAM_ID'] = _stream_id
continue continue
# Record this stuff for later # Record this stuff for later
# Is this a new call stream? # Is this a new call stream?
if new_stream: if new_stream:
@ -214,12 +214,12 @@ class bridgeallSYSTEM(HBSYSTEM):
_target_status[_slot]['TX_RFS'] = _rf_src _target_status[_slot]['TX_RFS'] = _rf_src
_target_status[_slot]['TX_PEER'] = _peer_id _target_status[_slot]['TX_PEER'] = _peer_id
_target_status[_slot]['TX_STREAM_ID'] = _stream_id _target_status[_slot]['TX_STREAM_ID'] = _stream_id
_target_status[_slot]['TX_TIME'] = pkt_time _target_status[_slot]['TX_TIME'] = pkt_time
systems[_target].send_system(_data) systems[_target].send_system(_data)
#logger.debug('(%s) Packet routed to system: %s', self._system, _target) #logger.debug('(%s) Packet routed to system: %s', self._system, _target)
# Mark status variables for use later # Mark status variables for use later
self.STATUS[_slot]['RX_RFS'] = _rf_src self.STATUS[_slot]['RX_RFS'] = _rf_src
self.STATUS[_slot]['RX_SEQ'] = _seq self.STATUS[_slot]['RX_SEQ'] = _seq
@ -227,7 +227,7 @@ class bridgeallSYSTEM(HBSYSTEM):
self.STATUS[_slot]['RX_TGID'] = _dst_id self.STATUS[_slot]['RX_TGID'] = _dst_id
self.STATUS[_slot]['RX_TIME'] = pkt_time self.STATUS[_slot]['RX_TIME'] = pkt_time
self.STATUS[_slot]['RX_STREAM_ID'] = _stream_id self.STATUS[_slot]['RX_STREAM_ID'] = _stream_id
#************************************************ #************************************************
# MAIN PROGRAM LOOP STARTS HERE # MAIN PROGRAM LOOP STARTS HERE
@ -239,7 +239,7 @@ if __name__ == '__main__':
import os import os
import signal import signal
from dmr_utils3.utils import try_download, mk_id_dict from dmr_utils3.utils import try_download, mk_id_dict
# Change the current directory to the location of the application # Change the current directory to the location of the application
os.chdir(os.path.dirname(os.path.realpath(sys.argv[0]))) os.chdir(os.path.dirname(os.path.realpath(sys.argv[0])))
@ -255,21 +255,21 @@ 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)
# 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
logger = log.config_logging(CONFIG['LOGGER']) logger = log.config_logging(CONFIG['LOGGER'])
logger.info('\n\nCopyright (c) 2013, 2014, 2015, 2016, 2018, 2019\n\tThe Regents of the K0USY Group. All rights reserved.\n') logger.info('\n\nCopyright (c) 2013, 2014, 2015, 2016, 2018, 2019\n\tThe Regents of the K0USY Group. All rights reserved.\n')
logger.debug('Logging system started, anything from here on gets logged') logger.debug('Logging system started, anything from here on gets logged')
# Set up the signal handler # Set up the signal handler
def sig_handler(_signal, _frame): def sig_handler(_signal, _frame):
logger.info('SHUTDOWN: BRIDGE_ALL IS TERMINATING WITH SIGNAL %s', str(_signal)) logger.info('SHUTDOWN: BRIDGE_ALL IS TERMINATING WITH SIGNAL %s', str(_signal))
hblink_handler(_signal, _frame) hblink_handler(_signal, _frame)
logger.info('SHUTDOWN: ALL SYSTEM HANDLERS EXECUTED - STOPPING REACTOR') logger.info('SHUTDOWN: ALL SYSTEM HANDLERS EXECUTED - STOPPING REACTOR')
reactor.stop() reactor.stop()
# Set signal handers so that we can gracefully exit if need be # Set signal handers so that we can gracefully exit if need be
for sig in [signal.SIGTERM, signal.SIGINT]: for sig in [signal.SIGTERM, signal.SIGINT]:
signal.signal(sig, sig_handler) signal.signal(sig, sig_handler)