From 53d7472fa69ddafd239c5436435f1ce96c30318d Mon Sep 17 00:00:00 2001 From: Cort Buffington Date: Fri, 13 Dec 2013 12:07:18 -0600 Subject: [PATCH] See Detailed Description MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made some changes to better stabilize where dmrlink.py looks for the csv files… not perfect, but better. Expect more changes. Have waffled back and forth on how to handle peers we lose contact with… de-reg for sure, but ignore them, or try forever (until we get a peer list without them from the master) to re-register with the peer? Settled on trying forever, but will add code to request a new peer-list every few hours. --- dmrlink.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/dmrlink.py b/dmrlink.py index d466ff8..547d15e 100755 --- a/dmrlink.py +++ b/dmrlink.py @@ -12,6 +12,7 @@ import ConfigParser import sys import binascii import csv +import os from hmac import new as hmac_new from binascii import b2a_hex as h @@ -51,12 +52,13 @@ except ImportError: # Import the Alias files for numeric ids. This is split to save # time making lookups in one huge dictionary # +curdir= os.path.dirname(__file__) subscriber_ids = {} peer_ids = {} talkgroup_ids = {} try: - with open('./subscriber_ids.csv', 'rU') as subscriber_ids_csv: + with open(curdir+'/subscriber_ids.csv', 'rU') as subscriber_ids_csv: subscribers = csv.reader(subscriber_ids_csv, dialect='excel', delimiter=',') for row in subscribers: subscriber_ids[int(row[1])] = (row[0]) @@ -64,7 +66,7 @@ except ImportError: logger.warning('subscriber_ids.csv not found: Subscriber aliases will not be available') try: - with open('./peer_ids.csv', 'rU') as peer_ids_csv: + with open(curdir+'/peer_ids.csv', 'rU') as peer_ids_csv: peers = csv.reader(peer_ids_csv, dialect='excel', delimiter=',') for row in peers: peer_ids[int(row[1])] = (row[0]) @@ -72,7 +74,7 @@ except ImportError: logger.warning('peer_ids.csv not found: Peer aliases will not be available') try: - with open('./talkgroup_ids.csv', 'rU') as talkgroup_ids_csv: + with open(curdir+'/talkgroup_ids.csv', 'rU') as talkgroup_ids_csv: talkgroups = csv.reader(talkgroup_ids_csv, dialect='excel', delimiter=',') for row in talkgroups: talkgroup_ids[int(row[1])] = (row[0]) @@ -560,11 +562,12 @@ class IPSC(DatagramProtocol): # Right now, without this, we really don't know anything is happening. #print_master(self._network) #print_peer_list(self._network) - logger.debug('(%s) Periodic Connection Maintenance Loop Started', self._network) + logger.debug('(%s) Periodic Reporting Loop Started', self._network) pass def maintenance_loop(self): - + logger.debug('(%s) Periodic Connection Maintenance Loop Started', self._network) + # If the master isn't connected, we have to do that before we can do anything else! # if not self._master_stat['CONNECTED']: @@ -638,7 +641,7 @@ class IPSC(DatagramProtocol): # If we have missed too many keep-alives, de-register the peer and start over. if peer['STATUS']['KEEP_ALIVES_OUTSTANDING'] >= self._local['MAX_MISSED']: peer['STATUS']['CONNECTED'] = False - del peer # Becuase once it's out of the dictionary, you can't use it for anything else. + #del peer # Becuase once it's out of the dictionary, you can't use it for anything else. logger.warning('(%s) Maximum Peer Keep-Alives Missed -- De-registering the Peer: %s', self._network, int_id(peer_id)) # Update our stats before moving on...