Processing the file

The central_service.log file may be processed with the help of the delay_meas module.

import rs_mrt_dau_utilities.delay_meas as delay

measurements = delay.extract_delay_from_log(
    "central_service.log"
)

The measurement variable contains a dictionary of Polars dataframes. Each key of the dictionaries is a combination of two numbers: X_Y

  • X: a start/stop session (main switch of the Delay measurement application)

  • Y: a measurement who was activated during this session (enable/disable switch)

For example, 1_1 means first measurement of the first session.

# get the first measurement dataframe of the first measurement cycle
first_meas = measurements["1_1"]
first_meas

hash

delay_global_us

1250852322484709

53

1251539517252070

49

1252226712019431

51

1252913906786792

48

1253601101554153

55

3311062235032987

43

3311749429800348

39

3312436624567709

41

3313123819335070

39

3313811014102431

41

Every packet is represented by its hash value and the delay in microseconds. The measurement mode defines the meaning of the delay:

  • LOOPBACK: Measures the CMX500 internal delay in IMS loopback mode

  • DL: Measures the CMX500-internal delay in DL direction

  • UL: Measures the CMX500-internal delay in UL direction

  • E2E Audio delay: Measures the audio delay between the XLR analog output and XLR analog input connectors of the R&S CMX-ZG180A external sound card

  • E2E Audio delay DL: End-to-end DL delay of the speech decoder inside the DUT

  • E2E Audio delay UL: End-to-end UL delay of the speech encoder inside the DUT

This is possible to perform further analysis on these dataframes using Polars functionalities. A plot of the delay distribution can be created as shown below (Altair library is used for plotting):

import rs_mrt_dau_utilities.delay_meas as delay

delay.plot_all(first_meas)
_images/example_delay_plot.svg