Now i only successfully able to send the command of type_id(data frame size) <= 8, above 8, my no other enum defined type_id is working. In your code, you passed ZG_ZCL_FRAME_TYPE_SPEC_TO_CLUSTER to type_id.
So what is the value of "ZG_ZCL_FRAME_TYPE_SPEC_TO_CLUSTER". Is this the type_id?
STATIC VOID_T send_dp_read_data(UINT8_T *data, UINT8_T data_len)
{
TAL_ZG_SEND_DATA_T send_data;
if((data == NULL)||(data_len > 62)){
return;
}
tal_system_memset(&send_data, 0, sizeof(TAL_ZG_SEND_DATA_T));
send_data.zcl_id = (UINT8_T)app_seq_num_get();
send_data.qos = QOS_0;
send_data.addr.mode = SEND_MODE_DEV;
send_data.addr.type.dev.cluster_id = CLUSTER_PRIVATE_TUYA_CLUSTER_ID;
send_data.addr.type.dev.src_ep = 0X01;
send_data.delay_time = 0;
send_data.random_time = 0;
send_data.frame_type = ZG_ZCL_FRAME_TYPE_SPEC_TO_CLUSTER;
send_data.direction = ZG_ZCL_DATA_SERVER_TO_CLIENT;
send_data.command_id = SERIAL_PROTOCOL_DATA_RSP;
send_data.data.private.data[0] = 0;
send_data.data.private.data[1] = send_data.zcl_id;
tal_system_memcpy(&send_data.data.private.data[2], data, data_len);
send_data.data.private.len = data_len+2;
tal_zg_send_data(&send_data, NULL, 1000);
}