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 ParseNLIST (line, listOfLogObj, PREVIOUS_LAT,PREVIOUS_LONG,PREVIOUS_MCC,PREVIOUS_MNC): dataOfNLIST = "" 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]) headerParams = 0 logObj.time = line[1] if ((3 + NumberOfContextID) < length) and (line[3 + NumberOfContextID] != ''): headerParams = int(line[3 + NumberOfContextID]) currentLog = LogDT() currentLog = copy.deepcopy(logObj) for h in range(0,headerParams): paramNumber = h + 4 + NumberOfContextID if ((paramNumber) < length) and (line[paramNumber] != '') : if h == 0: currentLog.cellType = "Serving"; currentLog.modeSystem = MeasureSysConverter(line[paramNumber]) elif h == 1: currentLog.Band = parseCellMeasuresParseBand(items[paramNumber]) elif h == 2: currentLog.ChannelNum = int(line[paramNumber]); elif h == 3: if currentLog.modeSystem == 'GSM': currentLog.BSIC = int(items[paramNumber]) elif currentLog.modeSystem == 'UMTS FDD': currentLog.SC = int(items[paramNumber]) elif currentLog.modeSystem == 'UMTS TD-SCDMA': currentLog.CellParameterID = int(items[paramNumber]) listOfLogObj.append(currentLog) numberOfNeighbourChannels = 0 if ((4 + NumberOfContextID + headerParams) < length) and (line[4 + NumberOfContextID + headerParams] != '') : numberOfNeighbourChannels = int(line[4 + NumberOfContextID + headerParams]) for c in range (0, numberOfNeighbourChannels): numberOfParamsPerChannel = 0 if ((5 + NumberOfContextID + headerParams) < length) and (line[5 + NumberOfContextID + headerParams] != '') : numberOfParamsPerChannel = int(line[5 + NumberOfContextID + headerParams]) currentLog = LogDT() currentLog = copy.deepcopy(logObj) for p in range(0,numberOfParamsPerChannel): paramNumber = 6 + NumberOfContextID + headerParams + (c * numberOfParamsPerChannel) + p if ((paramNumber) < length) and (line[paramNumber] != '') : if p == 0: currentLog.cellType = "Neighbor"; currentLog.modeSystem = MeasureSysConverter(line[paramNumber]) elif p == 1: if currentLog.modeSystem == 'GSM': currentLog.NeighbourARFCN = int(line[paramNumber]) elif currentLog.modeSystem == 'UMTS TD-SCDMA' or currentLog.modeSystem == 'UMTS FDD': currentLog.UARFCN = int(line[paramNumber]) elif p == 2: if currentLog.modeSystem == 'GSM': currentLog.BSIC = int(items[paramNumber]) elif currentLog.modeSystem == 'UMTS FDD': currentLog.SC = int(items[paramNumber]) elif currentLog.modeSystem == 'UMTS TD-SCDMA': currentLog.CellParameterID = int(items[paramNumber]) elif p== 3: currentLog.Band = parseCellMeasuresParseBand(line[paramNumber]) elif p== 4: currentLog.NeighbourCellIndex = int(line[paramNumber]) listOfLogObj.append(currentLog) return 1 else: dataOfNLIST = "No of context id not found" return 0