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;}

相关推荐
巴渝小禹9 小时前
单片机死循环delay_us()计算方法
单片机·嵌入式硬件
科芯创展11 小时前
XZ3445 高集成升压/升降压DC-DC电源芯片技术解析
单片机·嵌入式硬件
艾芯微科技11 小时前
高充放电流锂电充放 SoC:ETA9885E10,便携储能、小移动电源 BOM 选型笔记
网络·单片机·嵌入式硬件·集成测试·51单片机
艾芯微科技11 小时前
钰泰 ETA6973PQ3Y|QFN3×3 2A 同步降压 Buck,I2C 可配置多档输出,动态调压 PMIC
网络·单片机·嵌入式硬件·fpga开发·集成测试·51单片机
Brilliantwxx12 小时前
【STM32】 通用定时器:输入捕获与输出比较详解 测脉宽、测频率
stm32·单片机·嵌入式硬件·mcu
意法半导体STM3213 小时前
【官方原创】LAT1703 STM32C5 LL Cordic例程
stm32·单片机·嵌入式硬件·stm32c5·ll cordic
FPGA小徐13 小时前
电子工程师面试真题:LM7805 扩流 + 过流保护电路原理分析
单片机·嵌入式硬件
霖霖71413 小时前
【ESP32笔记】RGB灯WS2812实验
笔记·单片机·mcu·物联网
西城微科方案开发14 小时前
激光测距仪模组选择——M01还是M03?
单片机·嵌入式硬件
zjxtxdy14 小时前
STM32hal库开发-中断与串口和通信协议
stm32·单片机·嵌入式硬件