This release fixes a regression introduced in the last one and brings much-needed tools for node configuration management.
- List registers on the specified nodes:
y rl 100-128 - Read registers from a node or several:
cat node_registers.yaml | y rb 123y rl 100-128 | y --yaml rb > config.yaml
- Configure node(s) from a file:
cat config.yaml | y rb - Read a single register from a group of nodes:
y r 122-126 m.inductance_dq - Write a single register on a group of nodes:
y r 122-126 m.inductance_dq 14e-6 14e-6 - Invoke
uavcan.node.ExecuteCommandon one or multiple nodes:y cmd 100-128 restart.
Data type names supplied to y sub/pub/call are now case-insensitive (but in many cases they are not required thanks to automatic discovery).
New shorter options were added for common use cases: -j/-y/-t do the same thing as --format=json/--format=yaml/--format=tsvh, respectively. For y sub, option --sync does the right thing automatically so the user doesn’t have to think about which synchronization policy should be chosen.
The README was extended with a practical usage example: GitHub - OpenCyphal/yakut: Simple CLI tool for diagnostics and debugging of Cyphal networks.
Speaking of which, that README is getting too big and I am thinking that the Yakut docs need a new medium. Maybe it should be split into several Markdown files. Maybe we should transform that into a static website using GitHub Pages or something. Suggestions welcome.
The PyCyphal Demo chapter was updated to reflect the new capabilities: Demo — PyCyphal 1.8.3 documentation
Here is a comparison of two identical invocations between v0.9 and v0.11:
v0.9:
# Case-sensitive, version numbers required:
y sub 2347:uavcan.si.unit.voltage.Scalar.1.0
# Each field value has to be named explicitly:
y pub 2345:uavcan.si.unit.temperature.Scalar.1.0 'kelvin: 250' \
2346:uavcan.si.sample.temperature.Scalar.1.0 'kelvin: 240'
v0.11:
# Case-insensitive, version not required:
y sub 2347:uavcan.si.unit.voltage.scalar
# Fields and outer objects may be omitted, in this case positional initialization is used:
y pub 2345:uavcan.si.unit.temperature.scalar 250 \
2346:uavcan.si.sample.temperature.scalar 'kelvin: 240'