Skip to content

Commit b6abbd1

Browse files
committed
always write 64 byte commands for claw
1 parent d86cb51 commit b6abbd1

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

src/hhd/device/claw/base.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,11 @@ def __init__(self, *args, test_mode: bool = False, **kwargs) -> None:
8282
super().__init__(*args, **kwargs)
8383
self.init = False
8484
self.test_mode = test_mode
85+
86+
def write(self, cmd: bytes) -> None:
87+
if not self.dev:
88+
return
89+
self.dev.write(cmd + bytes([0x00] * (64 - len(cmd))))
8590

8691
def consume(self, events: Sequence[Event]) -> None:
8792
if not self.dev:
@@ -106,7 +111,7 @@ def consume(self, events: Sequence[Event]) -> None:
106111
00,
107112
]
108113
)
109-
self.dev.write(cmd)
114+
self.write(cmd)
110115
elif ev["type"] == "led" and not self.test_mode:
111116
if ev["mode"] == "solid":
112117
cmd = set_rgb_cmd(
@@ -115,33 +120,33 @@ def consume(self, events: Sequence[Event]) -> None:
115120
ev["green"],
116121
ev["blue"],
117122
)
118-
self.dev.write(cmd)
123+
self.write(cmd)
119124
elif ev["mode"] == "disabled":
120125
cmd = set_rgb_cmd(
121126
0,
122127
0,
123128
0,
124129
0,
125130
)
126-
self.dev.write(cmd)
131+
self.write(cmd)
127132

128133
def set_dinput_mode(self, init: bool = False) -> None:
129134
if not self.dev:
130135
return
131136

132137
# Make sure M1/M2 are recognizable
133138
if init:
134-
self.dev.write(CLAW_SET_M1)
139+
self.write(CLAW_SET_M1)
135140
time.sleep(0.3)
136-
self.dev.write(CLAW_SET_M2)
141+
self.write(CLAW_SET_M2)
137142
time.sleep(0.3)
138-
self.dev.write(CLAW_SYNC_ROM)
143+
self.write(CLAW_SYNC_ROM)
139144
time.sleep(0.3)
140-
self.dev.write(CLAW_SET_MSI)
145+
self.write(CLAW_SET_MSI)
141146
time.sleep(2)
142147

143148
# Set the device to dinput mode
144-
self.dev.write(CLAW_SET_DINPUT)
149+
self.write(CLAW_SET_DINPUT)
145150

146151

147152
DINPUT_BUTTON_MAP: dict[int, GamepadButton] = to_map(

0 commit comments

Comments
 (0)