事件报警是一个将设备产生的移动侦测、人形、宠物、门铃呼叫等智能事件发送到云端,并最终在 App 上展示的功能模块。它支持普通的图片消息、视频消息,同时支持门铃呼叫的 App 弹窗消息。
svc_api_ipc
使用 DP 212 消息上报一个报警信息。若报警类型包含在 NOTIFICATION_NAME_E (位于tuya_ipc_notify.h)的枚举中,可以直接使用下面接口上报。
/**
* @brief Send an editable alarm to Tuya cloud and app.
*
* @param[in] snap_buffer: Address of the current snapshot buffer.
* @param[in] snap_size: Size of the snapshot in bytes.
* @param[in] name: Editable event type. NOTIFICATION_NAME_E.
* @param[in] is_notify: Whether to send to message center. TRUE: Send; False: Not send.
*
* @return OPRT_OK on success. For other errors, please refer to tuya_error_code.h.
*/
OPERATE_RET tuya_ipc_notify_alarm(IN CONST CHAR_T *snap_buffer, IN CONST UINT_T snap_size, IN CONST NOTIFICATION_NAME_E name, IN BOOL_T is_notify);
如有 NOTIFICATION_NAME_E 中未列举出的事件类型,请查看是否在 TUYA_ALARM_TYPE_E(位于tuya_ipc_event.h)中列出。如果包含,可以使用下面接口进行上报。
/**
* @brief Notify an alarm not based on event.
*
* @param alarm: TUYA_ALARM_T
*
* @return OPRT_OK on success. For other errors, please refer to tuya_error_code.h.
*/
OPERATE_RET tuya_ipc_trigger_alarm_without_event(IN TUYA_ALARM_T *alarm);
表示报警详情的数据结构体:
typedef struct {
INT_T type; ///< Alarm type
TUYA_ALARM_BITMAP_T wait_for; ///< Depends on other alarms.
INT_T is_notify; ///< Notify the cloud.
TIME_T trigger_time;
TIME_T upload_time; ///< 0 means upload immediately; -1 means wait until the event ends.
BOOL_T valid; ///< 1 means it needs to be handled; 0 means it has been handled. User should set to 1
BOOL_T force; ///< Force upload or not, independent with event like E_ALARM_COVER.
INT_T resource_type; ///< Refer to macro RESOURCE_XXX.
CHAR_T *extra_data; ///< Extra data appended to the upload payload in JSON format (e.g., "aaa": 3). Set to NULL if not needed.
CHAR_T *pic_buf;
INT_T pic_size;
TUYA_ALARM_TEXT_T *context; ///< Text alarm information, can be NULL.
INT_T context_cnt; ///< TUYA_ALARM_TEXT_T count, can be 0.
NOTIFICATION_UNIT_T *media; ///< Media information, can be NULL.
INT_T media_cnt; ///< NOTIFICATION_UNIT_T count, can be 0.
CHAR_T dev_id[DEV_ID_LEN+1]; ///< Device ID
INT_T dev_chan_index; ///< Device channel
} TUYA_ALARM_T;
若仅上报一个图片事件,参考以下初始化的值:
TUYA_ALARM_T alarm_info = {0};
alarm_info.type = ; //报警类型
alarm_info.is_notify = ; //消息中心开关状态
alarm_info.trigger_time = tal_time_get_posix(); //当前时间
alarm_info.upload_time = 0;
alarm_info.valid = 1;
alarm_info.force = 1;
alarm_info.resource_type = RESOURCE_PIC;
alarm_info.pic_buf = ; //图片 buffer 地址
alarm_info.pic_size = ; //图片 buffer 长度
alarm_info.extra_data = NULL;
alarm_info.context = NULL;
alarm_info.context_cnt = 0;
alarm_info.media = NULL;
alarm_info.media_cnt = 0;
若不上报图片,参考以下初始化的值:
TUYA_ALARM_T alarm_info = {0};
alarm_info.type = ; //报警类型
alarm_info.is_notify = ; //消息中心开关状态
alarm_info.trigger_time = tal_time_get_posix(); //当前时间
alarm_info.upload_time = 0;
alarm_info.valid = 1;
alarm_info.force = 1;
alarm_info.resource_type = RESOURCE_TEXT;
alarm_info.pic_buf = NULL;
alarm_info.pic_size = 0;
alarm_info.extra_data = NULL;
alarm_info.context = ; //文本 buffer 地址。若不需要,设置成 NULL
alarm_info.context_cnt = ; //文本 buffer 长度。若不需要,设置成 0
alarm_info.media = NULL;
alarm_info.media_cnt = 0;
若一个报警事件里包含多张图片和音频(需在 PID 上开通相关高级能力),请依次使用下面的接口进行上报。
初始化接口调用一次即可。
/**
* @brief Initialization of multiple images/audio's reporting.
*
* @return OPRT_OK on success. For other errors, please refer to tuya_error_code.h.
*/
OPERATE_RET tuya_ipc_event_multi_info_alarm_init(VOID);
该接口支持:单独上报图片或音频、同时上报图片和音频。
/**
* @brief Start a multi-info alarm.
*
* @param[in] alarm: Refer to TUYA_ALARM_MUTI_INFO_T.
*
* @param[out] max_pic_count: Maximum number of pictures supported for upload.
*
* @param[out] max_audio_count: Maximum number of audio files supported for upload.
*
* @param[out] status: Upload status. Refer to TUYA_MULTI_INFO_ALARM_MEDIA_STATUS_E for more information.
*
* @return User handle.
* - NULL: Failed to trigger the alarm.
* - Other: Success. Users can use handle to upload more images or audio.
*/
TUYA_IPC_MULTI_INFO_ALARM_USER_HANDLE_T tuya_ipc_event_start_multi_info_alarm(IN TUYA_MULTI_INFO_ALARM_T *alarm, OUT UINT_T *max_pic_count, OUT UINT_T *max_audio_count, OUT TUYA_MULTI_INFO_ALARM_MEDIA_STATUS_E *status);
/**
* @brief Append new information into a multi-info alarm .
*
* @param[in] handle: User handle returned by tuya_ipc_event_start_multi_info_alarm.
*
* @param[in] append_data: Append data. Refer to MULTI_INFO_ALARM_APPEND for more information.
*
* @return Upload status. Refer to TUYA_MULTI_INFO_ALARM_MEDIA_STATUS_E.
*/
TUYA_MULTI_INFO_ALARM_MEDIA_STATUS_E tuya_ipc_event_multi_info_alarm_append_data(TUYA_IPC_MULTI_INFO_ALARM_USER_HANDLE_T handle, MULTI_INFO_ALARM_APPEND *append_data);
在所有图片上传完毕时,或者提前结束上报,需调用停止上报接口。
/**
* @brief Stop a multi-info alarm.
*
* @warning Start/Stop should be called in pair.
*
* @param[in] handle: User handle returned by tuya_ipc_event_start_multi_info_alarm().
* @return Error code
* - OPRT_OK Success
* - Others Failed
*/
OPERATE_RET tuya_ipc_event_stop_multi_info_alarm(TUYA_IPC_MULTI_INFO_ALARM_USER_HANDLE_T handle);
tuya_ipc_notify_alarm 接口,将参数 is_notify 设置为 FALSE。tuya_ipc_trigger_alarm_without_event 接口,将参数 TUYA_ALARM_T 中 is_notify 设置为 FALSE。NOTIFICATION_NAME_E 已经列出的事件。TUYA_ALARM_TYPE_E 已经列出的事件。如新增事件类型 XXX,提示报错:[tuya_ipc_event.c] unsupport type: XXX 。
如出现此情况,需要确认以下两点:
JPEG 格式。
要求小于 307120 Byte。
请 提交工单 联系涂鸦技术支持,确认设备的 PID 上 DP 212 消息上是否配置了该报警类型。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈