/*
* camera_config.h — 热成像摄像头参数配置接口
*
* 基于 HCUsbSDK 封装,提供热成像设备的全部配置项。
* 所有配置操作通过 USB 通道 1(官方 Hikvision demo 约定)发送。
* 返回 1 成功 / 0 失败(失败时自动打印错误码)。
*
* 字段访问器采用 读-改-写 模式:先 GET 整个结构体,修改单个字段,再 SET 回设备。
* 命名约定:camera_{get/set}_{参数名},无特殊声明时走通道 1、无额外数据。
*/
#ifndef CAMERA_CONFIG_H
#define CAMERA_CONFIG_H
#include "HCUsbSDK.h"
#ifdef __cplusplus
extern "C" {
#endif
/* ======================================================================== *
* 1. 系统管理 *
* ======================================================================== */
int camera_get_device_info(LONG uid, USB_SYSTEM_DEVICE_INFO *info);
/* 读取设备信息(固件版本、硬件版本、设备型号、序列号等)。
* @param uid 登录句柄
* @param info 输出:设备信息结构体
* @return 1 成功 / 0 失败 */
int camera_set_reboot(LONG uid);
/* 远程重启设备。
* @param uid 登录句柄
* @return 1 成功 / 0 失败 */
int camera_set_factory_reset(LONG uid);
/* 恢复设备出厂设置。
* @param uid 登录句柄
* @return 1 成功 / 0 失败 */
int camera_set_background_correct(LONG uid);
/* 一键背景校正(快门校正),消除热成像背景不均匀。
* @param uid 登录句柄
* @return 1 成功 / 0 失败 */
int camera_set_manual_correct(LONG uid);
/* 一键手动校正(快门校正)。
* @param uid 登录句柄
* @return 1 成功 / 0 失败 */
int camera_get_hardware_server(LONG uid, USB_SYSTEM_HARDWARE_SERVER *hs);
/* 读取硬件服务参数(USB 模式、设备初始化/运行状态)。
* @param uid 登录句柄
* @param hs 输出:硬件服务参数结构体
* @return 1 成功 / 0 失败 */
int camera_set_hardware_server(LONG uid, const USB_SYSTEM_HARDWARE_SERVER *hs);
/* 设置硬件服务参数。
* @param uid 登录句柄
* @param hs 输入:硬件服务参数结构体
* @return 1 成功 / 0 失败 */
int camera_get_local_time(LONG uid, USB_SYSTEM_LOCALTIME *lt);
/* 读取设备本地时间(年/月/日/时/分/秒/毫秒)。
* @param uid 登录句柄
* @param lt 输出:系统时间结构体
* @return 1 成功 / 0 失败 */
int camera_set_local_time(LONG uid, const USB_SYSTEM_LOCALTIME *lt);
/* 校时——设置设备本地时间。
* @param uid 登录句柄
* @param lt 输入:期望的系统时间结构体
* @return 1 成功 / 0 失败 */
/* ======================================================================== *
* 2. 图像增强 Enhancement(V20 → V1 自动回退) *
* USB_IMAGE_ENHANCEMENT 结构体,先试 _V20 命令,失败回退 V1。 *
* ======================================================================== */
int camera_get_enhancement(LONG uid, USB_IMAGE_ENHANCEMENT *enh);
/* 读取完整的图像增强参数(降噪/伪彩/DDE/勾边/宽动态等所有字段)。
* @param uid 登录句柄
* @param enh 输出:图像增强结构体(注意 enh->dwSize 必须预置 sizeof(*enh))
* @return 1 成功 / 0 失败 */
int camera_set_enhancement(LONG uid, const USB_IMAGE_ENHANCEMENT *enh);
/* 写入完整的图像增强参数(读-改-写风格:先 get 再 put)。
* @param uid 登录句柄
* @param enh 输入:填充好的图像增强结构体
* @return 1 成功 / 0 失败 */
/* ---- 2a. 伪彩色 ---- */
int camera_get_palette(LONG uid, int *mode);
/* 获取当前伪彩色模式。
* @param mode 输出:1=白热 2=黑热 10=融合1 11=彩虹 12=铁红1
* 13=琥珀1 14=琥珀2 15=高对比 16=色彩1 17=色彩2
* 18=冰火 19=雨 20=高亮 21=聚焦 22=紫红
* @return 1 成功 / 0 失败 */
int camera_set_palette(LONG uid, int mode);
/* 设置伪彩色模式。
* @param mode 同上取值
* @return 1 成功 / 0 失败 */
/* ---- 2b. AGC 模式 ---- */
int camera_get_agc_mode(LONG uid, int *mode);
/* 读取 AGC(自动增益控制)模式。
* @param mode 输出:1=线性 2=直方图 3=巡检 4=手动
* @return 1 成功 / 0 失败 */
int camera_set_agc_mode(LONG uid, int mode);
/* 设置 AGC 模式。
* @param mode 同上取值
* @return 1 成功 / 0 失败 */
/* ---- 2c. DDE(数字细节增强) ---- */
int camera_get_dde_enabled(LONG uid, int *enabled);
/* 读取 DDE 开关状态。
* @param enabled 输出:0=关闭 1=开启
* @return 1 成功 / 0 失败 */
int camera_set_dde_enabled(LONG uid, int enabled);
/* 设置 DDE 开关。
* @param enabled 0=关闭 1=开启
* @return 1 成功 / 0 失败 */
int camera_get_dde_level(LONG uid, DWORD *level);
/* 读取 DDE 细节增强级别。
* @param level 输出:0~100
* @return 1 成功 / 0 失败 */
int camera_set_dde_level(LONG uid, DWORD level);
/* 设置 DDE 细节增强级别。
* @param level 0~100
* @return 1 成功 / 0 失败 */
/* ---- 2d. 降噪 ---- */
int camera_get_noise_reduce_mode(LONG uid, int *mode);
/* 读取降噪模式。
* @param mode 输出:0=关闭 1=普通 2=专家
* @return 1 成功 / 0 失败 */
int camera_set_noise_reduce_mode(LONG uid, int mode);
/* 设置降噪模式。
* @param mode 同上取值。注意:设为 2(专家)时需配合 temporal/spatial 级别。
* @return 1 成功 / 0 失败 */
int camera_get_general_denoise(LONG uid, DWORD *level);
/* 读取普通降噪级别(普通模式下生效)。
* @param level 输出:0~100
* @return 1 成功 / 0 失败 */
int camera_set_general_denoise(LONG uid, DWORD level);
/* 设置普通降噪级别。自动将降噪模式设为 1(普通)。
* @param level 0~100
* @return 1 成功 / 0 失败 */
int camera_get_spatial_denoise(LONG uid, DWORD *level);
/* 读取空域降噪级别(专家模式下生效)。
* @param level 输出:0~100
* @return 1 成功 / 0 失败 */
int camera_set_spatial_denoise(LONG uid, DWORD level);
/* 设置空域降噪级别。自动将降噪模式设为 2(专家)。
* @param level 0~100
* @return 1 成功 / 0 失败 */
int camera_get_temporal_denoise(LONG uid, DWORD *level);
/* 读取时域降噪级别(专家模式下生效)。
* @param level 输出:0~100
* @return 1 成功 / 0 失败 */
int camera_set_temporal_denoise(LONG uid, DWORD level);
/* 设置时域降噪级别。自动将降噪模式设为 2(专家)。
* @param level 0~100
* @return 1 成功 / 0 失败 */
/* ---- 2e. 勾边 ---- */
int camera_get_hook_edge(LONG uid, int *enabled, int *level);
/* 读取勾边(边缘增强)参数。
* @param enabled 输出:0=关闭 1=开启
* @param level 输出:0~100
* @return 1 成功 / 0 失败 */
int camera_set_hook_edge(LONG uid, int enabled, int level);
/* 设置勾边参数。
* @param enabled 0=关闭 1=开启
* @param level 0~100
* @return 1 成功 / 0 失败 */
/* ======================================================================== *
* 3. 视频调整 VideoAdjust(镜像/数字变倍/工频) *
* ======================================================================== */
int camera_get_video_adjust(LONG uid, USB_IMAGE_VIDEO_ADJUST *va);
/* 读取完整的视频调整参数(镜像/变倍/工频/走廊模式等)。
* @param uid 登录句柄
* @param va 输出:视频调整结构体
* @return 1 成功 / 0 失败 */
int camera_set_video_adjust(LONG uid, const USB_IMAGE_VIDEO_ADJUST *va);
/* 写入完整的视频调整参数。
* @param uid 登录句柄
* @param va 输入:填充好的视频调整结构体
* @return 1 成功 / 0 失败 */
int camera_get_mirror_mode(LONG uid, int *mode);
/* 读取镜像模式。
* @param mode 输出:0=关闭 1=中心 2=左右 3=上下
* @return 1 成功 / 0 失败 */
int camera_set_mirror_mode(LONG uid, int mode);
/* 设置镜像模式。
* @param mode 同上取值
* @return 1 成功 / 0 失败 */
int camera_get_digital_zoom(LONG uid, int *zoom);
/* 读取数字变倍倍率。
* @param zoom 输出:0=1× 1=2× 2=4× 3=8×
* @return 1 成功 / 0 失败 */
int camera_set_digital_zoom(LONG uid, int zoom);
/* 设置数字变倍。
* @param zoom 同上取值
* @return 1 成功 / 0 失败 */
/* ======================================================================== *
* 4. 亮度 / 对比度(单字段结构体) *
* ======================================================================== */
int camera_get_brightness(LONG uid, DWORD *value);
/* 读取图像亮度。
* @param value 输出:0~100
* @return 1 成功 / 0 失败 */
int camera_set_brightness(LONG uid, DWORD value);
/* 设置图像亮度。
* @param value 0~100
* @return 1 成功 / 0 失败 */
int camera_get_contrast(LONG uid, DWORD *value);
/* 读取图像对比度。
* @param value 输出:0~100
* @return 1 成功 / 0 失败 */
int camera_set_contrast(LONG uid, DWORD value);
/* 设置图像对比度。
* @param value 0~100
* @return 1 成功 / 0 失败 */
/* ======================================================================== *
* 5. 测温基本参数 Thermometry *
* USB_THERMOMETRY_BASIC_PARAM 结构体(发射率/距离/范围/单位/报警/环境等) *
* ======================================================================== */
int camera_get_thermometry(LONG uid, USB_THERMOMETRY_BASIC_PARAM *tp);
/* 读取完整的测温基本参数结构体(所有字段)。
* @param uid 登录句柄
* @param tp 输出:测温参数结构体(tp->dwSize 预置 sizeof(*tp))
* @return 1 成功 / 0 失败 */
int camera_set_thermometry(LONG uid, const USB_THERMOMETRY_BASIC_PARAM *tp);
/* 写入完整的测温基本参数结构体。
* @param uid 登录句柄
* @param tp 输入:填充好的测温参数结构体
* @return 1 成功 / 0 失败 */
/* ---- 5a. 发射率 ---- */
int camera_get_emissivity(LONG uid, DWORD *value_x100);
/* 读取发射率。
* @param value_x100 输出:实际值×100(例如 0.97 → 97)
* @return 1 成功 / 0 失败 */
int camera_set_emissivity(LONG uid, DWORD value_x100);
/* 设置发射率。
* @param value_x100 实际值×100(范围 1~100,对应 0.01~1.00)
* @return 1 成功 / 0 失败 */
/* ---- 5b. 测温距离 ---- */
int camera_get_distance(LONG uid, DWORD *distance_cm);
/* 读取测温距离。
* @param distance_cm 输出:厘米
* @return 1 成功 / 0 失败 */
int camera_set_distance(LONG uid, DWORD distance_cm);
/* 设置测温距离。
* @param distance_cm 厘米,范围 30~200(即 0.3~2.0 米)
* @return 1 成功 / 0 失败 */
int camera_get_distance_unit(LONG uid, int *unit);
/* 读取距离单位。
* @param unit 输出:1=米 2=厘米 3=英尺
* @return 1 成功 / 0 失败 */
int camera_set_distance_unit(LONG uid, int unit);
/* 设置距离单位。
* @param unit 同上取值
* @return 1 成功 / 0 失败 */
/* ---- 5c. 温度单位 ---- */
int camera_get_temp_unit(LONG uid, int *unit);
/* 读取温度单位。
* @param unit 输出:1=℃ 2=℉ 3=K
* @return 1 成功 / 0 失败 */
int camera_set_temp_unit(LONG uid, int unit);
/* 设置温度单位。
* @param unit 同上取值
* @return 1 成功 / 0 失败 */
/* ---- 5d. 测温范围 ---- */
int camera_get_temp_range(LONG uid, int *range);
/* 读取测温范围档位。
* @param range 输出:1~5(各档位对应的上下限温度由硬件决定,只读)
* @return 1 成功 / 0 失败 */
int camera_set_temp_range(LONG uid, int range);
/* 设置测温范围档位。
* @param range 1~5
* @return 1 成功 / 0 失败 */
int camera_get_temp_range_auto_enabled(LONG uid, int *enabled);
/* 读取测温档位自动切换开关。
* @param enabled 输出:0=关闭 1=开启
* @return 1 成功 / 0 失败 */
int camera_set_temp_range_auto_enabled(LONG uid, int enabled);
/* 设置测温档位自动切换开关。
* @param enabled 0=关闭 1=开启
* @return 1 成功 / 0 失败 */
/* ---- 5e. 标定系数 ---- */
int camera_get_calibration_coeff(LONG uid, DWORD *value_x100);
/* 读取标定系数。
* @param value_x100 输出:实际值×100(例如 1.00 → 100),范围 0~3000
* @return 1 成功 / 0 失败 */
int camera_set_calibration_coeff(LONG uid, DWORD value_x100);
/* 设置标定系数。
* @param value_x100 实际值×100(0.00~30.00 对应 0~3000)
* @return 1 成功 / 0 失败 */
int camera_get_calibration_coeff_enabled(LONG uid, int *enabled);
/* 读取标定系数启用状态。
* @param enabled 输出:0=关闭 1=开启
* @return 1 成功 / 0 失败 */
int camera_set_calibration_coeff_enabled(LONG uid, int enabled);
/* 设置标定系数启用状态。
* @param enabled 0=关闭 1=开启
* @return 1 成功 / 0 失败 */
/* ---- 5f. 反射温度 ---- */
int camera_get_reflective_temp(LONG uid, DWORD *temp_x10);
/* 读取反射温度补偿值。
* @param temp_x10 输出:(实际温度 + 100) × 10(例如 25.0℃ → 1250)
* @return 1 成功 / 0 失败 */
int camera_set_reflective_temp(LONG uid, DWORD temp_x10);
/* 设置反射温度补偿值。
* @param temp_x10 (实际温度 + 100) × 10
* @return 1 成功 / 0 失败 */
int camera_get_reflective_enabled(LONG uid, int *enabled);
/* 读取反射温度使能。
* @param enabled 输出:0=关闭 1=开启
* @return 1 成功 / 0 失败 */
int camera_set_reflective_enabled(LONG uid, int enabled);
/* 设置反射温度使能。
* @param enabled 0=关闭 1=开启
* @return 1 成功 / 0 失败 */
/* ---- 5g. 环境温度 ---- */
int camera_get_env_temp(LONG uid, int *enabled, DWORD *temp);
/* 读取环境温度参数。
* @param enabled 输出:0=关闭 1=开启
* @param temp 输出:(实际值 + 100) × 10,-99.0~99.0℃
* @return 1 成功 / 0 失败 */
int camera_set_env_temp(LONG uid, int enabled, DWORD temp);
/* 设置环境温度参数。
* @param enabled 0=关闭 1=开启
* @param temp (实际值 + 100) × 10
* @return 1 成功 / 0 失败 */
/* ---- 5h. 报警温度 ---- */
#define CAMERA_ALERT_TEMP_MIN 0u
#define CAMERA_ALERT_TEMP_MAX 20000u /* 200.00℃ × 100 */
int camera_get_alert_temp(LONG uid, DWORD *temp_x100);
/* 读取预警温度(根据位号显示框标记)。
* @param temp_x100 输出:实际值×100
* @return 1 成功 / 0 失败 */
int camera_set_alert_temp(LONG uid, DWORD temp_x100);
/* 设置预警温度。
* @param temp_x100 实际值×100
* @return 1 成功 / 0 失败 */
int camera_get_alarm_temp(LONG uid, DWORD *temp_x100);
/* 读取报警温度(超温报警)。
* @param temp_x100 输出:实际值×100
* @return 1 成功 / 0 失败 */
int camera_set_alarm_temp(LONG uid, DWORD temp_x100);
/* 设置报警温度。
* @param temp_x100 实际值×100
* @return 1 成功 / 0 失败 */
/* ---- 5i. 显示元素 ---- */
int camera_get_display_flags(LONG uid, int *max_en, int *min_en,
int *avg_en, int *cen_en);
/* 读取测温信息叠加显示选项。
* @param max_en 输出:0=关闭 1=开启 最高温显示
* @param min_en 输出:0=关闭 1=开启 最低温显示
* @param avg_en 输出:0=关闭 1=开启 平均温显示
* @param cen_en 输出:0=关闭 1=开启 中心温显示
* @return 1 成功 / 0 失败 */
int camera_set_display_flags(LONG uid, int max_en, int min_en,
int avg_en, int cen_en);
/* 设置测温信息叠加显示选项。
* @param max_en/min_en/avg_en/cen_en 0=关闭 1=开启
* @return 1 成功 / 0 失败 */
/* ---- 5j. 全局开关与码流叠加 ---- */
int camera_get_thermometry_enabled(LONG uid, int *enabled);
/* 读取测温功能全局使能。
* @param enabled 输出:0=关闭 1=开启
* @return 1 成功 / 0 失败 */
int camera_set_thermometry_enabled(LONG uid, int enabled);
/* 设置测温功能全局使能。
* @param enabled 0=关闭 1=开启
* @return 1 成功 / 0 失败 */
int camera_get_thermometry_overlay(LONG uid, int *enabled);
/* 读取测温信息码流叠加使能(由设备在视频流中叠加温度文字/框)。
* @param enabled 输出:0=关闭 1=开启
* @return 1 成功 / 0 失败 */
int camera_set_thermometry_overlay(LONG uid, int enabled);
/* 设置测温信息码流叠加使能。
* @param enabled 0=关闭 1=开启
* @return 1 成功 / 0 失败 */
/* ---- 5k. 外部光学参数 ---- */
int camera_get_external_optics_correction(LONG uid, DWORD *temp);
/* 读取外部光学窗口校正温度。
* @param temp 输出:实际值×100
* @return 1 成功 / 0 失败 */
int camera_set_external_optics_correction(LONG uid, DWORD temp);
/* 设置外部光学窗口校正温度。
* @param temp 实际值×100
* @return 1 成功 / 0 失败 */
int camera_get_atmospheric_humidity(LONG uid, DWORD *humidity);
/* 读取大气湿度补偿值。
* @param humidity 输出:百分比×100(例如 5000 = 50.00%)
* @return 1 成功 / 0 失败 */
int camera_set_atmospheric_humidity(LONG uid, DWORD humidity);
/* 设置大气湿度补偿值。
* @param humidity 百分比×100
* @return 1 成功 / 0 失败 */
/* ======================================================================== *
* 6. 测温模式 ThermometryMode *
* USB_THERMOMETRY_MODE:普通 / 专家 + ROI 使能 *
* ======================================================================== */
int camera_get_thermometry_mode(LONG uid, USB_THERMOMETRY_MODE *mode);
/* 读取测温模式(普通/专家)及 ROI 使能状态。
* @param uid 登录句柄
* @param mode 输出:测温模式结构体
* @return 1 成功 / 0 失败 */
int camera_set_thermometry_mode(LONG uid, const USB_THERMOMETRY_MODE *mode);
/* 设置测温模式。
* @param uid 登录句柄
* @param mode 输入:填充好的测温模式结构体
* @return 1 成功 / 0 失败 */
/* ======================================================================== *
* 7. 测温规则区域 ThermometryRegions *
* USB_THERMOMETRY_REGIONS:多个 THERMAL_REGION,归一化坐标 0-1000 *
* ======================================================================== */
int camera_get_thermometry_regions(LONG uid, USB_THERMOMETRY_REGIONS *regs);
/* 读取测温规则区域配置。
* @param uid 登录句柄
* @param regs 输出:测温规则区域结构体
* @return 1 成功 / 0 失败 */
int camera_set_thermometry_regions(LONG uid,
const USB_THERMOMETRY_REGIONS *regs);
/* 写入测温规则区域配置。
* @param uid 登录句柄
* @param regs 输入:填充好的测温规则区域结构体
* @return 1 成功 / 0 失败 */
/* ======================================================================== *
* 8. 测温修正 TemperatureCorrect *
* USB_TEMPERATURE_CORRECT:黑体温度修正(发射率/距离/黑体温度/修正温度) *
* ======================================================================== */
int camera_get_temperature_correct(LONG uid, USB_TEMPERATURE_CORRECT *tc);
/* 读取测温修正参数(黑体修正使能/发射率/距离/黑体温度/中心坐标/修正温度)。
* @param uid 登录句柄
* @param tc 输出:测温修正结构体
* @return 1 成功 / 0 失败 */
int camera_set_temperature_correct(LONG uid,
const USB_TEMPERATURE_CORRECT *tc);
/* 写入测温修正参数。
* @param uid 登录句柄
* @param tc 输入:填充好的测温修正结构体
* @return 1 成功 / 0 失败 */
/* ======================================================================== *
* 9. 黑体参数 BlackBody *
* USB_BLACK_BODY:黑体使能/发射率/距离/黑体温度/中心坐标 *
* ======================================================================== */
int camera_get_black_body(LONG uid, USB_BLACK_BODY *bb);
/* 读取黑体参数(黑体使能/发射率/距离/温度/中心坐标)。
* @param uid 登录句柄
* @param bb 输出:黑体参数结构体
* @return 1 成功 / 0 失败 */
int camera_set_black_body(LONG uid, const USB_BLACK_BODY *bb);
/* 写入黑体参数。
* @param uid 登录句柄
* @param bb 输入:填充好的黑体参数结构体
* @return 1 成功 / 0 失败 */
/* ======================================================================== *
* 10. 体温补偿 BodytempCompensation *
* USB_BODYTEMP_COMPENSATION:人体测温使能/补偿类型/补偿值/环境温度/曲线 *
* ======================================================================== */
int camera_get_bodytemp_compensation(LONG uid,
USB_BODYTEMP_COMPENSATION *bc);
/* 读取体温补偿参数(使能/补偿方式/补偿值/环境温度/曲线灵敏度等)。
* @param uid 登录句柄
* @param bc 输出:体温补偿结构体
* @return 1 成功 / 0 失败 */
int camera_set_bodytemp_compensation(LONG uid,
const USB_BODYTEMP_COMPENSATION *bc);
/* 写入体温补偿参数。
* @param uid 登录句柄
* @param bc 输入:填充好的体温补偿结构体
* @return 1 成功 / 0 失败 */
/* ======================================================================== *
* 11. 全屏测温参数 P2PParam *
* USB_P2P_PARAM:全屏测温 JPEG 图返回使能 *
* ======================================================================== */
int camera_get_p2p_param(LONG uid, USB_P2P_PARAM *p2p);
/* 读取全屏测温参数(JPEG 图返回使能)。
* @param uid 登录句柄
* @param p2p 输出:全屏测温参数结构体
* @return 1 成功 / 0 失败 */
int camera_set_p2p_param(LONG uid, const USB_P2P_PARAM *p2p);
/* 写入全屏测温参数。
* @param uid 登录句柄
* @param p2p 输入:填充好的全屏测温参数结构体
* @return 1 成功 / 0 失败 */
/* ======================================================================== *
* 12. 热成像码流参数 ThermalStreamParam *
* USB_THERMAL_STREAM_PARAM:编码类型(裸数据/全屏测温/YUV 等) *
* 注意:camera_configure() 已在 camera.c 中调用 SET,此处只提供 GET。 *
* ======================================================================== */
int camera_get_thermal_stream_param(LONG uid,
USB_THERMAL_STREAM_PARAM *sp);
/* 读取当前热成像码流参数(编码类型/分辨率/帧率)。
* @param uid 登录句柄
* @param sp 输出:码流参数结构体
* @return 1 成功 / 0 失败 */
/* ======================================================================== *
* 13. 算法版本 ThermalAlgVersion *
* ======================================================================== */
int camera_get_thermal_alg_version(LONG uid,
USB_THERMAL_ALG_VERSION *ver);
/* 读取热成像算法版本(算法库名称、逻辑版本号)。
* @param uid 登录句柄
* @param ver 输出:算法版本结构体
* @return 1 成功 / 0 失败 */
/* ======================================================================== *
* 14. 诊断信息导出(系统诊断) *
* USB_SYSTEM_DIAGNOSED_DATA:导出设备诊断信息到文件 *
* ======================================================================== */
int camera_get_system_diagnosed_data(LONG uid,
USB_SYSTEM_DIAGNOSED_DATA *dd);
/* 导出设备诊断信息。调用前 dd->pDiagnosedData 需指向足够大的缓冲区,
* dd->dwDataLenth 需预置缓冲区大小。
* @param uid 登录句柄
* @param dd 输出:诊断数据结构体(诊断数据写入 pDiagnosedData)
* @return 1 成功 / 0 失败 */
/* ======================================================================== *
* 15. ROI 最高温搜索(复杂操作,涉及 JPEG 输出) *
* USB_ROI_MAX_TEMPERATURE_SEARCH:设置 ROI 区域查询最高温 *
* ======================================================================== */
int camera_get_roi_max_temperature_search(
LONG uid,
USB_ROI_MAX_TEMPERATURE_SEARCH *in,
USB_ROI_MAX_TEMPERATURE_SEARCH_RESULT *out);
/* ROI 最高温信息查询。输入 ROI 区域和时间,输出各 ROI 最高温及可选的 JPEG 图。
* 调用前 out->pJpegPic 需指向足够大的缓冲区,out->dwJpegPicLen 预置缓冲区大小。
* @param uid 登录句柄
* @param in 输入:查询条件(ROI 区域/时间/JPEG 使能等)
* @param out 输出:查询结果(最高温/坐标/JPEG 数据)
* @return 1 成功 / 0 失败 */
/* ======================================================================== *
* 16. 双光校准(复杂操作,涉及可见光图片文件) *
* ======================================================================== */
int camera_post_double_lights_correct(
LONG uid,
const USB_DOUBLE_LIGHTS_CORRECT *in,
USB_DOUBLE_LIGHTS_CORRECT_RESULT *out);
/* 双光校准。输入可见光图片和校准参数,输出校准结果 JPEG。
* 调用前 in->pVisiblePic 指向已读入的可见光图片数据。
* out->pJpegPic 指向输出 JPEG 缓冲区,dwJpegPicLen 预置缓冲区大小。
* @param uid 登录句柄
* @param in 输入:校准参数
* @param out 输出:校准结果
* @return 1 成功 / 0 失败 */
/* --- 双光校准坐标控制 --- */
int camera_get_double_lights_correct_points_ctrl(
LONG uid, USB_DOUBLE_LIGHTS_CORRECT_POINTS_CTRL *ctrl);
/* 读取双光校准坐标控制使能。
* @param ctrl 输出:坐标控制结构体
* @return 1 成功 / 0 失败 */
int camera_set_double_lights_correct_points_ctrl(
LONG uid, const USB_DOUBLE_LIGHTS_CORRECT_POINTS_CTRL *ctrl);
/* 设置双光校准坐标控制使能。
* @param ctrl 输入:填充好的坐标控制结构体
* @return 1 成功 / 0 失败 */
/* ======================================================================== *
* 17. 测温标定文件导入导出 *
* ======================================================================== */
int camera_get_thermometry_calibration_file(
LONG uid, USB_THERMOMETRY_CALIBRATION_FILE *cf);
/* 导出测温标定文件。
* 调用前 cf->pCalibrationFile 指向足够大的缓冲区,cf->dwFileLenth 预置缓冲区大小。
* @param uid 登录句柄
* @param cf 输出:标定文件数据
* @return 1 成功 / 0 失败 */
int camera_set_thermometry_calibration_file(
LONG uid, const USB_THERMOMETRY_CALIBRATION_FILE *cf);
/* 导入测温标定文件。
* 调用前 cf->pCalibrationFile 指向已读入的标定文件数据,cf->dwFileLenth 为数据长度,
* cf->byFileName 需填文件名。
* @param uid 登录句柄
* @param cf 输入:标定文件数据
* @return 1 成功 / 0 失败 */
/* ======================================================================== *
* 18. 命令状态查询 *
* ======================================================================== */
int camera_get_command_state(LONG uid, USB_COMMAND_STATE *state);
/* 查询设备命令状态(用于判断设备是否空闲可接收新命令)。
* @param state 输出:命令状态结构体
* @return 1 成功 / 0 失败 */
#ifdef __cplusplus
}
#endif
#endif /* CAMERA_CONFIG_H */