2026-03-14 08:12:17 +08:00

1.7 KiB
Raw Blame History

1. 原网络及采集链路调整与重构

  • 1.1 在 prj/TCPClient/User/main.c 中删除或注释掉陈旧的一般 TCP 阻塞式轮询测试发送代码/函数。
  • 1.2 在全局预分配 2 个带偏移量预留空间的网络封包静态池结构 TcpTxBuffer_t
  • 1.3 移除 DVP 中断或其附带任务中直接封包或打印大量数据的行为,只保留 Line_Ready_Flag 或向外吐出可用 Buffer 的指针指示功能。

2. 图像预处理流水线接入

  • 2.1 在 main 初始化中添加 Preprocess_Init 例程并配置默认的二维参数最大宽高。
  • 2.2 在主循环里,当获取到一完整帧缓存后,包装成 RawImageBuffer_t
  • 2.3 调用 Preprocess_CheckInternalTrigger2D 进行掩膜触发扫描校验如果返回值验证被触发通过1进入提取分支否则略过。
  • 2.4 在触发分支内应用被锁定的物理 Frame 内存和空闲的一侧 TcpTxBuffer,调用 Preprocess_Execute 零拷贝执行滑窗提取操作获取有效数据负载与温度统计极值。

3. TCP 协议接管与外部交互

  • 3.1 在 main 初始化网卡层等底层网络完成后,调用 TcpLogic_InitTcpLogic_Start
  • 3.2 定义系统被上位机修改参数时的回调 ConfigUpdateCallback_t,在其内部联级调用 Preprocess_Settings_Change 来影响全局阈值。
  • 3.3 定义接收上位机检测下发判断的 DetectionResultCallback_t,预留好对某一设定 GPIO 口拉高(作为报警/废品剔除气缸动作)响应函数。
  • 3.4 经过 Preprocess_Execute 获取到的有效内容数组,作为参量通过调用 TcpLogic_BuildAndSendTemperatureFrame 执行偏移组包完成以太网 DMA 数据包压入队列工作。