| 7 | import mat4py |
| 8 | |
| 9 | class OutputStructure: |
| 10 | index = 0 |
| 11 | frame_length = 0 |
| 12 | data_format = "" |
| 13 | hex_format = False |
| 14 | name = "" |
| 15 | frames = [] |
| 16 | |
| 17 | def __init__(self): |
| 18 | self.frames = [] |
| 19 | |
| 20 | def import_frames(self, lines, key, inter_frame): |
| 21 | # list line numbers with specified keys |
| 22 | key_lns = [] |
| 23 | for i in range(0, len(lines)): |
| 24 | if key in lines[i]: |
| 25 | key_lns.append(i) |
| 26 | |
| 27 | for key_ln in key_lns: |
| 28 | first_frame_ln = key_ln + 1 + inter_frame * self.index |
| 29 | for i in range(0, inter_frame): |
| 30 | frame = lines[first_frame_ln + i] |
| 31 | if inter_frame > 1: |
| 32 | frame = frame[frame.find("(") + 1: frame.find(")")] |
| 33 | else: |
| 34 | frame = frame[frame.find("[") + 1: frame.find("]")] |
| 35 | frame = frame.replace(" ", "") |
| 36 | frame = frame.replace(",", " ") |
| 37 | frame = frame.split(" ") |
| 38 | self.frames.append(frame) |
| 39 | self.hex_format = "0x" in self.frames[0][0] |
| 40 | |
| 41 | def export_as_text(self, path, frame_index=None): |
| 42 | with open(path, "w") as fout: |
| 43 | if frame_index is None: |
| 44 | fout.write(str(len(self.frames)) + "\n") |
| 45 | else: |
| 46 | fout.write("1" + "\n") |
| 47 | fout.write(self.data_format + "\n") |
| 48 | fout.write(str(self.frame_length) + "\n") |
| 49 | |
| 50 | if frame_index is None: |
| 51 | for frame in self.frames: |
| 52 | self.export_frame_as_text(fout, frame) |
| 53 | else: |
| 54 | self.export_frame_as_text(fout, self.frames[frame_index]) |
| 55 | |
| 56 | def export_frame_as_text(self, fout, frame): |
| 57 | for i, value in enumerate(frame): |
| 58 | if i: |
| 59 | fout.write(" ") |
| 60 | fout.write(value) |
| 61 | fout.write("\n") |
| 62 | |
| 63 | def export_as_source(self, path, frame_index=None): |
| 64 | export_all = False |
| 65 | if frame_index is None: |
| 66 | export_all = True |
no outgoing calls
no test coverage detected