This commit is contained in:
Steve Zingman N4IRS 2015-12-23 11:43:50 -05:00
commit 235e8a52d1
1 changed files with 19 additions and 6 deletions

View File

@ -16,8 +16,9 @@ from bitstring import BitArray
import sys, socket, ConfigParser, thread, traceback
import cPickle as pickle
from dmrlink import IPSC, NETWORK, networks, logger, int_id, hex_str_3, get_info, talkgroup_ids, subscriber_ids, peer_ids
from dmrlink import IPSC, NETWORK, networks, logger, int_id, hex_str_3, get_info, talkgroup_ids, subscriber_ids, peer_ids, PATH
from time import time
import csv
__author__ = 'Cortney T. Buffington, N0MJS'
__copyright__ = 'Copyright (c) 2015 Cortney T. Buffington, N0MJS and the K0USY Group'
@ -84,7 +85,6 @@ class ambeIPSC(IPSC):
traceback.print_exc()
print( "Error: unable to start thread" )
# Utility function to convert bytes to string of hex values (for debug)
def ByteToHex( self, byteStr ):
return ''.join( [ "%02X " % ord(x) for x in byteStr ] ).strip()
@ -176,11 +176,21 @@ class ambeIPSC(IPSC):
self._sock.sendto(_ambe_frame3.tobytes(), (self._gateway, self._gateway_port))
def reread_subscribers(self):
try:
with open(PATH+'subscriber_ids.csv', 'rU') as subscriber_ids_csv:
subscribers = csv.reader(subscriber_ids_csv, dialect='excel', delimiter=',')
subscriber_ids = {}
for row in subscribers:
subscriber_ids[int(row[0])] = (row[1])
print('Subscriber file has been updated')
except ImportError:
logger.warning('subscriber_ids.csv not found: Subscriber aliases will not be available')
#
# Define a function for the thread
# Use netcat to dynamically change the TGs that are forwarded to Allstar
# echo "x,y,z" | nc 127.0.0.1 1235
# echo -n "x,y,z" | nc 127.0.0.1 1235
#
def remote_control(self, port):
s = socket.socket() # Create a socket object
@ -193,13 +203,16 @@ class ambeIPSC(IPSC):
c, addr = s.accept() # Establish connection with client.
print( 'Got connection from', addr )
tgs = c.recv(1024)
print('Command:"{}"'.format(tgs))
if tgs:
self._tg_filter = map(int, tgs.split(','))
print( 'New TGs=', self._tg_filter )
if tgs == 'reread_subscribers':
self.reread_subscribers()
else:
self._tg_filter = map(int, tgs.split(','))
print( 'New TGs=', self._tg_filter )
c.close() # Close the connection
if __name__ == '__main__':
logger.info('DMRlink \'ambe_audio.py\' (c) 2015 N0MJS & the K0USY Group - SYSTEM STARTING...')
for ipsc_network in NETWORK: