// 设备间蓝牙图片传输模块 // 发送方:GATT Client 扫描→连接→分包写入图片 // 接收方:复用现有 GATT Server,通过模式标识区分 APP/设备来源 #pragma once #ifdef __cplusplus extern "C" { #endif #include // 传输状态 typedef enum { BLE_XFER_IDLE, // 空闲 BLE_XFER_SCANNING, // 发送方扫描中 BLE_XFER_CONNECTING, // 发送方连接中 BLE_XFER_SENDING, // 发送方传输中 BLE_XFER_RECEIVING, // 接收方接收中(由GATT Server端检测) BLE_XFER_DONE, // 传输完成 BLE_XFER_FAILED, // 传输失败 } ble_xfer_state_t; // 初始化传输模块(注册GATT Client回调) void ble_transfer_init(void); // 发送方:开始扫描并发送当前图片 void ble_transfer_start_send(void); // 接收方:开始广播等待其他设备连接 void ble_transfer_start_receive(void); // 取消当前传输 void ble_transfer_cancel(void); // 获取当前传输状态 ble_xfer_state_t ble_transfer_get_state(void); // 查询是否处于设备间传输的接收模式(供GATT Server写入回调判断) bool ble_transfer_is_receiving(void); // === 以下函数由 dzbj_ble.c 的 GAP/GATTS 回调转发调用 === // 处理扫描结果(由 esp_gap_cb 转发) void ble_transfer_handle_scan_result(void *param); // 处理扫描停止(由 esp_gap_cb 转发) void ble_transfer_handle_scan_stop(void); // 图片接收完成通知(由 GATTS 写入完成时调用) void ble_transfer_on_receive_complete(void); #ifdef __cplusplus } #endif