From 284d358cd4c7bb5d725e832155dbfbeb63570b48 Mon Sep 17 00:00:00 2001 From: Max Date: Thu, 2 Jan 2014 20:31:26 -0500 Subject: [PATCH] trunking release 1 --- op25/gr-op25_repeater/apps/nyseg.tsv | 18 ++ op25/gr-op25_repeater/apps/onondaga.tsv | 242 ++++++++++++++++++++++++ op25/gr-op25_repeater/apps/ontario.tsv | 26 +++ op25/gr-op25_repeater/apps/tompkins.tsv | 104 ++++++++++ op25/gr-op25_repeater/apps/trunk.tsv | 7 + op25/gr-op25_repeater/apps/trunking.py | 32 +++- 6 files changed, 428 insertions(+), 1 deletion(-) create mode 100644 op25/gr-op25_repeater/apps/nyseg.tsv create mode 100644 op25/gr-op25_repeater/apps/onondaga.tsv create mode 100644 op25/gr-op25_repeater/apps/ontario.tsv create mode 100644 op25/gr-op25_repeater/apps/tompkins.tsv create mode 100644 op25/gr-op25_repeater/apps/trunk.tsv diff --git a/op25/gr-op25_repeater/apps/nyseg.tsv b/op25/gr-op25_repeater/apps/nyseg.tsv new file mode 100644 index 0000000..2f5d05f --- /dev/null +++ b/op25/gr-op25_repeater/apps/nyseg.tsv @@ -0,0 +1,18 @@ +121 VestalElec +122 VestalGas +123 VestalMeter +128 RangeTest +131 BrewsterLine +133 BrewsterServ +141 ElmiraElec +142 ElmiraGas +143 ElmiraMeter +151 GenvElec/Gas +153 Call Center +171 Ithaca Elec +172 Ithaca Gas +173 Ithaca Meter +191 Liberty Line +193 Liberty Serv +221 ChathElec +228 RangeTest diff --git a/op25/gr-op25_repeater/apps/onondaga.tsv b/op25/gr-op25_repeater/apps/onondaga.tsv new file mode 100644 index 0000000..fbf4df8 --- /dev/null +++ b/op25/gr-op25_repeater/apps/onondaga.tsv @@ -0,0 +1,242 @@ +1 OCFC F1 Cntl +2 OCFC F-2 TAC +3 OCFC F-3 TAC +4 OCFC F-4 TAC +5 OCFC F-5 Cmd +6 OCFC F-6 TAC +7 OCFC F-7 EMS +8 OCFC F-8 TAC +9 OCFC F-9 TAC +10 OCFC F10 TAC +11 OCFC F11 TAC +12 OCFC F12 TAC +13 OCFC F13 TAC +14 OCFC FTAC1 +15 OCFC FTAC 2 +16 OTAC All +17 OTAC 1 +18 OTAC 2 +19 MMRS A +20 MMRS B +21 SFD Control +22 SFD Ops 2 +23 SFD Ops 3 +24 SFD Ops 4 +25 SFD Command +26 SFD TAC 9 +27 SFD TAC 7 +28 SFD TAC 8 +29 SFD ARFF 6 +30 CTAC +31 SPD TA +32 SPD DATA +33 SPD N/E DISP +34 SPD S/W DISP +35 SPD HIA DISP +37 SPD TAC1 +39 SPD EVNT 1 +40 SPD EVNT 2 +44 PTAC 1 +45 OCSO MRD 1 +46 OCSO MRD 2 +47 OCSO MRD 3 +48 OCSO MRD 4 +49 OCSO MRD 5 +50 OCSO MRD CIS +51 OCSO MRD CAR +52 OCSO TAC 8 +60 SyrHsingSecr +61 SWAT +63 CAYTAC1 +64 CAYTAC2 +65 MADTAC3 +66 MADTAC4 +67 ONOTAC5 +68 ONOTAC6 +69 OSWTAC8 +70 ALLTAC9 +71 OSWTAC7 +72 DPW +74 MWB 1 +76 PARKS 1 +81 SyrHsingMnt +82 E Syr DPW +83 OndgaTwn Hwy +91 OC Correctns +92 OC Civic Ctr +95 Lafaytte Hwy +97 LafayetteBus +98 Fab-PompBus +100 Syracuse Wtr +101 Syr Dog Cntr +102 SyrSanitatn +103 SyracuseU PS +104 SyracuseU PS +110 OCFC FirePol +111 Fire-wide +114 SUNY-ESF PS +115 Law IntrCnty +117 NYS Park PD +118 NYS Park PD +119 Syr Sch Sec +122 OC PrisTrans +301 Law Intercom +302 Fire/EMSIntr +5001 AFD Emrgency +5002 AFD Dispatch +5003 AFD Command +5004 AFD / APD +5005 AFD TAC 5 +5006 AFD TAC 6 +5007 AFD TAC 7 +5008 AFD TAC 8 +5009 AFD LZ +5010 Auburn Inter +5011 CC Interops +5101 APD Emrgency +5102 APD Prime +5103 APD Traffic +5104 APD TAC 4 +5105 APD TAC 5 +5106 APD TAC 6 +5109 APD ERT +5202 Auburn DPW +5203 Auburn Waste +5206 Auburn Zone +5307 CC Highway +5312 CC FD/EMS +5313 CC Command +5314 CC TAC-4 +5315 CC TAC-5 +5316 CC TAC-6 +5317 CC TAC-7 +5318 CC TAC-8 +5319 CC Amb - ACH +5320 Emerson Park +5401 CC Law Disp +5402 CC Law Tac 3 +5403 CC Law Tac 4 +5409 Weedsport PD +5413 CC Correctns +5600 CC EMO +7101 MC Law Disp +7102 MC Law Data +7103 MC Spec Evnt +7104 MC Law CtoC +7301 Hamilton EMS +7421 Special Ops +7424 Truck-Truck +7450 Fire Command +7477 MC Fire Disp +7478 Rescue-EMS +7904 MC Interops +8001 Countywide15 +8002 Countywide16 +8003 County DOT +8004 Highway Ops +8005 DOT Admin +8006 Airport Ops +8007 Hwy Parish +8008 DOT Scriba +8009 Hwy Trk-Trk +8010 SolidWasteDp +8011 SolidWasteOp +8012 OC Law Disp +8013 OswegoCityPD +8014 FultonCityPD +8015 Law Data +8016 Law Tact 13 +8017 Law Tact 14 +8018 Criminal Inv +8019 Sheriff CID +8021 ESU 1 +8022 ESU 2 +8023 SUNYOswegoPD +8024 SUNY Unv +8025 Traffic/ACO +8026 Cayuga Coll +8027 Cayuga Unv +8030 Special Ops +8032 Probation +8035 Survey Teams +8036 Security +8037 EMO Admin +8038 EMO RAD +8039 EMS Dispatch +8040 EMS Major +8041 EMS Ops 3 +8042 EMS Ops 4 +8043 EMS Ops 5 +8045 OSW Hospital +8046 Fire Disptch +8047 Fireground 7 +8048 Fireground 8 +8050 Fireground10 +8051 Fireground11 +8052 Fireground12 +8053 Fireground14 +8054 HazMat 13 +8055 HazMat 14 +8057 Redfield +8058 RACES Ops +8059 Health Inter +8060 Oswego PDTac +8061 NYS DEC Admn +8063 Osw Tourism +8065 SUNY Oswego +8094 SysTechs +8300 NovHindlcoFD +8301 Altmar FD +8302 Border/Coast +8303 BrewertonOps +8304 Caughdenoy +8305 CentralSqOps +8306 CentralSqPD +8307 ClevelandOps +8308 Cody Ops +8309 ConstantiaFD +8310 EMO Ops +8311 Fire Admin +8312 FPD Admin +8313 FultonCityFD +8314 GranbyCntrOp +8315 Hannibal FD +8316 Hastings FD +8318 Lacona FD +8319 McFee EMS +8320 Mexico FD +8321 Minetto FD +8322 New Haven FD +8324 NOCA Ops +8325 N Shore EMS +8326 Orwell FD +8327 Search/Rescu +8328 Oswego PD +8329 Oswego EMS +8330 Oswego Shrf +8331 C Oswego FD +8332 T Oswego FD +8333 Palermo FD +8334 Parish FD +8335 PennellvleFD +8336 Phoenix FD +8337 Phoenix PD +8338 Pulaski PD +8339 Redfield FD +8340 Richland FD +8341 Pulaski FD +8342 Sandy Crk FD +8343 SAVAC Ops +8344 Scriba FD +8345 SOVAC Ops +8346 Volney FD +8347 W Amboy FD +8348 W Monroe FD +8349 Wllmstown FD +8350 NYS Parole +8351 Port Oswego +9991 LEDispTrng +9992 OPD Training +9993 OPD Training +9995 FireDispTrng +9996 EMSDispTrng diff --git a/op25/gr-op25_repeater/apps/ontario.tsv b/op25/gr-op25_repeater/apps/ontario.tsv new file mode 100644 index 0000000..ade7abb --- /dev/null +++ b/op25/gr-op25_repeater/apps/ontario.tsv @@ -0,0 +1,26 @@ +201 Sys Techs +1001 ROC Ops +1021 PureWtrsFld +1025 Sewers "690" +1027 PureWtrsOps +1029 PureWtrsPlnt +1031 PW VL Plant +1033 PW NWQ Plant +1041 RTOC Disptch +1047 Hwy Crews +1081 MC SpeclEvnt +1098 FairprtElect +1121 WaterAuthrty +1130 TrtmntPlants +1151 SenPkZoo Ops +1152 SenPkZoo Ch2 +7001 OC Sheriff +7002 OCSheriffAdm +7501 CnandaiguaPD +7505 Geneva PD +8001 OC Fire Disp +8004 OC Fire Ops4 +8005 OC Fire Ops5 +8006 OC Fire Ops6 +8034 GenevaFD Ops +9713 Range Test diff --git a/op25/gr-op25_repeater/apps/tompkins.tsv b/op25/gr-op25_repeater/apps/tompkins.tsv new file mode 100644 index 0000000..b320a4e --- /dev/null +++ b/op25/gr-op25_repeater/apps/tompkins.tsv @@ -0,0 +1,104 @@ +1 Range Test +2 Range Test +7 Range Test +55001 Fire/EMS +55002 TC Fire Disp +55003 Ithaca FD +55004 MED A +55005 MED B +55050 Hosp Multi +55051 CMC +55052 CRMC +55075 Ithaca FD/FG +55100 All Call +55101 Brooktondale +55102 Speedsville +55103 Salterville +55150 All Call +55152 West Danby +55175 All Call +55177 Etna +55178 Freeville +55179 Varna +55180 McClean +55201 Groton +55202 Enfield +55203 Newfield +55204 Trumansburg +55205 CayugaHeight +55206 Lansing +55250 EmrgAllCall +55251 Ithaca Clg +55252 Cornell U +55253 Bangs +55275 COMMON +55276 PRIORITY +55300 OPS EAC +55301 OPS 1 +55302 OPS 2 +55303 OPS 3 +55304 OPS 4 +55305 OPS 5 +55306 OPS 6 +55307 OPS 7 +55308 OPS 8 +55309 OPS 9 +55310 OPS 10 +55311 ARPTOPS +55325 F-P OPS +55326 EOC OPS +55327 Fire Paging +55350 TC All Call +55351 TCSO Disp +55352 Ithaca PD +55375 TC Emrg Car +55376 TCSO Car/Car +55377 Ithaca Car +55379 NYSP C-C +55380 IC PDcar/car +55381 CU PDcar/car +55401 CU PD Disp +55402 IC PD Disp +55450 All Call +55451 Police Ops 1 +55452 Police Ops 2 +55475 Special Ops +55476 CINT 4 +55477 SWAT 1 +55478 SWAT 2 +55479 SWAT 3 +55501 Trumansburg +55501 CayugaHts +55502 Dryden PD +55504 Groton +55505 NYSP +55506 ParksDept PD +55551 County Hall +55552 Airport Sec +55600 EmergAllCall +55601 HWY Central +55602 HWY East +55603 HWY West +55700 All Call +55701 SCHOOLS CNTR +55702 SCHOOLS EAST +55703 SCHOOLS WEST +55800 TCAT ALLCALL +55801 TCAT CNTR +55802 TCAT EAST +55803 TCAT WEST +55901 CountyHealth +55902 IthacaHealth +55950 EmrgAllCall +55951 Local Gov +55952 Dryden DPW +55953 Lansing +55954 Groton +55955 Ithaca +55956 Danby DPW +55957 Ulyssess +55958 Enfield +55959 Newfield +56001 Ithaca Dctvs +56024 Ithaca Dctvs +56025 MIDSTATE diff --git a/op25/gr-op25_repeater/apps/trunk.tsv b/op25/gr-op25_repeater/apps/trunk.tsv new file mode 100644 index 0000000..bc70806 --- /dev/null +++ b/op25/gr-op25_repeater/apps/trunk.tsv @@ -0,0 +1,7 @@ +"Sysname" "Control Channel List" "Offset" "NAC" "Modulation" "TGID Tags File" "Whitelist" "Blacklist" +"Tompkins" "859.8875" "7000" "0x1e0" "CQPSK" "tompkins.tsv" "55801,55802" +"Cortland" "454.05" "3800" "0x4e1" "CQPSK" +"Onondaga" "460.5" "3800" "0x2a0" "CQPSK" "onondaga.tsv" +"Cayuga" "460.4125" "3800" "0x2a8" "CQPSK" "onondaga.tsv" +"Ontario" "769.55625,769.85625,770.10625" "6200" "0x47f" "CQPSK" "ontario.tsv" +"NYSEG" "152.0225" "1500" "0x260" "C4FM" "nyseg.tsv" diff --git a/op25/gr-op25_repeater/apps/trunking.py b/op25/gr-op25_repeater/apps/trunking.py index 33cd681..828936e 100644 --- a/op25/gr-op25_repeater/apps/trunking.py +++ b/op25/gr-op25_repeater/apps/trunking.py @@ -342,7 +342,10 @@ class rx_ctl (object): self.configs = {} if conf_file: - self.build_config(conf_file) + if conf_file.endswith('.tsv'): + self.build_config_tsv(conf_file) + else: + self.build_config(conf_file) self.nacs = self.configs.keys() self.current_nac = self.nacs[0] self.current_state = self.states.CC @@ -362,6 +365,31 @@ class rx_ctl (object): cfg = self.configs[nac] self.trunked_systems[nac] = trunked_system(debug = self.debug, config=cfg) + def build_config_tsv(self, tsv_filename): + import csv + hdrmap = [] + configs = {} + with open(tsv_filename, 'rb') as csvfile: + sreader = csv.reader(csvfile, delimiter='\t', quotechar='"', quoting=csv.QUOTE_ALL) + for row in sreader: + if not hdrmap: + # process first line of tsv file - header line + for hdr in row: + hdr = hdr.replace(' ', '_') + hdr = hdr.lower() + hdrmap.append(hdr) + continue + fields = {} + for i in xrange(len(row)): + if row[i]: + fields[hdrmap[i]] = row[i] + if hdrmap[i] != 'sysname': + fields[hdrmap[i]] = fields[hdrmap[i]].lower() + nac = int(fields['nac'], 0) + configs[nac] = fields + + self.setup_config(configs) + def build_config(self, config_filename): import ConfigParser config = ConfigParser.ConfigParser() @@ -375,7 +403,9 @@ class rx_ctl (object): for option in config.options(section): configs[nac][option] = config.get(section, option).lower() configs[nac]['sysname'] = section + self.setup_config(configs) + def setup_config(self, configs): for nac in configs: self.configs[nac] = {'cclist':[], 'offset':0, 'whitelist':None, 'blacklist':{}, 'tgid_map':{}, 'sysname': configs[nac]['sysname']} for f in configs[nac]['control_channel_list'].split(','):