Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS IoTLowongan kerja perpustakaan demo
penting
Demo ini di-host di repositori Amazon-freertos yang tidak digunakan lagi. Kami menyarankan Anda mulai di sini ketika Anda membuat proyek baru. Jika Anda sudah memiliki proyek FreeRTOS yang sudah ada berdasarkan repositori Amazon-freertos yang sekarang tidak digunakan lagi, lihatPanduan Migrasi Repositori Github Amazon-freertos.
Pengantar
Demo perpustakaanAWS IoT Pekerjaan menunjukkan kepada Anda cara terhubung ke layananAWS IoT Pekerjaan melalui koneksi MQTT, mengambil pekerjaan dariAWS IoT, dan memprosesnya di perangkat. Proyek demoAWS IoT Jobs menggunakan port FreeRTOS Windows
catatan
Untuk mengatur dan menjalankan demo FreeRTOS, ikuti langkah-langkah di dalamnyaMemulai dengan FreeRTOS.
Organisasi kode sumber sumber sumber sumber sumber sumber sumber
Kode demo ada dijobs_demo.c
file dan dapat ditemukan di GitHub
direktori.freertos
/demos/jobs_for_aws/
Konfigurasikan koneksi brokerAWS IoT MQTT
Dalam demo ini, Anda menggunakan koneksi MQTT ke brokerAWS IoT MQTT. Koneksi ini dikonfigurasi dengan cara yang sama sepertiDemo otentikasi timbal balik CoremQTT.
Fungsionalitas
Demo menunjukkan alur kerja yang digunakan untuk menerima pekerjaan dariAWS IoT dan memprosesnya di perangkat. Demo ini interaktif dan mengharuskan Anda untuk membuat pekerjaan dengan menggunakanAWS IoT konsol atauAWS Command Line Interface (AWS CLI). Untuk informasi selengkapnya tentang membuat pekerjaan, lihat create-job di ReferensiAWS CLI Perintah. Demo mengharuskan dokumen pekerjaan untuk memiliki setaction
kunciprint
untuk mencetak pesan ke konsol.
Lihat format berikut untuk dokumen pekerjaan ini.
{ "action": "print", "message": "ADD_MESSAGE_HERE" }
Anda dapat menggunakanAWS CLI untuk buat sebuah tugas seperti pada contoh berikut perintah.
aws iot create-job \ --job-id t12 \ --targets arn:aws:iot:
region
:123456789012:thing/device1 \ --document '{"action":"print","message":"hello world!"}'
Demo juga menggunakan dokumen pekerjaan yang memilikiaction
kunci ditetapkanpublish
untuk mempublikasikan ulang pesan ke topik. Lihat format berikut untuk dokumen pekerjaan ini.
{ "action": "publish", "message": "ADD_MESSAGE_HERE", "topic": "topic/name/here" }
Demo loop sampai menerima dokumen pekerjaan denganaction
kunci yang ditetapkanexit
untuk keluar dari demo. Format untuk dokumen pekerjaan adalah sebagai berikut.
{ "action: "exit" }
Titik masuk demo Jobs
Kode sumber untuk fungsi titik masuk demo Jobs dapat ditemukan di GitHub
-
Membangun koneksi MQTT menggunakan fungsi pembantu di
mqtt_demo_helpers.c
. -
Berlangganan topik MQTT untuk
NextJobExecutionChanged
API, menggunakan fungsi pembantu dimqtt_demo_helpers.c
. String topik dirakit sebelumnya, menggunakan makro yang ditentukan oleh pustakaAWS IoT Jobs. -
Publikasikan ke topik MQTT untuk
StartNextPendingJobExecution
API, menggunakan fungsi pembantu dimqtt_demo_helpers.c
. String topik dirakit sebelumnya, menggunakan makro yang ditentukan oleh pustakaAWS IoT Jobs. -
Berulang kali menelepon
MQTT_ProcessLoop
untuk menerima pesan masuk yang diserahkanprvEventCallback
untuk diproses. -
Setelah demo menerima tindakan keluar, berhenti berlangganan dari topik MQTT dan putuskan sambungan, menggunakan fungsi pembantu dalam
mqtt_demo_helpers.c
file.
Callback untuk pesan MQTT yang diterima
prvEventCallbackJobs_MatchTopic
dari perpustakaanAWS IoT Jobs untuk mengklasifikasikan pesan MQTT yang masuk. Jika jenis pesan sesuai dengan pekerjaan baru,prvNextJobHandler()
dipanggil.
Fungsi prvNextJobHandlerprvSendUpdateForJob
fungsinya.
Mengirim pembaruan untuk pekerjaan yang sedang berjalan
Fungsi prvSendUpdateForJob()Jobs_Update()
dari pustaka Jobs untuk mengisi string topik yang digunakan dalam operasi penerbitan MQTT yang segera mengikuti.