# RT Device CLI

Command line interface for managing the RT devices of the `rt_device_manager`. The `pal rt_device` command includes the following verbs:

## list
The `list` verb is used to display a list of all loaded devices along with their currently configured status. It will display up to three tables with the information of *Actuators*, *Sensors* and *IOS* respectively. This command does not require any arguments.

```bash
pal rt_device list
```

## info
The `info` verb is used to show detailed information about a single RT device: its metadata (name, device type, plugin, group, prefix and dummy status) and its configuration parameters.

Arguments:
- `devices`: The name of the device to show information about.

```bash
pal rt_device info <device>
```

Example output:
```bash
---------------------------------------------------------------------------
| Metadata:   | Value:                                                    |
---------------------------------------------------------------------------
| Name        | leg_left_5_actuator                                       |
| Device Type | actuator                                                  |
| Plugin      | pal_ethercat_grassland_actuator/EthercatGrasslandActuator |
| Group       |                                                           |
| Prefix      | leg_left                                                  |
| Dummy       | No                                                        |
---------------------------------------------------------------------------
-------------------------------------------------------
| Parameters:                             | Value:    |
-------------------------------------------------------
| absolute_encoder_resolution             | -4096     |
| absolute_encoder_type                   | rotary    |
| acceleration_limit                      | 10.0      |
| ball_screw_efficiency                   | 0.9       |
| calibration_offset                      | 0.0       |
| current_limit                           | 10.0      |
| deceleration_limit                      | 10.0      |
| force_sensor_compression_scaling        | 0.9978    |
| force_sensor_range                      | 2100.0    |
| force_sensor_sign                       | 1.0       |
| force_sensor_tension_scaling            | 0.9929    |
| incremental_encoder_reducer             | 0.005     |
| incremental_encoder_resolution          | 524288    |
| incremental_encoder_type                | linear    |
| lower_bound                             | -0.74     |
| motor_torque_constant                   | 0.105     |
| mounting_offset                         | 0.0       |
| serial_number                           | 7097574   |
| slave_alias                             | 0         |
| slave_position                          | 10        |
| slave_product                           | 268448001 |
| slave_vendor                            | 11563461  |
| upper_bound                             | 0.74      |
| use_absolute_encoder_for_initialization | False     |
-------------------------------------------------------

```

## set_dummies
The `set_dummies` verb is used to switch a list of devices to dummy status.

Arguments:
- `devices`: The list of device names to switch to dummy.
- `--dry-run`: Executes a dry run, without applying the changes. Useful for simulating what the behavior would be without actually applying it.
- `--quiet`, `-q`: Quiet output, just showing if the full operation succeeded or not.

```bash
pal rt_device set_dummies <device1> <device2> <device3> [--dry-run] [-q]
```

## unset_dummies
The `unset_dummies` verb is used to restore a list of devices to their normal state by removing their dummy status.

Arguments:
- `devices`: The list of device names to remove from dummy.
- `--dry-run`: Executes a dry run, without applying the changes. Useful for simulating what the behavior would be without actually applying it.
- `--quiet`, `-q`: Quiet output, just showing if the full operation succeeded or not.

```bash
pal rt_device unset_dummies <device1> <device2> <device3> [--dry-run] [-q]
```
