Add GPSTool TTFF log parsing function, to get Pandas DataFrames.
Bug: 143112261
Test: manual test.
Change-Id: I680ea1355fb49b086f5bfaa37b03cfdf4c987eda
diff --git a/acts/framework/acts/test_utils/gnss/gnss_testlog_utils.py b/acts/framework/acts/test_utils/gnss/gnss_testlog_utils.py
index 6bb18df..5de1a17 100644
--- a/acts/framework/acts/test_utils/gnss/gnss_testlog_utils.py
+++ b/acts/framework/acts/test_utils/gnss/gnss_testlog_utils.py
@@ -76,6 +76,18 @@
'Bearing'
]
+# GPS TTFF Log Reading Config
+CONFIG_GPSTTFFLOG = {
+ 'ttff_info':
+ r'Loop:(?P<loop>\d+)\s+'
+ r'(?P<start_datetime>\d+\/\d+\/\d+-\d+:\d+:\d+.\d+)\s+'
+ r'(?P<stop_datetime>\d+\/\d+\/\d+-\d+:\d+:\d+.\d+)\s+'
+ r'(?P<ttff>\d+.\d+)\s+'
+ r'\[Avg Top4 : (?P<avg_top4_cn0>\d+.\d+)\]\s'
+ r'\[Avg : (?P<avg_cn0>\d+.\d+)\]\s+\[(?P<fix_type>\d+\w+ fix)\]\s+'
+ r'\[Satellites used for fix : (?P<satnum_for_fix>\d+)\]'
+}
+
LOGPARSE_UTIL_LOGGER = logger.create_logger()
@@ -145,6 +157,37 @@
return parsed_data
+def parse_gpstool_ttfflog_to_df(filename):
+ """Parse GPSTool ttff log to Pandas dataframes.
+
+ Args:
+ filename: full log file name.
+ Type, String.
+
+ Returns:
+ ttff_df: TTFF Data Frame.
+ Type, Pandas DataFrame.
+ """
+ # Get parsed dataframe list
+ parsed_data = lputil.parse_log_to_df(
+ filename=filename,
+ configs=CONFIG_GPSTTFFLOG,
+ )
+ ttff_df = parsed_data['ttff_info']
+
+ # Data Conversion
+ ttff_df['loop'] = ttff_df['loop'].astype(int)
+ ttff_df['start_datetime'] = pds.to_datetime(ttff_df['start_datetime'])
+ ttff_df['stop_datetime'] = pds.to_datetime(ttff_df['stop_datetime'])
+ ttff_df['ttff'] = ttff_df['ttff'].astype(float)
+ ttff_df['avg_top4_cn0'] = ttff_df['avg_top4_cn0'].astype(float)
+ ttff_df['avg_cn0'] = ttff_df['avg_cn0'].astype(float)
+ ttff_df['satnum_for_fix'] = ttff_df['satnum_for_fix'].astype(int)
+
+ # return ttff dataframe
+ return ttff_df
+
+
def parse_gpsapilog_to_df(filename):
"""Parse GPS API log to Pandas dataframes.
@@ -161,7 +204,6 @@
Type, Pandas DataFrame.
include Provider, Latitude, Longitude, Altitude, GNSSTime, Speed, Bearing
"""
-
def get_phone_time(target_df_row, timestamp_df):
"""subfunction to get the phone_time."""
@@ -196,7 +238,7 @@
axis=1,
timestamp_df=timestamp_df)
current_df[['phone_time', 'time_row_num'
- ]] = pds.DataFrame(time_n_row_num.apply(pds.Series))
+ ]] = pds.DataFrame(time_n_row_num.apply(pds.Series))
# Get space vehicle info dataframe
sv_info_df = parsed_data['SpaceVehicle']