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
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 GitHub
directory.freertos
/demos/jobs_for_aws/
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
-
Stabilire una connessione MQTT utilizzando le funzioni di supporto in.
mqtt_demo_helpers.c
-
Abbonatevi all'argomento MQTT relativo all'
NextJobExecutionChanged
API, 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 -
Pubblica nell'argomento MQTT relativo all'
StartNextPendingJobExecution
API, 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 -
Chiama ripetutamente
MQTT_ProcessLoop
per ricevere messaggi in arrivo che vengono consegnatiprvEventCallback
per l'elaborazione. -
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 prvEventCallbackJobs_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 prvNextJobHandlerprvSendUpdateForJob
Invia un aggiornamento per un processo in esecuzione
La function prvSendUpdateForJob()Jobs_Update()
dalla libreria Jobs per compilare la stringa dell'argomento utilizzata nell'operazione di pubblicazione MQTT che segue immediatamente.