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 99ef189e45f71ba550852cb08bf62bbad418a3e8..0ada1749aa104bd35d61c5ce3d202899329dea9f 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__':