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

相关推荐
不悔哥2 天前
开源OV-Watch:怎么做一个智能手表
单片机·开源·嵌入式
XiHongShi20162 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
深圳老胡2 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
女神下凡2 天前
嵌入式设计的各种存储芯片的硬件/软件设计规范,非常全面。
arm开发·单片机·嵌入式硬件
梅梅9662 天前
一款mipi转lvds的lcd调试(LT8912B)
单片机·计算机外设·电脑·显示器·pd芯片
开发笔记-阿牛2 天前
蓝牙音乐灯拆解,又一次拆到蓝牙音乐灯芯片CK6865L
人工智能·单片机·嵌入式硬件·音视频·音频
CHENKONG_CK2 天前
破解制鞋打磨痛点:RFID赋能去毛刺工序自动化升级
网络·单片机·嵌入式硬件·网络协议·tcp/ip
三佛科技-187366133972 天前
128KB~512KB Flash车规级MCU选型指南(FT32A072 / FT32A103 系列)
单片机·嵌入式硬件
Brilliantwxx2 天前
【STM32】 SPI Flash 驱动开发实战:阻塞模式驱动 W25Q64(含工程代码)
开发语言·stm32·单片机·嵌入式硬件
纳祥科技2 天前
拆机拆到芯片级:ARC功放机里的NX7026、NX8420、NX6805
单片机·音视频·智能音箱