本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon IoT作业库演示
介绍
这些区域有:Amazon IoT作业库演示向您展示了如何连接到Amazon IoTJobs 服务通过 MQTT 连接,从Amazon IoT,然后在设备上处理它。这些区域有:Amazon IoT乔布斯演示项目使用Windows 端口
要设置和运行 FreeRTOS 演示,请按照中的步骤操作入门.
源代码组织
演示代码在jobs_demo.c
并且可以在GitHub
目录。freertos
/demos/jobs_for_aws/
配置Amazon IoTMQTT 代理连接
在本演示中,您使用 MQTT 连接到Amazon IoTMQTT 代理。配置此连接的方式与CoreMQTT 双向身份验证演示.
功能
该演示展示了用于从中接收工作的工作流程Amazon IoT然后在设备上处理它们。该演示是交互式的,需要你使用Amazon IoT控制台或Amazon Command Line Interface(Amazon CLI)。有关创建作业的更多信息,请参阅创建作业中的Amazon CLI命令参考. 该演示要求作业文档中有action
键设置为print
将消息输出到控制台。
请参阅以下格式了解此工作文档。
{ "action": "print", "message": "ADD_MESSAGE_HERE" }
您可以使用Amazon CLI以创建作业,如以下示例命令所示。
aws iot create-job \ --job-id t12 \ --targets arn:aws:iot:
region
:123456789012:thing/device1 \ --document '{"action":"print","message":"hello world!"}'
该演示还使用了一份工作文档,该文档具有action
键设置为publish
将消息重新发布到主题。请参阅以下格式了解此工作文档。
{ "action": "publish", "message": "ADD_MESSAGE_HERE", "topic": "topic/name/here" }
演示将循环直到收到包含action
键设置为exit
以退出演示。作业文档的格式如下。
{ "action: "exit" }
乔布斯演示的入口点
作业演示入口点函数的源代码位于GitHub
-
使用中的帮助函数建立 MQTT 连接
mqtt_demo_helpers.c
. -
订阅 MQTT 主题以获取
NextJobExecutionChanged
API,在中使用帮助函数mqtt_demo_helpers.c
. 主题字符串是先前组装的,使用Amazon IoT作业库。 -
发布到 MQTT 主题以获取
StartNextPendingJobExecution
API,在中使用帮助函数mqtt_demo_helpers.c
. 主题字符串是先前组装的,使用Amazon IoT作业库。 -
反复打电话
MQTT_ProcessLoop
接收传入的消息prvEventCallback
用于处理。 -
演示收到退出操作后,取消订阅 MQTT 主题并断开连接,使用
mqtt_demo_helpers.c
文件。
回调收到的 MQTT 消息
这些区域有:prvEventCallbackJobs_MatchTopic
来自 的Amazon IoTJob 库用于对传入的 MQTT 消息进行分类。如果消息类型与新作业对应,prvNextJobHandler()
被调用。
这些区域有:prvNextJob 处理程序prvSendUpdateForJob
function.
发送正在运行的作业的更新
该函数prvSendFor Job 的更新 ()Jobs_Update()
从 Jobs 库中填充紧接下来的 MQTT 发布操作中使用的主题字符串。