更新时间:2025-07-11 06:41:25下载pdf
在设备上报事件过程中,可能会出现网络异常等情况,导致事件上报失败的问题。为尽可能解决此类问题,新的版本(v3.10.12)中增加了断点续传功能。
续传功能的核心原理是通过监控事件上传流程、获取事件的上报状态,在上报出现异常时,录入到续传模块。在网络正常时,逐个找到这些失败的记录,并尝试上传,直至上传成功。在续传成功后删除记录。
tuya_ipc_breakpoint_resume.h
初始化
typedef struct {
INT_T breakpoint_resume_enable; ///< 1: breakpoint resume enable
INT_T pic_event_enable; ///< 1: pic & event resume enable
CHAR_T folder_path[BREAKPOINT_RESUME_BASE_PATH_LEN]; ///< Node of storage card is mounted
FLOAT_T max_record_hours; ///< Maximum record hours for breakpoint events(0:default 12 hours)
INT_T data_file_need_backup; ///< Whether to enable a backup policy
UINT_T max_record_num; ///< max number of offline records(0:default 4000 records)
INT_T enable_intelli_resume; ///< According to the upload network status intelligent control of upload
UINT_T max_time_for_upload_to_cloud; ///< max time for upload single video to cloud(0:default 10 seconds)
BREAKPOINT_RESUME_UPLOAD_SPEED_CTRL_E speed_control_upload_enable; ///< Speed control upload
BREAKPOINT_RESUME_CHECK_UPLOAD_CONDITIONS_CB check_upload_cb; ///< Check whether the start conditions for uploading data are met; 0:ok/other:not ok
BREAKPOINT_RESUME_IS_NETWORK_NORMAL_CB network_normal_cb; ///< whether network status is normal; 0:ok/other:not ok
BREAKPOINT_RESUME_UPLOAD_CLOUD_DATA_CB cloud_data_upload_cb; ///< Upload cloud storage
BREAKPOINT_RESUME_GET_OTHER_CLIENT_USER_NUM_CB get_other_client_num_cb;
} TUYA_IPC_BREAKPOINT_RESUME_T;
/**
* \brief initialize tuya ipc breakpoint resume
* \param[in] pbreakpoint_resume_var: init para
* \return OPERATE_RET
*/
OPERATE_RET tuya_ipc_breakpoint_resume_init(IN TUYA_IPC_BREAKPOINT_RESUME_T *pbreakpoint_resume_var);
参数 | 说明 |
---|---|
breakpoint_resume_enable |
模块整体使能 |
pic_event_enable |
使能事件 & 图片的续传 |
folder_path |
续传数据表存储路径 |
max_record_hours |
此为预留参数,后续版本开放设置 |
data_file_need_backup |
是否使能续传表的备份功能,使能后会额外提升 CPU 占用率;默认可不使能 |
max_record_num |
最大记录续传数据的数量 |
enable_intelli_resume |
使能智能续传模式;根据当前上传情况,自动控制上传速率;默认可不使能 |
max_time_for_upload_to_cloud |
单条上传时长;在 enable_intelli_resume 使能后,上传数据超过此限制时,会被判断为网络异常,自动暂停上传 |
speed_control_upload_enable |
使能后,在上传时期,会根据是否有其他拉流或者上传任务,自动暂停上传 |
check_upload_cb |
该回调检查当前是否能执行续传任务 |
network_normal_cb |
网络状态获取回调(较重要,建议开发者实现) |
cloud_data_upload_cb |
云存录像上传回调;暂时可不实现 |
get_other_client_num_cb |
获取其他拉流任务数量的回调(如:RTSP 等),需要开发者自行决定是否实现 |
初始化后使能后,SDK 内部自动监控并添加离线记录,外部无需感知记录添加流程。
反初始化
/**
* \brief uinit tuya ipc breakpoint resume
* \return OPERATE_RET
*/
OPERATE_RET tuya_ipc_breakpoint_resume_uninit();
暂停续传
/**
* @brief suspen breakpoint resume service
*
* @param
* @return OPRT_OK on success. Others on error
*/
OPERATE_RET tuya_ipc_breakpoint_resume_suspend();
此功能可用于在格式化或低功耗休眠等场景,会暂停续传模块的所有任务,并将缓存数据快速写入到存储器中。
恢复续传
/**
* @brief recovery breakpoint resume service
*
* @param
* @return OPRT_OK on success. Others on error
*/
OPERATE_RET tuya_ipc_breakpoint_resume_recovery();
需与 tuya_ipc_breakpoint_resume_suspend
搭配使用。
断点记录数量超过后,会覆盖最旧的数据记录。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈