def ParsePDCPRATEDU(line, listOfLogObj, PREVIOUS_LAT, PREVIOUS_LONG, PREVIOUS_MCC, PREVIOUS_MNC): dataOfPDCPRATED = "" length = len(line) if 2 < length: logObj = LogDT() logObj.lat = PREVIOUS_LAT logObj.longg = PREVIOUS_LONG logObj.mcc = PREVIOUS_MCC logObj.mnc = PREVIOUS_MNC NumberOfContextID = 0 if line[2] != '': NumberOfContextID = int(line[2]) logObj.time = line[1] if ((3 + NumberOfContextID) < length) and (line[3 + NumberOfContextID] != ''): logObj.modeSystem = int(line[3 + NumberOfContextID]) currentLog = LogDT() currentLog = copy.deepcopy(logObj) if currentLog.modeSystem == 'LTE TDD' or currentLog.modeSystem == 'LTE FDD': headerParams = 0 if ((4 + NumberOfContextID) < length) and (line[4 + NumberOfContextID] != ''): headerParams = int(line[4 + NumberOfContextID]) if headerParams > 0: if ((5 + NumberOfContextID) < length) and (line[5 + NumberOfContextID] != ''): currentLog.PDCPULBitRate = int(line[5 + NumberOfContextID]) if headerParams > 1: if ((6 + NumberOfContextID) < length) and (line[6 + NumberOfContextID] != ''): currentLog.PDCPULBlockRate = int( line[6 + NumberOfContextID]) numberOfRBs = 0 if ((5 + NumberOfContextID + headerParams) < length) and ( line[5 + NumberOfContextID + headerParams] != ''): numberOfRBs = int(line[5 + NumberOfContextID + headerParams]) numberOfParamsPerRB = 0 if ((6 + NumberOfContextID) < length + headerParams) and ( line[6 + NumberOfContextID + headerParams] != ''): numberOfParamsPerRB = int(line[6 + NumberOfContextID + headerParams]) for c in range(0, numberOfRBs): currentLog = LogDT() currentLog = copy.deepcopy(logObj) for p in range(0, numberOfParamsPerRB): paramNumber = 7 + NumberOfContextID + ( c * numberOfParamsPerRB) + p if ((paramNumber) < length) and (line[paramNumber] != ''): if p == 0: currentLog.RBID = int(line[paramNumber]) elif p == 1: currentLog.PDCPULBitRate = int(line[paramNumber]) elif p == 2: currentLog.PDCPULBlockRate = int(line[paramNumber]) listOfLogObj.append(currentLog) return 1 else: dataOfPDCPRATED = "No of context id not found" return 0
def ParseRBI(line, listOfLogObj, PREVIOUS_LAT, PREVIOUS_LONG, PREVIOUS_MCC, PREVIOUS_MNC): dataOfRBI = "" length = len(line) if 2 < length: logObj = LogDT() logObj.lat = PREVIOUS_LAT logObj.longg = PREVIOUS_LONG logObj.mcc = PREVIOUS_MCC logObj.mnc = PREVIOUS_MNC NumberOfContextID = 0 if line[2] != '': NumberOfContextID = int(line[2]) logObj.time = line[1] if ((3 + NumberOfContextID) < length) and (line[3 + NumberOfContextID] != ''): logObj.modeSystem = line[3 + NumberOfContextID] headerParams = 0 if ((4 + NumberOfContextID) < length) and (line[4 + NumberOfContextID] != ''): headerParams = int(line[4 + NumberOfContextID]) numberOfParamsPerRB = 0 if ((5 + NumberOfContextID + headerParams) < length) and (line[5 + NumberOfContextID + headerParams] != ''): numberOfParamsPerRB = int(line[5 + NumberOfContextID + headerParams]) numberOfRBs = 0 if ((6 + NumberOfContextID + headerParams) < length) and (line[6 + NumberOfContextID + headerParams] != ''): numberOfRBs = int(line[6 + NumberOfContextID + headerParams]) for c in range(0, numberOfRBs): currentLog = LogDT() currentLog = copy.deepcopy(logObj) for p in range(0, numberOfParamsPerRB): paramNumber = 6 + NumberOfContextID + (c * numberOfParamsPerRB) + p if ((paramNumber) < length) and (line[paramNumber] != ''): if p == 0: #RB ID if currentLog.modeSystem == 'UMTS FDD': currentLog.RBID = int(line[paramNumber]) elif p == 3: #Direction if currentLog.modeSystem == 'UMTS FDD': if int(line[paramNumber]) == 0: currentLog.direction = 'Uplink' elif int(line[paramNumber]) == 1: currentLog.direction = 'Downlink' elif p == 4: #Logical Channel if currentLog.modeSystem == 'UMTS FDD': if int(line[paramNumber]) == 0: currentLog.direction = 'BCCH' elif int(line[paramNumber]) == 1: currentLog.direction = 'PCCH' elif int(line[paramNumber]) == 2: currentLog.direction = 'CCCH' elif int(line[paramNumber]) == 3: currentLog.direction = 'DCCH' elif int(line[paramNumber]) == 4: currentLog.direction = 'CTCH' elif int(line[paramNumber]) == 5: currentLog.direction = 'DTCH' elif int(line[paramNumber]) == 6: currentLog.direction = 'SHCCH' elif p == 5: #RLC mode if currentLog.modeSystem == 'UMTS FDD': if int(line[paramNumber]) == 0: currentLog.RLCMode = 'TM' elif int(line[paramNumber]) == 1: currentLog.RLCMode = 'UM' elif int(line[paramNumber]) == 2: currentLog.RLCMode = 'AM' elif p == 6: #Radio Bearer Ciphering if currentLog.modeSystem == 'UMTS FDD': if int(line[paramNumber]) == 0: currentLog.RBCiphering = 'Disabled' elif int(line[paramNumber]) == 1: currentLog.RBCiphering = 'Enabled' elif p == 7: #TrCh Type if currentLog.modeSystem == 'UMTS FDD': if int(line[paramNumber]) == 0: currentLog.TrChType = 'BCH' elif int(line[paramNumber]) == 1: currentLog.TrChType = 'CPCH' elif int(line[paramNumber]) == 2: currentLog.TrChType = 'DCH' elif int(line[paramNumber]) == 3: currentLog.TrChType = 'HS-DSCH' elif int(line[paramNumber]) == 4: currentLog.TrChType = 'PCH' elif int(line[paramNumber]) == 5: currentLog.TrChType = 'FACH' elif int(line[paramNumber]) == 6: currentLog.TrChType = 'RACH' elif int(line[paramNumber]) == 7: currentLog.TrChType = 'E-DCH' listOfLogObj.append(currentLog) return 1 else: dataOfRBI = "No of context id not found" return 0