Skip to content
Snippets Groups Projects
Commit 2154be9b authored by Kien Le's avatar Kien Le
Browse files

Read mass position lines

parent b38e2e6b
No related branches found
No related tags found
No related merge requests found
...@@ -56,41 +56,45 @@ def detect_log_file_packet_format(packet: List[str]) -> LogFileFormat: ...@@ -56,41 +56,45 @@ def detect_log_file_packet_format(packet: List[str]) -> LogFileFormat:
def parse_soh_packet_no_type(packet: List[str]): def parse_soh_packet_no_type(packet: List[str]):
eh_et_lines = [] eh_et_lines = []
soh_lines = packet 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]): def parse_soh_packet_logpeek(packet: List[str]):
eh_et_lines = [] eh_et_lines = []
soh_lines = [] soh_lines = []
masspos_lines = []
for line in packet: for line in packet:
if line.startswith('DAS: '): if line.startswith('DAS: '):
eh_et_lines.append(line) eh_et_lines.append(line)
else: elif line.startswith('LPMP'):
soh_lines.append(line) 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]): def parse_soh_packet_rt2ms(packet: List[str]):
eh_et_lines = [] eh_et_lines = []
soh_lines = [] soh_lines = []
masspos_lines = []
if packet[0].startswith('EH') or packet[0].startswith('ET'): if packet[0].startswith('EH') or packet[0].startswith('ET'):
# The event info is summarized in the last line of an event info packet # The event info is summarized in the last line of an event info packet
eh_et_lines = [packet[-1]] eh_et_lines = [packet[-1]]
else: else:
soh_lines = packet[1:] 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]): def parse_soh_packet_sohstationviewer(packet: List[str]):
eh_et_lines = [] eh_et_lines = []
soh_lines = [] soh_lines = []
masspos_lines = []
if packet[0].startswith('Events:'): if packet[0].startswith('Events:'):
eh_et_lines = packet[1:] eh_et_lines = packet[1:]
else: else:
soh_lines = packet soh_lines = packet
return eh_et_lines, soh_lines return eh_et_lines, soh_lines, masspos_lines
...@@ -121,7 +125,7 @@ class LogFile: ...@@ -121,7 +125,7 @@ class LogFile:
self.file.close() 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] = { PACKET_PARSERS: Dict[Optional[LogFileFormat], Parser] = {
None: parse_soh_packet_no_type, None: parse_soh_packet_no_type,
'sohstationviewer': parse_soh_packet_sohstationviewer, 'sohstationviewer': parse_soh_packet_sohstationviewer,
...@@ -162,6 +166,7 @@ class LogFileReader: ...@@ -162,6 +166,7 @@ class LogFileReader:
self.log_file_type: Optional[LogFileFormat] = None self.log_file_type: Optional[LogFileFormat] = None
self.eh_et_lines = [] self.eh_et_lines = []
self.soh_lines = [] self.soh_lines = []
self.masspos_lines = []
self.station_code: Optional[str] = None self.station_code: Optional[str] = None
self.experiment_number: Optional[str] = None self.experiment_number: Optional[str] = None
...@@ -172,7 +177,7 @@ class LogFileReader: ...@@ -172,7 +177,7 @@ class LogFileReader:
self.log_file_type = detect_log_file_packet_format(packet) self.log_file_type = detect_log_file_packet_format(packet)
parser = PACKET_PARSERS[self.log_file_type] 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: if self.station_code is None and soh_lines:
self.station_code = soh_lines[0].split(' ')[-1].strip() self.station_code = soh_lines[0].split(' ')[-1].strip()
if self.experiment_number is None and soh_lines: if self.experiment_number is None and soh_lines:
...@@ -181,6 +186,7 @@ class LogFileReader: ...@@ -181,6 +186,7 @@ class LogFileReader:
self.eh_et_lines.extend(eh_et_lines) self.eh_et_lines.extend(eh_et_lines)
self.soh_lines.extend(soh_lines) self.soh_lines.extend(soh_lines)
self.soh_lines.append('\n') self.soh_lines.append('\n')
self.masspos_lines.extend(masspos_lines)
if __name__ == '__main__': if __name__ == '__main__':
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment