#pragma once #include #include /** @brief BLE 原始数据接收回调类型。 */ typedef void (*ble_rx_cb_t)(const uint8_t *data, uint16_t len); /** * @brief 初始化 BLE 协议栈和 NUS 服务。 * * @retval 0 成功。 * @retval 负值 初始化错误码。 */ int ble_transport_init(void); /** @brief 启动 BLE 可连接广播。 */ void ble_transport_adv_start(void); /** * @brief 通过 NUS 发送二进制数据,内部自动重试最多 3 次。 * * @param data 待发送字节缓冲区。 * @param len 字节数。 */ void ble_transport_send(const uint8_t *data, uint16_t len); /** * @brief 检查 BLE 连接是否就绪(已连接且通知已使能)。 * * @retval true 可发送数据。 * @retval false 未就绪。 */ bool ble_transport_is_ready(void); /** * @brief 注册上层原始数据接收回调,NUS 收到数据时透传调用。 * * @param cb 回调函数指针。 */ void ble_transport_register_rx_cb(ble_rx_cb_t cb);