using UnityEngine; using System; namespace LightGlue.Unity.Config { /// /// 图像传输配置参数 /// 根据协议说明_V1.0_20250303定义 /// [System.Serializable] public class ImageTransmissionConfig { [Header("图像参数")] [Tooltip("图片分辨率选择(硬件分辨率枚举:QQVGA/QVGA/VGA/SVGA/XGA/HD/SXGA/UXGA)")] public ImageResolution resolution = ImageResolution.QVGA_320x240; [Tooltip("图片质量 (0-60,硬件直接使用该值,十进制输入,内部按十六进制发送)")] [Range(0, 60)] public int quality = 20; [Header("传输参数")] [Tooltip("上报时间间隔 (毫秒)")] [Min(0)] public int reportIntervalMs = 10; [Tooltip("开启图片传输开关")] public bool enableImageTransmission = true; /// /// 获取分辨率的宽度 /// public int GetWidth() { return resolution switch { ImageResolution.QQVGA_160x120 => 160, ImageResolution.QVGA_320x240 => 320, ImageResolution.VGA_640x480 => 640, ImageResolution.SVGA_800x600 => 800, ImageResolution.XGA_1024x768 => 1024, ImageResolution.HD_1280x720 => 1280, ImageResolution.SXGA_1280x1024 => 1280, ImageResolution.UXGA_1600x1200 => 1600, _ => 640 }; } /// /// 获取分辨率的高度 /// public int GetHeight() { return resolution switch { ImageResolution.QQVGA_160x120 => 120, ImageResolution.QVGA_320x240 => 240, ImageResolution.VGA_640x480 => 480, ImageResolution.SVGA_800x600 => 600, ImageResolution.XGA_1024x768 => 768, ImageResolution.HD_1280x720 => 720, ImageResolution.SXGA_1280x1024 => 1024, ImageResolution.UXGA_1600x1200 => 1200, _ => 480 }; } /// /// 获取分辨率字符串 (格式: "宽度x高度") /// public string GetResolutionString() { return $"{GetWidth()}x{GetHeight()}"; } /// /// 转换为硬件协议分辨率枚举值(十六进制) /// 硬件分辨率枚举: /// 1-QQVGA: 160X120 /// 6-QVGA: 320X240 /// 10-VGA: 640X480 /// 11-SVGA: 800X600 /// 12-XGA: 1024X768 /// 13-HD: 1280x720 /// 14-SXGA: 1280X1024 /// 15-UXGA: 1600X1200 /// public byte GetHardwareResolutionCode() { // 映射Unity分辨率到硬件分辨率枚举值 return resolution switch { ImageResolution.QQVGA_160x120 => 0x01, // 1-QQVGA: 160X120 ImageResolution.QVGA_320x240 => 0x06, // 6-QVGA: 320X240 ImageResolution.VGA_640x480 => 0x0A, // 10-VGA: 640X480 ImageResolution.SVGA_800x600 => 0x0B, // 11-SVGA: 800X600 ImageResolution.XGA_1024x768 => 0x0C, // 12-XGA: 1024X768 ImageResolution.HD_1280x720 => 0x0D, // 13-HD:1280x720 ImageResolution.SXGA_1280x1024 => 0x0E, // 14-SXGA: 1280X1024 ImageResolution.UXGA_1600x1200 => 0x0F, // 15-UXGA: 1600X1200 _ => 0x0A // 默认VGA }; } /// /// 将质量值(0-100)转换为硬件清晰度值(0-63,十六进制) /// 硬件质量范围:0-63 /// public byte GetHardwareQuality() { // UI中直接使用0-63,与硬件保持一致 return (byte)Mathf.Clamp(quality, 0, 63); } } /// /// 图片分辨率选项(与硬件分辨率枚举一一对应) /// 1-QQVGA: 160X120 /// 6-QVGA: 320X240 /// 10-VGA:640X480 /// 11-SVGA: 800X600 /// 12-XGA: 1024X768 /// 13-HD:1280x720 /// 14-SXGA: 1280X1024 /// 15-UXGA: 1600X1200 /// public enum ImageResolution { QQVGA_160x120 = 0, QVGA_320x240 = 1, VGA_640x480 = 2, SVGA_800x600 = 3, XGA_1024x768 = 4, HD_1280x720 = 5, SXGA_1280x1024 = 6, UXGA_1600x1200 = 7 } }