self.device_subclass,
self.protocol_rel_num,
self.max_packet_size_ep0,
- (self.vendor_id >> 8) & 0xff,
self.vendor_id & 0xff,
- (self.product_id >> 8) & 0xff,
+ (self.vendor_id >> 8) & 0xff,
self.product_id & 0xff,
- (self.device_rev >> 8) & 0xff,
+ (self.product_id >> 8) & 0xff,
self.device_rev & 0xff,
+ (self.device_rev >> 8) & 0xff,
self.manufacturer_string_id,
self.product_string_id,
self.serial_number_string_id,
elif req_type == USB.request_type_class:
handler_entity = recipient.device_class
elif req_type == USB.request_type_vendor:
- handler_entity = recipient.get_device_vendor()
+ handler_entity = recipient.device_vendor
if not handler_entity:
print(self.name, "invalid handler entity, stalling")
+ "language 0x%04x, length %d") \
% (dtype, dindex, lang, n))
- # TODO: handle KeyError
- response = self.descriptors[dtype]
+ response = self.descriptors.get(dtype, None)
if callable(response):
response = response(dindex)
if self.verbose > 5:
print(self.name, "sent", n, "bytes in response")
+ else:
+ self.maxusb_app.stall_ep0()
def handle_get_configuration_descriptor_request(self, num):
return self.configurations[num].get_descriptor()