产品动态
set(BUILD_TYPE "release")set(COMPILE_TOOLS "gcc")set(PLATFORM "linux")set(FEATURE_MQTT_COMM_ENABLED ON)set(FEATURE_MQTT_DEVICE_SHADOW ON)set(FEATURE_AUTH_MODE "KEY")set(FEATURE_AUTH_WITH_NOTLS OFF)set(FEATURE_DEBUG_DEV_INFO_USED OFF)
./cmake_build.sh
output/release/bin文件夹中。"auth_mode":"KEY","productId":"GYT9V6D4AF","deviceName":"airConditioner1","key_deviceinfo":{"deviceSecret":"vXeds12qazsGsMyf5SMfs6OA6y"}
"auth_mode":"KEY","productId":"S3EUVBRJLB","deviceName":"door1","key_deviceinfo":{"deviceSecret":"i92E3QMNmxi5hvIxUHjO8gTdg"}
_register_subscribe_topics 实现了对主题 /{productID}/{deviceName}/control 的订阅,并且注册对应的回调处理函数。收到该 topic 消息后,判断消息内容是 “come_home” 或者 “leave_home” 而分别让 airConditioner 开启或者关闭。_simulate_room_temperature 则简单模拟了下室内温度的变化和 airConditioner 的能耗。用户也可以实现其他自定义逻辑。./output/release/bin/aircond_shadow_sample -c ./device_info.jsonINF|2019-09-16 23:25:17|device.c|iot_device_info_set(67): SDK_Ver: 3.1.0, Product_ID: GYT9V6D4AF, Device_Name: airConditioner1INF|2019-09-16 23:25:19|mqtt_client.c|IOT_MQTT_Construct(125): mqtt connect with id: Nh9Vc successDBG|2019-09-16 23:25:19|mqtt_client_subscribe.c|qcloud_iot_mqtt_subscribe(138): topicName=$shadow/operation/result/GYT9V6D4AF/airConditioner1|packet_id=56171DBG|2019-09-16 23:25:19|shadow_client.c|_shadow_event_handler(63): shadow subscribe success, packet-id=56171INF|2019-09-16 23:25:19|aircond_shadow_sample.c|event_handler(96): subscribe success, packet-id=56171INF|2019-09-16 23:25:19|shadow_client.c|IOT_Shadow_Construct(172): Sync device data successfullyINF|2019-09-16 23:25:19|aircond_shadow_sample.c|main(256): Cloud Device Construct SuccessDBG|2019-09-16 23:25:19|mqtt_client_subscribe.c|qcloud_iot_mqtt_subscribe(138): topicName=GYT9V6D4AF/airConditioner1/control|packet_id=56172DBG|2019-09-16 23:25:19|shadow_client.c|_shadow_event_handler(63): shadow subscribe success, packet-id=56172INF|2019-09-16 23:25:19|aircond_shadow_sample.c|event_handler(96): subscribe success, packet-id=56172INF|2019-09-16 23:25:19|aircond_shadow_sample.c|main(291): airConditioner state: closeINF|2019-09-16 23:25:19|aircond_shadow_sample.c|main(292): currentTemperature: 32.000000, energyConsumption: 0.000000
./output/release/bin/door_mqtt_sample -c ./output/release/bin/device_info.json -t airConditioner1 -a come_homeINF|2019-09-16 23:29:11|device.c|iot_device_info_set(67): SDK_Ver: 3.1.0, Product_ID: S3EUVBRJLB, Device_Name: door1INF|2019-09-16 23:29:11|mqtt_client.c|IOT_MQTT_Construct(125): mqtt connect with id: d89Wh successINF|2019-09-16 23:29:11|door_mqtt_sample.c|main(229): Cloud Device Construct SuccessDBG|2019-09-16 23:29:11|mqtt_client_publish.c|qcloud_iot_mqtt_publish(329): publish topic seq=46683|topicName=S3EUVBRJLB/door1/event|payload={"action": "come_home", "targetDevice": "airConditioner1"}INF|2019-09-16 23:29:11|door_mqtt_sample.c|main(246): Wait for publish ackINF|2019-09-16 23:29:11|door_mqtt_sample.c|event_handler(81): publish success, packet-id=46683
state由"close"转为"open",室温currentTemperature(往缺省配置温度调整)与能耗energyConsumption也有相关动态变化。INF|2019-09-16 23:29:11|aircond_shadow_sample.c|main(291): airConditioner state: closeINF|2019-09-16 23:29:11|aircond_shadow_sample.c|main(292): currentTemperature: 32.000000, energyConsumption: 0.000000INF|2019-09-16 23:29:12|aircond_shadow_sample.c|on_message_callback(140): Receive Message With topicName:GYT9V6D4AF/airConditioner1/control, payload:{"action":"come_home","targetDevice":"airConditioner1"}INF|2019-09-16 23:29:12|aircond_shadow_sample.c|main(291): airConditioner state: openINF|2019-09-16 23:29:12|aircond_shadow_sample.c|main(292): currentTemperature: 31.000000, energyConsumption: 1.000000
/*** 产品ID*/private static final String PRODUCT_ID = "YOUR_PRODUCT_ID";/*** 设备名称*/protected static final String DEVICE_NAME = "YOUR_DEVICE_NAME";/*** 密钥*/private static final String SECRET_KEY = "YOUR_DEVICE_PSK";/*** 设备证书名*/private static final String DEVICE_CERT_NAME = "YOUR_DEVICE_NAME_cert.crt";/*** 设备私钥文件名*/private static final String DEVICE_KEY_NAME = "YOUR_DEVICE_NAME_private.key";
com.qcloud.iot I/com.qcloud.iot.mqtt.TXMqttConnection: Start connecting to ssl://connect.iot.qcloud.com:8883com.qcloud.iot I/com.qcloud.iot.mqtt.TXMqttConnection: onSuccess!com.qcloud.iot I/IoTEntryActivity: connected to ssl://connect.iot.qcloud.com:8883com.qcloud.iot I/com.qcloud.iot.mqtt.TXMqttConnection: Starting subscribe topic: ******/airConditioner1/controlcom.qcloud.iot I/IoTEntryActivity: onSubscribeCompleted, subscribe success
"{\\"action\\": \\"come_home\\", \\"targetDevice\\": \\"airConditioner1\\"}"
com.qcloud.iot I/com.qcloud.iot.mqtt.TXMqttConnection: Start connecting to ssl://connect.iot.qcloud.com:8883com.qcloud.iot I/com.qcloud.iot.mqtt.TXMqttConnection: onSuccess!com.qcloud.iot I/IoTEntryActivity: connected to ssl://connect.iot.qcloud.com:8883
com.qcloud.iot I/com.qcloud.iot.mqtt.TXMqttConnection: Starting publish topic: ******/door1/event Message: {"action": "come_home", "targetDevice": "airConditioner1"}
com.qcloud.iot I/com.qcloud.iot.mqtt.TXMqttConnection: Received topic: ******/airConditioner1/control, message: {"action":"come_home","targetDevice":"airConditioner1"}com.qcloud.iot D/IoTEntryActivity: receive command: open airconditioner, count: 1
"{\\"action\\": \\"leave_home\\", \\"targetDevice\\": \\"airConditioner1\\"}"
com.qcloud.iot I/com.qcloud.iot.mqtt.TXMqttConnection: Starting publish topic: ******/door1/event Message: {"action": "leave_home", "targetDevice": "airConditioner1"}
com.qcloud.iot I/com.qcloud.iot.mqtt.TXMqttConnection: Received topic: ******/airConditioner1/control, message: {"action":"leave_home","targetDevice":"airConditioner1"}com.qcloud.iot D/IoTEntryActivity: receive command: close airconditioner, count: 2
文档反馈