|
13 | 13 |
|
14 | 14 | from can import LogReader, Message, MessageSync
|
15 | 15 |
|
16 |
| - |
17 | 16 | from .logger import _create_base_argument_parser, _create_bus
|
18 | 17 |
|
19 | 18 |
|
20 | 19 | def main() -> None:
|
21 |
| - parser = argparse.ArgumentParser( |
22 |
| - "python -m can.player", description="Replay CAN traffic." |
23 |
| - ) |
| 20 | + parser = argparse.ArgumentParser(description="Replay CAN traffic.") |
24 | 21 |
|
25 | 22 | _create_base_argument_parser(parser)
|
26 | 23 |
|
@@ -87,31 +84,27 @@ def main() -> None:
|
87 | 84 |
|
88 | 85 | error_frames = results.error_frames
|
89 | 86 |
|
90 |
| - bus = _create_bus(results) |
91 |
| - |
92 |
| - reader = LogReader(results.infile) |
93 |
| - |
94 |
| - in_sync = MessageSync( |
95 |
| - cast(Iterable[Message], reader), |
96 |
| - timestamps=results.timestamps, |
97 |
| - gap=results.gap, |
98 |
| - skip=results.skip, |
99 |
| - ) |
100 |
| - |
101 |
| - print(f"Can LogReader (Started on {datetime.now()})") |
102 |
| - |
103 |
| - try: |
104 |
| - for m in in_sync: |
105 |
| - if m.is_error_frame and not error_frames: |
106 |
| - continue |
107 |
| - if verbosity >= 3: |
108 |
| - print(m) |
109 |
| - bus.send(m) |
110 |
| - except KeyboardInterrupt: |
111 |
| - pass |
112 |
| - finally: |
113 |
| - bus.shutdown() |
114 |
| - reader.stop() |
| 87 | + with _create_bus(results) as bus: |
| 88 | + with LogReader(results.infile) as reader: |
| 89 | + |
| 90 | + in_sync = MessageSync( |
| 91 | + cast(Iterable[Message], reader), |
| 92 | + timestamps=results.timestamps, |
| 93 | + gap=results.gap, |
| 94 | + skip=results.skip, |
| 95 | + ) |
| 96 | + |
| 97 | + print(f"Can LogReader (Started on {datetime.now()})") |
| 98 | + |
| 99 | + try: |
| 100 | + for message in in_sync: |
| 101 | + if message.is_error_frame and not error_frames: |
| 102 | + continue |
| 103 | + if verbosity >= 3: |
| 104 | + print(message) |
| 105 | + bus.send(message) |
| 106 | + except KeyboardInterrupt: |
| 107 | + pass |
115 | 108 |
|
116 | 109 |
|
117 | 110 | if __name__ == "__main__":
|
|
0 commit comments