commit 63c0d4c892d411cdf1c9deb1185410874f02fd64 Author: mula.liu Date: Tue Nov 25 14:39:51 2025 +0800 无人机DockerDemo前后端 diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..7ea372d Binary files /dev/null and b/.DS_Store differ diff --git a/Cloud-API b/Cloud-API new file mode 160000 index 0000000..bef525c --- /dev/null +++ b/Cloud-API @@ -0,0 +1 @@ +Subproject commit bef525cb92772b06786c1e033719a6fa1b94bcc5 diff --git a/Cloud-API-Web b/Cloud-API-Web new file mode 160000 index 0000000..bfcf3ee --- /dev/null +++ b/Cloud-API-Web @@ -0,0 +1 @@ +Subproject commit bfcf3ee998b876dc5d372e5dbac913a19ccdac9f diff --git a/GEMINI.md b/GEMINI.md new file mode 100644 index 0000000..4d615be --- /dev/null +++ b/GEMINI.md @@ -0,0 +1,62 @@ +# Gemini Context: DJI Cloud API Demo Platform + +## Project Overview +This project is a comprehensive management platform for DJI Docks and industry drones, demonstrating the "Cloud API" integration. It is a full-stack application designed with a separation of concerns between the backend services and the frontend user interface. + +* **Purpose:** To manage device access, control, and data visualization for DJI enterprise products. +* **Architecture:** Client-Server architecture using HTTP for management and MQTT for real-time device communication. + +## Project Structure +* **Cloud-API (Backend):** + * **Language:** Java 11+ + * **Framework:** Spring Boot 2.7.12 + * **Key Components:** + * `cloud-sdk`: Core logic for DJI device interaction. + * `sample`: Business logic implementation. + * **Infrastructure:** MySQL 8.0+, Redis 6.2+, EMQX 4.4.0 (MQTT Broker). +* **Cloud-API-Web (Frontend):** + * **Language:** TypeScript, HTML, SCSS + * **Framework:** Vue 3 (Composition API) + * **Build Tool:** Vite + * **UI Library:** Ant Design Vue + * **Key Features:** Map visualization (AMap), Real-time video (Agora RTC). + +## Building and Running + +### Backend (Cloud-API) +Prerequisites: Java 11+, Maven, running MySQL/Redis/EMQX instances. + +1. **Configuration:** Update `application.yml` (or properties) in `sample` module with database and MQTT credentials. +2. **Build:** + ```bash + cd Cloud-API + mvn clean install + ``` +3. **Run:** + ```bash + cd Cloud-API + mvn spring-boot:run -pl sample + ``` + +### Frontend (Cloud-API-Web) +Prerequisites: Node.js v17.8+ (recommended). + +1. **Install Dependencies:** + ```bash + cd Cloud-API-Web + npm install + # or yarn install + ``` +2. **Development Server:** + ```bash + npm run serve + ``` +3. **Production Build:** + ```bash + npm run build + ``` + +## Development Conventions +* **Backend:** Follows standard Spring Boot tiered architecture (Controller, Service, DAO). Uses `spring-integration-mqtt` for device messaging. +* **Frontend:** Uses Vue 3 Composition API. State management via Vuex. +* **Database:** Schema is located in `Cloud-API/sql/cloud_sample.sql`. diff --git a/PROJECT.MD b/PROJECT.MD new file mode 100644 index 0000000..fb4f9a0 --- /dev/null +++ b/PROJECT.MD @@ -0,0 +1,52 @@ +# 项目分析报告 (PROJECT.MD) + +## 1. 项目概述 +本项目旨在构建一个管理大疆机场(DJI Dock)及大疆行业无人机的平台。当前目录包含官方提供的“上云 API” (Cloud API) 前后端 Demo,采用前后端分离架构。 + +## 2. 目录结构 +* `Cloud-API/`: 后端服务代码。 +* `Cloud-API-Web/`: 前端 Web 应用代码。 + +## 3. 技术栈详细分析 + +### 3.1 后端 (Cloud-API) +* **开发语言**: Java (必须 JDK 11+)。 +* **核心框架**: Spring Boot 2.7.12。 +* **构建工具**: Maven。 +* **模块结构**: + * `cloud-sdk`: 封装与大疆设备交互的核心 SDK 逻辑。 + * `sample`: 业务逻辑实现示例。 +* **关键依赖**: + * `spring-integration-mqtt`: 用于 MQTT 协议通信(设备控制与状态上报的核心)。 + * MySQL Connector (隐含): 用于数据持久化。 +* **数据存储**: + * **MySQL**: 关系型数据库 (版本 8.0.26+),初始化脚本位于 `sql/cloud_sample.sql`。 + * **Redis**: 缓存服务 (版本 6.2+)。 +* **消息中间件**: + * **EMQX**: MQTT Broker (版本 4.4.0),用于处理高并发的设备消息。 + +### 3.2 前端 (Cloud-API-Web) +* **核心框架**: Vue 3 (v3.2.26)。 +* **开发语言**: TypeScript (v4.5.4)。 +* **构建工具**: Vite (v2.4.0)。 +* **UI 组件库**: Ant Design Vue (v2.2.8)。 +* **状态管理**: Vuex (v4.0.2)。 +* **路由管理**: Vue Router (v4)。 +* **关键功能库**: + * `@amap/amap-jsapi-loader`: 高德地图 API,用于地图展示和航线规划。 + * `agora-rtc-sdk-ng`: 声网 RTC SDK,推测用于无人机实时图传或语音对讲。 + * `mqtt`: 前端 MQTT 客户端。 + * `axios`: HTTP 请求库。 +* **样式**: SCSS (Sass)。 + +## 4. 环境依赖总结 +要运行此项目,需要准备以下环境: + +1. **服务器**: Linux (推荐 Ubuntu 16.04+)。 +2. **Java 环境**: OpenJDK 11 或更高版本。 +3. **Node.js**: v17.8 (前端构建)。 +4. **数据库**: MySQL 8.0.26+。 +5. **缓存**: Redis 6.2+。 +6. **MQTT Broker**: EMQX 4.4.0。 +7. **Web 服务器**: Nginx 1.20.2 (用于部署前端静态资源及反向代理)。 +8. **地图服务**: 高德地图 API Key。 diff --git a/README.md b/README.md new file mode 100644 index 0000000..0107eec --- /dev/null +++ b/README.md @@ -0,0 +1,35 @@ +整个上云 API Demo 例程采用前后端分离的设计,前端采用的是 TS+Vue3 框架,后端采用的是 JAVA 语言(必须11及以上的版本,否则后端代码无法编译),Spring Boot 框架。使用该例程,用户需要预先学习熟悉以下知识: + +## 前端 +TypeScript、HTML、CSS 编程语言。 +Vue3.x 框架、Node.js npm 包管理。 +Ant Design Vue V2 组件库。 +HTTP/Websocket 通信。 +Linux 环境通过 Nginx 部署前端应用服务。 +高德地图开放 API 使用。 + +## 后端 +Java +Spring Boot +MQTT +MySQL +WebSocket +Redis + +## 环境与版本 +Linux 云服务器,Ubuntu16.04 系统 +Java 版本:openJDK 必须11及以上 +MySQL 版本:8.0.26 +EMQX 版本:4.4.0 +Redis 版本:6.2 +Nginx 版本:1.20.2 +Vue 版本:3.0.5 +Node.js 版本:17.8 + +## 配置文件 +后端示例代码中,数据库、缓存(Redis)以及 MQTT 的配置文件位于: +Cloud-API/sample/src/main/resources/application.yml + +## 官方文档地址 +https://developer.dji.com/doc/cloud-api-tutorial/cn/ +