From 2154be9bbd66b17a8e4e4463b042e031bed04acf Mon Sep 17 00:00:00 2001
From: kienle <kienle@passcal.nmt.edu>
Date: Tue, 26 Sep 2023 21:51:52 -0600
Subject: [PATCH] Read mass position lines

---
 .../reftek_reader/log_file_reader.py          | 20 ++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/sohstationviewer/model/reftek_data/reftek_reader/log_file_reader.py b/sohstationviewer/model/reftek_data/reftek_reader/log_file_reader.py
index 99ef189e4..0ada1749a 100644
--- a/sohstationviewer/model/reftek_data/reftek_reader/log_file_reader.py
+++ b/sohstationviewer/model/reftek_data/reftek_reader/log_file_reader.py
@@ -56,41 +56,45 @@ def detect_log_file_packet_format(packet: List[str]) -> LogFileFormat:
 def parse_soh_packet_no_type(packet: List[str]):
     eh_et_lines = []
     soh_lines = packet
-    return eh_et_lines, soh_lines
+    masspos_lines = []
+    return eh_et_lines, soh_lines, masspos_lines
 
 
 def parse_soh_packet_logpeek(packet: List[str]):
     eh_et_lines = []
     soh_lines = []
+    masspos_lines = []
     for line in packet:
         if line.startswith('DAS: '):
             eh_et_lines.append(line)
-        else:
+        elif line.startswith('LPMP'):
             soh_lines.append(line)
 
-    return eh_et_lines, soh_lines
+    return eh_et_lines, soh_lines, masspos_lines
 
 
 def parse_soh_packet_rt2ms(packet: List[str]):
     eh_et_lines = []
     soh_lines = []
+    masspos_lines = []
     if packet[0].startswith('EH') or packet[0].startswith('ET'):
         # The event info is summarized in the last line of an event info packet
         eh_et_lines = [packet[-1]]
     else:
         soh_lines = packet[1:]
 
-    return eh_et_lines, soh_lines
+    return eh_et_lines, soh_lines, masspos_lines
 
 
 def parse_soh_packet_sohstationviewer(packet: List[str]):
     eh_et_lines = []
     soh_lines = []
+    masspos_lines = []
     if packet[0].startswith('Events:'):
         eh_et_lines = packet[1:]
     else:
         soh_lines = packet
-    return eh_et_lines, soh_lines
+    return eh_et_lines, soh_lines, masspos_lines
 
 
 
@@ -121,7 +125,7 @@ class LogFile:
         self.file.close()
 
 
-Parser = Callable[[List[str]], Tuple[List[str], List[str]]]
+Parser = Callable[[List[str]], Tuple[List[str], List[str], List[str]]]
 PACKET_PARSERS: Dict[Optional[LogFileFormat], Parser] = {
     None: parse_soh_packet_no_type,
     'sohstationviewer': parse_soh_packet_sohstationviewer,
@@ -162,6 +166,7 @@ class LogFileReader:
         self.log_file_type: Optional[LogFileFormat] = None
         self.eh_et_lines = []
         self.soh_lines = []
+        self.masspos_lines = []
         self.station_code: Optional[str] = None
         self.experiment_number: Optional[str] = None
 
@@ -172,7 +177,7 @@ class LogFileReader:
                 self.log_file_type = detect_log_file_packet_format(packet)
 
             parser = PACKET_PARSERS[self.log_file_type]
-            eh_et_lines, soh_lines = parser(packet)
+            eh_et_lines, soh_lines, masspos_lines = parser(packet)
             if self.station_code is None and soh_lines:
                 self.station_code = soh_lines[0].split(' ')[-1].strip()
             if self.experiment_number is None and soh_lines:
@@ -181,6 +186,7 @@ class LogFileReader:
             self.eh_et_lines.extend(eh_et_lines)
             self.soh_lines.extend(soh_lines)
             self.soh_lines.append('\n')
+            self.masspos_lines.extend(masspos_lines)
 
 
 if __name__ == '__main__':
-- 
GitLab