Example #1
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
Example #2
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