更新时间:2023-08-09 09:25:02下载pdf
灯效、提示音、按键 是 IPC(IP Camera)产品常见的跟外设相关的功能。
设备功能现象 | 外设表现 |
---|---|
设备启动中(正常上电) | 红灯常亮 |
设备等待配网 | 红灯快闪 |
设备收到配网信息开始连接路由器 | 绿灯慢闪(若此步骤失败:红绿交替慢闪) |
设备连接路由器成功开始在网上注册 | 绿灯快闪(若此步骤失败:红绿交替快闪) |
设备上线 | 绿灯常亮 |
设备故障 | 红灯常亮 |
固件 OTA 升级 | 黄灯慢闪(红绿同时闪烁) |
快闪和慢闪的定义:
设备功能现象 | 外设表现 |
---|---|
设备进入待配网状态 | 提示音 1 |
设备收到配网信息 | 提示音 2 |
设备重置成功 | 提示音 2(擦写文件完成,重启前) |
设备升级成功 | 提示音 2(擦写 Flash 完成,重启前) |
resource/audio/beepA.pcm
resource/audio/beepB.pcm
设备功能现象 | 外设表现 |
---|---|
设备重置 | 长按 Reset 3 秒 |
app_sys_led
app_sys_panel
typedef enum
{
TY_LED_RED_ON, ///< 红灯常亮
TY_LED_RED_OFF, ///< 红灯关闭
TY_LED_BLUE_ON, ///< 蓝灯常亮
TY_LED_BLUE_OFF, ///< 蓝灯关闭
TY_LED_GREEN_ON, ///< 绿灯常亮
TY_LED_GREEN_OFF = 5, ///< 绿灯关闭
TY_LED_YELLOW_ON, ///< 黄灯常亮
TY_LED_YELLOW_OFF, ///< 黄灯关闭
TY_LED_RGB_ON, ///< 三色白灯常亮
TY_LED_RGB_OFF, ///< 三色白灯关闭
TY_IRLED_ON = 10, ///< 红外灯常亮
TY_IRLED_OFF, ///< 红外灯关闭
TY_LED_RED_BLINK_FAST, ///< 红灯快闪
TY_LED_RED_BLINK_SLOW, ///< 红灯慢闪
TY_LED_BLUE_BLINK_FAST, ///< 蓝灯快闪
TY_LED_BLUE_BLINK_SLOW = 15, ///< 蓝灯慢闪
TY_LED_GREEN_BLINK_FAST, ///< 绿灯快闪
TY_LED_GREEN_BLINK_SLOW, ///< 绿灯慢闪
TY_LED_YELLOW_BLINK_FAST, ///< 黄灯快闪
TY_LED_YELLOW_BLINK_SLOW, ///< 黄灯慢闪
TY_LED_RING_BLINK = 20, ///< 环形交替闪烁
TY_WHITELED_ON, ///< 白光补光灯常亮
TY_WHITELED_OFF, ///< 白光补光灯关闭
TY_LED_WHITE_BLINK_FAST, ///< 白光快闪
TY_LED_WHITE_BLINK_SLOW, ///< 白光慢闪
TY_LED_RG_BLINK_FAST = 25, ///< 红绿灯交替快闪
TY_LED_RG_BLINK_SLOW, ///< 红绿灯交替慢闪
TY_LED_RB_BLINK_FAST, ///< 红蓝灯交替快闪
TY_LED_RB_BLINK_SLOW, ///< 红蓝灯交替慢闪
TY_LED_RING_ON, ///< 环形交替常亮
TY_LED_RING_OFF = 30, ///< 环形交替关闭
TY_LED_RING_BLINK_FAST, ///< 环形交替快闪
TY_LED_RING_BLINK_SLOW, ///< 环形交替慢闪
TY_LED_RING_BLINK_BREATH_START, ///< 环形呼吸灯开始
TY_LED_RING_BLINK_BREATH_STOP, ///< 环形呼吸灯停止
TY_LED_RING_BLINK_ROLL, ///< 环形跑马灯
TY_LED_RING_BLINK_BREATH_ONCE, ///< 单次呼吸灯
TY_LED_RING_BLINK_BREATH_TWICE, ///< 两次呼吸灯
TY_FILL_LIGHT_ON, ///< 白光补光灯打开
TY_FILL_LIGHT_OFF, ///< 白光补光灯关闭
TY_LED_STATUS_NULL, ///< 无灯效
TY_LED_STATUS_MAX,
} TY_SYS_LED_STATUS;
typedef struct s_tycam_led
{
int slow_blink_ms; ///< 慢闪时间间隔,ms
int fast_blink_ms; ///< 快闪时间间隔,ms
int white_light_mode; ///< 白光灯声音告警、手动控制
int white_light_pwm_highest; ///< 白光灯 PWM 最大值
int white_light_pwm_lowest; ///< 白光灯 PWM 最小值
char white_light_pwm_path[128]; ///< 白光灯 pwm 文件路径
} TY_LED_INIT_PARAM;
typedef enum {
INPUT, ///< 输入模式
OUTPUT, ///< 输出模式
}ty_gpio_mode;
typedef enum {
COMMON_MODE, ///< 通用模式
IOCTL_MODE, ///< ioctl 模式
}ty_gpio_ctrl_mode;
typedef struct s_tycam_gpio {
int gpio_num; ///< GPIO num
ty_gpio_mode dir; ///< GPIO 方向,0 为输入,1 为输出
char default_val; ///< GPIO 初始化电平
ty_gpio_ctrl_mode mode; ///< gpio 控制模式
char ioctl_path[64]; ///< ioctrl 模式时的节点路径
}ty_sys_gpio;
typedef struct TY_KEY_INIT_PARAM_ {
int long_press_ms; ///< 长按,ms
int short_press_ms; ///< 短按,ms
TY_SYS_KEY_MSG_CB ty_sys_key_msg_cb; ///< 重置按键回调
}TY_KEY_INIT_PARAM_S;
typedef enum {
TY_SYS_KEY_PRESS_TYPE_NO, ///< 没有按键响应
TY_SYS_KEY_PRESS_TYPE_UP, ///< 抬起
TY_SYS_KEY_PRESS_TYPE_LONG = 500, ///< 长按
TY_SYS_KEY_PRESS_TYPE_SHORT, ///< 短按
TY_SYS_KEY_TRIG_PRESS, ///< 按键触发
TY_SYS_KEY_SINGLE_CLICK, ///< 单击
TY_SYS_KEY_DOUBLE_CLICK, ///< 双击
TY_SYS_KEY_TRIPLE_CLICK, ///< 三击
}TY_SYS_KEY_PRESS_TYPE;
该 API 用于初始化接口资源,并起线程管理灯效。
/**
* @brief Set the light Flash interval
*
* @param[in] led_param: Led initialization parameter
*
* @return int; 0:success, others:failed
*/
int ty_sys_led_init(TY_LED_INIT_PARAM *led_param);
/**
* @brief LED uninit
*
* @return int; 0:success, others:failed
*/
int ty_sys_led_deinit(void);
面板操作指示灯开关时,调用该接口,控制所有指示灯状态。
/**
* @brief LED control switch
*
* @param[in] onoff:Turn the lights on or off
*
* @return void
*/
void ty_sys_led_switch(int onoff);
/**
* @brief Lamp effect setting
*
* @param[in] status:Indicator status mode
*
* @return void
*/
void ty_sys_led_mode_set(TY_SYS_LED_STATUS status);
/**
* @brief init GPIO
*
* @param[in] p_gpio:GPIO configuration parameters
*
* @return int; 0:success, others:failed
*/
int ty_sys_gpio_init(ty_sys_gpio *p_gpio);
/**
* @brief Set the value of GPIO
*
* @param[in] num:GPIO pin number
* @param[in] value:Value to be set for GPIO
*
* @return int; 0:success, others:failed
*/
int ty_sys_panel_set_value(int num, int value);
注册按键操作接口需要您自己定义长按,短按和重置按钮的回调接口。
/**
* @brief Key config param
*
* @param[in] key_param:
*
* @return int; 0:success, others:failed
*/
int ty_sys_key_press_init(TY_KEY_INIT_PARAM_S *key_param);
对于 PCM 格式的音频,设备只支持:
软件层面上,排查 GPIO 管脚配置是否正确,极性是否正确。
请参考 apps/xxx/resource/audio
目录,替换文件请保存在该目录下。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈