功能: 完善风电功率方案计算

- 新增计算方案保存与方案二筛选参数
- 支持方案二桨角规则和有效数据导出
- 优化功率曲线绘制和设计功率展示
This commit is contained in:
cloud
2026-07-17 16:01:58 +08:00
parent 3cb7684039
commit d5d381759e
23 changed files with 918 additions and 50 deletions
+20 -1
View File
@@ -1,7 +1,26 @@
{
"permissions": {
"allow": [
"Bash(grep -E \"node_modules|/build/|build_package|^runtime/|^publish/|third_party/drogon/install|\\\\.so$|\\\\.o$\")"
"Bash(grep -E \"node_modules|/build/|build_package|^runtime/|^publish/|third_party/drogon/install|\\\\.so$|\\\\.o$\")",
"Bash(git commit *)",
"Bash(git push *)",
"Bash(echo \"=== exit: $? ===\")",
"Bash(sshpass -p 'i7568737i~' ssh -o StrictHostKeyChecking=no -o ConnectTimeout=15 ubuntu@82.157.83.226 'echo \"=== nginx status ===\"; systemctl is-active nginx 2>/dev/null || service nginx status 2>/dev/null | head -3; echo; echo \"=== all listen ports in nginx config ===\"; sudo grep -rhoE \"listen[^;]*;\" /etc/nginx/ 2>/dev/null | sort | uniq -c')",
"Bash(sshpass -p 'i7568737i~' ssh -o StrictHostKeyChecking=no -o ConnectTimeout=15 ubuntu@82.157.83.226 'echo \"=== nginx 监听的端口(去重)===\"; sudo nginx -T 2>/dev/null | grep -oE \"listen[[:space:]]+[^;]+\" | sed \"s/listen[[:space:]]*//\" | sed \"s/[[:space:]]*default_server//\" | sed \"s/[[:space:]]*ssl//\" | sort -u; echo; echo \"=== proxy_pass 转发目标(去重)===\"; sudo nginx -T 2>/dev/null | grep -oE \"proxy_pass[[:space:]]+[^;]+\" | sed \"s/proxy_pass[[:space:]]*//\" | sort -u')",
"Bash(sshpass -p i7568737i~ ssh -o StrictHostKeyChecking=no -o ConnectTimeout=15 ubuntu@82.157.83.226 ' *)",
"Bash(sshpass -p 'i7568737i~' ssh -o StrictHostKeyChecking=no -o ConnectTimeout=15 ubuntu@82.157.83.226 'echo \"=== 服务器上 8080 / 8082 占用情况 ===\"; sudo ss -tlnp 2>/dev/null | grep -E \":8080|:8082|:8848|:3000\" ; echo; echo \"=== nginx 对外监听 8080 的 server 块 ===\"; sudo nginx -T 2>/dev/null | grep -B2 -A20 \"listen.*8080\"')",
"Bash(sshpass -p 'i7568737i~' ssh -o StrictHostKeyChecking=no -o ConnectTimeout=15 ubuntu@82.157.83.226 'echo \"=== IPv4 网卡 ===\"; ip -4 addr show | grep -E \"inet \" | grep -v \"127.0.0.1\"; echo; echo \"=== IPv6 全局地址 ===\"; ip -6 addr show | grep -i \"scope global\" || echo \"\\(无全局 IPv6\\)\"; echo; echo \"=== 现有 listen 10.2.0.8:8081 server 块\\(作为方案A的参照\\) ===\"; sudo nginx -T 2>/dev/null | grep -B1 -A18 \"listen[[:space:]]+10.2.0.8:8081\"; echo; echo \"=== 确认 8080 当前 default_server 标记 ===\"; sudo nginx -T 2>/dev/null | grep -nE \"listen.*8080\"')",
"Bash(sshpass -p 'i7568737i~' ssh -o StrictHostKeyChecking=no -o ConnectTimeout=15 ubuntu@82.157.83.226 'bash -s')",
"Bash(curl -s -m 5 -o /dev/null -w \"HTTP %{http_code} 耗时%{time_total}s\\\\n\" http://82.157.83.226:8080/api/system/health)",
"Bash(curl -s -m 5 http://82.157.83.226:8080/api/system/health)",
"Bash(echo \"health body: $\\(curl -s -m 5 http://82.157.83.226:8080/api/system/health\\)\")",
"Bash(sshpass -p 'i7568737i~' ssh -o StrictHostKeyChecking=no -o ConnectTimeout=15 ubuntu@82.157.83.226 'sudo nginx -t && sudo systemctl reload nginx && echo \"[nginx] reloaded -> 10.2.0.8:8080 转发 127.0.0.1:8080 \\(中断开始\\)\"')",
"Bash(./deploy.sh)",
"Bash(curl -s -m5 http://82.157.83.226:8080/api/system/health)",
"Bash(curl -s -m5 http://82.157.83.226:8080/api/system/version)",
"Bash(curl -s -m5 -o /dev/null -w \"HTTP %{http_code} 类型%{content_type}\\\\n\" http://82.157.83.226:8080/)",
"Bash(curl -s -m5 -o /dev/null -w \"8848 HTTP %{http_code} \\(000=不通/拒绝, 符合预期\\)\\\\n\" http://82.157.83.226:8848/)",
"Bash(git restore *)"
]
}
}
+1 -1
View File
@@ -10,7 +10,7 @@ description: 技能建设规范。用于为 wind_power_cal 创建/改写 .agents
## 规则
- 每个 skill 一个目录,内含 `SKILL.md`
- frontmatter`name`kebab-case)、`description`(一句话:**何时触发** + 做什么;用于检索匹配)。
- 内容贴合 **wind_power_cal 实际**C++ Drogon 后端(:8848)、React+Vite 前端、`package.sh / run.sh / deploy.sh``third_party` 源码编译 Drogon、响应信封 `{status,msg,data}`
- 内容贴合 **wind_power_cal 实际**C++ Drogon 后端(:8080)、React+Vite 前端、`package.sh / run.sh / deploy.sh``third_party` 源码编译 Drogon、响应信封 `{status,msg,data}`
- **禁止**原封照搬 edge_collector 等其它项目的 skill——其 OTA / 协议采集 / 边缘主机 / collector / configurator / cloud_server 等内容在本仓库不存在,会误导。
-`[[other-skill-name]]` 链接相关技能。
- 通用工程规范(代码风格、git 提交、shell、前端调试)与项目专属规范(`wind-*`)分开维护。
@@ -32,7 +32,7 @@ SendForbidden(callback); // 无权限(code 3, 403
- `main.cpp` 必须 `using namespace drogon;`,否则 `app()` / `HttpResponse` / `CT_TEXT_HTML` 未声明
## 配置 / SPA
- `backend/config/server_config.json`listener(默认 :8848)、CORS、`document_root ./web`
- `backend/config/server_config.json`listener(默认 :8080)、CORS、`document_root ./web`
- SPA 回退:`app().setCustom404Page(HttpResponse::newFileResponse("./web/index.html","",CT_TEXT_HTML), false)`
## 现有 Controller
+3 -3
View File
@@ -14,11 +14,11 @@ description: wind_power_cal 本地构建与运行规范。用于编译后端、
`--publish` 额外生成 `publish/wind_power-<ver>.tar.gz`
## 运行
- 一键(后端托管 SPA):`./run.sh`,访问 http://localhost:8848/
- 一键(后端托管 SPA):`./run.sh`,访问 http://localhost:8080/
- 仅后端:`bash backend/run.sh`(先 build.sh 再启动,设 `LD_LIBRARY_PATH=libs`
- 开发(前后端分离热更):
- 后端 `bash backend/run.sh`:8848
- 前端 `cd frontend/web_app && npm install && npm run dev`:5173,代理 `/api`→:8848
- 后端 `bash backend/run.sh`:8080
- 前端 `cd frontend/web_app && npm install && npm run dev`:5173,代理 `/api`→:8080
## 后端构建细节
- `backend/CMakeLists.txt``find_package(Drogon CONFIG REQUIRED)``file(GLOB_RECURSE src/*.cpp)`,链 `Drogon::Drogon`include `src` + `third_party`
+3 -3
View File
@@ -1,6 +1,6 @@
---
name: wind-deploy
description: wind_power_cal 远端部署规范。用于把服务部署到公网主机(默认 82.157.83.226)时,按 deploy.sh 流程操作并校验 :8848
description: wind_power_cal 远端部署规范。用于把服务部署到公网主机(默认 82.157.83.226)时,按 deploy.sh 流程操作并校验 :8080
---
# 远端部署(deploy.sh
@@ -14,7 +14,7 @@ description: wind_power_cal 远端部署规范。用于把服务部署到公网
- `User=ubuntu``ExecStart=~/wind_power/wind_server`
- `Environment=LD_LIBRARY_PATH=~/wind_power/libs`
- 日志 `logs/server.log``Restart=on-failure`
4. 重启 `wind_power`,校验 `localhost:8848`
4. 重启 `wind_power`,校验 `localhost:8080`
## 远端运行期依赖(最小化服务器常缺)
`sudo apt-get install -y libjsoncpp25 libc-ares2`deploy.sh 已内置)。
@@ -28,7 +28,7 @@ description: wind_power_cal 远端部署规范。用于把服务部署到公网
## 校验
```
curl -s localhost:8848/api/system/health
curl -s localhost:8080/api/system/health
# {"status":0,"msg":"success","data":{"status":"ok"}}
```
查看服务:`ssh ubuntu@82.157.83.226 'systemctl status wind_power'`
@@ -26,7 +26,7 @@ description: wind_power_cal 前端 React+Vite 规范。用于前端页面/接口
- 后端经 `/api` 前缀;生产由后端托管 SPA`document_root ./web`
## 构建配置
`vite.config.js``base='/'`dev server :5173proxy `/api` → `http://localhost:8848`。
`vite.config.js``base='/'`dev server :5173proxy `/api` → `http://localhost:8080`。
## 开发
```
@@ -32,8 +32,8 @@ wind_power_cal/
## 端口
| 服务 | 端口 |
| --- | --- |
| 后端 wind_server | 8848(监听地址见 server_config.json |
| 前端 dev | 5173vite proxy `/api` → :8848 |
| 后端 wind_server | 8080(监听地址见 server_config.json |
| 前端 dev | 5173vite proxy `/api` → :8080 |
## 脚本入口
- `./run.sh` 一键打包+前台运行(后端托管 SPA)