AWS IoT Demo della libreria Jobs - FreeRTOS

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à.

AWS IoT Demo della libreria Jobs

Importante

Questa demo è ospitata nel repository Amazon-FreeRTOS che è obsoleto. Ti consigliamo di iniziare da qui quando crei un nuovo progetto. Se disponi già di un progetto FreeRTOS esistente basato sull'ormai obsoleto repository Amazon-FreerTOS, consulta il. Guida alla migrazione del repository Github di Amazon-FreeRTOS

Introduzione

La demo della libreria AWS IoT Jobs mostra come connettersi al servizio AWS IoT Jobs tramite una connessione MQTT, recuperare un lavoro da ed elaborarlo su un dispositivo. AWS IoT Il progetto demo di AWS IoT Jobs utilizza la porta FreerTOS per Windows, quindi può essere creato e valutato con la versione Visual Studio Community su Windows. Non è necessario alcun hardware per microcontrollori. La demo stabilisce una connessione sicura al broker AWS IoT MQTT utilizzando TLS allo stesso modo del. Demo di autenticazione reciproca CoreMQTT

Nota

Per configurare ed eseguire le demo di FreerTOS, segui i passaggi indicati. Inizia con FreerTOS

Organizzazione del codice sorgente

Il codice demo si trova nel jobs_demo.c file e può essere trovato sul GitHubsito Web o nella freertos/demos/jobs_for_aws/ directory.

Configura la connessione del broker AWS IoT MQTT

In questa demo, si utilizza una connessione MQTT al broker AWS IoT MQTT. Questa connessione è configurata nello stesso modo di. Demo di autenticazione reciproca CoreMQTT

Funzionalità

La demo mostra il flusso di lavoro utilizzato per ricevere lavori da un dispositivo AWS IoT ed elaborarli su un dispositivo. La demo è interattiva e richiede la creazione di lavori utilizzando la AWS IoT console o AWS Command Line Interface (AWS CLI). Per ulteriori informazioni sulla creazione di un lavoro, vedere create-job nel AWS CLI Command Reference. La demo richiede che nel documento di lavoro sia impostata una action chiave print per stampare un messaggio sulla console.

Vedi il seguente formato per questo documento di lavoro.

{ "action": "print", "message": "ADD_MESSAGE_HERE" }

È possibile utilizzare il AWS CLI per creare un lavoro come nel seguente comando di esempio.

aws iot create-job \ --job-id t12 \ --targets arn:aws:iot:region:123456789012:thing/device1 \ --document '{"action":"print","message":"hello world!"}'

La demo utilizza anche un documento di lavoro con la action chiave impostata publish per ripubblicare il messaggio su un argomento. Vedi il seguente formato per questo documento di lavoro.

{ "action": "publish", "message": "ADD_MESSAGE_HERE", "topic": "topic/name/here" }

La demo si ripete finché non riceve un documento di lavoro con la action chiave impostata exit per uscire dalla demo. Il formato del documento di lavoro è il seguente.

{ "action: "exit" }

Punto di accesso alla demo di Jobs

Il codice sorgente per la funzione del punto di ingresso della demo di Jobs è disponibile su GitHub. Questa funzione esegue le seguenti operazioni:

  1. Stabilire una connessione MQTT utilizzando le funzioni di supporto in. mqtt_demo_helpers.c

  2. Abbonatevi all'argomento MQTT relativo all'NextJobExecutionChangedAPI, utilizzando le funzioni di supporto in. mqtt_demo_helpers.c La stringa dell'argomento è stata assemblata in precedenza, utilizzando le macro definite dalla libreria Jobs. AWS IoT

  3. Pubblica nell'argomento MQTT relativo all'StartNextPendingJobExecutionAPI, utilizzando le funzioni di supporto in. mqtt_demo_helpers.c La stringa dell'argomento è stata assemblata in precedenza, utilizzando le macro definite dalla libreria Jobs. AWS IoT

  4. Chiama ripetutamente MQTT_ProcessLoop per ricevere messaggi in arrivo che vengono consegnati prvEventCallback per l'elaborazione.

  5. Dopo che la demo ha ricevuto l'azione di uscita, annullate l'iscrizione all'argomento MQTT e disconnettetevi utilizzando le funzioni di supporto presenti nel file. mqtt_demo_helpers.c

Richiamata per i messaggi MQTT ricevuti

La prvEventCallbackfunzione chiama Jobs_MatchTopic dalla libreria AWS IoT Jobs per classificare il messaggio MQTT in arrivo. Se il tipo di messaggio corrisponde a un nuovo lavoro, prvNextJobHandler() viene chiamato.

La funzione prvNextJobHandler e le funzioni che chiama analizzano il documento di lavoro dal messaggio in formato JSON ed eseguono l'azione specificata dal processo. Di particolare interesse è la funzione. prvSendUpdateForJob

Invia un aggiornamento per un processo in esecuzione

La function prvSendUpdateForJob() chiama Jobs_Update() dalla libreria Jobs per compilare la stringa dell'argomento utilizzata nell'operazione di pubblicazione MQTT che segue immediatamente.