# 托普瑞热像仪应用开发任务列表 ## 1. SDK集成准备 - [x] 1.1 复制托普瑞SDK文件到项目目录 - [x] 1.2 在Visual Studio项目中添加SDK引用 - [x] 1.3 阅读SDK文档,了解API接口 ## 2. 设备连接功能 - [x] 2.1 实现设备连接模块 - [x] 2.2 完善连接状态管理 ## 3. 温度数据处理 ### 3.1 设备连接建立与管理 - [ ] 3.1.1 实现设备连接建立流程 - 使用SDK的`sdk_initialize()`初始化套接字库 - 利用`sdk_search_device()`搜索设备IP地址 - 验证设备IP地址是否为默认地址(192.168.100.2)或自定义地址 - 建立与热像仪的TCP连接,使用8081端口获取原始温度数据 - [ ] 3.1.2 连接状态维护机制 - 利用现有的`_heartbeatTimer`实现SDK心跳检测(`sdk_heartbeat`) - 扩展`UpdateConnectionStatus()`方法,支持温度数据连接状态管理 - 实现基于`_connectionCheckTimer`的定时连接状态检测 - 利用现有的自动重连机制,当温度数据连接断开时自动重连 - [ ] 3.1.3 连接条件判断 - 调用`IsNetworkAvailable()`验证网络连接状态 - 检查设备型号兼容性,支持IRAY-A8系列设备 - 验证设备版本信息,确保SDK兼容性 - 在获取温度数据前检查设备是否处于正常工作状态 ### 3.2 原始温度数据获取 - [ ] 3.2.1 温度数据获取方法实现 - 在`DeviceManager.cs`中添加`GetRawTemperatureData()`方法 - 创建TCP客户端连接到设备的8081端口 - 实现数据接收线程,使用类似现有的`_imageReceiveThread`模式 - 实现24字节头部结构体解析,提取mark("+TEMP")、payload_length和timestamp - [ ] 3.2.2 温度数据解析与处理 - 根据设备分辨率计算温度数据总长度(宽*高*2字节) - 实现温度数据解码算法:摄氏温度 = (H*256 + L)/10,其中L是低8位,H是高8位 - 调用`sdk_get_comp_temp()`获取设备温补值并进行叠加修正 - 创建温度数据模型类,存储解析后的温度矩阵 - [ ] 3.2.3 数据获取条件控制与异常处理 - 添加连接状态验证,确保`_connectionStatus`为`Connected` - 实现数据接收超时处理,基于`_lastDataReceivedTime`和`DataReceivedTimeout` - 添加数据校验机制,确保接收到的温度数据格式正确 - 实现断线自动重连,利用现有的`_reconnectTimer`机制 - 添加异常捕获和日志记录,使用现有的`Log()`方法 - [ ] 3.2.4 温度数据接口设计 - 添加温度数据接收事件`TemperatureDataReceived` - 实现线程安全的数据访问方法 - 添加温度数据缓存机制,保留最近几帧数据 - 提供获取特定区域温度数据的辅助方法