@@ -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
147152DINPUT_BUTTON_MAP : dict [int , GamepadButton ] = to_map (
0 commit comments