Merge pull request #99 from DavidLin1577/patch-16
Fixed enum error in light_data_template_sample.c
This commit is contained in:
@@ -128,8 +128,8 @@ typedef enum light_color_en {
|
|||||||
} light_color_t; // a enum to describe the color of a light
|
} light_color_t; // a enum to describe the color of a light
|
||||||
|
|
||||||
typedef enum light_switch_state_en {
|
typedef enum light_switch_state_en {
|
||||||
LIGHT_SWTICH_STATE_OFF = 0,
|
LIGHT_SWITCH_STATE_OFF = 0,
|
||||||
LIGHT_SWTICH_STATE_ON = 1,
|
LIGHT_SWITCH_STATE_ON = 1,
|
||||||
} light_switch_state_t; // a enum to describe the switch state of a light
|
} light_switch_state_t; // a enum to describe the switch state of a light
|
||||||
|
|
||||||
typedef enum property_state_en {
|
typedef enum property_state_en {
|
||||||
@@ -174,7 +174,7 @@ static void data_template_init(qcloud_device_t *device)
|
|||||||
{
|
{
|
||||||
memset((void *)&light_profile, 0, sizeof(light_profile_t));
|
memset((void *)&light_profile, 0, sizeof(light_profile_t));
|
||||||
|
|
||||||
light_profile.switch_state = LIGHT_SWTICH_STATE_OFF;
|
light_profile.switch_state = LIGHT_SWITCH_STATE_OFF;
|
||||||
light_profile.color = LIGHT_COLOR_RED;
|
light_profile.color = LIGHT_COLOR_RED;
|
||||||
light_profile.brightness = 0.0;
|
light_profile.brightness = 0.0;
|
||||||
|
|
||||||
@@ -223,7 +223,7 @@ static void property_do_update(shadow_dev_property_t *property)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case JSON_DATA_TYPE_STRING: // device name
|
case JSON_DATA_TYPE_STRING: // device name
|
||||||
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>pProperty->keyֵƥ<EFBFBD>䣬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD> */
|
/* 如果多个字符串属性,根据pProperty->key值匹配,处理字符串 */
|
||||||
if (strcmp("name", property->key) != 0) {
|
if (strcmp("name", property->key) != 0) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -235,7 +235,7 @@ static void property_do_update(shadow_dev_property_t *property)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>json<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
/* 如果有自定义的字符串或者json,需要在这里解析 */
|
||||||
static qcloud_err_t property_update(const char *json_doc, shadow_dev_property_t *property)
|
static qcloud_err_t property_update(const char *json_doc, shadow_dev_property_t *property)
|
||||||
{
|
{
|
||||||
QCLOUD_POINTER_SANITY_CHECK(json_doc, QCLOUD_ERR_INVAL);
|
QCLOUD_POINTER_SANITY_CHECK(json_doc, QCLOUD_ERR_INVAL);
|
||||||
@@ -263,13 +263,13 @@ static qcloud_err_t property_update(const char *json_doc, shadow_dev_property_t
|
|||||||
return QCLOUD_ERR_SUCCESS;
|
return QCLOUD_ERR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᴥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>delta<EFBFBD>ص<EFBFBD> */
|
/* 服务端有控制消息下发,会触发这里的delta回调 */
|
||||||
static void on_property_delta_handler(void *client, const char *json_doc, uint32_t json_doc_len, shadow_dev_property_t *property)
|
static void on_property_delta_handler(void *client, const char *json_doc, uint32_t json_doc_len, shadow_dev_property_t *property)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
for (i = 0; i < LIGHT_PROPERTY_COUNT; ++i) {
|
for (i = 0; i < LIGHT_PROPERTY_COUNT; ++i) {
|
||||||
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD>_handle_delta<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>json<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ﴦ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊֻ<EFBFBD>в<EFBFBD>Ʒ<EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD>֪<EFBFBD><EFBFBD>string/json<6F><6E><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
/* 其他数据类型已经在_handle_delta流程统一处理了,字符串和json串需要在这里处理,因为只有产品自己才知道string/json的自定义解析 */
|
||||||
if (strcmp(light_property_handler.property_wrappers[i].property.key, property->key) != 0) {
|
if (strcmp(light_property_handler.property_wrappers[i].property.key, property->key) != 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -288,7 +288,7 @@ static void on_property_delta_handler(void *client, const char *json_doc, uint32
|
|||||||
QCLOUD_LOG_E("property=%s changed no match", property->key);
|
QCLOUD_LOG_E("property=%s changed no match", property->key);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
/* 注册数据模板属性 */
|
||||||
static qcloud_err_t data_template_property_register(qcloud_shadow_client_t *client)
|
static qcloud_err_t data_template_property_register(qcloud_shadow_client_t *client)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
@@ -324,17 +324,17 @@ __weak void OLED_ShowString(int x, int y, uint8_t *str, int bold)
|
|||||||
// handle the light(simulated)
|
// handle the light(simulated)
|
||||||
static void light_change_color(const char *color)
|
static void light_change_color(const char *color)
|
||||||
{
|
{
|
||||||
// <EFBFBD><EFBFBD>Ϊdemo<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>oled<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>
|
// 作为demo,这里用oled屏字符显示来模拟灯颜色的切换
|
||||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ʵ<EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룬<EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵƵ<EFBFBD><EFBFBD><EFBFBD>ɫ
|
// 这里应该由用户实现硬件操作代码,来改变智能灯的颜色
|
||||||
// <EFBFBD>˴<EFBFBD>demo<EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
// 此处demo,在开发板显示屏上显示具体的颜色
|
||||||
OLED_ShowString(0, 0, (uint8_t *)color, 8);
|
OLED_ShowString(0, 0, (uint8_t *)color, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void light_change_brightness(template_float_t brightness)
|
static void light_change_brightness(template_float_t brightness)
|
||||||
{
|
{
|
||||||
// <EFBFBD><EFBFBD>Ϊdemo<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>oled<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>
|
// 作为demo,这里用oled屏字符显示来模拟灯颜色的切换
|
||||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ʵ<EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룬<EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵƵ<EFBFBD><EFBFBD><EFBFBD>ɫ
|
// 这里应该由用户实现硬件操作代码,来改变智能灯的颜色
|
||||||
// <EFBFBD>˴<EFBFBD>demo<EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
// 此处demo,在开发板显示屏上显示具体的颜色
|
||||||
char brightness_str[12];
|
char brightness_str[12];
|
||||||
|
|
||||||
snprintf(brightness_str, sizeof(brightness_str), "%f", brightness);
|
snprintf(brightness_str, sizeof(brightness_str), "%f", brightness);
|
||||||
@@ -344,13 +344,13 @@ static void light_change_brightness(template_float_t brightness)
|
|||||||
|
|
||||||
static void light_power_on(void)
|
static void light_power_on(void)
|
||||||
{
|
{
|
||||||
// <EFBFBD><EFBFBD>Ϊdemo<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>oled<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>
|
// 作为demo,这里用oled屏字符显示来模拟灯颜色的切换
|
||||||
OLED_Clear();
|
OLED_Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void light_power_off(void)
|
static void light_power_off(void)
|
||||||
{
|
{
|
||||||
// <EFBFBD><EFBFBD>Ϊdemo<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>oled<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>
|
// 作为demo,这里用oled屏字符显示来模拟灯颜色的切换
|
||||||
char *info = "light off";
|
char *info = "light off";
|
||||||
OLED_Clear();
|
OLED_Clear();
|
||||||
OLED_ShowString(0, 0, (uint8_t *)info, 16);
|
OLED_ShowString(0, 0, (uint8_t *)info, 16);
|
||||||
@@ -403,12 +403,12 @@ static void incoming_messsage_handler(void *client, void *context, mqtt_event_t
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ʾ<EFBFBD><EFBFBD><EFBFBD>ƹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
/* 示例灯光控制处理逻辑 */
|
||||||
static void deal_down_stream_user_logic(void)
|
static void deal_down_stream_user_logic(void)
|
||||||
{
|
{
|
||||||
char *color_name;
|
char *color_name;
|
||||||
|
|
||||||
/* <EFBFBD>ƹ<EFBFBD><EFBFBD><EFBFBD>ɫ */
|
/* 灯光颜色 */
|
||||||
switch (light_profile.color) {
|
switch (light_profile.color) {
|
||||||
case LIGHT_COLOR_RED:
|
case LIGHT_COLOR_RED:
|
||||||
color_name = " RED ";
|
color_name = " RED ";
|
||||||
@@ -423,19 +423,19 @@ static void deal_down_stream_user_logic(void)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (light_profile.switch_state == LIGHT_SWTICH_STATE_ON) {
|
if (light_profile.switch_state == LIGHT_SWITCH_STATE_ON) {
|
||||||
/* <EFBFBD>ƹ<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>տ<EFBFBD><EFBFBD>Ʋ<EFBFBD><EFBFBD><EFBFBD>չʾ */
|
/* 灯光开启式,按照控制参数展示 */
|
||||||
light_power_on();
|
light_power_on();
|
||||||
light_change_color(color_name);
|
light_change_color(color_name);
|
||||||
light_change_brightness(light_profile.brightness);
|
light_change_brightness(light_profile.brightness);
|
||||||
} else {
|
} else {
|
||||||
/* <EFBFBD>ƹ<EFBFBD><EFBFBD>ر<EFBFBD>չʾ */
|
/* 灯光关闭展示 */
|
||||||
light_power_off();
|
light_power_off();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (QCLOUD_CFG_EVENT_EN > 0u)
|
#if (QCLOUD_CFG_EVENT_EN > 0u)
|
||||||
if (light_property_handler.property_wrappers_of.switch_state.state == PROPERTY_STATE_CHANGED) {
|
if (light_property_handler.property_wrappers_of.switch_state.state == PROPERTY_STATE_CHANGED) {
|
||||||
if (light_profile.switch_state == LIGHT_SWTICH_STATE_ON) {
|
if (light_profile.switch_state == LIGHT_SWITCH_STATE_ON) {
|
||||||
strcpy(event_message, "light on");
|
strcpy(event_message, "light on");
|
||||||
event_status = EVENT_STATUS_LIGHT_ON;
|
event_status = EVENT_STATUS_LIGHT_ON;
|
||||||
} else {
|
} else {
|
||||||
@@ -448,7 +448,7 @@ static void deal_down_stream_user_logic(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>Ҫʵ<EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C>˴<EFBFBD><CBB4><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE> */
|
/* 用户需要实现的上行数据的业务逻辑,此处仅供示例 */
|
||||||
static void deal_up_stream_user_logic(shadow_dev_property_t *properties_report[], int *count)
|
static void deal_up_stream_user_logic(shadow_dev_property_t *properties_report[], int *count)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
@@ -473,7 +473,7 @@ static void on_shadow_update_handler(void *client,
|
|||||||
QCLOUD_LOG_I("recv shadow update response, request state: %d", req_state);
|
QCLOUD_LOG_I("recv shadow update response, request state: %d", req_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 5s<EFBFBD><EFBFBD>ʱ<EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬,<2C>ɸ<EFBFBD><C9B8><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE> */
|
/* 5s定时上报属性状态,可根据业务裁剪,此处仅供示例 */
|
||||||
qcloud_err_t timely_reporting(shadow_dev_property_t *properties_report[], osal_timer_t *report_timer)
|
qcloud_err_t timely_reporting(shadow_dev_property_t *properties_report[], osal_timer_t *report_timer)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@@ -540,14 +540,14 @@ int data_template_light_thread(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define SHADOW_REQUEST_TIMEOUT (10) // in seconds
|
#define SHADOW_REQUEST_TIMEOUT (10) // in seconds
|
||||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD>ʵ<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>versionͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD>DZ<EFBFBD>Ҫ
|
// 离线期间服务端可能有下行命令,此处实现同步。version同步后台非必要
|
||||||
rc = qcloud_shadow_client_get_sync(&shadow_client, SHADOW_REQUEST_TIMEOUT);
|
rc = qcloud_shadow_client_get_sync(&shadow_client, SHADOW_REQUEST_TIMEOUT);
|
||||||
if (rc != QCLOUD_ERR_SUCCESS) {
|
if (rc != QCLOUD_ERR_SUCCESS) {
|
||||||
QCLOUD_LOG_E("device shadow get failed, err: %d", rc);
|
QCLOUD_LOG_E("device shadow get failed, err: %d", rc);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
// <EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ʱ<EFBFBD>ϱ<EFBFBD>timer<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD>
|
// 属性定时上报timer,可以根据业务需要裁剪。
|
||||||
osal_timer_init(&report_timer);
|
osal_timer_init(&report_timer);
|
||||||
|
|
||||||
while (qcloud_shadow_client_is_connected(&shadow_client) ||
|
while (qcloud_shadow_client_is_connected(&shadow_client) ||
|
||||||
@@ -564,18 +564,18 @@ int data_template_light_thread(void)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
/* 服务端下行消息,业务处理逻辑1入口 */
|
||||||
if (is_light_property_changed) {
|
if (is_light_property_changed) {
|
||||||
deal_down_stream_user_logic();
|
deal_down_stream_user_logic();
|
||||||
|
|
||||||
/* ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫͬ<EFBFBD><EFBFBD>֪ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD>Ѹ<EFBFBD><D1B8>£<EFBFBD>ɾ<EFBFBD><C9BE>dseire<EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
/* 业务逻辑处理完后需要同步通知服务端:设备数据已更新,删除dseire数据 */
|
||||||
rc = qcloud_shadow_client_desire_null_construct(&shadow_client, shadow_update_buffer, sizeof(shadow_update_buffer));
|
rc = qcloud_shadow_client_desire_null_construct(&shadow_client, shadow_update_buffer, sizeof(shadow_update_buffer));
|
||||||
if (rc == QCLOUD_ERR_SUCCESS) {
|
if (rc == QCLOUD_ERR_SUCCESS) {
|
||||||
rc = qcloud_shadow_client_update_sync(&shadow_client, shadow_update_buffer, sizeof(shadow_update_buffer), 5);
|
rc = qcloud_shadow_client_update_sync(&shadow_client, shadow_update_buffer, sizeof(shadow_update_buffer), 5);
|
||||||
if (rc == QCLOUD_ERR_SUCCESS) {
|
if (rc == QCLOUD_ERR_SUCCESS) {
|
||||||
is_light_property_changed = QCLOUD_FALSE;
|
is_light_property_changed = QCLOUD_FALSE;
|
||||||
|
|
||||||
// <EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>flag<EFBFBD>ĸ<EFBFBD>ֵλ<EFBFBD><EFBFBD>,<2C>˴<EFBFBD><CBB4><EFBFBD>Ϊʾ<CEAA><CABE><EFBFBD><EFBFBD>
|
// 用户需要根据业务情况修改上报flag的赋值位置,此处仅为示例。
|
||||||
is_new_property_reported = QCLOUD_TRUE;
|
is_new_property_reported = QCLOUD_TRUE;
|
||||||
QCLOUD_LOG_I("shadow update(desired) success");
|
QCLOUD_LOG_I("shadow update(desired) success");
|
||||||
} else {
|
} else {
|
||||||
@@ -586,9 +586,9 @@ int data_template_light_thread(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <EFBFBD>豸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ,ҵ<><D2B5><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD> */
|
/* 设备上行消息,业务逻辑2入口 */
|
||||||
if (is_new_property_reported) {
|
if (is_new_property_reported) {
|
||||||
/* delta<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD>desire<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD>report<EFBFBD>IJ<EFBFBD><EFBFBD>켯<EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>deseire<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫreport<EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD>״̬ */
|
/* delta消息是属性的desire和属性的report的差异集,收到deseire消息处理后,要report属性的状态 */
|
||||||
deal_up_stream_user_logic(properties_report, &properties_report_count);
|
deal_up_stream_user_logic(properties_report, &properties_report_count);
|
||||||
if (properties_report_count > 0) {
|
if (properties_report_count > 0) {
|
||||||
rc = qcloud_shadow_client_report_construct_array(&shadow_client, shadow_update_buffer, sizeof(shadow_update_buffer),
|
rc = qcloud_shadow_client_report_construct_array(&shadow_client, shadow_update_buffer, sizeof(shadow_update_buffer),
|
||||||
@@ -632,7 +632,7 @@ int data_template_light_thread(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if (QCLOUD_CFG_EVENT_EN > 0u)
|
#if (QCLOUD_CFG_EVENT_EN > 0u)
|
||||||
// <EFBFBD>¼<EFBFBD><EFBFBD>ϱ<EFBFBD>
|
// 事件上报
|
||||||
event_count = 0;
|
event_count = 0;
|
||||||
event_flag = event_flag_get();
|
event_flag = event_flag_get();
|
||||||
if (EVENT_COUNTS > 0 && event_flag > 0) {
|
if (EVENT_COUNTS > 0 && event_flag > 0) {
|
||||||
|
Reference in New Issue
Block a user