def ParseMACBLER(line, listOfLogObj, PREVIOUS_LAT, PREVIOUS_LONG, PREVIOUS_MCC, PREVIOUS_MNC): length = len(line) if 2 < length: NumberOfContextID = 0 if line[2] != '': NumberOfContextID = int(line[2]) logObj = LogDT() logObj.lat = PREVIOUS_LAT logObj.longg = PREVIOUS_LONG logObj.mcc = PREVIOUS_MCC logObj.mnc = PREVIOUS_MNC logObj.event = "Parse MAC layer Block Error Rate" logObj.msgType = '' logObj.time = line[1] headerParameters = 0 numberOfTrChs = 0 numberOfParamsPerTrCh = 0 cellType = 0 if ((3 + NumberOfContextID) < length) and (line[3 + NumberOfContextID] != ''): logObj.modeSystem = MeasureSysConverter( int(line[3 + NumberOfContextID])) if logObj.modeSystem == 'UMTS FDD': if ((4 + NumberOfContextID) < length) and (line[4 + NumberOfContextID] != ''): headerParameters = int(line[4 + NumberOfContextID]) if ((5 + NumberOfContextID) < length) and (line[5 + NumberOfContextID] != ''): numberOfTrChs = int(line[5 + NumberOfContextID]) if ((6 + NumberOfContextID) < length) and (line[6 + NumberOfContextID] != ''): numberOfParamsPerTrCh = int(line[6 + NumberOfContextID]) for c in range(0, numberOfTrChs): currentObj = LogDT() currentObj = copy.deepcopy(logObj) if ((7 + NumberOfContextID + headerParameters + (c * numberOfParamsPerTrCh) + 3) < length) and ( line[7 + NumberOfContextID + headerParameters + (c * numberOfParamsPerTrCh) + 3] != ''): currentObj.MAChsBLER = float( line[7 + NumberOfContextID + headerParameters + (c * numberOfParamsPerTrCh) + 3]) if ((7 + NumberOfContextID + headerParameters + (c * numberOfParamsPerTrCh) + 6) < length) and ( line[7 + NumberOfContextID + headerParameters + (c * numberOfParamsPerTrCh) + 6] != ''): cellType = int( line[7 + NumberOfContextID + headerParameters + (c * numberOfParamsPerTrCh) + 6]) if cellType == 1: currentObj.cellType = "Primary" else: currentObj.cellType = "Secondary" listOfLogObj.append(currentObj) return 1 else: return 0
def ParseMACI(line, listOfLogObj, PREVIOUS_LAT, PREVIOUS_LONG, PREVIOUS_MCC, PREVIOUS_MNC): dataOfMACI = "" length = len(line) if 2 < length: NumberOfContextID = 0 if line[2] != '': NumberOfContextID = int(line[2]) contextID = 'Unknown' measureSystem = 'Unknown' logDTObj = LogDT() logDTObj.lat = PREVIOUS_LAT logDTObj.longg = PREVIOUS_LONG logDTObj.mcc = PREVIOUS_MCC logDTObj.mnc = PREVIOUS_MNC logDTObj.event = 'Parse MAC layer info' if (3 < length) and (line[3] != ''): contextID = line[3] if ((3 + NumberOfContextID) < length) and (line[3 + NumberOfContextID] != ''): measureSystem = line[3 + NumberOfContextID] logDTObj.modeSystem = MeasureSysConverter(int(measureSystem)) numberOfCells = 0 if ((4 + NumberOfContextID) < length) and (line[4 + NumberOfContextID] != ''): numberOfCells = int(line[4 + NumberOfContextID]) if ((5 + NumberOfContextID) < length) and (line[5 + NumberOfContextID] != ''): numberOfParameterPerCell = int(line[5 + NumberOfContextID]) for cell in range(0, numberOfCells): currentLog = LogDT() currentLog = copy.deepcopy(logDTObj) for parameter in range(0, numberOfParameterPerCell): paramNumber = NumberOfContextID + 6 + ( cell * numberOfParameterPerCell) + parameter if ((paramNumber) < length) and (line[paramNumber] != ''): if parameter == 0: if currentLog.modeSystem == 'UMTS FDD': if line[paramNumber] == '2': currentLog.cellType = 'Secondary' elif currentLog.modeSystem == 'LTE FDD' or currentLog.modeSystem == 'LTE TDD': currentLog.cellType = ParseCellTypeJ( line[paramNumber], currentLog.modeSystem) elif parameter == 1: if line[paramNumber] == '0': currentLog.cellState = 'Deactivate' elif line[paramNumber] == '1': currentLog.cellState = 'Activate' listOfLogObj.append(currentLog) return 1 else: return 0
def ParsePILOTSCAN(line, listOfLogObj, PREVIOUS_LAT, PREVIOUS_LONG, PREVIOUS_MCC, PREVIOUS_MNC): length = len(line) if 2 < length: NumberOfContextID = 0 if line[2] != '': NumberOfContextID = int(line[2]) logObj = LogDT() logObj.lat = PREVIOUS_LAT logObj.longg = PREVIOUS_LONG logObj.mcc = PREVIOUS_MCC logObj.mnc = PREVIOUS_MNC logObj.event = "Pilot Scanning results" logObj.msgType = '' logObj.time = line[1] numberOfHeaderParameters = 0 channelType = -1 numberOfCells = 0 parameterPerCell = 0 if ((3 + NumberOfContextID) < length) and (line[3 + NumberOfContextID] != ''): logObj.modeSystem = MeasureSysConverter( int(line[3 + NumberOfContextID])) if logObj.modeSystem == "UMTS FDD": if ((4 + NumberOfContextID) < length) and (line[4 + NumberOfContextID] != ''): numberOfHeaderParameters = int(line[4 + NumberOfContextID]) if numberOfHeaderParameters > 0: if ((5 + NumberOfContextID) < length) and (line[5 + NumberOfContextID] != ''): logObj.ChannelNum = int(line[5 + NumberOfContextID]) #add if numberOfHeaderParameters > 1: if ((6 + NumberOfContextID) < length) and (line[6 + NumberOfContextID] != ''): channelType = int(line[6 + NumberOfContextID]) #add if channelType == 1: logObj.channelType = 'CPICH' elif channelType == 2: logObj.channelType = 'P SCH' elif channelType == 3: logObj.channelType = 'S SCH' elif channelType == 4: logObj.channelType = 'CPICH (TX diversity)' elif channelType == 5: logObj.channelType = 'PPCH' if numberOfHeaderParameters > 2: if ((7 + NumberOfContextID) < length) and (line[7 + NumberOfContextID] != ''): logObj.RSSI = float(line[7 + NumberOfContextID]) #add if numberOfHeaderParameters > 3: if ((8 + NumberOfContextID) < length) and (line[8 + NumberOfContextID] != ''): logObj.Band = parseCellMeasuresParseBand( int(line[8 + NumberOfContextID])) #add if ((5 + NumberOfContextID + numberOfHeaderParameters) < length) and (line[5 + NumberOfContextID + numberOfHeaderParameters] != ''): numberOfCells = int(line[5 + NumberOfContextID + numberOfHeaderParameters]) if ((6 + NumberOfContextID + numberOfHeaderParameters) < length) and (line[6 + NumberOfContextID + numberOfHeaderParameters] != ''): parameterPerCell = int(line[6 + NumberOfContextID + numberOfHeaderParameters]) if numberOfCells == 0: listOfLogObj.append(logObj) for i in range(0, numberOfCells): currentObj = LogDT() currentObj = copy.deepcopy(logObj) if ( (7 + NumberOfContextID + numberOfHeaderParameters + (i * parameterPerCell) + 0) < length ) and (line[7 + NumberOfContextID + numberOfHeaderParameters + (i * parameterPerCell) + 0] != ''): currentObj.scramblingCode = float( line[7 + NumberOfContextID + numberOfHeaderParameters + (i * parameterPerCell) + 0]) if ( (7 + NumberOfContextID + numberOfHeaderParameters + (i * parameterPerCell) + 1) < length ) and (line[7 + NumberOfContextID + numberOfHeaderParameters + (i * parameterPerCell) + 1] != ''): currentObj.ServingCPICHEcNo = float( line[7 + NumberOfContextID + numberOfHeaderParameters + (i * parameterPerCell) + 1]) if ( (7 + NumberOfContextID + numberOfHeaderParameters + (i * parameterPerCell) + 2) < length ) and (line[7 + NumberOfContextID + numberOfHeaderParameters + (i * parameterPerCell) + 2] != ''): currentObj.ServingCPICHRSCP = float( line[7 + NumberOfContextID + numberOfHeaderParameters + (i * parameterPerCell) + 2]) if ( (7 + NumberOfContextID + numberOfHeaderParameters + (i * parameterPerCell) + 3) < length ) and (line[7 + NumberOfContextID + numberOfHeaderParameters + (i * parameterPerCell) + 3] != ''): currentObj.SIR = float( line[7 + NumberOfContextID + numberOfHeaderParameters + (i * parameterPerCell) + 3]) listOfLogObj.append(currentObj) return 1 else: return 0
def ParseRABA(line, listOfLogObj, PREVIOUS_LAT, PREVIOUS_LONG, PREVIOUS_MCC, PREVIOUS_MNC): length = len(line) if 2 < length: NumberOfContextID = 0 if line[2] != '': NumberOfContextID = int(line[2]) dataOfRAA = '' numberOfRABRBs = 0 logObj = LogDT() logObj.lat = PREVIOUS_LAT logObj.longg = PREVIOUS_LONG logObj.mcc = PREVIOUS_MCC logObj.mnc = PREVIOUS_MNC logObj.event = "RAB Allocation Attempt" logObj.msgType = 'Attempt' logObj.time = line[1] rabContextID = 0 rabType = 0 numberOfHeaderParam = 0 if (3 < length) and (line[3] != ''): rabContextID = int(line[3]) dataOfRAA = 'Context ID: ' + str(rabContextID) + ';' if ((3 + NumberOfContextID) < length) and (line[3 + NumberOfContextID] != ''): logObj.modeSystem = MeasureSysConverter( int(line[3 + NumberOfContextID])) dataOfRAA += ('Measure System: ' + logObj.modeSystem) + ';' if ((4 + NumberOfContextID) < length) and (line[4 + NumberOfContextID] != ''): numberOfHeaderParam = int(line[4 + NumberOfContextID]) if numberOfHeaderParam > 0: if ((5 + NumberOfContextID) < length) and (line[5 + NumberOfContextID] != ''): rabType = int(line[5 + NumberOfContextID]) if rabType == 1: logObj.rabType = 'CS' dataOfRAA += 'RAB Type: CS;' if rabType == 2: logObj.rabType = 'PS' dataOfRAA += 'RAB Type: PS;' if numberOfHeaderParam > 1: if ((6 + NumberOfContextID) < length) and (line[6 + NumberOfContextID] != ''): logObj.RABID = int(line[6 + NumberOfContextID]) if ((5 + NumberOfContextID + numberOfHeaderParam) < length) and ( line[5 + NumberOfContextID + numberOfHeaderParam] != ''): numberOfRABRBs = int(line[5 + NumberOfContextID + numberOfHeaderParam]) logObj.eventInfo = dataOfRAA if numberOfRABRBs == 0: listOfLogObj.append(logObj) for i in range(0, numberOfRABRBs): currentObj = LogDT() currentObj = copy.deepcopy(logObj) if ((6 + NumberOfContextID + numberOfHeaderParam + i) < length) and (line[6 + NumberOfContextID + numberOfHeaderParam + i] != ''): currentObj.RABRBID = int(line[6 + NumberOfContextID + numberOfHeaderParam + i]) listOfLogObj.append(currentObj) return 1 else: return 0
def ParseMACRATE(line, listOfLogObj, PREVIOUS_LAT, PREVIOUS_LONG, PREVIOUS_MCC, PREVIOUS_MNC): dataOfMACRATE = "" length = len(line) if 2 < length: NumberOfContextID = 0 if line[2] != '': NumberOfContextID = int(line[2]) logObj = LogDT() logObj.lat = PREVIOUS_LAT logObj.longg = PREVIOUS_LONG logObj.mcc = PREVIOUS_MCC logObj.mnc = PREVIOUS_MNC logObj.event = "Parse MAC layer throughput downlink" logObj.msgType = '' logObj.time = line[1] headerParameters = 0 numberOfTrChs = 0 numberOfParamsPerTrCh = 0 cellType = 0 if ((3 + NumberOfContextID) < length) and (line[3 + NumberOfContextID] != ''): logObj.modeSystem = MeasureSysConverter( int(line[3 + NumberOfContextID])) dataOfMACRATE += ('Measure System: ' + logObj.modeSystem) + ';' headerParameters = 0 if logObj.modeSystem == 'UMTS FDD': if ((4 + NumberOfContextID) < length) and (line[4 + NumberOfContextID] != ''): headerParameters = int(line[4 + NumberOfContextID]) if ((5 + NumberOfContextID) < length) and ( line[5 + NumberOfContextID + headerParameters] != ''): numberOfTrChs = int(line[5 + NumberOfContextID]) if ((6 + NumberOfContextID) < length) and ( line[6 + NumberOfContextID + headerParameters] != ''): numberOfParamsPerTrCh = int(line[6 + NumberOfContextID]) for c in range(0, numberOfTrChs): currentObj = LogDT() currentObj = copy.deepcopy(logObj) if ((7 + NumberOfContextID + headerParameters + (c * numberOfParamsPerTrCh) + 2) < length) and ( line[7 + NumberOfContextID + headerParameters + (c * numberOfParamsPerTrCh) + 2] != ''): currentObj.MAChsBitRate = int( line[7 + NumberOfContextID + headerParameters + (c * numberOfParamsPerTrCh) + 2]) if ((7 + NumberOfContextID + headerParameters + (c * numberOfParamsPerTrCh) + 8) < length) and ( line[7 + NumberOfContextID + headerParameters + (c * numberOfParamsPerTrCh) + 8] != ''): cellType = int( line[7 + NumberOfContextID + headerParameters + (c * numberOfParamsPerTrCh) + 8]) if cellType == 1: currentObj.cellType = "Primary" else: currentObj.cellType = "Secondary" listOfLogObj.append(currentObj) elif logObj.modeSystem == 'LTE FDD' or logObj.modeSystem == 'LTE TDD': if ((4 + NumberOfContextID) < length) and (line[4 + NumberOfContextID] != ''): logObj.MACDLBitRate = int(line[4 + NumberOfContextID]) if ((6 + NumberOfContextID) < length) and (line[6 + NumberOfContextID] != ''): logObj.MACDLBLER = float(line[6 + NumberOfContextID]) if ((13 + NumberOfContextID) < length) and (line[13 + NumberOfContextID] != ''): cellType = int(line[13 + NumberOfContextID]) if cellType == 0: logObj.cellType = 'PCell' elif cellType == 1: logObj.cellType = 'SCell 0' elif cellType == 2: logObj.cellType = 'SCell 1' listOfLogObj.append(logObj) return 1 else: dataOfMACRATE = "No of context id not found" return 0
def ParsePLAIUV27(line, listOfLogObj, PREVIOUS_LAT, PREVIOUS_LONG, PREVIOUS_MCC, PREVIOUS_MNC): dataOfCELLMEAS = "" length = len(line) if 2 < length: NumberOfContextID = 0 if line[2] != '': NumberOfContextID = int(line[2]) contextID = 'Unknown' numberOfHeaderParamters = 0 numberOfCells = 0 numberOfParametersPerCell = 0 measureSystem = 'Unknown' if (3 < length) and (line[3] != ''): contextID = line[3] if ((3 + NumberOfContextID) < length) and (line[3 + NumberOfContextID] != ''): measureSystem = line[3 + NumberOfContextID] measureSystem = MeasureSysConverter(int(measureSystem)) if measureSystem == '"UMTS FDD': if ((4 + NumberOfContextID) < length) and (line[4 + NumberOfContextID] != ''): numberOfHeaderParamters = int(line[4 + NumberOfContextID]) currentLog = LogDT() dataOfCELLMEAS = "Context ID:" + contextID currentLog.eventInfo = dataOfCELLMEAS currentLog.modeSystem = measureSystem currentLog.event = 'Packet link adaptation info for uplink' currentLog.lat = PREVIOUS_LAT currentLog.longg = PREVIOUS_LONG currentLog.mcc = PREVIOUS_MCC currentLog.mnc = PREVIOUS_MNC for header in range(1, numberOfHeaderParamters): if ((4 + NumberOfContextID + header) < length) and ( line[4 + NumberOfContextID + header] != ''): celltype = line[4 + NumberOfContextID + header] if header == 2: #E-DPDCH Rate currentLog.EDPDCHRate = int( line[4 + NumberOfContextID + header]) if header == 8: if celltype == '1': currentLog.cellType = "Primary" elif celltype == '2': currentLog.cellType = "Secondary" numberOfPLASets = 0 if ((5 + NumberOfContextID + numberOfHeaderParamters) < length) and (line[5 + NumberOfContextID + numberOfHeaderParamters] != ''): numberOfPLASets = int(line[5 + NumberOfContextID + numberOfHeaderParamters]) parametersPerPLASet = 0 if ((6 + NumberOfContextID + numberOfHeaderParamters) < length) and (line[6 + NumberOfContextID + numberOfHeaderParamters] != ''): numberOfPLASets = int(line[6 + NumberOfContextID + numberOfHeaderParamters]) original = currentLog for channel in range(0, numberOfPLASets): currentLog = LogDT() currentLog = copy.deepcopy(original) for parameter in range(0, parametersPerPLASet): if ((NumberOfContextID + 7 + numberOfHeaderParamters + parameter) < length) and ( line[NumberOfContextID + 7 + numberOfHeaderParamters + parameter]): value = int( line[NumberOfContextID + 7 + numberOfHeaderParamters + parameter]) if parameter == 1: #Modulation currentLog.Modulation = parseModulation( value, 'HSUPA') elif parameter == 4: #SFs if value == 1: currentLog.SFs = "SF 256" elif value == 2: currentLog.SFs = "SF 128" elif value == 3: currentLog.SFs = "SF 64" elif value == 4: currentLog.SFs = "SF 32" elif value == 5: currentLog.SFs = "SF 16" elif value == 6: currentLog.SFs = "SF 8" elif value == 7: currentLog.SFs = "SF 4" elif value == 8: currentLog.SFs = "2 * SF 4" elif value == 9: currentLog.SFs = "2 * SF 2" elif value == 10: currentLog.SFs = "2 * SF 4 and 2 * SF 2" elif parameter == 5: #retransmission rate per LA currentLog.ReTransmissionPerLA = float(value) listOfLogObj.append(currentLog) elif measureSystem == "LTE FDD" or measureSystem == "LTE TDD": currentLog = LogDT() dataOfCELLMEAS = "Context ID:" + contextID currentLog.eventInfo = dataOfCELLMEAS currentLog.modeSystem = measureSystem currentLog.event = 'Packet link adaptation info for uplink' currentLog.lat = PREVIOUS_LAT currentLog.longg = PREVIOUS_LONG currentLog.mcc = PREVIOUS_MCC currentLog.mnc = PREVIOUS_MNC original = currentLog numberOfHeaderParamters = 0 if ((4 + NumberOfContextID) < length) and (line[4 + NumberOfContextID] != ''): numberOfHeaderParamters = int(line[4 + NumberOfContextID]) numberOfPLASets = 0 if ((5 + NumberOfContextID + numberOfHeaderParamters) < length) and (line[5 + NumberOfContextID + numberOfHeaderParamters] != ''): numberOfPLASets = int(line[5 + NumberOfContextID + numberOfHeaderParamters]) if ((6 + NumberOfContextID + numberOfHeaderParamters) < length) and (line[6 + NumberOfContextID + numberOfHeaderParamters] != ''): parametersPerPLASet = int(line[6 + NumberOfContextID + numberOfHeaderParamters]) for channel in range(0, numberOfPLASets): currentLog = LogDT() currentLog = copy.deepcopy(original) for parameter in range(0, parametersPerPLASet): if ((NumberOfContextID + 7 + numberOfHeaderParamters + parameter) < length) and ( line[NumberOfContextID + 7 + numberOfHeaderParamters + parameter]): value = line[NumberOfContextID + 7 + numberOfHeaderParamters + parameter] if parameter == 2: currentLog.Modulation = parseModulation( value, 'PUSCH') elif parameter == 3: #MCS0 currentLog.MCS0 = int(value) listOfLogObj.append(currentLog) return 1 else: dataOfCELLMEAS = "No of context id not found" currentLog.eventInfo = dataOfCELLMEAS listOfLogObj.append(currentLog) return 1
def ParseCQI(line, listOfLogObj, PREVIOUS_LAT, PREVIOUS_LONG, PREVIOUS_MCC, PREVIOUS_MNC): length = len(line) if 2 < length: NumberOfContextID = 0 if line[2] != '': NumberOfContextID = int(line[2]) logObj = LogDT() logObj.lat = PREVIOUS_LAT logObj.longg = PREVIOUS_LONG logObj.mcc = PREVIOUS_MCC logObj.mnc = PREVIOUS_MNC logObj.event = "Channel quality indicator" measureSystems = '' numberOfCQIValues = 0 numberOfHeaderParamters = 0 numberOfParametersPerCQI = 0 if ((3 + NumberOfContextID) < length) and (line[3 + NumberOfContextID] != ''): measureSystems = int(line[3 + NumberOfContextID]) logObj.modeSystem = MeasureSysConverter(measureSystems) if logObj.modeSystem == 'UMTS FDD': if ((4 + NumberOfContextID) < length) and (line[4 + NumberOfContextID] != ''): numberOfHeaderParamters = int(line[4 + NumberOfContextID]) if ((5 + NumberOfContextID + numberOfHeaderParamters) < length) and (line[5 + NumberOfContextID + numberOfHeaderParamters] != ''): numberOfCQIValues = int(line[5 + NumberOfContextID + numberOfHeaderParamters]) if ((6 + NumberOfContextID + numberOfHeaderParamters) < length) and (line[6 + NumberOfContextID + numberOfHeaderParamters] != ''): numberOfParametersPerCQI = int(line[6 + NumberOfContextID + numberOfHeaderParamters]) for cqi in range(0, numberOfCQIValues): for param in range(1, numberOfParametersPerCQI): if param == 2: #CQI if ((6 + NumberOfContextID + numberOfHeaderParamters + param) < length) and ( line[6 + NumberOfContextID + numberOfHeaderParamters + param] != ''): logObj.CQI = int( line[6 + NumberOfContextID + numberOfHeaderParamters + param]) if param == 3: #CQI Type if ((6 + NumberOfContextID + numberOfHeaderParamters + param) < length) and ( line[6 + NumberOfContextID + numberOfHeaderParamters + param] != ''): cqiType = int( line[6 + NumberOfContextID + numberOfHeaderParamters + param]) if cqiType == 1: logObj.CQIType = 'CQI type A' elif cqiType == 2: logObj.CQIType = 'CQI type B' if param == 5: #Cell Type if ((6 + NumberOfContextID + numberOfHeaderParamters + param) < length) and ( line[6 + NumberOfContextID + numberOfHeaderParamters + param] != ''): cqiType = int( line[6 + NumberOfContextID + numberOfHeaderParamters + param]) if cqiType == 1: logObj.cellType = 'Primary' else: logObj.cellType = 'Secondary' listOfLogObj.append(logObj) elif logObj.modeSystem == 'LTE FDD' or logObj.modeSystem == 'LTE TDD': numberOfParameters = 0 if ((4 + NumberOfContextID) < length) and (line[4 + NumberOfContextID] != ''): numberOfParameters = int(line[4 + NumberOfContextID]) if numberOfParameters > 2: if ((6 + NumberOfContextID) < length) and (line[6 + NumberOfContextID] != ''): logObj.WBCQI0 = int(line[6 + NumberOfContextID]) if numberOfParameters > 3: if ((7 + NumberOfContextID) < length) and (line[7 + NumberOfContextID] != ''): logObj.WBCQI1 = int(line[7 + NumberOfContextID]) if numberOfParameters > 4: if ((8 + NumberOfContextID) < length) and ( line[8 + NumberOfContextID] != ''): logObj.SBCQI0 = int(line[8 + NumberOfContextID]) if numberOfParameters > 5: if ((9 + NumberOfContextID) < length) and ( line[9 + NumberOfContextID] != ''): logObj.SBCQI1 = int(line[9 + NumberOfContextID]) if numberOfParameters > 7: if ((11 + NumberOfContextID) < length) and ( line[11 + NumberOfContextID] != ''): cellType = int(line[11 + NumberOfContextID]) if cellType == 0: logObj.cellType = 'PCell' elif cellType == 1: logObj.cellType = 'SCell 0' elif cellType == 2: logObj.cellType = 'SCell 1' listOfLogObj.append(logObj) return 1 else: return 0
def ParseTUS(line, listOfLogObj, PREVIOUS_LAT, PREVIOUS_LONG, PREVIOUS_MCC, PREVIOUS_MNC): dataOfTUS = "" length = len(line) if 2 < length: NumberOfContextID = 0 if line[2] != '': NumberOfContextID = int(line[2]) TUSContextID = 0 numberOfTAC = 0 parameterPerTAC = 0 logObj = LogDT() logObj.lat = PREVIOUS_LAT logObj.longg = PREVIOUS_LONG logObj.mcc = PREVIOUS_MCC logObj.mnc = PREVIOUS_MNC logObj.event = "Tracking Area Update Succcesful" logObj.msgType = 'Succces' logObj.time = line[1] if (3 < length) and (line[3] != ''): TUSContextID = line[3] dataOfTUS = "TAU Context ID: " + TUSContextID + ';' if ((3 + NumberOfContextID) < length) and (line[3 + NumberOfContextID] != ''): logObj.modeSystem = MeasureSysConverter( int(line[3 + NumberOfContextID])) dataOfTUS += ('Measure System: ' + logObj.modeSystem) + ';' if ((4 + NumberOfContextID) < length) and (line[4 + NumberOfContextID] != ''): numberOfTAC = int(line[4 + NumberOfContextID]) if ((5 + NumberOfContextID) < length) and (line[5 + NumberOfContextID] != ''): parameterPerTAC = int(line[5 + NumberOfContextID]) for c in range(0, numberOfTAC): if c > 0: dataOfTUS += (", [") else: dataOfTUS += ("Parameters: [") currentObj = LogDT() currentObj = copy.deepcopy(logObj) if ((6 + NumberOfContextID + (c * parameterPerTAC) + 0) < length) and (line[6 + NumberOfContextID + (c * parameterPerTAC) + 0] != ''): currentObj.mcc = int(line[6 + NumberOfContextID + (c * parameterPerTAC) + 0]) dataOfTUS += ("MCC: " + str(currentObj.mcc)) if ((6 + NumberOfContextID + (c * parameterPerTAC) + 1) < length) and (line[6 + NumberOfContextID + (c * parameterPerTAC) + 1] != ''): currentObj.mnc = int(line[6 + NumberOfContextID + (c * parameterPerTAC) + 1]) dataOfTUS += ("MNC: " + str(currentObj.mnc)) if ((6 + NumberOfContextID + (c * parameterPerTAC) + 2) < length) and (line[6 + NumberOfContextID + (c * parameterPerTAC) + 2] != ''): currentObj.TAC = int(line[6 + NumberOfContextID + (c * parameterPerTAC) + 2]) #add dataOfTUS += ("TAC: " + str(currentObj.TAC)) dataOfTUS += (']') if c < (numberOfTAC - 1): listOfLogObj.append(currentObj) else: currentObj.eventInfo = dataOfTUS listOfLogObj.append(currentObj) return 1 else: dataOfTUS = "No of context id not found" return 0