oresat / CANopen-monitor

An NCurses-based TUI application for tracking activity over the CAN bus and decoding messages with provided EDS/OD files.
https://canopen-monitor.readthedocs.io/
GNU General Public License v3.0
25 stars 6 forks source link

Application Crash on DCF File Parsing #59

Closed dmitri-mcguckin closed 3 years ago

dmitri-mcguckin commented 3 years ago

More information to follow.

Traceback (most recent call last):
File "/home/monitor/.local/bin//canopen-monitor", line 8, in <module>
sys.exit(main())
File "/home/monitor/.local/lib/python3.9/site-packages/canopen_monitor/__main__.py", line 68, in main
eds_configs = load_eds_files()
File "/home/monitor/.local/lib/python3.9/site-packages/canopen_monitor/__main__.py", line 19, in load_eds_files
config = load_eds_file(full_path)
File "/home/monitor/.local/lib/python3.9/site-packages/canopen_monitor/parse/eds.py", line 190, in load_eds_file
return EDS(list(map(lambda x: x.strip(), file.read().split('\n'))))
File "/home/monitor/.local/lib/python3.9/site-packages/canopen_monitor/parse/eds.py", line 149, in __init__
id = section[0][1:-1].split('sub')
IndexError: list index out of range
dmitri-mcguckin commented 3 years ago

Sample DCF file.

battery.dcf.txt

Boneill3 commented 3 years ago

The issue is caused by a blank line as the last line of the DCF file

Boneill3 commented 3 years ago

It looks like ending with a subindex actually requires a single blank line and ending with a non subindex requires no blank line.