示例#1
0
def ReadRawFile(filename):

    # Initialize a 3G/4G monitor
    src = OfflineReplayer()
    #src.set_input_path("./diag_log_20190701_032740_93cda9833356d6bc90e05d0f85b3efee_Google-PixelXL_311480.mi2log")
    src.set_input_path("./" + filename + ".mi2log")

    logger = MsgLogger()
    logger.set_decode_format(MsgLogger.XML)
    logger.set_dump_type(MsgLogger.FILE_ONLY)
    #logger.save_decoded_msg_as("./test.txt")
    logger.save_decoded_msg_as("./" + filename + ".txt")
    logger.set_source(src)

    # Analyzers

    lte_pdcp_analyzer = LtePdcpAnalyzer()
    lte_pdcp_analyzer.set_source(src)

    lte_rrc_analyzer = LteRrcAnalyzer()
    lte_rrc_analyzer.set_source(src)  # bind with the monitor

    wcdma_rrc_analyzer = WcdmaRrcAnalyzer()
    wcdma_rrc_analyzer.set_source(src)  # bind with the monitor

    lte_nas_analyzer = LteNasAnalyzer()
    lte_nas_analyzer.set_source(src)

    umts_nas_analyzer = UmtsNasAnalyzer()
    umts_nas_analyzer.set_source(src)

    lte_phy_analyzer = LtePhyAnalyzer()
    lte_phy_analyzer.set_source(src)

    lte_mac_analyzer = LteMacAnalyzer()
    lte_mac_analyzer.set_source(src)

    mm_analyzer = MmAnalyzer()
    mm_analyzer.set_source(src)

    lte_measurement_analyzer = LteMeasurementAnalyzer()
    lte_measurement_analyzer.set_source(src)

    lte_rlc_analyzer = LteRlcAnalyzer()
    lte_rlc_analyzer.set_source(src)

    #modem_Debug_Analyzer = ModemDebugAnalyzer()
    #modem_Debug_Analyzer.set_source(src)

    mobility_mngt = MobilityMngt()
    mobility_mngt.set_source(src)

    rrc_analyzer = RrcAnalyzer()
    rrc_analyzer.set_source(src)

    # Start the monitoring
    src.run()
def generate_from_mi2log(filepath, output_filepath=None):
    src = OfflineReplayer()
    src.set_input_path(filepath)

    filename = get_filename_from_path(filepath)

    logger = MsgLogger()
    logger.set_decode_format(MsgLogger.XML)
    logger.set_dump_type(MsgLogger.FILE_ONLY)
    if (output_filepath is not None):
        op_fp = output_filepath
    else:
        op_fp = "./mi2log_xml/" + filename + "_" + datetime.now().strftime(
            "%H_%M_%S") + '.xml'
    logger.save_decoded_msg_as(op_fp)
    logger.set_source(src)

    # Analyzers
    lte_rrc_analyzer = LteRrcAnalyzer()
    lte_rrc_analyzer.set_source(src)  # bind with the monitor

    # wcdma_rrc_analyzer = WcdmaRrcAnalyzer()
    # wcdma_rrc_analyzer.set_source(src)  # bind with the monitor

    lte_nas_analyzer = LteNasAnalyzer()
    lte_nas_analyzer.set_source(src)

    # umts_nas_analyzer = UmtsNasAnalyzer()
    # umts_nas_analyzer.set_source(src)

    # lte_phy_analyzer = LtePhyAnalyzer()
    # lte_phy_analyzer.set_source(src)

    # lte_mac_analyzer = LteMacAnalyzer()
    # lte_mac_analyzer.set_source(src)

    # Start the monitoring
    src.run()
    clean_mi2log_xml(op_fp)
示例#3
0
def dump_logs(path):
    logger = MsgLogger()
    logger.set_decode_format(MsgLogger.XML)
    logger.set_dump_type(MsgLogger.FILE_ONLY)
    logger.save_decoded_msg_as(path)
    logger.set_source(src)

    lte_rrc_analyzer = LteRrcAnalyzer()
    lte_rrc_analyzer.set_source(src)

    wcdma_rrc_analyzer = WcdmaRrcAnalyzer()
    wcdma_rrc_analyzer.set_source(src)

    lte_nas_analyzer = LteNasAnalyzer()
    lte_nas_analyzer.set_source(src)

    umts_nas_analyzer = UmtsNasAnalyzer()
    umts_nas_analyzer.set_source(src)

    lte_phy_analyzer = LtePhyAnalyzer()
    lte_phy_analyzer.set_source(src)

    src.run()
示例#4
0
log_file_location = str(sys.argv[1])
log_folder = os.path.dirname(log_file_location)
LOGMSG = False
logmsg_filename = str(os.path.basename(log_file_location).split(".")[0]) + "_log.xml"
MSGLOGGER = False

if __name__ == "__main__":

    # Initialize a 3G/4G monitor
    src = OfflineReplayer()
    src.set_input_path(log_file_location)
    #src.enable_log_all()
      
    if (MSGLOGGER):
        logger = MsgLogger()
        logger.set_decode_format(MsgLogger.XML)
        logger.set_dump_type(MsgLogger.FILE_ONLY)
        logger.save_decoded_msg_as(log_folder+"/"+logmsg_filename)
        logger.set_source(src)

    # Analyzers
    lte_rrc_analyzer = LteRrcAnalyzer()
    lte_rrc_analyzer.set_source(src)  # bind with the monitor

    wcdma_rrc_analyzer = WcdmaRrcAnalyzer()
    wcdma_rrc_analyzer.set_source(src)  # bind with the monitor

    lte_nas_analyzer = LteNasAnalyzer()
    lte_nas_analyzer.set_source(src)
"""
Offline analysis by replaying logs
"""

# Import MobileInsight modules
from mobile_insight.monitor import OfflineReplayer
from mobile_insight.analyzer import MsgLogger, LteRrcAnalyzer, WcdmaRrcAnalyzer, LteNasAnalyzer, UmtsNasAnalyzer, LtePhyAnalyzer, LteMacAnalyzer

if __name__ == "__main__":

    # Initialize a 3G/4G monitor
    src = OfflineReplayer()
    src.set_input_path("./offline_log_example.mi2log")

    logger = MsgLogger()
    logger.set_decode_format(MsgLogger.XML)
    logger.set_dump_type(MsgLogger.FILE_ONLY)
    logger.save_decoded_msg_as("./test.txt")
    logger.set_source(src)

    # Analyzers
    lte_rrc_analyzer = LteRrcAnalyzer()
    lte_rrc_analyzer.set_source(src)  # bind with the monitor

    wcdma_rrc_analyzer = WcdmaRrcAnalyzer()
    wcdma_rrc_analyzer.set_source(src)  # bind with the monitor

    lte_nas_analyzer = LteNasAnalyzer()
    lte_nas_analyzer.set_source(src)
示例#6
0
# Import MobileInsight modules
from mobile_insight.monitor import OnlineMonitor
from mobile_insight.analyzer import MsgLogger

if __name__ == "__main__":

    if len(sys.argv) < 3:
        print "Error: please specify physical port name and baudrate."
        print __file__, "SERIAL_PORT_NAME BAUNRATE"
        sys.exit(1)

    # Initialize a 3G/4G monitor
    src = OnlineMonitor()
    src.set_serial_port(sys.argv[1])  # the serial port to collect the traces
    src.set_baudrate(int(sys.argv[2]))  # the baudrate of the port

    # Save the monitoring results as an offline log
    src.save_log_as("./ltemeas_log.mi2log")

    # Enable 3G/4G messages to be monitored. Here we enable RRC (radio
    # resource control) monitoring
    src.enable_log("LTE_PHY_PDSCH_Packet")

    # Dump the messages to std I/O. Comment it if it is not needed.
    dumper = MsgLogger()
    dumper.set_source(src)
    dumper.set_decoding(MsgLogger.JSON)  # decode the message as xml

    # Start the monitoring
    src.run()
示例#7
0
    #    src.enable_log("LTE_RRC_MIB_Packet")
    #   src.enable_log("LTE_NAS_EMM_State")
    #   src.enable_log("LTE_NAS_ESM_OTA_Incoming_Packet")
    #   src.enable_log("LTE_NAS_ESM_OTA_Outgoing_Packet")
    #   src.enable_log("LTE_NAS_ESM_State")
    #   src.enable_log("LTE_NAS_EMM_OTA_Outgoing_Packet")
    #   src.enable_log("LTE_NAS_EMM_OTA_Incoming_Packet")
    #   src.enable_log("UMTS_NAS_GMM_State")
    #   src.enable_log("UMTS_NAS_MM_REG_State")
    #   src.enable_log("UMTS_NAS_OTA_Packet")
    #   src.enable_log("UMTS_NAS_MM_State")
    #   src.enable_log("WCDMA_RRC_OTA_Packet")
    #   src.enable_log("WCDMA_RRC_Serv_Cell_Info")

    # This enables all supported logs
    src.enable_log_all()

    # Save the monitoring results as an offline log
    src.save_log_as("./test-all.mi2log")

    #Dump the messages to std I/O. Comment it if it is not needed.
    dumper = MsgLogger()
    dumper.set_source(src)
    #save the messages (decoded) in a file. Formats are XML, JSON or plain text. Comment if not needed
    dumper.set_decoding(MsgLogger.XML)
    dumper.set_dump_type(5)
    dumper.save_decoded_msg_as("./test-rrc-nas-decoded.xml")

    #Start the monitoring
    src.run()
示例#8
0
if __name__ == "__main__":

     # Initialize the 3G/4G monitor for offline analysis. It "replays" the log previously captured
     path_to_mi2log = './'
     mi_files = [pos_mi for pos_mi in os.listdir(path_to_mi2log) if pos_mi.endswith('.mi2log')]
  

     for index,mi_file in enumerate(mi_files):
       
     
         src = OfflineReplayer()
         src.set_input_path(mi_file)

         # Save the decoded messages extracted from the log
         logger = MsgLogger()
         logger.set_decode_format(MsgLogger.XML)
         logger.set_dump_type(MsgLogger.FILE_ONLY)
         logger.save_decoded_msg_as("./%s.xml" %mi_file)
         logger.set_source(src)
                                            
         #Analyzers. Use them according to technology in your logs
         # RRC analyzer for both LTE and UMTS
         src.enable_log_all() 
        # lte_rrc_analyzer.set_source(src) #bind with the monitor
                                                                
        # lte_nas_analyzer = LteNasAnalyzer()
        # lte_nas_analyzer.set_source(src)

        # umts_nas_analyzer = UmtsNasAnalyzer()
        # umts_nas_analyzer.set_source(src)