diff --git a/libraries/JoystickBLE/keywords.txt b/libraries/JoystickBLE/keywords.txt index 9562112d..60f7dccc 100644 --- a/libraries/JoystickBLE/keywords.txt +++ b/libraries/JoystickBLE/keywords.txt @@ -27,6 +27,7 @@ sliderRight KEYWORD2 hat KEYWORD2 useManualSend KEYWORD2 send_now KEYWORD2 +setBattery KEYWORD2 ####################################### # Constants (LITERAL1) diff --git a/libraries/JoystickBLE/src/JoystickBLE.cpp b/libraries/JoystickBLE/src/JoystickBLE.cpp index 5b15696e..6d38910e 100644 --- a/libraries/JoystickBLE/src/JoystickBLE.cpp +++ b/libraries/JoystickBLE/src/JoystickBLE.cpp @@ -86,6 +86,10 @@ void JoystickBLE_::end(void) { PicoBluetoothBLEHID.end(); } +void JoystickBLE_::setBattery(int lvl) { + PicoBluetoothBLEHID.setBattery(lvl); +} + void JoystickBLE_::button(uint8_t button, bool val) { //I've no idea why, but without a second dword, it is not possible. //maybe something with the alignment when using bit set/clear?!? diff --git a/libraries/JoystickBLE/src/JoystickBLE.h b/libraries/JoystickBLE/src/JoystickBLE.h index e104d563..af717919 100644 --- a/libraries/JoystickBLE/src/JoystickBLE.h +++ b/libraries/JoystickBLE/src/JoystickBLE.h @@ -64,5 +64,7 @@ public: // and are mapped internally to int8_t //if use8bit(true) is called, -127 to 127 values are used. void use8bit(bool mode); + + void setBattery(int lvl); }; extern JoystickBLE_ JoystickBLE; diff --git a/libraries/KeyboardBLE/examples/BLEKeyboardPassword/BLEKeyboardPassword.ino b/libraries/KeyboardBLE/examples/BLEKeyboardPassword/BLEKeyboardPassword.ino index 691ca67c..36b2e78f 100644 --- a/libraries/KeyboardBLE/examples/BLEKeyboardPassword/BLEKeyboardPassword.ino +++ b/libraries/KeyboardBLE/examples/BLEKeyboardPassword/BLEKeyboardPassword.ino @@ -15,6 +15,7 @@ void loop() { if (BOOTSEL) { Serial.println("Typing password for you...shhhh...."); KeyboardBLE.print("ThisPasswordIsWeakLikeABaby"); + KeyboardBLE.setBattery(random(0, 101)); // Set between 0...100% while (BOOTSEL); } } diff --git a/libraries/KeyboardBLE/keywords.txt b/libraries/KeyboardBLE/keywords.txt index 4136d77d..89cddddf 100644 --- a/libraries/KeyboardBLE/keywords.txt +++ b/libraries/KeyboardBLE/keywords.txt @@ -17,8 +17,8 @@ write KEYWORD2 press KEYWORD2 release KEYWORD2 releaseAll KEYWORD2 +setBattery KEYWORD2 ####################################### # Constants (LITERAL1) ####################################### - diff --git a/libraries/KeyboardBLE/src/KeyboardBLE.cpp b/libraries/KeyboardBLE/src/KeyboardBLE.cpp index a91cfdbb..9a837e91 100644 --- a/libraries/KeyboardBLE/src/KeyboardBLE.cpp +++ b/libraries/KeyboardBLE/src/KeyboardBLE.cpp @@ -45,6 +45,10 @@ void KeyboardBLE_::end(void) { PicoBluetoothBLEHID.end(); } +void KeyboardBLE_::setBattery(int lvl) { + PicoBluetoothBLEHID.setBattery(lvl); +} + void KeyboardBLE_::sendReport(KeyReport* keys) { hid_keyboard_report_t data; data.modifier = keys->modifiers; diff --git a/libraries/KeyboardBLE/src/KeyboardBLE.h b/libraries/KeyboardBLE/src/KeyboardBLE.h index 1cb2b863..29331b74 100644 --- a/libraries/KeyboardBLE/src/KeyboardBLE.h +++ b/libraries/KeyboardBLE/src/KeyboardBLE.h @@ -135,6 +135,7 @@ public: size_t press(uint8_t k); size_t release(uint8_t k); void releaseAll(void); + void setBattery(int lvl); }; extern KeyboardBLE_ KeyboardBLE; diff --git a/libraries/MouseBLE/examples/BLECircle/BLECircle.ino b/libraries/MouseBLE/examples/BLECircle/BLECircle.ino index b8305c43..767e28f2 100644 --- a/libraries/MouseBLE/examples/BLECircle/BLECircle.ino +++ b/libraries/MouseBLE/examples/BLECircle/BLECircle.ino @@ -26,6 +26,7 @@ void loop() { oy = ay; delay(10); } + MouseBLE.setBattery(random(0, 101)); // Set between 0...100% while (BOOTSEL) { delay(1); } diff --git a/libraries/MouseBLE/keywords.txt b/libraries/MouseBLE/keywords.txt index 1128af5d..b5320e97 100644 --- a/libraries/MouseBLE/keywords.txt +++ b/libraries/MouseBLE/keywords.txt @@ -18,6 +18,7 @@ move KEYWORD2 press KEYWORD2 release KEYWORD2 isPressed KEYWORD2 +setBattery KEYWORD2 ####################################### # Constants (LITERAL1) diff --git a/libraries/MouseBLE/src/MouseBLE.cpp b/libraries/MouseBLE/src/MouseBLE.cpp index c97203a4..caba4861 100644 --- a/libraries/MouseBLE/src/MouseBLE.cpp +++ b/libraries/MouseBLE/src/MouseBLE.cpp @@ -54,6 +54,10 @@ void MouseBLE_::end(void) { PicoBluetoothBLEHID.end(); } +void MouseBLE_::setBattery(int lvl) { + PicoBluetoothBLEHID.setBattery(lvl); +} + void MouseBLE_::click(uint8_t b) { _buttons = b; move(0, 0, 0); diff --git a/libraries/MouseBLE/src/MouseBLE.h b/libraries/MouseBLE/src/MouseBLE.h index 5f8b4f25..23cccd44 100644 --- a/libraries/MouseBLE/src/MouseBLE.h +++ b/libraries/MouseBLE/src/MouseBLE.h @@ -46,6 +46,7 @@ public: void press(uint8_t b = MOUSE_LEFT); // press LEFT by default void release(uint8_t b = MOUSE_LEFT); // release LEFT by default bool isPressed(uint8_t b = MOUSE_LEFT); // check LEFT by default + void setBattery(int lvl); }; extern MouseBLE_ MouseBLE; diff --git a/libraries/PicoBluetoothBLEHID/keywords.txt b/libraries/PicoBluetoothBLEHID/keywords.txt index f815ec75..a83f5238 100644 --- a/libraries/PicoBluetoothBLEHID/keywords.txt +++ b/libraries/PicoBluetoothBLEHID/keywords.txt @@ -20,9 +20,8 @@ connected KEYWORD2 send KEYWORD2 lockBluetooth KEYWORD2 unlockBluetooth KEYWORD2 -getCID KEYWORD2 +setBattery KEYWORD2 ####################################### # Constants (LITERAL1) ####################################### - diff --git a/libraries/PicoBluetoothBLEHID/src/PicoBluetoothBLEHID.h b/libraries/PicoBluetoothBLEHID/src/PicoBluetoothBLEHID.h index fa81c07b..4deee92a 100644 --- a/libraries/PicoBluetoothBLEHID/src/PicoBluetoothBLEHID.h +++ b/libraries/PicoBluetoothBLEHID/src/PicoBluetoothBLEHID.h @@ -219,6 +219,14 @@ public: return connected(); } + bool setBattery(int level) { + if (!_running || (level < 0) || (level > 100)) { + return false; + } + battery_service_server_set_battery_value(level); + return true; + } + static void lockBluetooth() { async_context_acquire_lock_blocking(cyw43_arch_async_context()); }