summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWesley Ellis <tahnok@gmail.com>2025-02-28 11:42:23 -0500
committerWesley Ellis <tahnok@gmail.com>2025-02-28 11:42:23 -0500
commit22a44e48bc12ad39916017f0d54b85c981fb7c41 (patch)
treee6f34b3d73d568b575c96334e0e808e4ba7c47cb
parentd147c92053c2ed577bf44aca0e92bfcd20b75fab (diff)
downloadtangara-fw-22a44e48bc12ad39916017f0d54b85c981fb7c41.tar.gz
add bt_forget console command
-rw-r--r--src/tangara/app_console/app_console.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/tangara/app_console/app_console.cpp b/src/tangara/app_console/app_console.cpp
index 2a8f290b..8a3df7c3 100644
--- a/src/tangara/app_console/app_console.cpp
+++ b/src/tangara/app_console/app_console.cpp
@@ -479,6 +479,35 @@ void RegisterBtList() {
esp_console_cmd_register(&cmd);
}
+int CmdBtForget(int argc, char** argv) {
+ static const std::pmr::string usage = "usage: bt_forget <index>";
+ if (argc != 2) {
+ std::cout << usage << std::endl;
+ return 1;
+ }
+
+ auto devices = AppConsole::sServices->bluetooth().knownDevices();
+ int index = std::atoi(argv[1]);
+ if (index < 0 || index >= devices.size()) {
+ std::cout << "index out of range" << std::endl;
+ return -1;
+ }
+
+ AppConsole::sServices->bluetooth().forgetKnownDevice(devices[index].mac);
+ std::cout << "Device '" << devices[index].name << "' forgotten" << std::endl;
+ return 0;
+}
+
+void RegisterBtForget() {
+ esp_console_cmd_t cmd{
+ .command = "bt_forget",
+ .help = "removes a bluetooth device from known devices list",
+ .hint = "index",
+ .func = &CmdBtForget,
+ .argtable = NULL};
+ esp_console_cmd_register(&cmd);
+}
+
int CmdSamd(int argc, char** argv) {
static const std::pmr::string usage = "usage: samd [flash|charge|off]";
if (argc != 2) {
@@ -739,6 +768,7 @@ auto AppConsole::RegisterExtraComponents() -> void {
#endif
RegisterBtList();
+ RegisterBtForget();
RegisterSamd();
RegisterCoreDump();