

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Scénarios d'utilisation des commandes
<a name="remote-command-use-cases"></a>

**Important**  
L'accès à certaines FleetWise fonctionnalités de AWS l'IoT est actuellement restreint. Pour de plus amples informations, veuillez consulter [AWS Disponibilité des régions et des fonctionnalités dans AWS l'IoT FleetWise](fleetwise-regions.md).

Lorsque vous utilisez la fonctionnalité de commandes, vous pouvez créer et exécuter des commandes dans les scénarios suivants :
+ Vous pouvez omettre les paramètres lors de la création et spécifier uniquement l'ID de commande. Dans ce cas, vous devez spécifier les paramètres à utiliser lors de l'exécution de la commande sur le périphérique cible.
+ Vous pouvez spécifier un ou plusieurs paramètres et configurer leurs valeurs par défaut lors de la création de la commande. En fournissant des valeurs par défaut, vous éviterez d'envoyer des commandes inexactes.
+ Vous pouvez spécifier un ou plusieurs paramètres et configurer leurs valeurs lors de la création de la commande. Plusieurs paramètres peuvent être fournis, mais un seul d'entre eux sera exécuté, et le `Name` champ de ce paramètre doit utiliser le `$actuatorPath` préfixe.

Cette section fournit des scénarios d'utilisation pour l'`CreateCommand``StartCommandExecution`API et l'utilisation des paramètres. Il présente également quelques exemples d'utilisation de commandes avec des modèles d'état.

**Topics**
+ [Création d'une commande sans paramètres](#remote-command-use-case1)
+ [Création d'une commande avec des valeurs par défaut pour les paramètres](#remote-command-use-case2)
+ [Création d'une commande avec des valeurs de paramètres](#remote-command-use-case3)
+ [Utilisation de commandes avec des modèles d'état](#remote-command-use-cases-templates)

## Création d'une commande sans paramètres
<a name="remote-command-use-case1"></a>

Le cas d'utilisation suivant montre comment vous pouvez utiliser l'`CreateCommand`API ou la `create-command` CLI pour créer une commande sans paramètres. Lorsque vous créez une commande, il vous suffit de fournir un ID de commande et un ARN de rôle.

Ce cas d'utilisation est particulièrement utile dans les cas d'utilisation récurrents, par exemple lorsque vous souhaitez envoyer la même commande plusieurs fois à un véhicule. Dans ce cas, la commande n'est pas liée à un actionneur spécifique et vous donne la flexibilité d'exécuter la commande sur n'importe quel actionneur. Vous devez plutôt spécifier les paramètres au moment de l'exécution lorsque vous exécutez la commande à l'aide de l'`StartCommandExecution`API ou de la `start-command-execution` CLI, qui inclut les actionneurs et les valeurs des signaux physiques.

### Création d'une commande sans `mandatory-parameters` saisie
<a name="remote-command-use-case1-create"></a>

Ce cas d'utilisation montre comment créer une commande sans saisie de paramètres obligatoires.

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

### Exécution d'une commande créée sans `mandatory-parameters` saisie
<a name="remote-command-use-case1-start"></a>

Dans ce premier exemple, la commande créée ci-dessus vous permet d'exécuter une commande sur n'importe quel actionneur sans restrictions. Pour `actuator1` définir une valeur de 10, exécutez :

```
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"}
    }'
```

De même, vous pouvez exécuter une commande dont `actuator3` la valeur est définie sur`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"}
    }'
```

## Création d'une commande avec des valeurs par défaut pour les paramètres
<a name="remote-command-use-case2"></a>

Cette commande vous permet uniquement d'exécuter une commande sur l'actionneur spécifié. En fournissant des valeurs par défaut, vous éviterez d'envoyer des commandes inexactes. Par exemple, une `LockDoor` commande qui verrouille et déverrouille des portes peut être configurée avec une valeur par défaut afin d'éviter que la commande ne déverrouille accidentellement des portes.

Ce cas d'utilisation est particulièrement utile lorsque vous souhaitez envoyer la même commande plusieurs fois et effectuer différentes actions sur le même actionneur, telles que le verrouillage et le déverrouillage des portières d'un véhicule. Si vous souhaitez régler l'actionneur sur la valeur par défaut, vous n'avez pas besoin d'en transmettre `parameters` à la `start-command-execution` CLI. Si vous spécifiez une valeur différente pour le `parameters` dans la `start-command-execution` CLI, elle remplacera la valeur par défaut.

### Création d'une commande avec des valeurs par défaut pour `mandatory-parameters`
<a name="remote-command-use-case2-create"></a>

La commande suivante montre comment fournir une valeur par défaut pour actuator1.

```
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"}
        }
    ]'
```

### Exécution d'une commande créée avec des valeurs par défaut pour `mandatory-parameters`
<a name="remote-command-use-case2-start"></a>

La commande vous `UserJourney2` permet d'exécuter une commande sans avoir à transmettre de valeur d'entrée pendant l'exécution. Dans ce cas, l'exécution au moment de l'exécution utilisera les valeurs par défaut spécifiées lors de la création.

```
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
```

Vous pouvez également transmettre une valeur différente pour le même actionneur, actuator1, pendant l'exécution, qui remplacera la valeur par défaut.

```
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"}
    }'
```

## Création d'une commande avec des valeurs de paramètres
<a name="remote-command-use-case3"></a>

Cette commande vous permet uniquement d'exécuter une commande sur l'actionneur spécifié. Cela vous oblige également à définir une valeur pour l'actionneur pendant l'exécution.

Ce cas d'utilisation est particulièrement utile lorsque vous souhaitez que l'utilisateur final n'effectue que certaines actions spécifiées sur certains actionneurs lorsqu'il les fait fonctionner sur le véhicule.

**Note**  
Vous pouvez avoir plus que des paires nom-valeur pour l'`mandatory-parameters`entrée, avec des valeurs par défaut pour certaines d'entre elles ou pour toutes. Au moment de l'exécution, vous pouvez ensuite déterminer le paramètre que vous souhaitez utiliser lors de l'exécution de l'actionneur, à condition que le nom de l'actionneur utilise le nom complet avec le `$actuatorPath.` préfixe.

### Création d'une commande sans valeurs par défaut pour `mandatory-parameters`
<a name="remote-command-use-case3-create"></a>

Cette commande vous permet uniquement d'exécuter une commande sur l'actionneur spécifié. Cela vous oblige également à définir une valeur pour l'actionneur pendant l'exécution.

```
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"
        }
    ]'
```

### Exécution d'une commande créée sans valeurs par défaut pour `mandatory-parameters`
<a name="remote-command-use-case3-start"></a>

Lors de l'exécution de la commande, dans ce cas, vous devez spécifier une valeur pour actionneur1. L'exécution de la commande illustrée ci-dessous définira avec succès la valeur de `actuator1` to`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"}
    }'
```

## Utilisation de commandes avec des modèles d'état
<a name="remote-command-use-cases-templates"></a>

Vous pouvez également utiliser les opérations de l'API de commandes pour la collecte et le traitement des données d'état. Par exemple, vous pouvez récupérer un instantané d'état unique ou activer ou désactiver des modèles d'état pour démarrer ou arrêter la collecte de données sur l'état du véhicule. Les exemples suivants montrent comment utiliser la fonctionnalité de commandes avec des modèles d'état. Pour de plus amples informations, consultez [Opérations relatives aux modèles d’état pour la collecte et le traitement des données](state-template-api-operations.md).

**Note**  
Le champ Nom spécifié dans le cadre de la `mandatory-parameters` saisie doit utiliser le `$stateTemplate` préfixe.

### Exemple 1 : création de commandes pour des modèles d'état avec des valeurs par défaut
<a name="remote-command-use-cases-template-ex1"></a>

Cet exemple montre comment utiliser la `create-command` CLI pour activer des modèles d'état.

```
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"}
      }
    ]'
```

De même, la commande suivante montre un exemple de la manière dont vous pouvez utiliser la `start-command-execution` CLI pour les modèles d'état.

```
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"}
    }'
```

### Exemple 2 : Création de commandes pour des modèles d'états sans valeurs par défaut
<a name="remote-command-use-cases-template-ex2"></a>

La commande suivante crée plusieurs modèles d'états sans valeurs par défaut pour aucun des paramètres. Cela vous oblige à exécuter la commande avec ces paramètres et leurs valeurs.

```
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"}
      } 
    ]'
```

La commande suivante montre comment utiliser la `start-command-execution` CLI dans l'exemple ci-dessus.

```
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"}
```