示例#1
0
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
示例#2
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
示例#3
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
示例#4
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
示例#5
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