Izolovanje RGB podataka iz USB snimaka
Ovaj vodič pokazuje kako dešifrovati USB podatke za implementaciju uređaja u SignalRGB.
Sortiranje podataka
Section titled “Sortiranje podataka”Pre nego što pokušamo da interpretiramo USB snimak, treba ga sortirati da bismo pronašli određene pakete.
U Wiresharku:
- Otvorite USB snimak
- Kliknite na zaglavlje “Info” da biste sortirali po tipu paketa
- Skrolujte kroz listu dok ne pronađete tip URB_INTERRUPT OUT ili SET_REPORT Request
Ako ne pronađete nijednu od gore navedenih komandi, možda radite sa RAWUSB uređajem ili snimak nije ispravno izvršen. Za RAWUSB uređaje videćete komande URBBULK_OUT ili URB_CONTROL OUT. Ako imate RAWUSB uređaj, pridružite se ovom Discord serveru za razvojnu pomoć.
Pronalaženje RGB paketa
Section titled “Pronalaženje RGB paketa”Paketi koje najpre tražimo su oni koji sadrže RGB vrednosti koje smo postavili tokom snimanja USB paketa.
Napomena: Namerno ćemo za sada ignorisati pakete inicijalizacije uređaja. Ovi paketi možda će biti potrebni kasnije.
Podaci koji se šalju u svakom paketu dolaze posle svih informacija zaglavlja USB protokola. Da bismo ih videli, moramo pronaći odeljak “Data Fragment”.
- Izaberite paket
- Izaberite polje HID Data, ili proširite odeljak Setup Data i izaberite polje Data Fragment
- Klik na polje treba da plavo istakne oblast podataka u donjem delu Wiresharka
- Izabrano polje prikazuje poslate podatke i bez razmaka. U ovom prikazu, svaka 2 znaka odgovaraju jednom bajtu.

Napomena: Vrednosti koje se razmatraju su u HEX formatu (osnova 16), formatu podataka koji predstavlja decimalne vrednosti od 0 do 255 kao vrednosti od 0x00 do 0xFF.
Struktura paketa
Section titled “Struktura paketa”Pošto smo u vodiču za USB snimanje postavili Crvenu, Zelenu i Plavu na njihove maksimalne vrednosti, u snimku tražimo vrednosti 0xFF. Ako ste u snimku koristili druge boje, morate znati specifičnu korišćenu HEX boju ili ponoviti snimanje sa poznatim bojama.
Paketi osvetljenja uređaja obično sadrže zaglavlje koje ukazuje za koju komandu je paket namenjen i koju zonu osvetljenja uređaja adresira, nakon čega slede RGB podaci i retko neki podaci na kraju poput CRC kontrolne sume.
RGB podaci često prate neke uobičajene formate koje možemo proveriti tražeći boje postavljene u snimku:
- R, G, B, R, G, B, R, G, B (Crvena -> Zelena -> Plava -> Ponavljanje)
- RRR, GGG, BBB (Više Crvenih -> Više Zelenih -> Više Plavih -> Ponavljanje)
- Br, R, G, B (Osvetljenost -> Crvena -> Zelena -> Plava -> Ponavljanje)
Napomena: Neki uređaji koriste drugačiji redosled boja. Iako većina koristi RGB, vaš uređaj možda koristi GBR, BGR ili neku drugu kombinaciju.
U našem slučaju, tražene vrednosti su:
- 0xff, 0x00, 0x00 | 0x00, 0xff, 0x00 | 0x00, 0x00, 0xff (ako uređaj koristi redosled paketa R,G,B).
- 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 (ako uređaj koristi redosled paketa RRR,GGG,BBB).
- 0xff, 0xff, 0x00, 0x00 | 0xff, 0x00, 0xff, 0x00 | 0xff, 0x00, 0x00, 0xff (ako uređaj koristi redosled paketa Br,R,G,B)
Napomena: Gornji primeri su samo neke uobičajene strukture paketa za uređaje i možda neće uvek važiti. Morate porediti i tražiti sličnosti.
Pregled paketa
Section titled “Pregled paketa”Kada skrolujemo kroz pakete, primetićemo da paket 271 u našem snimku sadrži bajtove koji liče na R,G,B strukturu paketa.
Napomena: Neki uređaji mogu koristiti više paketa za postavljanje boja celog uređaja. Obratite pažnju na sledeće pakete i uverite se da pronalazite gde se prvi paket ponavlja.

Ovaj paket označavamo funkcijom MARK/UNMARK Packet u Wiresharku. To se može uraditi istovremenim pritiskom CTRL + M ili desnim klikom na paket i klikom na MARK/UNMARK Packet.
Da bismo potvrdili da je ovaj paket zaista jedan od naših paketa sa podacima o bojama, nastavljamo da skrolujemo dole tražeći više paketa koji odgovaraju našoj R,G,B strukturi. Proveravamo i da li ovi paketi prate redosled u kome smo postavljali boje u originalnom softveru. Ovo je dobro vreme da se pogleda zaglavlje paketa i vidi da li se menja. Ako se menja po obrascu, veoma je verovatno da je potrebno više paketa da bi se postavile sve LED diode uređaja.
Kada gledamo pakete 271, 273 i 275 jedan pored drugog, vidimo da RGB podaci u paketu 271 sadrže samo Crvenu (0xFF, 0x00, 0x00), u paketu 273 samo Zelenu (0x00, 0xFF, 0x00), a u paketu 275 samo Plavu (0x00, 0x00, 0xFF). Kada pogledamo zaglavlje iznad RGB odeljka, primetićemo da se ovi podaci ne menjaju između tri paketa. To najverovatnije znači da u ovim paketima menjamo iste zone boja.
- Vredno je napomenuti i da na osnovu paketa boja možemo odrediti koliko zona uređaj sadrži. Da bismo to uradili, proveravamo koliko puta se naše poznate vrednosti pojavljuju u RGB paketima podataka. U sledećem primeru vidimo da uređaj ima 4 zone koje definitivno možemo adresirati.


Nastavljamo kroz naše pakete dok ne pronađemo i označimo sve pakete sa podacima o bojama. Nakon toga prelazimo na kreiranje naše datoteke plugina.