

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Scenari di utilizzo dei comandi
<a name="remote-command-use-cases"></a>

**Importante**  
L'accesso a determinate FleetWise funzionalità AWS IoT è attualmente limitato. Per ulteriori informazioni, consulta [AWS Disponibilità di aree e funzionalità nell' AWS IoT FleetWise](fleetwise-regions.md).

Quando si utilizza la funzionalità dei comandi, è possibile creare ed eseguire comandi nei seguenti scenari:
+ È possibile omettere i parametri durante la creazione e specificare solo l'ID del comando. In questo caso, è necessario specificare i parametri da utilizzare quando si esegue il comando sul dispositivo di destinazione.
+ È possibile specificare uno o più parametri e configurarne i valori predefiniti durante la creazione del comando. L'immissione di valori predefiniti ti aiuterà a proteggerti dall'invio di comandi imprecisi.
+ È possibile specificare uno o più parametri e configurarne i valori durante la creazione del comando. È possibile fornire più di un parametro, ma solo uno di essi verrà eseguito e il `Name` campo di questo parametro deve utilizzare il `$actuatorPath` prefisso.

Questa sezione fornisce alcuni scenari di utilizzo per `CreateCommand` e l'`StartCommandExecution`API e l'utilizzo dei parametri. Vengono inoltre mostrati alcuni esempi di utilizzo dei comandi con modelli di stato.

**Topics**
+ [Creazione di un comando senza parametri](#remote-command-use-case1)
+ [Creazione di un comando con valori predefiniti per i parametri](#remote-command-use-case2)
+ [Creazione di un comando con valori di parametro](#remote-command-use-case3)
+ [Utilizzo di comandi con modelli di stato](#remote-command-use-cases-templates)

## Creazione di un comando senza parametri
<a name="remote-command-use-case1"></a>

Il seguente caso d'uso mostra come utilizzare l'`CreateCommand`API o la `create-command` CLI per creare un comando senza parametri. Quando si crea un comando, è sufficiente fornire un ID di comando e un ARN del ruolo.

Questo caso d'uso è particolarmente utile nei casi d'uso ricorrenti, ad esempio quando si desidera inviare lo stesso comando più volte a un veicolo. In questo caso, il comando non è legato a un attuatore specifico e offre la flessibilità di eseguire il comando su qualsiasi attuatore. È invece necessario specificare i parametri in fase di esecuzione quando si esegue il comando utilizzando l'`StartCommandExecution`API o la `start-command-execution` CLI, che include gli attuatori e i valori del segnale fisico.

### Creazione di un comando senza input `mandatory-parameters`
<a name="remote-command-use-case1-create"></a>

Questo caso d'uso mostra come creare un comando senza l'immissione di parametri obbligatori.

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

### Esecuzione di un comando creato senza `mandatory-parameters` input
<a name="remote-command-use-case1-start"></a>

In questo primo esempio, il comando creato sopra consente di eseguire un comando su qualsiasi attuatore senza restrizioni. Per impostare un valore pari `actuator1` a 10, esegui:

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

Allo stesso modo, puoi eseguire un comando che imposta `actuator3` un valore di`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"}
    }'
```

## Creazione di un comando con valori predefiniti per i parametri
<a name="remote-command-use-case2"></a>

Questo comando consente solo di eseguire un comando sull'attuatore specificato. L'immissione di valori predefiniti contribuirà a proteggere l'utente dall'invio di comandi imprecisi. Ad esempio, un `LockDoor` comando che blocca e sblocca le porte può essere configurato con un valore predefinito per evitare che il comando sblocchi accidentalmente le porte.

Questo caso d'uso è particolarmente utile quando si desidera inviare lo stesso comando più volte ed eseguire azioni diverse sullo stesso attuatore, come bloccare e sbloccare le portiere di un veicolo. Se si desidera impostare l'attuatore sul valore predefinito, non è necessario passarlo `parameters` alla `start-command-execution` CLI. Se si specifica un valore diverso per la `parameters` nella `start-command-execution` CLI, questo sovrascriverà il valore predefinito.

### Creazione di un comando con valori predefiniti per `mandatory-parameters`
<a name="remote-command-use-case2-create"></a>

Il comando seguente mostra come fornire un valore predefinito per 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"}
        }
    ]'
```

### Esecuzione di un comando creato con valori predefiniti per `mandatory-parameters`
<a name="remote-command-use-case2-start"></a>

Il comando `UserJourney2` consente di eseguire un comando senza la necessità di passare un valore di input durante l'esecuzione. In questo caso, l'esecuzione in fase di esecuzione utilizzerà i valori predefiniti specificati durante la creazione.

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

È inoltre possibile passare un valore diverso per lo stesso attuatore, actuator1, durante l'esecuzione, il che sostituirà il valore predefinito.

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

## Creazione di un comando con valori di parametro
<a name="remote-command-use-case3"></a>

Questo comando consente solo di eseguire un comando sull'attuatore specificato. Inoltre, obbliga a impostare un valore per l'attuatore durante l'esecuzione.

Questo caso d'uso è particolarmente utile quando si desidera che l'utente finale esegua solo determinate azioni specifiche su alcuni attuatori durante il funzionamento del veicolo.

**Nota**  
È possibile avere più di coppie nome-valore per l'`mandatory-parameters`input, con valori predefiniti per alcune o tutte. In fase di esecuzione, è quindi possibile determinare il parametro da utilizzare durante l'esecuzione sull'attuatore, a condizione che il nome dell'attuatore utilizzi il nome completo con il prefisso. `$actuatorPath.`

### Creazione di un comando senza valori predefiniti per `mandatory-parameters`
<a name="remote-command-use-case3-create"></a>

Questo comando consente solo di eseguire un comando sull'attuatore specificato. Inoltre, obbliga a impostare un valore per l'attuatore durante l'esecuzione.

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

### Esecuzione di un comando creato senza valori predefiniti per `mandatory-parameters`
<a name="remote-command-use-case3-start"></a>

Quando si esegue il comando, in questo caso, è necessario specificare un valore per actuator1. L'esecuzione del comando mostrata di seguito imposterà correttamente il valore di `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"}
    }'
```

## Utilizzo di comandi con modelli di stato
<a name="remote-command-use-cases-templates"></a>

Puoi anche utilizzare le operazioni dell'API dei comandi per la raccolta e l'elaborazione dei dati statali. Ad esempio, è possibile recuperare un'istantanea monouso dello stato o attivare o disattivare i modelli di stato per avviare o interrompere la raccolta dei dati sullo stato del veicolo. Gli esempi seguenti mostrano come utilizzare la funzionalità dei comandi con i modelli di stato. Per ulteriori informazioni, consulta [Operazioni relative ai modelli di stato per la raccolta e l’elaborazione dei dati](state-template-api-operations.md)

**Nota**  
Il campo Nome specificato come parte dell'`mandatory-parameters`input deve utilizzare il `$stateTemplate` prefisso.

### Esempio 1: creazione di comandi per modelli di stato con valori predefiniti
<a name="remote-command-use-cases-template-ex1"></a>

Questo esempio mostra come utilizzare la `create-command` CLI per attivare i modelli di stato.

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

Analogamente, il comando seguente mostra un esempio di come è possibile utilizzare la `start-command-execution` CLI per i modelli di stato.

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

### Esempio 2: creazione di comandi per modelli di stato senza valori predefiniti
<a name="remote-command-use-cases-template-ex2"></a>

Il comando seguente crea più modelli di stato senza valori predefiniti per nessuno dei parametri. Ti obbliga a eseguire il comando con questi parametri e i relativi valori.

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

Il comando seguente mostra come utilizzare la `start-command-execution` CLI per l'esempio precedente.

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