# TeamAAS-VM 这是 TeamAAS-VM (视觉定位与 Feeder/机器人控制) 的 WPF 桌面应用仓库(分支:VP)。 该仓库为生产线视觉引导、Feeder 驱动与机器人配合提供软件端实现,包含图形界面、配置管理、远程命令服务与硬件抽象层。 --- ## 项目结构(摘要) - `TeamAAS-VM/` —— 主 WPF 应用(项目名:`TeamAAS-VP`) - `Team.FFFeederService/` —— Feeder 相关硬件抽象与驱动 - `docs/` —— 项目文档(已包含 `RemoteCommandSpecification.md`) 主要关注点:视觉 (Cognex VisionPro)、Feeder、机器人、PLC、后台通讯 (BgCommunicate)、以及远程命令接口。 --- ## 先决条件(开发/运行环境) - Windows 10/11 - Visual Studio 2026(支持 .NET Framework 4.8) - .NET Framework 4.8 开发工具 - Cognex VisionPro SDK(运行时与许可) - Feeder / Robot / PLC 等硬件的驱动与许可(视部署环境) - 推荐:以管理员身份运行以便访问串口、设备与注册表 在 CI/自动构建环境中,请确保安装了所有本地依赖并且有必要的 license 文件(VisionPro 等)。 --- ## 构建(本地) 1. 使用 Visual Studio 打开 `TeamAAS-VM.sln`(或打开 `TeamAAS-VM/TeamAAS-VP.csproj`)。 2. 恢复 NuGet 包。 3. 选择 `Release|x86` 或 `Debug|Any CPU`(依据目标平台)。 4. 构建解决方案并在输出中检查错误。 注意:部分组件(如 VisionPro)为本地 SDK,若本机未安装会导致设计时/运行时错误。 --- ## 运行 1. 在 Visual Studio 中设置 `TeamAAS-VP` 为启动项目。 2. 运行 (F5) 或发布可执行程序到目标机并运行。 3. 首次运行可能需要填写设备配置,或在 `App` 启动时加载本地配置文件夹(路径由 `FilePath` 常量定义)。 --- ## 远程命令协议(快速) 项目内提供了基于逗号分隔文本格式的远程命令(由 `RemoteCommandService.ExecuteAsync` 处理)。 - 命令示例:`LoadProduct,ProductName`、`GetPalletPoint,1,2,5`、以及触发视觉流程的流程名命令如 `PickCam1,GetPos`。 - 命令规范文档已生成:`docs/RemoteCommandSpecification.md`,请参阅该文档以获取完整格式、参数和返回示例。 --- ## 日志与调试 - 日志使用项目内的 `LogHelper`(log4net 配置在 `App.config`)。 - 出现崩溃或本地 native 异常(例如 CRT R6025),建议: - 在 Visual Studio 中启用混合调试(Native + Managed),重现退出过程并查看 native 堆栈。 - 检查 `Management.DisposeResources()` 是否在退出时被调用并能正确关闭串口/相机/Timers/线程/后台任务。 - 检查设备驱动是否在 Dispose 前完成断开,避免关闭后仍有回调触发本地虚函数。 --- ## 常见问题 - 运行时报错 `R6025 (pure virtual function call)`:通常是 native 组件在对象已销毁后仍调用虚函数。按上面的日志与调试方法排查并确保退出时释放所有硬件资源与停止后台线程/定时器。 - 设计器中 XAML 报错(找不到类型):请先进行完整解决方案构建,确保所有控件/自定义类型已编译并位于正确的命名空间。 --- ## 贡献指南 - 新功能请先在 issue 中描述设计与目标。 - 使用 feature 分支,发起 pull request 前请确保: - 本地能通过构建; - 必要时添加单元测试; - 更新文档(`docs/` 下或 README)。 --- ## 联系人 / 维护 - 仓库维护者:见仓库 remote 与项目负责人信息(Git 远程地址)。 - 若遇到与硬件或许可相关的问题,请与对应硬件供应商或内部维护人员联系。 --- README 旨在作为入门与运维参考。如需我把 README 翻译成英文版或生成更详细的部署手册(例如在不同环境下的配置步骤),请告诉我具体格式与范围,我可继续完善.