LennardKittner / HyperXCloudIIWireless

A CLI and tray application to monitor HyperX Cloud II Wireless headset battery level.
MIT License
16 stars 4 forks source link

Windows Version? #3

Open Malwenn opened 10 months ago

Malwenn commented 10 months ago

First of all sorry i'm new to github and i searched a lot before landing here ! I want to congratulate you for the good job but i was so sad to discover the release was for Linux :( Is there a possibility to port this to windows ?

Best regards !

LennardKittner commented 10 months ago

Hallo, thank you for being interested in the project. Originally I thought that it would run on Windows, just fine, because building on Windows works without a problem. However, for whatever reason I get a runtime error when I try to run it on Windows. I was not really interested in Windows, so I did not try to fix it, but if you are interested, I will look into it once I have access to my Windows machine.

Best regards

Malwenn commented 10 months ago

Thank you very much ! It will be very cool, but i have noticed that my headset is cloud alpha wireless and not an cloud 2 wireless .... can i do something to help you out with this maybe ? Regards,

LennardKittner commented 10 months ago

Hm, that headset most likely expects different packets than Cloud 2. You could use wireshark to sniff the packets that are sent by the Hyperx app and send them to me. You can find a section in the README on how to do that for Cloud 2 (you have to change the device ID). You can also take a look at this issue.

Malwenn commented 10 months ago

Will do that and come back to you, thanks !

Malwenn commented 10 months ago

cloudalphawireless.zip

I think it is good ! I selected the device and i done all actions on/off mute/unmute sound+/sound-, i also opened NGENUITY and done this all again. Nethertheless i just need the percentage of battery i dunno how to capture this ! Tell me if you need something else :)

LennardKittner commented 10 months ago

Hi, sorry for the late response. I may have found the packet to get the battery level of the Cloud Alpha, but I cant verify it. If you want, you can test, if it works, by cloning the 1-fedora-38-broken-pipe-issue branch and running cargo run --bin device_tester. I tried it on Windows, and it throws some errors, but it works. I can also send you the compiled program if you have any issues compiling it yourself.

Malwenn commented 10 months ago

No problem, thank you anyway :) yeah it will be very kind if u can send compiled program to me

LennardKittner commented 10 months ago

This will print some stuff in the command prompt device_tester.zip. If you just double-click it, the command prompt window will close immediately after it is done. You should therefore open a command-prompt window in the folder where you extracted the zip instead, and then execute the program using that command prompt window. In case you need further instructions:

  1. dowload zip
  2. extract zip
  3. delete the path in the Explorer path field
  4. type "cmd" in that field
  5. hit enter
  6. type "device_tester" in the command prompt window
Bazdi commented 3 months ago

Hey LennardKittner, do you mind adding the cloud alpha to the linux version too? Happy to help if you need any information from me - you can message me at discord also; my username is just: basti

Thanks alot!

LennardKittner commented 2 months ago

Hi, I can try to add support for your headset. However, past experiences have shown me that this is more difficult without access to the device. The first thing you could do is find out the product ID of your headset and add it to the PRODUCT_IDS array in src/lib.rs. You can find the product ID with lsusb. If we are lucky, your headset uses the same packets to communicate as mine, and we are done. If this does not work, you would have to capture some packets yourself using Wireshark. I have a section in the README on how to do that.

Jason-THL commented 2 months ago

Hey, I am not sure if this has been done but does this program work for Windows? And if possible would it be able to work for the Cloud 3 Wireless?

LennardKittner commented 2 months ago

Hi, I just tested the cli_app again on Windows, but I get the same error as I mentioned before https://github.com/LennardKittner/HyperXCloudIIWireless/issues/3#issuecomment-1759210291. However, you could try to see if it works for you. In order to add support for your headset, you could try adding the product ID https://github.com/LennardKittner/HyperXCloudIIWireless/issues/6#issuecomment-2133869327. If the app does not work after adding the product ID, it is very likely that the packets that need to be sent to the headset are different from the packets that the cloud 2 uses. In that case, you have to capture the packets yourself https://github.com/LennardKittner/HyperXCloudIIWireless?tab=readme-ov-file#how-to-use-wireshark-to-capture-packets

My error on Window:

HidApiError { message: "WriteFile: (0x00000001) Incorrect function." }