@@ -89,7 +89,7 @@ def __init__(self, device: USBDevice=None, verbose: int=0, quirks: List[str]=[])
89
89
self .endpoint_stalled [i ] = False
90
90
91
91
# Assume a max packet size of 64 until configured otherwise.
92
- self .max_ep0_packet_size = 64
92
+ self .max_packet_size_ep0 = 64
93
93
94
94
# Start off by assuming we're not waiting for an OUT control transfer's
95
95
# data stage. # See handle_setup_complete_on_endpoint for details.
@@ -100,9 +100,6 @@ def __init__(self, device: USBDevice=None, verbose: int=0, quirks: List[str]=[])
100
100
# for data transfer readiness.
101
101
self .configuration = None
102
102
103
- # By default, Cynthion's target port operates at High speed.
104
- self .device_speed = DeviceSpeed .HIGH
105
-
106
103
#
107
104
# Store our list of quirks to handle.
108
105
#
@@ -151,16 +148,7 @@ def get_version(self):
151
148
raise NotImplementedError ()
152
149
153
150
154
- def set_device_speed (self , device_speed : DeviceSpeed = DeviceSpeed .FULL ):
155
- """
156
- Sets the speed to be used when connecting Cynthion's target port.
157
-
158
- device_speed: the requested device speed.
159
- """
160
- self .device_speed = device_speed
161
-
162
-
163
- def connect (self , usb_device : USBDevice , max_ep0_packet_size : int = 64 ):
151
+ def connect (self , usb_device : USBDevice , max_packet_size_ep0 : int = 64 , device_speed : DeviceSpeed = DeviceSpeed .FULL ):
164
152
"""
165
153
Prepares Cynthion to connect to the target host and emulate
166
154
a given device.
@@ -169,9 +157,12 @@ def connect(self, usb_device: USBDevice, max_ep0_packet_size: int=64):
169
157
emulated.
170
158
"""
171
159
172
- log .debug (f"moondancer.connect(max_ep0_packet_size:{ max_ep0_packet_size } , device_speed:{ self .device_speed } , quirks:{ self .quirks } )" )
160
+ if device_speed not in [DeviceSpeed .FULL , DeviceSpeed .HIGH ]:
161
+ log .warn (f"Moondancer only supports USB Full and High Speed. Ignoring requested speed: { device_speed .name } " )
162
+
163
+ log .debug (f"moondancer.connect(max_packet_size_ep0:{ max_packet_size_ep0 } , device_speed:{ device_speed } , quirks:{ self .quirks } )" )
173
164
174
- self .max_ep0_packet_size = max_ep0_packet_size
165
+ self .max_packet_size_ep0 = max_packet_size_ep0
175
166
176
167
# compute our quirk flags
177
168
quirks = 0
@@ -180,13 +171,13 @@ def connect(self, usb_device: USBDevice, max_ep0_packet_size: int=64):
180
171
quirks |= QuirkFlag .MANUAL_SET_ADDRESS
181
172
182
173
# connect to target host
183
- self .api .connect (self .max_ep0_packet_size , self . device_speed , quirks )
174
+ self .api .connect (self .max_packet_size_ep0 , device_speed , quirks )
184
175
self .connected_device = usb_device
185
176
186
177
# get device name
187
178
device_name = f"{ type (self .connected_device ).__module__ } .{ type (self .connected_device ).__qualname__ } "
188
179
189
- log .info (f"Connected '{ device_name } ' to target host." )
180
+ log .info (f"Connected { device_speed . name } speed device '{ device_name } ' to target host." )
190
181
191
182
192
183
def disconnect (self ):
@@ -474,7 +465,7 @@ def handle_receive_packet(self, endpoint_number: int):
474
465
self .pending_control_request .data .extend (new_data )
475
466
476
467
all_data_received = len (self .pending_control_request .data ) == self .pending_control_request .length
477
- is_short_packet = len (new_data ) < self .max_ep0_packet_size
468
+ is_short_packet = len (new_data ) < self .max_packet_size_ep0
478
469
479
470
if all_data_received or is_short_packet :
480
471
# Handle the completed setup request...
0 commit comments