代码结构

板上跑的一切都在 cpp/ 里:编译成单个 riscv64 静态二进制 aka-capp,加上配置和前端 产物,一起打进 aka-00-server 安装器(见快速开始)。根目录其余 部分是 Python 版(历史实现)的遗留文件,不再维护。

目录

AKA-00/
├── cpp/
│   ├── capp/                    # aka-capp 服务进程
│   │   ├── src/main.cpp         #   入口:读配置 → 起服务
│   │   ├── src/http/            #   自研 HTTP 服务(socket + 线程 + 路由 + 报文)
│   │   ├── src/routes/          #   接口路由,一个域一个文件(motor/camera/arm/demo/…)
│   │   ├── src/services/        #   业务服务:控制、摄像头、demo、推理、WiFi、上报
│   │   ├── src/websocket.cpp    #   /ws/control 二进制通道
│   │   ├── src/script.cpp       #   Lua 流程脚本宿主
│   │   └── include/capp/        #   头文件(context.hpp 是全局上下文)
│   │
│   ├── csrc/                    # 平台与硬件层(编成 libcsrc.a,不依赖 capp)
│   │   ├── src/camera/          #   V4L2 采集 + JPEG 解码
│   │   ├── src/display/         #   板载 SPI 屏显示(仅带屏版编译)
│   │   ├── src/motor_pair.cpp   #   差速运动学
│   │   ├── src/tt_pid.cpp       #   ESP32 底盘串口协议(闭环)
│   │   ├── src/gripper.cpp      #   夹爪
│   │   ├── src/zp10s.cpp        #   ZL-ZP10S 舵机
│   │   ├── src/sts3215.cpp      #   STS3215 舵机
│   │   ├── src/yolo*.cpp        #   NPU 推理(.cvimodel)
│   │   ├── src/{config,state,serial,system_utils,angle_config}.cpp
│   │   ├── src/{http_client,https_client}.cpp  # OTA / 状态上报的出栈请求
│   │   ├── tools/               #   板测工具:cam_probe / tt_pid_test / screen_test
│   │   └── include/csrc/        #   头文件
│   │
│   ├── board/                   # 板上 $AKA_HOME/ 的镜像(实体文件,见下)
│   ├── scripts/                 # 第三方库构建(libjpeg / mbedTLS / Lua)+ 安装器打包
│   └── third_party/             # 交叉编译产物(构建时生成,不进版本库)
│
├── frontend/                    # React 前端源码,构建产物写到 ../static
├── static/                      # 前端构建产物(打包时收进部署目录)
├── tests/                       # 板测 demo 源码(demo_camera.c 等)与测试脚本
├── hardware/                    # 原理图、舵机手册
└── docs/                        # 本文档(mdBook)

板上目录($AKA_HOME)

部署到板子上的内容 = cpp/board/ 原样 + 三样构建产物(aka-capp、static/、 tools/)。所以"这个文件是哪来的"只有两种答案:要么在 cpp/board/ 里,要么是编出来的。

$AKA_HOME/
├── aka-capp            # riscv64 静态二进制(构建产物)
├── static/             # 前端页面(构建产物)
├── tools/              # 板测工具(构建产物)
├── config.toml         # 唯一配置文件:端口、串口、摄像头、屏、OTA 地址
├── init.sh / stop.sh   # 启动(自愈循环,崩溃自动重启)/ 停止
├── init_ap_web.sh      # 装 AP 热点 + 开机自启(一次性,无状态)
├── S97akaap            # 首次开机自举 AP(带幂等锁)
├── https_init.sh       # 缺证书时自动生成自签证书
├── demo/               # grab.lua / approach.lua(动作脚本)+ models/ + configs/
├── arm_angles.json     # 机械臂标定角度(现场数据)
├── arm_angles_default.json
├── speed_config.json   # 行驶速度(现场数据)
├── VERSION             # 版本号(OTA 比对用)
└── start_img.jpg       # 屏显示待机图

想改什么,改哪里

想改什么改哪里
端口、串口、摄像头、屏、OTA 地址cpp/board/config.toml
抓取/接近这类流程与调参动作脚本 cpp/board/demo/*.lua;参数改卡片配置(界面上建的,存在 demo/configs/)
开机、热点、自启cpp/board/init.sh、init_ap_web.sh、S97akaap
某个接口的行为cpp/capp/src/routes/ 里对应域的文件
硬件时序、串口协议cpp/csrc/src/ 里对应模块
前端页面frontend/src/,改完 npm run build 再打包

别在板子上直接改文件:OTA 升级是整目录换包,只有 config.toml、speed_config.json、 arm_angles.json、cert.pem、key.pem 这几个文件,以及 demo/configs/(板上优先)和 demo/models/(取并集)会被保留,其余一律按包里的结算。想改什么就改仓库, 走 make -C cpp ota 重新打包部署。