608_demo例子开红外及ir_cut是怎么做的呢

608_demo例子开红外及ir_cut是怎么做的呢

// 中间增加关闭红外灯判断逻辑,不关闭 ir_cut,获取画面曝光值

int opreation_led(){ if(en_red_led_flag == 1) { if(en_white_led == 0) { // 打开红外灯 open_red_led(); image_dark(); } if(en_ir_cut != 1) { en_ir_cut = 1; // 开启ir_cut ptz_ir_cut_control(1); } } else if(en_red_led_flag == 0) { image_bright(); if(en_red_led == 1) { // 关闭红外灯 close_red_led(); } if(en_ir_cut != 0) { en_ir_cut = 0; // 关闭 ir_cut ptz_ir_cut_control(0); } // 智能关闭白光灯 if(en_white_led == 2) { sleep(2); enabledPWM(&pwm_white_led, 0); } } return 0;}////////////////////////////////////////////////////////////////////////////////////////////////////////////黑白夜视切换逻辑_V3//////////////////////////////////////////////////////////////////////int iso_control_white_red_led(){ int ret; ot_isp_exp_info exp_info; ret = ss_mpi_isp_query_exposure_info(1, &exp_info); if(ret != TD_SUCCESS) { printf("======zs_ss_mpi_isp_query_exposure_info is fail 0x%X\n\n", ret); } printf("======exp_info.iso is %d\n", exp_info.iso); fprintf(fp_led, "exp_info.iso=%d\n", exp_info.iso); // 画面越暗值越大 printf("======exp_info.exposure is %u\n", exp_info.exposure); // 当前曝光量,等于曝光时间与曝光增益的乘积,其中曝光时间的单位为微秒us 取值范围 [0x0, 0xFFFFFFFF] fprintf(fp_led, "exp_info.exposure=%d\n", exp_info.exposure); // 彩色画面 // exp_info.iso值越大画面,越暗 if(g_image_grey == 0) { grey_image_red_led = 1; if(exp_info.iso > 2000) { // 画面暗 dark_count++; bright_count = 0; // 重置亮计数 if (dark_count >= 10) { time_t current_time = time(NULL); if (current_time - red_led_last_minute_time >= MINUTE_INTERVAL) // 检查是否到达分钟间隔 { red_led_last_minute_time = current_time; // 更新时间戳 dark_count = 0; // 清零等待下一轮判断 printf("======open red led and ir_cut\n"); en_red_led_flag = 1; first_control_red_led++; fprintf(fp_led, "en_red_led_flag=%d\n", en_red_led_flag); } else { dark_count = 0; } if(first_control_red_led == 1) { open_red_led(); image_dark(); en_ir_cut = 1; ptz_ir_cut_control(1); } } } else { // 画面亮 bright_count++; dark_count = 0; // 重置暗计数 } } // 灰白画面 if(g_image_grey == 1) { if(grey_image_red_led == 1) { if (exp_info.exposure < 33000) { // 画面亮 bright_count++; dark_count = 0; // 重置暗计数 printf("g_image_grey=1 bright_count is %d\n", bright_count); if(bright_count >= 60) { time_t current_time = time(NULL); if (current_time - red_led_last_minute_time >= MINUTE_INTERVAL) { en_red_led_flag = 0; } else { // 画面暗 bright_count = 0; // 重置亮计数 } } } else { // 画面暗 bright_count = 0; // 重置亮计数 } } } opreation_led(); usleep(100000); return 1;}

相关推荐
Forsete2 小时前
LINUX驱动开发#9——定时器
linux·驱动开发·单片机
Hello_Embed4 小时前
libmodbus 移植 STM32(USB 串口后端篇)
笔记·stm32·单片机·嵌入式·freertos·libmodbus
来自晴朗的明天6 小时前
14、光耦隔离电路(EL3H7)
单片机·嵌入式硬件·硬件工程
G***技6 小时前
杰和IB3-272:以低功耗高性能打造新一代工业智能交互核心
单片机·嵌入式硬件·物联网
czhaii7 小时前
STC AI8052U单片机特点
单片机
MAR-Sky8 小时前
keil5中数据的不同定义和单片机(以stc8为例)里的对应关系(idata,xdata,data,code)
单片机·嵌入式硬件
项目題供诗9 小时前
51单片机入门(八)
单片机·嵌入式硬件·51单片机
羽获飞10 小时前
从零开始学嵌入式之STM32——9.STM32的时钟系统
stm32·单片机·嵌入式硬件
来自晴朗的明天11 小时前
13、NMOS 电源防反接电路
单片机·嵌入式硬件·硬件工程
芯岭技术12 小时前
PY32MD310单片机:高性能、低功耗的32位电机控制微控制器
单片机·嵌入式硬件