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

相关推荐
易水寒陈3 小时前
stm32使用Jlink进行GDB脚本调试
stm32·单片机·嵌入式硬件
weixin_452077643 小时前
LVGL移植到STM32教程(附源码) ----兼容正点原子精英板
stm32·单片机·嵌入式硬件
Zyed3 小时前
[STM32]Day13修改主频、睡眠模式+串口发送、停止模式+对射式红外传感器计次、待机模式+实时时钟
stm32·单片机·嵌入式硬件
金色光环4 小时前
DSP28335 SPI通信实验:从零到实战
单片机·嵌入式硬件·物联网
Zyed5 小时前
[STM32]Day14独立看门狗+窗口看门狗
stm32·单片机·嵌入式硬件
H__Rick6 小时前
C51学习-DAY7
单片机·嵌入式硬件·学习·51单片机
欢乐熊嵌入式编程6 小时前
第2讲:什么是优秀的软件架构?
stm32·单片机·freertos·低功耗蓝牙·嵌入式架构·efr32
嵌入式ZYXC6 小时前
第9篇:《面试题:ADC前端为什么要加运放跟随器?什么情况下可以不加?》
stm32·单片机·嵌入式硬件·面试·职场和发展
DS小龙哥6 小时前
基于STM32设计的电动车智能充电计费系统
stm32·单片机·嵌入式硬件
普中科技6 小时前
【普中STM32F1xx开发攻略--标准库版】-- 第 49 章 FLASH 字库实验
stm32·单片机·嵌入式硬件·flash·gbk·字库·普中科技