Homepage GitHub

Yakut monitor & looking for help with plotting

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:

Hi. Can’t compile dsdl. What am I doing wrong?

~/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.