From 17627eebe470a9a5ab132efcc7ea32bc78e577ba Mon Sep 17 00:00:00 2001 From: awalol Date: Sun, 26 Apr 2026 14:33:06 +0800 Subject: [PATCH] feat: usb device auto disconnect --- README.md | 4 ++-- src/bt.cpp | 3 +++ src/main.cpp | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8d99b60..215e93c 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ - 开启麦克风静音为禁用静默断连 # 当前问题: -- 声音有点小卡顿 +- 声音可能有点小卡顿 # 未来计划 @@ -25,4 +25,4 @@ # 致谢 - [rafaelvaloto/Pico_W-Dualsense](https://github.com/rafaelvaloto/Pico_W-Dualsense) - 灵感来源 - [egormanga/SAxense](https://github.com/egormanga/SAxense) - 震动报文 - - [https://controllers.fandom.com/wiki/Sony_DualSense](https://controllers.fandom.com/wiki/Sony_DualSense) 数据报文结构 + - [https://controllers.fandom.com/wiki/Sony_DualSense](https://controllers.fandom.com/wiki/Sony_DualSense) - 数据报文结构 diff --git a/src/bt.cpp b/src/bt.cpp index bb86aea..4de1739 100644 --- a/src/bt.cpp +++ b/src/bt.cpp @@ -294,6 +294,7 @@ static void hci_packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *p } case HCI_EVENT_DISCONNECTION_COMPLETE: { + tud_disconnect(); gap_connectable_control(1); gap_discoverable_control(1); const uint8_t reason = hci_event_disconnection_complete_get_reason(packet); @@ -390,6 +391,8 @@ static void l2cap_packet_handler(uint8_t packet_type, uint16_t channel, uint8_t }; memcpy(report32 + 2, packet_0x10, sizeof(packet_0x10)); bt_write(report32, sizeof(report32)); + + tud_connect(); } else { printf("[L2CAP] Unknown Channel psm: 0x%02X", psm); } diff --git a/src/main.cpp b/src/main.cpp index 3d43fe3..2f152c2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -94,6 +94,8 @@ int main() { }; tusb_init(BOARD_TUD_RHPORT, &dev_init); + tud_disconnect(); + board_init_after_tusb(); bt_init();