

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Escenarios de uso de comandos
<a name="remote-command-use-cases"></a>

**importante**  
El acceso a ciertas FleetWise funciones de AWS IoT está actualmente restringido. Para obtener más información, consulte [AWS Disponibilidad regional y de funciones en el AWS IoT FleetWise](fleetwise-regions.md).

Al utilizar la función de comandos, puede crear y ejecutar comandos en los siguientes escenarios:
+ Puede omitir los parámetros durante la creación y especificar solo el ID del comando. En este caso, debe especificar los parámetros que se utilizarán al ejecutar el comando en el dispositivo de destino.
+ Puede especificar uno o más parámetros y configurar sus valores predeterminados al crear el comando. Proporcionar valores predeterminados le ayudará a evitar el envío de comandos imprecisos.
+ Puede especificar uno o más parámetros y configurar sus valores al crear el comando. Se puede proporcionar más de un parámetro, pero solo se ejecutará uno de ellos, y el `Name` campo de este parámetro debe usar el `$actuatorPath` prefijo.

En esta sección se proporcionan algunos escenarios de uso para la `StartCommandExecution` API `CreateCommand` y el uso de los parámetros. También muestra algunos ejemplos del uso de comandos con plantillas de estado.

**Topics**
+ [Crear un comando sin parámetros](#remote-command-use-case1)
+ [Crear un comando con valores predeterminados para los parámetros](#remote-command-use-case2)
+ [Crear un comando con valores de parámetros](#remote-command-use-case3)
+ [Uso de comandos con plantillas de estado](#remote-command-use-cases-templates)

## Crear un comando sin parámetros
<a name="remote-command-use-case1"></a>

El siguiente caso de uso muestra cómo puede usar la `CreateCommand` API o la `create-command` CLI para crear un comando sin parámetros. Al crear un comando, solo necesita proporcionar un ID de comando y un ARN de rol.

Este caso de uso es especialmente útil en casos de uso recurrentes, como cuando se quiere enviar el mismo comando varias veces a un vehículo. En este caso, el comando no está vinculado a un actuador específico y ofrece la flexibilidad necesaria para ejecutar el comando en cualquier actuador. En lugar de ello, debe especificar los parámetros en tiempo de ejecución al ejecutar el comando mediante la `StartCommandExecution` API o la `start-command-execution` CLI, que incluye los valores de los actuadores y las señales físicas.

### Crear un comando sin entrada `mandatory-parameters`
<a name="remote-command-use-case1-create"></a>

Este caso de uso muestra cómo crear un comando sin introducir parámetros obligatorios.

```
aws iot create-command \
    --command-id "UserJourney1" \
    --role-arn "arn:aws:iam:accountId:role/FwCommandExecutionRole" \
    --description "UserJourney1 - No mandatory parameters" \
    --namespace "AWS-IoT-FleetWise"
```

### Ejecutar un comando creado sin `mandatory-parameters` entrada
<a name="remote-command-use-case1-start"></a>

En este primer ejemplo, el comando que se creó anteriormente permite ejecutar un comando en cualquier actuador sin restricciones. `actuator1`Para establecer un valor de 10, ejecute:

```
aws iot-jobs-data start-command-execution \
    --command-arn arn:aws:iot:region:111122223333:command/UserJourney1 \
    --target-arn arn:aws:iot:region:111122223333:thing/target-vehicle \
    --parameters '{
        "$actuatorPath.Vehicle.actuator1": {"S": "10"}
    }'
```

Del mismo modo, puede ejecutar un comando que se establezca `actuator3` en un valor de`true`.

```
aws iot-jobs-data start-command-execution \
    --command-arn arn:aws:iot:region:111122223333:command/UserJourney1 \
    --target-arn arn:aws:iot:region:111122223333:thing/target-vehicle \
    --parameters '{
        "$actuatorPath.Vehicle.actuator3": {"S": "true"}
    }'
```

## Crear un comando con valores predeterminados para los parámetros
<a name="remote-command-use-case2"></a>

Este comando solo permite ejecutar un comando en el actuador especificado. Proporcionar valores predeterminados le ayudará a evitar el envío de comandos imprecisos. Por ejemplo, un `LockDoor` comando que bloquea y abre puertas se puede configurar con un valor predeterminado para evitar que el comando desbloquee puertas accidentalmente.

Este caso de uso resulta especialmente útil cuando se desea enviar el mismo comando varias veces y realizar diferentes acciones en el mismo actuador, como bloquear y desbloquear las puertas de un vehículo. Si desea configurar el actuador en el valor predeterminado, no necesita pasar ninguno `parameters` a la `start-command-execution` CLI. Si especifica un valor diferente para el `parameters` en la `start-command-execution` CLI, se anulará el valor predeterminado.

### Crear un comando con valores predeterminados para `mandatory-parameters`
<a name="remote-command-use-case2-create"></a>

El siguiente comando muestra cómo proporcionar un valor por defecto para el actuador1.

```
aws iot create-command \
    --command-id "UserJourney2" \
    --namespace "AWS-IoT-FleetWise" \
    --role-arn "arn:aws:iam:accountId:role/FwCommandExecutionRole" \
    --mandatory-parameters '[
        {
            "name": "$actuatorPath.Vehicle.actuator1",
            "defaultValue": {"S": "0"}
        }
    ]'
```

### Ejecutar un comando creado con valores predeterminados para `mandatory-parameters`
<a name="remote-command-use-case2-start"></a>

El comando `UserJourney2` permite ejecutar un comando sin necesidad de pasar un valor de entrada durante el tiempo de ejecución. En este caso, la ejecución en tiempo de ejecución utilizará los valores predeterminados especificados durante la creación.

```
aws iot-data start-command-execution \
    --command-arn arn:aws:iot:region:111122223333:command/UserJourney3 \
    --target-arn arn:aws:iot:region:111122223333:thing/target-vehicle
```

También puede pasar un valor diferente para el mismo actuador, el actuator1, durante el tiempo de ejecución, lo que anulará el valor predeterminado.

```
aws iot-jobs-data start-command-execution \
    --command-arn arn:aws:iot:region:111122223333:command/UserJourney3 \
    --target-arn arn:aws:iot:region:111122223333:thing/target-vehicle \
    --parameters '{
        "$actuatorPath.Vehicle.actuator1": {"S": "139"}
    }'
```

## Crear un comando con valores de parámetros
<a name="remote-command-use-case3"></a>

Este comando solo permite ejecutar un comando en el actuador especificado. También le obliga a establecer un valor para el actuador durante el tiempo de ejecución.

Este caso de uso es especialmente útil cuando se quiere que el usuario final solo realice determinadas acciones específicas en algunos de los actuadores cuando los utilice en el vehículo.

**nota**  
Puede tener más de pares nombre-valor para la `mandatory-parameters` entrada, con valores predeterminados para algunos o todos ellos. En tiempo de ejecución, puede determinar el parámetro que desea usar cuando se ejecuta en el actuador, siempre que el nombre del actuador utilice el nombre completo con el prefijo. `$actuatorPath.`

### Crear un comando sin valores predeterminados para `mandatory-parameters`
<a name="remote-command-use-case3-create"></a>

Este comando solo permite ejecutar un comando en el actuador especificado. También le obliga a establecer un valor para el actuador durante el tiempo de ejecución.

```
aws iot create-command \
    --command-id "UserJourney2" \
    --namespace "AWS-IoT-FleetWise" \
    --role-arn "arn:aws:iam:accountId:role/FwCommandExecutionRole" \
    --mandatory-parameters '[
        {
            "name": "$actuatorPath.Vehicle.actuator1"
        }
    ]'
```

### Ejecutar un comando creado sin valores predeterminados para `mandatory-parameters`
<a name="remote-command-use-case3-start"></a>

Al ejecutar el comando, en este caso, debe especificar un valor para el actuador1. La ejecución del comando que se muestra a continuación establecerá correctamente el valor de `actuator1` en. `10`

```
aws iot-data start-command-execution \    
    --command-arn arn:aws:iot:region:111122223333:command/UserJourney2 \
    --target-arn arn:aws:iot:region:111122223333:thing/target-vehicle \
    --parameters '{
        "$actuatorPath.Vehicle.actuator1": {"S": "10"}
    }'
```

## Uso de comandos con plantillas de estado
<a name="remote-command-use-cases-templates"></a>

También puede utilizar las operaciones de la API de comandos para la recopilación y el procesamiento de datos de estado. Por ejemplo, puede obtener una instantánea del estado de un solo uso o activar o desactivar las plantillas de estado para iniciar o detener la recopilación de datos del estado del vehículo. Los siguientes ejemplos muestran cómo utilizar la función de comandos con plantillas de estado. Para obtener más información, consulte [Operaciones de plantillas de estado para la recopilación y el procesamiento de datos](state-template-api-operations.md)

**nota**  
El campo Nombre especificado como parte de la `mandatory-parameters` entrada debe usar el `$stateTemplate` prefijo.

### Ejemplo 1: Crear comandos para plantillas de estado con valores predeterminados
<a name="remote-command-use-cases-template-ex1"></a>

En este ejemplo, se muestra cómo utilizar la `create-command` CLI para activar las plantillas de estado.

```
aws iot create-command \
    --command-id <COMMAND_ID> \
    --display-name "Activate State Template" \
    --namespace AWS-IoT-FleetWise \    
    --mandatory-parameters '[
      {
          "name": "$stateTemplate.name"
      },
      {
          "name": "$stateTemplate.operation",
          "defaultValue": {"S": "activate"}
      }
    ]'
```

Del mismo modo, el siguiente comando muestra un ejemplo de cómo puede utilizar la `start-command-execution` CLI para las plantillas de estado.

```
aws iot-data start-command-execution \
    --command-arn arn:aws:iot:region:111122223333:command/<COMMAND_ID> \
    --target-arn arn:aws:iot:region:111122223333:thing/<VEHICLE_NAME> \
    --parameters '{
       "$stateTemplate.name": {"S": "ST345"}
    }'
```

### Ejemplo 2: Crear comandos para plantillas de estado sin valores predeterminados
<a name="remote-command-use-cases-template-ex2"></a>

El siguiente comando crea varias plantillas de estado sin valores predeterminados para ninguno de los parámetros. Obliga a ejecutar el comando con estos parámetros y sus valores.

```
aws iot create-command \
    --command-id <COMMAND_ID> \
    --display-name "Activate State Template" \
    --namespace AWS-IoT-FleetWise \
    --mandatory-parameters '[
      {
          "name": "$stateTemplate.name",
          "defaultValue": {"S": "ST123"}
      },
      {
          "name": "$stateTemplate.operation",
          "defaultValue": {"S": "activate"}
      },
      {
          "name": "$stateTemplate.deactivateAfterSeconds",
          "defaultValue": {"L": "120"}
      } 
    ]'
```

El siguiente comando muestra cómo puede utilizar la `start-command-execution` CLI para el ejemplo anterior.

```
aws iot-data start-command-execution \
    --command-arn arn:aws:iot:region:111122223333:command/<COMMAND_ID> \
    --target-arn arn:aws:iot:region:111122223333:thing/<VEHICLE_NAME> \
    --parameters '{
        "$stateTemplate.name": {"S": "ST345"},
        "$stateTemplate.operation": {"S": "activate"},
        "$stateTemplate.deactivateAfterSeconds" : {"L": "120"}
```