更新时间:2024-06-25 05:51:17下载pdf
呼叫 和 留言 是带有呼叫按键的设备的基本功能。
呼叫 和 留言 基本业务功能流程如下:
门铃呼叫时 App 客户端弹窗内容如下:
通常由 Wi-Fi 芯片先接收到门铃按键中断,然后唤醒主控芯片。
主控操作系统启动,应用程序启动。
Wi-Fi 芯片向主控发送按键按下消息,之后该消息在主控应用程序中作相应处理并进行流转。
之后的动作有,播放叮咚提示音、抓拍,执行灯效、推送事件等。
门铃触发流程如下:
app_user_event
内部进行灯效控制响应、推送事件和相关标记的记录。同时在 app_user_doorbell
中启动定时器,超时后结束通话或提前挂断。app_user_doorbell
内部启动定时器,未作处理或者直接挂断后的一段时间后,在 app_user_event
组件中会播放留言提醒音频。app_user_doorbell
内部启动定时器。app_user_event
中开始进行录像留言。app_user_doorbell
启动线程监控留言上传状态,留言超时后结束。app_user_doorbell
app_user_event
app_main
common_xxx
在门铃键按下后,25 秒内未接听或者拒绝接听,将会播放留言提示音。
播放留言提示音后 15 秒内再次按下门铃键,进入留言。留言时长 10 秒,留言超时结束后进入休眠。
以上时间参数可通过修改 ability.config
中相关配置项
TY_DOORBELL_ENABLE=1 // 门铃使能
TY_DOORBELL_LEAVEMSG_ENABLE=1 // 留言使能
TY_DOORBELL_CALL_TIMEOUT=25 // 未接听超时时间
TY_DOORBELL_MSG_TIMEOUT=10 // 留言时长
呼叫与留言相关的灯效和提示音,可通过配置文件更改。
以上播放提示音等动作可通过修改 actions.config
中相关配置项重新定义。例如,以下配置会转换为宏定义,映射至 ty_status_action_map.c.in
文件中,并最终形成源文件编译进程序中。
可支持修改的动作,在 actions.config
已全部列出,等号右侧值的含义可在各个应用组件的头文件中找到,并支持修改。
E_TY_DOORBELL_FIRST_PRESS_ACTION_1=TY_LED_RING_BLINK_BREATH_TWICE
E_TY_DOORBELL_FIRST_PRESS_ACTION_2=ACTION_FILE_DOORBELL
E_TY_DOORBELL_NOT_FIRST_PRESS_ACTION_1=TY_LED_RING_BLINK_BREATH_TWICE
E_TY_DOORBELL_NOT_FIRST_PRESS_ACTION_2=ACTION_FILE_DOORBELL
E_TY_DOORBELL_LEAVE_MSG_ACTION_1=TY_LED_RING_BLINK_BREATH_START
E_TY_DOORBELL_NOT_LEAVE_MSG_ACTION_1=TY_LED_RING_BLINK_BREATH_STOP
E_TY_DOORBELL_LEAVE_MSG_END_ACTION_1=TY_LED_RING_BLINK_BREATH_STOP
E_TY_DOORBELL_CALL_ACCEPT_ACTION_1=TY_LED_RING_BLINK_BREATH_STOP
E_TY_DOORBELL_CALL_NOT_ACCEPT_ACTION_2=ACTION_FILE_MSG
E_TY_DOORBELL_CALL_END_ACTION_1=TY_LED_RING_BLINK_BREATH_STOP
E_TY_DOORBELL_UNREGISTER_PRESS_ACTION_2=ACTION_FILE_DOORBELL
以下主要介绍 app_user_doorbell
中相关数据结构。
初始化参数的数据结构如下:
typedef struct
{
unsigned int CallTimeout; //呼叫超时时间哦长
unsigned int LeaveMsgTimeout; //留言时长
unsigned int NotifyMsgTimeout; //等待留言时长
unsigned int isLeaveMsg; //留言开关
}TY_DOORBELL_PARAM_S;
以下主要介绍 app_user_doorbell
中相关 API
该 API 会立即返回,具体门铃业务响应步骤将异步执行。
/**
* @ Doorbell service initialization
*
* @param[in] TY_DOORBELL_PARAM_S
* @return OPERATE_RET 0 表示成功,非 0 请参照 tuya error code 描述文档
* @warning:
*/
int ty_user_doorbell_start(TY_DOORBELL_PARAM_S *param);
/**
* @ Doorbell service stop
*
* @return OPERATE_RET 0 表示成功,非 0 请参照 tuya error code 描述文档
* @warning:
*/
int ty_user_doorbell_stop();
/**
* @ Update param
*
* @param[in] TY_DOORBELL_PARAM_S
* @return OPERATE_RET 0 表示成功,非 0 请参照 tuya error code 描述文档
* @warning:
*/
int ty_user_doorbell_update_param(TY_DOORBELL_PARAM_S *param);
门铃的音频文件放置在 resource/audio
中,替换时需注意对应的音频格式。
请确认:
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈