I just opened a new pull request that adds the monitor command that’s been asked about several times here:
It allows you to see what’s happening on the network, who is online, and what data is being exchanged. It relies on the low-level packet capture/tracing API that I introduced into PyUAVCAN a few months ago.
I made it out of necessity since we still don’t have Yukon around but I expect it to remain highly useful even when Yukon is available. Similarly, the yet-missing plotting tool, the ticket about which I put up earlier today, will also be useful with or without Yukon; we could really use some help here:
~/yakut$ yakut compile ~/yakut/dsdl_files_in/ --output ./dsdl_compiled
Traceback (most recent call last):
File "/home/raserg/.local/bin/yakut", line 11, in <module>
sys.exit(main())
File "/home/raserg/.local/lib/python3.7/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/home/raserg/.local/lib/python3.7/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/home/raserg/.local/lib/python3.7/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/raserg/.local/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/raserg/.local/lib/python3.7/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/home/raserg/.local/lib/python3.7/site-packages/yakut/cmd/compile.py", line 114, in compile_
allow_unregulated_fixed_port_id=allow_unregulated_fixed_port_id,
File "/home/raserg/.local/lib/python3.7/site-packages/yakut/cmd/compile.py", line 183, in _generate_dsdl_packages
allow_unregulated_fixed_port_id=allow_unregulated_fixed_port_id,
File "/home/raserg/.local/lib/python3.7/site-packages/pyuavcan/dsdl/_compiler.py", line 171, in compile
allow_unregulated_fixed_port_id=allow_unregulated_fixed_port_id,
File "/home/raserg/.local/lib/python3.7/site-packages/pydsdl/_namespace.py", line 150, in read_namespace
target_dsdl_definitions = _construct_dsdl_definitions_from_namespace(root_namespace_directory)
File "/home/raserg/.local/lib/python3.7/site-packages/pydsdl/_namespace.py", line 450, in _construct_dsdl_definitions_from_namespace
dsdl_def = _dsdl_definition.DSDLDefinition(fp, root_namespace_path)
File "/home/raserg/.local/lib/python3.7/site-packages/pydsdl/_dsdl_definition.py", line 64, in __init__
raise FileNameFormatError("Invalid file name", path=self._file_path)
pydsdl._dsdl_definition.FileNameFormatError: /home/raserg/yakut/dsdl_files_in/uavcan/CoarseOrientation.uavcan: Invalid file name
pydsdl._dsdl_definition.FileNameFormatError: /home/raserg/yakut/dsdl_files_in/uavcan/CoarseOrientation.uavcan: Invalid file name
You are trying to compile v0 definitions using v1 tools, this is not going to work. Yakut does not support the experimental version of the protocol (also known as UAVCAN v0, which is now obsolete). It only supports UAVCAN v1, the stable version.