Utils/MIGRATION.md
杰仔 9bcdc61c5a 初始提交:Utils 工具库模块
包含以下子模块:
- VrCommon: 核心接口和数据结构
- VrUtils: 工具类库(JSON、log4cpp、tinyxml2、INI、MD5、CRC)
- CloudUtils: 点云工具
- DataUtils: 数据处理工具(CloudMathClac、CoordinateTransform)
- CloudView: 点云查看工具

功能说明:
- 提供项目通用的基础工具类和实用功能
- 支持 Windows (MSVC/MinGW) 和 Linux (ARM/x86_64) 平台
- 使用 Qt qmake 构建系统
- 所有模块编译为静态库
2026-02-18 16:00:16 +08:00

6.1 KiB
Raw Blame History

Utils 模块重构总结

修改概述

已成功将 Utils 目录设置为独立的 git 仓库,并更新了主项目中所有对 VrCommon、VrUtils 和 CloudUtils 的引用。

主要修改内容

1. Utils 目录结构

创建了独立的 Utils 模块,包含以下子模块:

Utils/
├── VrCommon/           # 核心接口和数据结构
├── VrUtils/            # 工具类库JSON、log4cpp、tinyxml2、INI、MD5、CRC
├── CloudUtils/         # 点云工具
├── DataUtils/          # 数据处理工具
│   ├── CloudMathClac/      # 点云数学计算
│   └── CoordinateTransform/ # 坐标转换
└── CloudView/          # 点云查看工具

2. 创建的新文件

  • Utils/Utils.pro - Utils 模块主项目文件
  • Utils/README.md - Utils 模块说明文档
  • Utils/.gitignore - Git 忽略文件配置

3. 修改的 .pro 文件

主项目

  • GrabBagPrj/GrabBagPrj.pro - 将 VrCommon 和 VrUtils 的引用改为 Utils 模块

Utils 内部模块

  • Utils/VrCommon/VrCommon.pro - 添加 VrConfigCmd.h 头文件
  • Utils/VrUtils/VrUtils.pro - 保持不变
  • Utils/CloudUtils/CloudUtils.pro - 更新 INCLUDEPATH 为相对路径
  • Utils/CloudView/CloudView.pro - 更新 INCLUDEPATH 和 LIBS 路径
  • Utils/DataUtils/CloudMathClac/CloudMathClac.pro - 更新 SDK 路径
  • Utils/DataUtils/CoordinateTransform/CoordinateTransform.pro - 更新 SDK 路径

VrNets 模块

  • VrNets/VrTcpClient.pro - 更新 INCLUDEPATH 和 LIBS 路径
  • VrNets/VrTcpServer.pro - 更新 INCLUDEPATH 和 LIBS 路径

Module 模块

  • Module/ShareMem/ShareMem.pro - 更新 INCLUDEPATH
  • Module/ThreadPool/ThreadPool.pro - 更新 INCLUDEPATH修正错误路径
  • Module/ModbusTCPServer/ModbusTCPServer.pro - 更新 INCLUDEPATH 和 LIBS
  • Module/BinocularMarkReceiver/BinocularMarkReceiver.pro - 更新 INCLUDEPATH 和 LIBS
  • Module/HandEyeCalib/HandEyeCalib.pro - 更新 INCLUDEPATH
  • Module/ChessboardDetector/ChessboardDetector.pro - 更新 INCLUDEPATH
  • Module/AuthModule/AuthModule.pro - 更新 INCLUDEPATH

Device 模块

  • Device/VrEyeDevice/VrEyeDevice.pro - 更新 INCLUDEPATH 和 LIBS
  • Device/HikDevice/HikDevice.pro - 更新 INCLUDEPATH 和 LIBS
  • Device/GalaxyDevice/GalaxyDevice.pro - 更新 INCLUDEPATH 和 LIBS
  • Device/GlLineLaserDevice/GlLineLaserDevice.pro - 更新 INCLUDEPATH 和 LIBS
  • Device/EpicEyeDevice/EpicEyeDevice.pro - 更新 INCLUDEPATH

AppUtils 模块

  • AppUtils/AppCommon/AppCommon.pro - 更新 INCLUDEPATH 和 LIBS
  • AppUtils/UICommon/UICommon.pro - 更新 INCLUDEPATH

Tools 模块

  • Tools/AuthRegister/AuthRegister.pro - 更新 LIBS
  • Tools/ConfigDecryptor/ConfigDecryptor.pro - 更新 INCLUDEPATH 和 LIBS
  • Tools/CalibView/CalibView.pro - 更新 INCLUDEPATH 和 LIBS
  • Tools/VrEyeView/VrEyeView.pro - 更新 INCLUDEPATH 和 LIBS

App 模块(批量更新)

批量更新了 App 目录下所有应用程序的 .pro 文件(约 27 个文件),包括:

  • GrabBag
  • BeltTearing
  • LapWeld
  • Workpiece
  • WorkpieceProject
  • BinocularMark
  • BagThreadPosition
  • ParticleSize
  • ScrewPosition
  • TunnelChannel
  • WheelMeasure
  • WorkpieceHole

Test 模块

  • Test/tcpclient/tcpclient_test.pro - 更新路径
  • Test/tcpserver/tcpserver_test.pro - 更新路径

4. 路径替换规则

所有 .pro 文件中的路径按以下规则进行了替换:

旧路径                              新路径
../../VrCommon/Inc              -> ../../Utils/VrCommon/Inc
../../VrUtils/Inc               -> ../../Utils/VrUtils/Inc
../../VrCommon/release          -> ../../Utils/VrCommon/release
../../VrCommon/debug            -> ../../Utils/VrCommon/debug
../../VrUtils/release           -> ../../Utils/VrUtils/release
../../VrUtils/debug             -> ../../Utils/VrUtils/debug
../../AppUtils/CloudUtils       -> ../../Utils/CloudUtils

../../../VrCommon/Inc           -> ../../../Utils/VrCommon/Inc
../../../VrUtils/Inc            -> ../../../Utils/VrUtils/Inc
../../../VrCommon/release       -> ../../../Utils/VrCommon/release
../../../VrCommon/debug         -> ../../../Utils/VrCommon/debug
../../../VrUtils/release        -> ../../../Utils/VrUtils/release
../../../VrUtils/debug          -> ../../../Utils/VrUtils/debug
../../../AppUtils/CloudUtils    -> ../../../Utils/CloudUtils

5. Git 仓库初始化

已在 Utils 目录下初始化 git 仓库:

cd Utils
git init
git add .

所有文件已添加到暂存区,等待提交。

依赖关系

更新后的依赖关系:

主项目 (GrabBagPrj)
  └── Utils
      ├── VrCommon
      ├── VrUtils (依赖 VrCommon)
      ├── CloudUtils (依赖 VrCommon, VrUtils)
      ├── DataUtils (依赖 VrCommon)
      └── CloudView (依赖 VrCommon, VrUtils, CloudUtils)
  └── VrNets (依赖 Utils)
  └── Module (依赖 Utils)
  └── Device (依赖 Utils)
  └── AppUtils (依赖 Utils)
  └── App (依赖 Utils, VrNets, Module, Device, AppUtils)
  └── Tools (依赖 Utils, Module, Robot)

下一步操作

  1. 在 Utils 目录下提交初始版本:

    cd Utils
    git commit -m "初始提交Utils 工具库模块"
    
  2. 如果需要推送到远程仓库:

    git remote add origin <远程仓库地址>
    git push -u origin master
    
  3. 在主项目中,可以将 Utils 作为 git submodule 引用:

    cd ..
    git submodule add <Utils仓库地址> Utils
    

验证构建

建议执行以下步骤验证构建:

  1. 清理旧的构建产物:

    cd GrabBagPrj
    make clean
    
  2. 重新生成 Makefile

    qmake GrabBagPrj.pro
    
  3. 编译项目:

    make
    

注意事项

  1. 所有路径更新已完成,但建议在实际编译前进行测试
  2. Utils 模块现在是独立的,可以被其他项目引用
  3. 如果需要修改 Utils 模块,应该在 Utils 目录下进行 git 操作
  4. 主项目的 .gitignore 应该排除 Utils 目录(如果使用 submodule

文件统计

  • 修改的 .pro 文件:约 60+ 个
  • 新建的文件3 个Utils.pro, README.md, .gitignore
  • Utils 模块包含的文件:约 230+ 个