

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Konsep perintah
<a name="remote-command-concepts-states"></a>

**penting**  
Akses ke FleetWise fitur AWS IoT tertentu saat ini terjaga keamanannya. Untuk informasi selengkapnya, lihat [AWS Ketersediaan wilayah dan fitur di AWS IoT FleetWise](fleetwise-regions.md).

Perintah adalah instruksi yang dikirim dari cloud ke perangkat target Anda. Perangkat target dapat berupa kendaraan dan harus terdaftar sebagai *AWS IoT sesuatu* dalam registri benda. Perintah dapat berisi parameter yang menentukan tindakan yang perlu dilakukan aktuator kendaraan. Kendaraan kemudian mem-parsing perintah dan parameternya, dan memprosesnya untuk mengambil tindakan yang sesuai. Kemudian merespons aplikasi cloud dengan status eksekusi perintah.

Untuk alur kerja terperinci, lihat[Kendaraan dan perintah](remote-command-vehicles.md).

**Topics**
+ [Perintah konsep kunci](#remote-command-concepts)
+ [Status pelaksanaan perintah](#remote-command-execution-status-codes)

## Perintah konsep kunci
<a name="remote-command-concepts"></a>

Berikut ini menunjukkan beberapa konsep kunci untuk menggunakan fitur perintah dan cara kerjanya dengan templat status status terakhir yang diketahui (LKS).

**Perintah**  
Perintah adalah entitas yang dapat Anda gunakan untuk mengirim instruksi ke kendaraan fisik agar melakukan tindakan seperti menyalakan mesin atau mengubah posisi jendela. Anda dapat menentukan serangkaian perintah untuk kasus penggunaan tertentu, atau menggunakannya untuk membuat konfigurasi yang dapat digunakan kembali untuk kasus penggunaan berulang. Misalnya, Anda dapat mengonfigurasi perintah yang dapat digunakan oleh Aplikasi untuk mengunci pintu kendaraan atau mengubah suhu dari jarak jauh.

**Namespace**  
Saat Anda menggunakan fitur perintah, Anda harus menentukan namespace untuk perintah tersebut. Saat Anda membuat perintah di AWS IoT FleetWise, Anda harus memilih `AWS-IoT-FleetWise` sebagai namespace Anda. Saat Anda menggunakan namespace ini, Anda harus memberikan parameter yang akan digunakan untuk menjalankan perintah pada kendaraan. Jika Anda ingin membuat perintah sebagai AWS IoT Device Management gantinya, Anda harus menggunakan `AWS-IoT` namespace sebagai gantinya. Untuk informasi selengkapnya, lihat [perintah](https://docs.aws.amazon.com/iot/latest/developerguide/iot-remote-command.html) di *panduan AWS IoT Device Management pengembang*.

**Negara komando**  
Perintah yang Anda buat akan berada dalam keadaan tersedia, yang berarti dapat digunakan untuk memulai eksekusi perintah pada kendaraan. Jika perintah menjadi usang, Anda dapat menghentikan perintah tersebut. Untuk perintah dalam status usang, eksekusi perintah yang ada akan berjalan hingga selesai. Anda tidak dapat memperbarui perintah atau menjalankan eksekusi baru apa pun. Untuk mengirim eksekusi baru, Anda harus mengembalikan perintah agar tersedia.  
Anda juga dapat menghapus perintah jika tidak lagi diperlukan. Ketika Anda menandai perintah untuk penghapusan, jika perintah telah usang untuk durasi yang lebih lama dari batas waktu maksimum 24 jam, perintah akan segera dihapus. Jika perintah tidak digunakan lagi, atau tidak digunakan lagi untuk durasi yang lebih pendek dari batas waktu maksimum, perintah akan berada dalam status penghapusan tertunda. Perintah akan dihapus secara otomatis dari akun Anda setelah 24 jam.

**Parameter**  
Saat membuat perintah, Anda dapat secara opsional menentukan parameter yang Anda inginkan untuk dijalankan oleh kendaraan target saat menjalankan perintah. Perintah yang Anda buat adalah konfigurasi yang dapat digunakan kembali dan dapat digunakan untuk mengirim beberapa eksekusi perintah ke kendaraan Anda dan menjalankannya secara bersamaan. Atau, Anda juga dapat menentukan parameter hanya saat runtime dan memilih untuk melakukan operasi satu kali membuat perintah dan mengirimkannya ke kendaraan Anda.

**Target kendaraan**  
Ketika Anda ingin menjalankan perintah, Anda harus menentukan kendaraan target yang akan menerima perintah dan melakukan tindakan tertentu. Kendaraan target pasti sudah terdaftar sebagai *barang* dengan AWS IoT. Setelah Anda mengirim perintah ke kendaraan, itu akan mulai mengeksekusi instance perintah berdasarkan parameter dan nilai yang Anda tentukan.

**Aktuator**  
Saat Anda ingin menjalankan perintah, Anda harus menentukan aktuator pada kendaraan yang akan menerima perintah dan nilainya yang menentukan tindakan yang akan dilakukan. Anda dapat secara opsional mengonfigurasi nilai default untuk aktuator untuk menghindari pengiriman perintah yang tidak akurat. Misalnya, Anda dapat menggunakan nilai default `LockDoor` ke aktuator kunci pintu sehingga perintah tidak membuka kunci pintu secara tidak sengaja. Untuk informasi umum tentang aktuator, lihat. [Konsep utama](how-iotfleetwise-works.md#key-concepts)

**Dukungan tipe data**  
Tipe data berikut didukung untuk aktuator yang digunakan untuk fitur perintah.  
Array tidak didukung untuk data telematika, perintah, atau status terakhir yang diketahui (LKS). Anda hanya dapat menggunakan tipe data array untuk data sistem visi.
+ Jenis titik mengambang. Jenis berikut didukung.
  + Float (32 bit)
  + Ganda (64 bit)
+ Integer (ditandatangani dan tidak ditandatangani). Jenis integer berikut didukung.
  + int8 dan uint8
  + int16 dan uint16
  + int32 dan uint32
+ Panjang. Tipe panjang berikut didukung.
  + Panjang (int64)
  + Panjang tidak ditandatangani (uint64)
+ String
+ Boolean

**Eksekusi perintah**  
Eksekusi perintah adalah instance dari perintah yang berjalan pada perangkat target. Kendaraan menjalankan perintah menggunakan parameter yang Anda tentukan saat Anda membuat perintah atau saat Anda memulai eksekusi perintah. Kendaraan kemudian melakukan operasi yang ditentukan dan mengembalikan status eksekusi.  
Untuk kendaraan tertentu, Anda dapat menjalankan beberapa perintah secara bersamaan. Untuk informasi tentang jumlah maksimum eksekusi bersamaan yang dapat Anda jalankan untuk setiap kendaraan, lihat [AWS IoT Device Management perintah](https://docs.aws.amazon.com/general/latest/gr/iot_device_management.html#commands-limits) kuota.

**Template status status terakhir yang diketahui (LKS)**  
Templat negara menyediakan mekanisme bagi pemilik kendaraan untuk melacak keadaan kendaraan mereka. Untuk memantau status terakhir yang diketahui (LKS) kendaraan Anda dalam waktu dekat, Anda dapat membuat templat negara dan mengaitkannya dengan kendaraan Anda.  
Dengan menggunakan fitur perintah, Anda dapat melakukan operasi “On Demand” yang dapat digunakan untuk pengumpulan dan pemrosesan data negara. Misalnya, Anda dapat meminta status kendaraan saat ini satu kali (ambil), atau mengaktifkan atau menonaktifkan templat status LKS yang digunakan sebelumnya untuk memulai atau menghentikan pelaporan data kendaraan. Untuk contoh yang menunjukkan cara menggunakan perintah dengan templat status, lihat[Skenario penggunaan perintah](remote-command-use-cases.md).

## Status pelaksanaan perintah
<a name="remote-command-execution-status-codes"></a>

Setelah Anda memulai eksekusi perintah, kendaraan Anda dapat mempublikasikan status eksekusi, dan memberikan alasan status sebagai informasi tambahan tentang eksekusi. Bagian berikut menjelaskan berbagai status eksekusi perintah, dan kode status.

**Topics**
+ [Kode alasan status eksekusi perintah dan deskripsi](#remote-command-execution-status-reason-codes)
+ [Status eksekusi perintah dan kode status](#remote-command-execution-status-codes)
+ [Status batas waktu eksekusi perintah](#remote-command-execution-status-timeout)

### Kode alasan status eksekusi perintah dan deskripsi
<a name="remote-command-execution-status-reason-codes"></a>

Untuk melaporkan pembaruan ke status eksekusi perintah, kendaraan Anda dapat menggunakan `UpdateCommandExecution` API untuk mempublikasikan informasi status yang diperbarui ke cloud, menggunakan [topik yang dicadangkan Perintah](https://docs.aws.amazon.com/iot/latest/developerguide/reserved-topics.html#reserved-topics-commands) yang dijelaskan dalam *panduan AWS IoT Core pengembang*. Saat melaporkan informasi status, perangkat Anda dapat memberikan konteks tambahan tentang status setiap eksekusi perintah menggunakan `StatusReason` objek, dan bidang `reasonCode` dan `reasonDescription` yang terkandung dalam objek.

### Status eksekusi perintah dan kode status
<a name="remote-command-execution-status-codes"></a>

Tabel berikut menunjukkan berbagai kode status eksekusi perintah dan status yang diizinkan yang dapat dialihkan oleh eksekusi perintah. Ini juga menunjukkan apakah eksekusi perintah adalah “terminal” (yaitu, tidak ada pembaruan status lebih lanjut yang akan datang), apakah perubahan dimulai oleh kendaraan atau cloud, dan kode status yang telah ditentukan sebelumnya yang berbeda dan bagaimana mereka memetakan ke status yang dilaporkan oleh cloud.
+ Untuk informasi tentang cara AWS IoT FleetWise menggunakan kode status yang telah ditentukan sebelumnya, dan `statusReason` objek, lihat [Status perintah dalam dokumentasi](https://github.com/aws/aws-iot-fleetwise-edge/blob/main/include/aws/iotfleetwise/ICommandDispatcher.h) perangkat lunak *Agen Edge untuk AWS FleetWise IoT*.
+ *Untuk informasi tambahan tentang eksekusi terminal dan non-terminal, serta transisi antar status, lihat [Status eksekusi perintah](https://docs.aws.amazon.com/iot/latest/developerguide/iot-remote-command-concepts.html#iot-command-execution-status) dalam panduan pengembang.AWS IoT Core *


**Status eksekusi perintah dan sumber**  

| Status pelaksanaan perintah | Deskripsi | Diprakarsai oleh perangkat/cloud? | Eksekusi terminal? | Transisi status yang diizinkan | Kode status yang telah ditentukan sebelumnya | 
| --- | --- | --- | --- | --- | --- | 
| CREATED | Ketika permintaan API untuk mulai mengeksekusi perintah (StartCommandExecutionAPI) berhasil, status eksekusi perintah berubah menjadiCREATED. | Cloud | Tidak |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot-fleetwise/latest/developerguide/remote-command-concepts-states.html)  | Tidak ada | 
| IN\$1PROGRESS | Saat kendaraan mulai menjalankan perintah, ia dapat mempublikasikan pesan ke topik respons untuk memperbarui statusnya. IN\$1PROGRESS | Perangkat | Tidak |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot-fleetwise/latest/developerguide/remote-command-concepts-states.html)  | COMMAND\$1STATUS\$1COMMAND\$1IN\$1PROGRESS | 
| SUCCEEDED | Ketika kendaraan telah berhasil memproses perintah dan menyelesaikan eksekusi, kendaraan dapat mempublikasikan pesan ke topik respons untuk memperbarui statusnyaSUCCEEDED. | Perangkat | Ya | Tidak berlaku | COMMAND\$1STATUS\$1SUCCEEDED | 
| FAILED | Ketika kendaraan gagal menjalankan perintah, ia dapat mempublikasikan pesan ke topik respons untuk memperbarui statusnyaFAILED. | Perangkat | Ya | Tidak berlaku | COMMAND\$1STATUS\$1EXECUTION\$1FAILED | 
| REJECTED | Jika kendaraan gagal menerima perintah, ia dapat mempublikasikan pesan ke topik respons untuk memperbarui statusnyaREJECTED. | Perangkat | Ya | Tidak berlaku | Tidak ada | 
| TIMED\$1OUT |  Status eksekusi perintah dapat berubah `TIMED_OUT` karena salah satu alasan berikut. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot-fleetwise/latest/developerguide/remote-command-concepts-states.html) Untuk informasi selengkapnya tentang status ini, lihat[Status batas waktu eksekusi perintah](#remote-command-execution-status-timeout).  | Perangkat dan cloud | Tidak |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot-fleetwise/latest/developerguide/remote-command-concepts-states.html)  | COMMAND\$1STATUS\$1EXECUTION\$1TIMEOUT | 

### Status batas waktu eksekusi perintah
<a name="remote-command-execution-status-timeout"></a>

Batas waktu eksekusi perintah dapat dilaporkan oleh cloud dan perangkat. Setelah perintah dikirim ke perangkat, timer dimulai. Jika tidak ada respons yang diterima dari perangkat dalam durasi yang ditentukan, cloud melaporkan `TIMED_OUT` status. Dalam hal ini, eksekusi perintah dalam `TIMED_OUT` status adalah non-terminal.

Perangkat dapat mengganti status ini ke status terminal, seperti, `SUCCEEDED``FAILED`, atau`REJECTED`. Itu juga dapat melaporkan bahwa batas waktu terjadi saat menjalankan perintah. Dalam hal ini, status eksekusi perintah tetap di `TIMED_OUT` tetapi bidang `StatusReason` objek diperbarui berdasarkan informasi yang dilaporkan oleh perangkat. Eksekusi perintah dalam `TIMED_OUT` status sekarang menjadi terminal.

Untuk informasi tambahan, lihat [Pertimbangan batas waktu eksekusi perintah](https://docs.aws.amazon.com/iot/latest/developerguide/iot-remote-command-execution-start-monitor.html#iot-command-execution-timeout) dalam panduan *AWS IoT Core pengembang*.