From 1c009430af80260d67c47652783931414989c75d Mon Sep 17 00:00:00 2001 From: gsmselftest Date: Wed, 9 Nov 2011 16:41:00 +0100 Subject: Final folder team project --- Code/Server-Code/trueTableClass.py | 179 +++++++++++++++++++++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100755 Code/Server-Code/trueTableClass.py (limited to 'Code/Server-Code/trueTableClass.py') diff --git a/Code/Server-Code/trueTableClass.py b/Code/Server-Code/trueTableClass.py new file mode 100755 index 0000000..e2fff55 --- /dev/null +++ b/Code/Server-Code/trueTableClass.py @@ -0,0 +1,179 @@ +import DbClass + +class trueTable: + def __init__(self, resultsList): + + self.resultsList = resultsList + self.outGoingRZ = None + self.asteriskServer = None + self.incomingRZ = None + self.openBSC = None + self.nanoBTS = None + + def initDB(self): + # function for connect to database + self.db = DbClass.DBMySQLConnection('root', 'randompasswordSQL', 'localhost', 'gsmselftesting') + self.db.connectDB() + self.dbStatus = self.db.connectDB() + + def lookingBTSname(self, btsname): + if len(self.nanoBts) == 0: + self.found = False + else: + found = False + for y in self.nanoBts: #find the existing nanoBts result + name = y[0] + if name == btsName: + self.found = True + return self.found + + def initTrueTable(self): + global btsName + self.initDB() + deviceLists = self.db.deviceList() #fetch device list from database + externalRZList = list() + + for devLists in deviceLists: #define category of the external devices + device = devLists[0] + + if device[0:5] == 'GSMEx' or device == 'landline': + externalRZList.append(device) # fetch into the list + self.db.closeDBConn() + lists = self.resultsList + self.nanoBts = list() + gsmResultList = list() + + i= 1 + for w in lists: + call=w[0] + dest=w[1] + + + if call[0:5]=='GSMRZ': + if i <= int(call[5:]): + i = int(call[5:]) + if dest[0:5]=='GSMRZ': + + if i <= int(dest[5:]): + i = int(dest[5:]) + i = i+1 + + for x in lists: # to find nanoBts, asterik server and open BSC status regarding result test for GSM RZ + call=x[0] + dest=x[1] + result=x[2] + stop = False + j=1 + + if call[0:5]=='GSMRZ' or dest[0:5]=='GSMRZ': + while stop != True: + if j != i: + key = 'GSMRZ'+str(j) + if key == call or key == dest: + + btsName = 'nanoBts '+str(j) + if result == '200': + + btsName = 'nanoBts '+str(j) + self.asteriskServer = True #set status of asterik server as working + self.lookingBTSname(btsName) + if self.found != True: + #if doesnt found the nanoBts, add the result to the list, otherwise just ignoring + try: + self.nanoBts.remove(btsName) + except ValueError: + message = 'Error' + + self.nanoBts.append([btsName,True]) + + if key == call:# + for z in externalRZList:# find the result for outgoing call from GSM RZ to external RZ network + if dest == z: + self.outGoingRZ = True #set status as working for outgoing RZ + if key == dest: + for z in externalRZList: + if call == z: + self.incomingRZ = True # find the result for imcoming call to GSM RZ from external RZ network + elif result == '486': + found = False + if key == call:# and dest == 'landline': + for z in externalRZList: + if dest == z and self.outGoingRZ != True: + self.outGoingRZ = False + if key == dest:# and call == 'landline': + for z in externalRZList: + if call == z and self.incomingRZ != True: + self.incomingRZ = False + if self.nanoBts == '': + self.nanoBts.append([btsName,False]) + for y in self.nanoBts: #find the existing nanoBts result + name = y[0] + if name == btsName and y[1] == True: + found = True + if found != True: + self.nanoBts.append([btsName,False]) + + elif str(result) == '801' and key == call: + self.lookingBTSname(key) + if self.found != True: + self.nanoBts.append([key,result]) + + elif str(result) == '802'and key == dest: + self.lookingBTSname(key) + if self.found != True: + self.nanoBts.append([key,result]) + + if str(result) == '998' and key == dest: + self.lookingBTSname(key) + if self.found != True: + self.nanoBts.append([key,result]) + + if str(result) == '999' and key == call: + self.lookingBTSname(key) + if self.found != True: + self.nanoBts.append([key,result]) + j = j+1 + elif j == i: + stop = True + + if call[0:5]=='GSMEx': # looking for calling from GSMexternal + found = False + if len(self.nanoBts) == 0: + self.nanoBts.append([call,result]) + found = False + else: + for y in self.nanoBts: #find the existing result for GSM external in the list + name = y[0] + if name == call: + if int(result) == 200: + if int(y[1]) == 486 or int(y[1]) == 999 or int(y[1]) == 998 or int(y[1]) == 801: + self.nanoBts.remove(y) + else: + found = True + if found != True: + self.nanoBts.append([call,result]) + + if dest[0:5]=='GSMEx': # looking for destination call to GSMexternal + found = False + if len(self.nanoBts) == 0: + self.nanoBts.append([dest,result]) + found = False + else: + + for y in self.nanoBts: + name = y[0] + if name == dest: + if int(result) == 200: + if int(y[1]) == 486 or int(y[1]) == 999 or int(y[1]) == 998 or int(y[1]) == 402 or int(y[1]) == 802: + self.nanoBts.remove(y) + else: + found = True + if found != True: + self.nanoBts.append([dest,result]) + + + for device in externalRZList: + if device == dest and int(result) == 200: + self.outGoingRZ = True + + -- cgit v1.2.3-55-g7522