{
TRACE_MSG(TRACE_APP1, "> zcl_specific_cluster_cmd_handler", (FMT__0));
ZB_ZCL_DEBUG_DUMP_HEADER(&cmd_info);
TRACE_MSG(TRACE_APP3,
"payload size: %i", (FMT__D,
zb_buf_len(param)));
TRACE_MSG(TRACE_APP3, "lqi %hd rssi %d", (FMT__H_H, lqi, rssi));
{
TRACE_MSG(
TRACE_ERROR,
"Unsupported \"from server\" command direction",
(FMT__0));
}
TRACE_MSG(TRACE_APP1, "< zcl_specific_cluster_cmd_handler", (FMT__0));
return ret;
}
{
TRACE_MSG(TRACE_APP1, "> test_device_interface_cb param %hd id %hd", (FMT__H_H,
{
{
if (device_cb_param->
cb_param.set_attr_value_param.values.data8)
{
TRACE_MSG(TRACE_APP1, "set ON", (FMT__0));
#ifdef ZB_USE_BUTTONS
zb_osif_led_on(0);
#endif
}
else
{
TRACE_MSG(TRACE_APP1, "set OFF", (FMT__0));
#ifdef ZB_USE_BUTTONS
zb_osif_led_off(0);
#endif
}
}
{
#ifdef ZB_USE_NVRAM
{
g_attr_start_up_current_level = device_cb_param->
cb_param.set_attr_value_param.values.data8;
}
else
{
}
#endif
}
break;
{
TRACE_MSG(TRACE_APP1,
"ZB_ZCL_SCENES_REMOVE_ALL_SCENES_CB_ID: group_id 0x%x", (FMT__D, remove_all_scenes_req->
group_id));
if (!zb_aps_is_endpoint_in_group(
{
}
else
{
test_device_scenes_remove_entries_by_group(remove_all_scenes_req->
group_id);
}
}
break;
{
TRACE_MSG(TRACE_APP1,
"ZB_ZCL_SCENES_STORE_SCENE_CB_ID: group_id 0x%x scene_id 0x%hd", (FMT__D_H, store_scene_req->
group_id, store_scene_req->
scene_id));
if (!zb_aps_is_endpoint_in_group(
{
}
else
{
idx = test_device_scenes_get_entry(store_scene_req->
group_id, store_scene_req->
scene_id);
if (idx != 0xFF)
{
{
device_cb_param->
status = RET_ALREADY_EXISTS;
scenes_table[idx].onoff_state = g_attr_on_off_on_off;
scenes_table[idx].current_level = g_attr_level_control_current_level;
TRACE_MSG(TRACE_APP1, "update scene: entry idx %hd onoff_state %hd", (FMT__H_H, idx, scenes_table[idx].onoff_state));
}
else
{
scenes_table[idx].common.group_id = store_scene_req->
group_id;
scenes_table[idx].common.scene_id = store_scene_req->
scene_id;
scenes_table[idx].common.transition_time = 0;
scenes_table[idx].onoff_state = g_attr_on_off_on_off;
scenes_table[idx].current_level = g_attr_level_control_current_level;
TRACE_MSG(TRACE_APP1, "store new scene: entry idx %hd onoff_state %hd", (FMT__H_H, idx, scenes_table[idx].onoff_state));
}
}
else
{
}
}
}
break;
{
TRACE_MSG(TRACE_APP1,
"ZB_ZCL_SCENES_RECALL_SCENE_CB_ID: group_id 0x%x scene_id 0x%hd", (FMT__D_H, recall_scene_req->
group_id, recall_scene_req->
scene_id));
idx = test_device_scenes_get_entry(recall_scene_req->
group_id, recall_scene_req->
scene_id);
if (idx != 0xFF &&
{
TRACE_MSG(TRACE_APP1, "recall scene: entry idx %hd onoff_state %hd transition_time 0x%x", (FMT__H_H_D, idx, scenes_table[idx].onoff_state, scenes_table[idx].common.transition_time));
ENDPOINT_C,
&scenes_table[idx].onoff_state,
ENDPOINT_C,
&scenes_table[idx].current_level,
}
else
{
}
}
break;
{
TRACE_MSG(TRACE_APP1,
"ZB_ZCL_SCENES_INTERNAL_REMOVE_ALL_SCENES_ALL_ENDPOINTS_CB_ID: group_id 0x%x", (FMT__D, remove_all_scenes_req->
group_id));
test_device_scenes_remove_entries_by_group(remove_all_scenes_req->
group_id);
}
break;
{
test_device_scenes_table_init();
}
break;
default:
break;
}
TRACE_MSG(TRACE_APP1,
"< test_device_interface_cb %hd", (FMT__H, device_cb_param->
status));
}