Example #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
Example #2
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
Example #3
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 #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
Example #5
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
Example #6
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
Example #7
0
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
Example #8
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