## ADDED Requirements ### Requirement: 对接方网络接入参数说明 文档 SHALL 提供上位机(ConfigServer)与采集端建立 TCP 连接所需的全部参数。 #### Scenario: 对接方配置 TCP Server 监听端口 - **WHEN** 对接方开发服务端程序时 - **THEN** 文档 SHALL 提供:MCU 默认 IP=192.168.7.10,Subnet=255.255.255.0,Gateway=192.168.7.1;Server 需在 192.168.7.50 监听两个端口:5511(控制流,MCU 主动连入)和 5512(数据流,MCU 主动连入);以太网接口为 1000M RGMII ### Requirement: 握手流程说明 文档 SHALL 描述 MCU 上电后的握手过程,使对接方能正确识别采集端设备。 #### Scenario: 对接方接收第一个数据包并识别设备 - **WHEN** MCU 连接后发送握手帧时 - **THEN** 文档 SHALL 说明:MCU 在控制流连接成功后发送 TYPE_HANDSHAKE(Class=CLASS_SYSTEM,含 ProtocolVersion=0x0200、DeviceUUID=MAC 地址、AuthToken=全零);服务器 SHALL 回复握手响应以完成握手;握手完成后 MCU 才开始正常数据上报 ### Requirement: 配置下发格式说明 文档 SHALL 描述服务器向 MCU 下发配置的帧格式和所有配置字段含义。 #### Scenario: 对接方配置 2D 触发模式 - **WHEN** 对接方发送 Config2D 配置帧时 - **THEN** 文档 SHALL 提供 Config2D_t 所有字段:Enabled(uint8_t)、TriggerMode(uint8_t, 0=内部温度/1=外部GPIO)、TriggerDebounceIntervalMs(uint16_t)、TriggerDelayMs(uint16_t)、TriggerBurstCount(uint8_t)、TriggerInternalIntervalMs(uint16_t)、TriggerTemperatureThreshold(int16_t, 0.1°C/LSB)、TriggerCondition(uint8_t, 0=Avg/1=Max)、TriggerRoiX/Y/W/H(uint16_t)、TargetWidth/Height(uint16_t)、NGioDelay(uint16_t, ms) #### Scenario: 对接方配置 1D 采集模式 - **WHEN** 对接方发送 Config1D 配置帧时 - **THEN** 文档 SHALL 提供 Config1D_t 所有字段:Enabled(uint8_t)、RunMode(uint8_t, 0=STOP/1=RUN)、TriggerType(uint8_t, 1=内部/2=外部)、TriggerTempLimit(int16_t)、HighTimerLimit(uint16_t, ms)、NgCountLimit(uint16_t, 帧数)、BufferSize(uint16_t)、LSizeStart/RSizeStart(uint16_t, 切片参数) ### Requirement: 温度帧数据包格式说明 文档 SHALL 描述 MCU 上报的温度帧数据包的完整格式,使对接方能正确解析。 #### Scenario: 对接方解析收到的 2D 温度帧 - **WHEN** 数据流收到 TYPE_TEMP_FRAME 包时 - **THEN** 文档 SHALL 说明:Value 区域含 PreprocessResult 元数据(ValidWidth × ValidHeight 像素数组);像素为 uint16_t little-endian,单位 0.1°C/LSB;元数据含 MaxTemp/MinTemp/AvgTemp/RoiTemp(均 int16_t, 0.1°C/LSB)、ValidWidth/ValidHeight(实际 ROI 尺寸)、FrameNumber #### Scenario: 对接方解析收到的 1D 温度帧 - **WHEN** 数据流收到 1D TYPE_TEMP_FRAME 包时 - **THEN** 文档 SHALL 说明:is2D=0,每个样本 4 字节:[time_off_lo, time_off_hi, temp_lo, temp_hi],time_offset 为相对采集开始的 ms 偏移(uint16_t),temp 为 uint16_t 0.1°C/LSB ### Requirement: 触发结果上报和 NG 响应机制说明 文档 SHALL 描述采集端如何响应服务器的 DetectionResult 决策和触发 NG 输出。 #### Scenario: 对接方下发检测结果 - **WHEN** 服务器完成图像分析后回传结果时 - **THEN** 文档 SHALL 说明:服务器发送 TYPE_DETECTION_RESULT(含 frameNumber、resultStatus,0=NG/1=OK);MCU 收到 resultStatus=0 时触发 PA8 高电平 NGioDelay ms(默认 200ms);对接方可通过 NGioDelay 配置 NG 输出脉宽 ### Requirement: TEMP_REQ 按需截图说明 文档 SHALL 描述服务器如何向 MCU 请求即时截图。 #### Scenario: 对接方请求单帧截图 - **WHEN** 服务器需要调试或核查当前热场时 - **THEN** 文档 SHALL 说明:控制流发送 TYPE_CONFIG_COMMON 或专用 TEMP_REQ 命令(含 is2dRequest 字段);MCU 将在下一个业务循环发送当前最新帧,2D 返回 ROI 裁切后温度矩阵,1D 返回中心行 30 个等间距采样点;仅在对应模式已 Enabled 时响应 ### Requirement: 错误码和异常处理说明 文档 SHALL 列出协议层所有错误码含义及对接方应采取的处理措施。 #### Scenario: 对接方收到 ERR 响应帧 - **WHEN** 服务器发送格式错误的配置帧时 - **THEN** 文档 SHALL 列出错误码含义:ERR_CRC(0x1001)=CRC 校验失败、ERR_VERSION(0x1002)=协议版本不匹配、ERR_LENGTH(0x1003)=帧长度异常、ERR_AUTH(0x2001)=认证失败、ERR_BUSY(0x2002)=设备忙、ERR_PARAM(0x3001)=参数非法;收到错误码后对接方 SHALL 检查发送的帧格式后重试