NiyaShy / XB1ControllerBatteryIndicator

A tray application that shows a battery indicator for an Xbox-ish controller and gives a notification when the battery level drops to (almost) empty.
GNU General Public License v2.0
715 stars 51 forks source link

"Found but stil waiting for battery data" never ends #31

Closed DrGluck closed 4 years ago

DrGluck commented 4 years ago

The program updates the battery status for a very long time. It seems to me that this should not take several minutes. Most often, the program does not receive information.

I do not exclude the possibility that this problem is only with my system or hardware. Perhaps the author can advise me something about this problem?

Program version: 1.3.1 Gamepad: xbox one 4n6-00002 Firmware: 3.1.1221.0 OS: win 10 pro 1903 Connection: USB or Bluetooth

NiyaShy commented 4 years ago

Hey, sorry to hear that it doesn't work properly. Sadly, diagnosing why it can't detect your controllers battery level is... hard. Since it only asks the XInput API about information for your controller it could really be an issue there. Can other programs (like steams big picture mode) detect the level?

Also, as mentioned in the description, it's normal for initial detection to take a bit. From my experience it usually takes 10-20 seconds after the controller is turned on and connected.

DrGluck commented 4 years ago

Hi! I think I understand what the problem is. The program does not display the battery charge until I press any button on the controller. I’m probably the first user who turned on the controller and didn’t do anything with it ) Exactly the same thing happened with "XInputBatteryMeter". In this case, maybe this is not a bug, but Xbox Accessories show battery charge even I don't press any button. If this behavior is due to x-input API, then I think you can close this issue.

p.s. Is it possible to add a button "turn off the controller"?

NiyaShy commented 4 years ago

You're definitely not the first to stumble across this weirdness. Thought I already mentioned it everywhere that pressing a button should help, but just in case I added a note for it to the wiki as well.

XB accessories seems to be kind of special since it apparently can do stuff no other program can (like showing the battery level while the controller is charging). But Microsoft created the hardware and software, so they probably know more about it than the public.

And turning off the controller via software doesn't work, XInput is read only. Or, as far as I understood the documentation, the only thing that might work is to let it rumble... Do you know about holding the XB key for ~10 seconds to turn it off? That's the only way that I know of.

DrGluck commented 4 years ago

Do you know about holding the XB key for ~10 seconds to turn it off? That's the only way that I know of.

Yes, I know about this feature. But (I really don't know why) sometimes XB button works as "system sound volume up" instead of "show XB accessories". This behavior started some time ago. At the moment I do not know the solution to this problem.