Skip to content

Commit

Permalink
Add example for call command (#98)
Browse files Browse the repository at this point in the history
Question:

Is there a way to this:

```
yakut call 125 435:uavcan.node.ExecuteCommand '{command: COMMAND_RESTART, parameter: "firmware.bin"}'
```


Instead of this:

```
yakut call 125 435:uavcan.node.ExecuteCommand '{command: 65533, parameter: "firmware.bin"}'
```

[Relevant forum
question](https://forum.opencyphal.org/t/yakut-file-commands/1815/2)

---------

Co-authored-by: Pavel Kirienko <[email protected]>
  • Loading branch information
maksimdrachov and pavel-kirienko authored Mar 13, 2024
1 parent 9e9cd2f commit 15949ea
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 3 deletions.
10 changes: 8 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ There are certain registers that are looked at by Cyphal nodes to determine how
If the available registers define more than one transport configuration, a redundant transport will be initialized. It is not necessary to assign all of these registers to use a particular transport because all of them except `uavcan.*.iface` come with defaults.

| Transport | Register name | Register type | Environment variable name | Semantics | Example environment variable value |
|-----------|-----------------------|----------------|---------------------------|------------------------------------------------------------|-------------------------------------|
| --------- | --------------------- | -------------- | ------------------------- | ---------------------------------------------------------- | ----------------------------------- |
| (any) | `uavcan.node.id` | `natural16[1]` | `UAVCAN__NODE__ID` | The local node-ID; anonymous if not set | `42` |
| UDP | `uavcan.udp.iface` | `string` | `UAVCAN__UDP__IFACE` | Space-separated local IPs (16 LSB overridden with node-ID) | `127.9.0.0 192.168.0.0` |
| Serial | `uavcan.serial.iface` | `string` | `UAVCAN__SERIAL__IFACE` | Space-separated serial port names | `COM9 socket://127.0.0.1:50905` |
Expand Down Expand Up @@ -305,6 +305,12 @@ You can still override the type if you want to use a different one (e.g., if the
y q 42 least_squares:my_namespace.MySpecialType '[[10, 1], [20, 2]]'
```

If your service call requires multiple arguments, specify them as follows:

```bash
yakut call 125 435:uavcan.node.ExecuteCommand '{command: 65533, parameter: "firmware.bin"}'
yakut call 125 435:uavcan.node.ExecuteCommand '[65533, "firmware.bin"]' # Shorter but position-sensitive

## Monitoring the network

The command `yakut monitor` can be used to display *all* activity on the network in a compact representation. It tracks online nodes and maintains real-time statistics on all transfers exchanged between each node on the network. It may also be able to detect some common network configuration issues like zombie nodes (nodes that do not publish `uavcan.node.Heartbeat`).
Expand Down Expand Up @@ -448,7 +454,7 @@ $ y r 125, m.inductance_dq --detailed --detailed
real32:
value: [1.2999999853491317e-05, 1.2000000424450263e-05]
_meta_: {mutable: true, persistent: true}
# If there is no such register, we get a null (empty):
$ y r 125 no.such.register
null
Expand Down
2 changes: 1 addition & 1 deletion yakut/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.13.1
0.13.2
1 change: 1 addition & 0 deletions yakut/cmd/call.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ async def call(
yakut call 42 uavcan.node.getinfo +M -T3 -Pe
yakut call 42 least_squares 'points: [{x: 10, y: 1}, {x: 20, y: 2}]'
yakut call 42 least_squares:sirius_cyber_corp.PerformLinearLeastSquaresFit '[[10, 1], [20, 2]]'
yakut call 125 435:uavcan.node.ExecuteCommand '{command: 65533, parameter: "firmware.bin"}'
"""
try:
from pycyphal.application import Node
Expand Down

0 comments on commit 15949ea

Please sign in to comment.