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 123
y 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.ExecuteCommand
on 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'