Last Updated on : 2024-11-20 08:51:38download
This topic describes the data reporting API and provides examples of how to report data to the cloud using the API.
typedef enum
{
DP_TYPE_RAW = 0, /* tuya datapoint type raw */
DP_TYPE_BOOL = 1, /* tuya datapoint type bool */
DP_TYPE_VALUE = 2, /* tuya datapoint type value */
DP_TYPE_STRING = 3, /* tuya datapoint type string */
DP_TYPE_ENUM = 4, /* tuya datapoint type enum */
DP_TYPE_BITMAP = 5, /* tuya datapoint type bitmap */
TY_DP_TYPE,
}TY_LOCK_DP_TYPE_E;
typedef enum
{
TIME_TYPE_VOID = 0, /* tuya time type null */
TIME_TYPE_LOCAL = 1, /* tuya time type local */
TIME_TYPE_GREEKN = 2, /* tuya time type green */
}TY_LOCK_TIME_TYPE_E;
typedef struct{
TY_LOCK_TIME_TYPE_E type; /* tuya time type*/
POSIX_TM_S time; /* tuya time, if type is TIME_TYPE_VOID, time is invalid*/
}DP_TIME_S;
typedef struct {
UCHAR_T dpid; /* tuya datapoint id */
TY_LOCK_DP_TYPE_E type; /* tuya datapoint type */
WORD_T data_len; /* tuya datapoint len */
UCHAR_T *data; /* tuya datapoint data */
}TY_LOCK_DP_S;
/**
* Init tuya lock datapoint report.
* @return Function Operation Result OPRT_OK is ok other is fail
*/
__SVC_LOCK_DP_REPORT_EXT \
OPERATE_RET tuya_svc_lock_dp_report_init(VOID);
/**
* Tuya datapoint wil be reported synchronously.
* @param dp_data[] datapoint.
* @param dp_data_num datapoint number.
* @param time the time of datapoint.
* @param timeout time out,unit s.
* @return Function Operation Result OPRT_OK is ok other is fail
*/
__SVC_LOCK_DP_REPORT_EXT \
OPERATE_RET tuya_svc_lock_dp_report_syn(IN TY_LOCK_DP_S dp_data[],IN UINT_T dp_data_num, DP_TIME_S *time,IN UINT_T timeout);
/**
* Tuya datapoint wil be reported asynchronously.
* @param dp_data[] datapoint.
* @param dp_data_num datapoint number.
* @param time the time of datapoint.
* @return Function Operation Result OPRT_OK is ok other is fail
*/
__SVC_LOCK_DP_REPORT_EXT \
OPERATE_RET tuya_svc_lock_dp_report_asyn(IN TY_LOCK_DP_S dp_data[],IN UINT_T dp_data_num, DP_TIME_S *time);
/**
* Tuya datapoint wil be reported synchronously, and it will be stored when sending fails.
* @param dp_data[] datapoint.
* @param dp_data_num datapoint number.
* @param time the time of datapoint.
* @param timeout time out,unit s.
* @return Function Operation Result OPRT_OK is ok other is fail
*/
__SVC_LOCK_DP_REPORT_EXT \
OPERATE_RET tuya_svc_lock_dp_report_with_record_syn(IN TY_LOCK_DP_S dp_data[],IN UINT_T dp_data_num, DP_TIME_S *time,IN UINT_T timeout);
/**
* Tuya datapoint wil be reported asynchronously, and it will be stored when sending fails.
* @param dp_data[] datapoint.
* @param dp_data_num datapoint number.
* @param time the time of datapoint.
* @return Function Operation Result OPRT_OK is ok other is fail
*/
__SVC_LOCK_DP_REPORT_EXT \
OPERATE_RET tuya_svc_lock_dp_report_with_record_asyn(IN TY_LOCK_DP_S dp_data[],IN UINT_T dp_data_num, DP_TIME_S *time);
/**
* Tuya one datapoint stored in the flash wil be reported synchronously, and it will be deleted when sending success.
* @param timeout time out,unit s.
* @return Function Operation Result OPRT_OK is ok other is fail
*/
__SVC_LOCK_DP_REPORT_EXT \
OPERATE_RET tuya_svc_lock_dp_report_one_flash_record_syn(IN UINT_T timeout);
/**
* Tuya one datapoint stored in the flash wil be reported asynchronously, and it will be deleted when sending success.
* @return Function Operation Result OPRT_OK is ok other is fail
*/
__SVC_LOCK_DP_REPORT_EXT \
OPERATE_RET tuya_svc_lock_dp_report_one_flash_record_asyn(VOID);
/**
* Get the number of datapoints in the flash.
* @return the number of datapoints in the flash
*/
__SVC_LOCK_DP_REPORT_EXT \
UINT_T tuya_svc_lock_get_flash_record_num(VOID);
/**
* clean the datapoints in the flash.
* @return Function Operation Result OPRT_OK is ok other is fail
*/
__SVC_LOCK_DP_REPORT_EXT \
OPERATE_RET tuya_svc_lock_clr_flash_record(VOID);
OPERATE_RET device_init(VOID)
{
OPERATE_RET op_ret = OPRT_OK;
// Initialize the data reporting component
op_ret = tuya_svc_lock_dp_report_init();
if(OPRT_OK != op_ret) {
PR_ERR("tuya_svc_lock_dp_report_init err:%d",op_ret);
return op_ret;
}
TY_LOCK_DP_S lock_dp = {
// The payload
};
UINT_T lock_dp_num = 1;
op_ret = tuya_svc_lock_dp_report_syn(&lock_dp,lock_dp_num,NULL,5);
}
Is this page helpful?
YesFeedbackIs this page helpful?
YesFeedback