-
Notifications
You must be signed in to change notification settings - Fork 0
Home
出于对不同功能模块单独测试的需要,开发过程中通常会涉及到多个可执行文件的管理。因此,本项目分为两部分:
-
lib部份由根目录下的CMakelists.txt管理,其负责两个lib的生成,分别为rmcv和rmcv_hardware。其中rmcv不包含任何与平台或硬件相关的代码(例如非 Unix 标准的串口波特率宏定义、仅支持 Linux 平台的相机驱动等等),以方便在任意操作系统上对项目的其他部份进行编译。 - 'execs' 部份由
\executable目录下的CMakelists.txt管理,其负责定义所有的可执行文件。
graph LR
subgraph Part1["lib - \CMakelists.txt"]
lib_rmcv[rmcv]
lib_rmcv_hardware[rmcv_hardware]
end
subgraph Part2["execs - executable\CMakelists.txt"]
executables[Executables]
end
3rd_party_libs[3rd Party Libs]
lib_rmcv --> executables
lib_rmcv_hardware --> executables
3rd_party_libs --> executables
关于 lib 部份的代码说明会以 Doxygen 格式写在注释中,不定期编译到 GitHub Pages 中。而可执行文件的代码说明则包含在相应源文件的注释中。
- OpenCV
部署本项目依赖带有 FFMPEG 编译的 OpenCV。位于仓库根目录的 vcpkg.json 文件指明了所有编译本项目所需的依赖,具体实践可根据您使用的开发环境参考其官方提供的详细说明,例如:
当然,采用
vcpkg作为包管理器的主要考量是避免污染系统的包管理器(例如在 macOS 上,使用brew安装 OpenCV 将会引入大量无用依赖)。若部署环境对这类行为不敏感,通过系统包管理器来安装依赖也是不错的选择。
- gxiapi
gxiapi 是驱动大恒相机所需的外部库文件,通过运行大恒官方提供的一键部署脚本可以将其添加到 /usr/lib 中(Linux)。该一键部署脚本可通过在大恒图像官网选择对应的相机参数进行下载,解压后根据其中包含的 README 指引执行安装步骤即可。
本项目中的大恒相机驱动基于 Galaxy Linux SDK V1.5.2303 进行开发。
由于该自动化脚本并为对头文件做特殊处理,仅仅是将其解压缩到脚本运行目录中,因此
cmake无法自动发现该头文件的路径。为避免在CMakeLists.txt中包含绝对路径引起的不必要的麻烦,本项目将gxiapi对应的两个头文件复制在hardware/include/daheng目录下。
我们对所有有意愿提供帮助的你表示感谢!但目前由于人手不足,我们仅接受来自项目合作者的代码提交或来自外部的
issues。
若您为合作者之一,请在提交修改时遵守以下规范(分支规则参考自A successful Git branching model):
- 由于同时对项目做出修改的合作者数量可能不止一位,通过创建分支来将您的修改与其他合作者隔离开来永远不会显得多余。此外,对于每个新创建的分支,请尽可能保证它们的命名唯一。本仓库推荐的命名方式为 "branch_type/description",例如:
- 新增功能:`feature/end-to-end-model`
- 漏洞修复:`fix/#1145`
- 文档调整:`docs/short-description`
- 在一般情况下,新的分支应该从
development创建而非master,除非该改动在正式比赛期间发生并且需要立即应用。 - 对代码所做的修改应确保其注释部份遵循 Doxygen 格式。
gitGraph
commit
branch develop
checkout develop
branch feature/end-to-end-model
checkout feature/end-to-end-model
commit
commit
checkout develop
branch feature/anti-missile
commit
commit
checkout develop
merge feature/end-to-end-model
checkout main
branch hotfix/endless-loop-cam-faile
checkout hotfix/endless-loop-cam-faile
commit
commit
checkout main
merge hotfix/endless-loop-cam-faile
checkout develop
merge hotfix/endless-loop-cam-faile
checkout feature/anti-missile
commit
commit
commit
commit
checkout develop
merge feature/anti-missile
checkout main
merge develop
在您准备好提交代码更改后,一个可供参考的步骤如下。
关于在 VS Code 和 CLion 中
git集成的详细说明,请参阅它们相对应的官方文档:
- Clone the Repository
git clone https://github.com/deemoe404/rmcv.git- Create a Branch
git checkout -b feature/your-feature-name- Commit & Push Your Changes
git add .
git commit -m "Add feature to allow ..."
git push origin feature/your-feature-name- Create a Pull Request (PR) on GitHub
-
Clone the Repository
- 使用快捷键 `Ctrl + Shift + P` 打开 command palette(在 macOS 上为 `Cmd + Shift + P`)
- 输入命令
Git: Clone并粘贴本仓库的地址https://github.com/deemoe404/rmcv.git
-
Create a Branch
- 使用快捷键 `Ctrl + Shift + G` 或在vscode左边活动栏中找到源代码管理
- 导航至栏源代码管理储存库,选择其中的 `master`
- 选择 `Create new branch`
- 输入分支名称,如
feature/your-feature-name,然后创建分支。
-
Commit & Push Your Changes
- 打开源代码管理,导航至更改
- 选择需要暂存更改的文件
- 输入提交信息,例如 "Add feature to allow ..."
- 点击
提交旁边的更多操作,选择提交和推送完成上传。
-
Create a Pull Request (PR) on GitHub
-
Clone the Repository
- 在 CLion 窗口中,导航至
File>New Project from Version Control。 - 在新打开的窗口中选择
Git并粘贴本仓库的地址https://github.com/deemoe404/rmcv.git。
- 在 CLion 窗口中,导航至
-
Create a Branch
- 在 CLion 中,导航至
Git>Branches。 - 点击
New Branch。 - 输入分支名称,如
feature/your-feature-name,然后创建分支。
- 在 CLion 中,导航至
-
Commit & Push Your Changes
- 导航至
Git>Commit...。 - 选择你要提交的更改。
- 输入提交信息,例如 "Add feature to allow ..."。
- 点击
Commit按钮完成提交。 - 导航至
Git>Push。 - 确认推送的分支,然后点击
Push按钮将更改推送到远程仓库。
- 导航至
-
Create a Pull Request (PR) on GitHub
Please feel free to make edits if you find any errors, improvements, or additional information that could enhance the content.