Go to file
lixiaolong 9f462e41fc feat(flow): 集成商道智能体平台功能
- 新增 LLM 智能体查询接口,支持文本输入调用 AI 服务
- 实现智能体任务异步执行和取消机制
- 集成 TTS 语音播放功能,支持播放和停止控制
- 添加智能体 API 密钥管理和参数配置
- 实现线程池管理和任务生命周期控制
- 增加异常处理和错误返回机制
2026-07-21 10:01:20 +08:00
cmvr-iot-admin feat(flow): 集成商道智能体平台功能 2026-07-21 10:01:20 +08:00
cmvr-iot-aima feat(flow): 添加流程执行模块编码支持实现事件精确分发 2026-07-13 10:41:13 +08:00
cmvr-iot-api refactor(agv): 重构 AGV 控制器接口设计与数据传输对象 2026-07-17 15:01:05 +08:00
cmvr-iot-common feat(agv): 添加AGV协议定义和重构命令接口 2026-07-09 16:01:36 +08:00
cmvr-iot-device feat(inspection): 添加巡检模块功能并更新项目配置 2026-06-02 15:01:23 +08:00
cmvr-iot-evaluation feat: 触控交互评估 2026-03-12 09:47:20 +08:00
cmvr-iot-framework refactor(websocket): 重构频道订阅处理器基类实现 2026-06-05 14:57:57 +08:00
cmvr-iot-generator migrate project to new repository 2025-08-21 14:39:54 +08:00
cmvr-iot-inspection feat(flow): 添加流程执行模块编码支持实现事件精确分发 2026-07-13 10:41:13 +08:00
cmvr-iot-quartz feat: 定时任务消费评估任务 2026-02-10 16:49:07 +08:00
cmvr-iot-system fix(util): 修复车辆路径查找工具中的图标名称比较错误 2026-02-05 16:16:20 +08:00
cmvr-iot-test refactor(flow): 重构流程执行事件和任务状态管理 2026-07-14 10:12:04 +08:00
cmvr-iot-ti feat(inspection): 添加巡检模块功能并更新项目配置 2026-06-02 15:01:23 +08:00
cmvr-iot-tts feat(agv): 添加AGV协议定义和重构命令接口 2026-07-09 16:01:36 +08:00
cmvr-iot-vi fix: 项目状态 2026-02-09 14:16:05 +08:00
logs/audio-dump feat(audio): 添加机器人实时语音对讲功能 2026-07-17 10:24:53 +08:00
sql feat(agv): 添加AGV协议定义和重构命令接口 2026-07-09 16:01:36 +08:00
.gitignore migrate project to new repository 2025-08-21 14:39:54 +08:00
DirectoryV3.xml migrate project to new repository 2025-08-21 14:39:54 +08:00
Dockerfile feat(build): 添加 Dockerfile 配置支持容器化部署 2026-05-16 15:52:56 +08:00
Jenkinsfile migrate project to new repository 2025-08-21 14:39:54 +08:00
LICENSE migrate project to new repository 2025-08-21 14:39:54 +08:00
pom.xml feat(agv): 添加AGV协议定义和重构命令接口 2026-07-09 16:01:36 +08:00
README.md refactor(agv): 重构 AGV 控制器接口设计与数据传输对象 2026-07-17 15:01:05 +08:00

cmvr-iot

cmvr-iot 是一个基于 Java 8 和 Spring Boot 2.5 的多模块后端工程提供设备管理、边缘机器人控制、测试编排、巡检、TTS、AIMA、VI/TI 等业务能力。工程入口在 cmvr-iot-admin,其余模块按业务和基础能力拆分。

技术栈

  • Java 8
  • Spring Boot 2.5.15
  • Spring Security
  • MyBatis Plus / MyBatis Plus Join
  • MySQL / Redis
  • Druid
  • Quartz
  • Knife4j / Swagger
  • gRPC Java 1.58.0
  • Protobuf / protoc-maven-plugin
  • MinIO

模块说明

模块 说明
cmvr-iot-admin Web 启动模块,包含 REST Controller、启动类和运行配置
cmvr-iot-framework Web、安全、配置、通用框架能力
cmvr-iot-common 公共工具、通用响应、基础常量和通用能力
cmvr-iot-system 系统管理、用户、角色、菜单、字典等基础业务
cmvr-iot-quartz 定时任务模块
cmvr-iot-generator 代码生成模块
cmvr-iot-device 设备领域模型与设备相关能力
cmvr-iot-test 测试任务、编排、执行实例等业务
cmvr-iot-vi VI 相关业务
cmvr-iot-ti TI 相关业务
cmvr-iot-evaluation 评测相关业务
cmvr-iot-inspection 巡检机器人、地图、任务、告警等业务
cmvr-iot-aima AIMA 相关业务
cmvr-iot-tts TTS 语音合成相关业务
cmvr-iot-api API 聚合模块
cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib gRPC proto 与生成代码模块
cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client 边缘设备 gRPC 客户端、设备控制服务和请求 VO

目录结构

cmvr-iot
├── cmvr-iot-admin                 # Spring Boot 启动模块
├── cmvr-iot-common                # 公共模块
├── cmvr-iot-framework             # 框架模块
├── cmvr-iot-system                # 系统管理模块
├── cmvr-iot-device                # 设备模块
├── cmvr-iot-test                  # 测试业务模块
├── cmvr-iot-api
│   └── cmvr-iot-edge
│       ├── cmvr-iot-grpc-lib      # proto 与 gRPC 生成代码
│       └── cmvr-iot-grpc-client   # gRPC 客户端与边缘控制服务
├── sql                            # 增量 SQL
├── Dockerfile
├── Jenkinsfile
└── pom.xml                        # Maven 父工程

环境要求

  • JDK 1.8
  • Maven 3.6+
  • MySQL 5.7+/8.x
  • Redis
  • 可访问的 gRPC 机器人/边缘终端服务
  • 可选MinIO、外部大模型/TTS/评测服务

注意:application-*.yml 中包含环境相关地址、账号和密钥配置。实际部署或本地开发时,应使用本机配置、环境变量或配置中心覆盖,不要直接复用生产/测试环境敏感配置。

配置文件

主配置文件位于:

cmvr-iot-admin/src/main/resources/application.yml

环境配置文件位于:

cmvr-iot-admin/src/main/resources/application-dev.yml
cmvr-iot-admin/src/main/resources/application-test.yml
cmvr-iot-admin/src/main/resources/application-prod.yml

当前 application.yml 默认激活:

spring:
  profiles:
    active: test

如需切换环境,可以修改 spring.profiles.active,或启动时指定:

java -jar cmvr-iot-admin-dev.jar --spring.profiles.active=dev

构建

在项目根目录执行:

mvn clean package -DskipTests

只编译启动模块及其依赖:

mvn -pl cmvr-iot-admin -am compile -DskipTests

只重新生成并编译 gRPC 代码:

mvn -pl cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib -am compile -DskipTests

启动

启动类:

cmvr-iot-admin/src/main/java/com/cmvr/CmvrIotApplication.java

IDE 中直接运行 CmvrIotApplication 即可。

打包后运行:

java -jar cmvr-iot-admin/target/cmvr-iot-admin-dev.jar --spring.profiles.active=dev

默认开发端口以当前 profile 配置为准,例如 application-dev.yml 中为:

server:
  port: 13080

接口文档

项目集成 Knife4j / Swagger。服务启动后可访问

http://localhost:13080/doc.html

如果端口或上下文路径被 profile 覆盖,请以实际配置为准。

数据库脚本

增量脚本位于:

sql/

当前包含:

  • aima_module.sql
  • inspection_module.sql
  • tts_corpus_module.sql

初始化数据库时,需要结合目标环境的基础库结构和增量脚本执行。

gRPC 与边缘设备

边缘设备相关代码集中在:

cmvr-iot-api/cmvr-iot-edge/

proto 文件位于:

cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/

gRPC 客户端服务位于:

cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/

边缘控制器位于:

cmvr-iot-admin/src/main/java/com/cmvr/web/controller/api/

新增或修改 proto 后,执行 Maven compile 会触发 protoc-maven-plugin 生成 Java 和 gRPC Stub 代码。业务代码应复用现有 gRPC 客户端管理工具获取 Stub避免在业务层重复创建底层 ManagedChannel

实时语音对讲

当前实时语音对讲链路为:

浏览器 WebSocket Binary PCM <-> Java 后端 <-> gRPC 双向流 <-> 机器人终端

约定音频格式:

  • PCM_S16LE
  • 48000 Hz
  • 单声道
  • 16 bit
  • 10 ms 一帧
  • 960 bytes/帧

相关文件:

  • WebSocket 控制器:cmvr-iot-admin/src/main/java/com/cmvr/web/controller/api/WebRtcSignalingController.java
  • 业务会话管理:cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/AudioService.java
  • gRPC 音频适配:cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/adapter/RobotAudioGrpcAdapter.java
  • protocmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/robot_audio.proto

说明:历史 WebRTC 相关类可能仍保留在源码中,但当前浏览器音频传输链路使用 WebSocket 二进制 PCM。

开发约定

  • Controller 层只做参数接收、基础校验和响应封装。
  • POST 控制类接口优先使用单个 @RequestBody VO 承载完整请求参数。
  • GET 查询类接口可以使用 query 参数绑定 VO。
  • 不建议在同一个接口中同时声明通用 VO 和零散业务参数。
  • gRPC 调用统一通过现有客户端管理类获取 Stub。
  • proto 修改后必须重新编译并确认生成代码已更新。
  • 不要提交本地日志、崩溃 dump、临时音频文件和包含真实密钥的配置。

常用命令

# 编译全部模块
mvn clean compile -DskipTests

# 编译启动模块及依赖
mvn -pl cmvr-iot-admin -am compile -DskipTests

# 打包
mvn clean package -DskipTests

# 运行指定 profile
java -jar cmvr-iot-admin/target/cmvr-iot-admin-dev.jar --spring.profiles.active=dev