按键拍照和唤醒拍照上传流程
完整流程图
关键函数说明
按键拍照路径
- device_service.c:
single_press_callback()- 运行中按键回调 - system_service.c:
handle_wakeup_event(WAKEUP_SOURCE_BUTTON)- 唤醒时按键处理 - system_service.c:
default_capture_callback(CAPTURE_TRIGGER_BUTTON)- 按键触发回调
唤醒拍照路径
- system_service.c:
system_service_process_wakeup_event()- 处理唤醒事件 - system_service.c:
handle_wakeup_event(WAKEUP_SOURCE_RTC)- RTC唤醒处理 - system_service.c:
wakeup_task_async()- 异步唤醒任务
统一上传流程
- system_service.c:
system_service_capture_and_upload_mqtt()- 核心上传函数- Step 1: 拍照(快速/标准)
- Step 1.1: SD卡存储(可选)
- Step 2: 准备元数据
- Step 3: 准备AI结果(可选)
- Step 3.1: 检查MQTT网络连接
- Step 4: MQTT上传(单次/分块)
- Step 5: 清理缓冲区
- Step 6: 等待发布确认
参数差异
| 触发方式 | enable_ai | chunk_size | store_to_sd | 拍照API |
|---|---|---|---|---|
| 按键拍照(运行中) | 可配置 | 可配置 | 可配置 | 标准API |
| 按键拍照(唤醒) | TRUE | 0 | TRUE | 快速API |
| RTC唤醒拍照 | TRUE | 0 | TRUE | 快速API |