greatscottgadgets / python-usb-protocol

python library providing utilities, data structures, constants, parsers, and tools for working with USB data
BSD 3-Clause "New" or "Revised" License
54 stars 32 forks source link

Extend DescriptorField to support arrays #10

Open twam opened 3 years ago

twam commented 3 years ago

When trying to define a DescriptorField with name 'baInterfaceNr' (As defined in USB Audio Class, Table 4-2 for Audio Control Interface Header Descriptor) it fails as prefix ba is considered invalid.

Traceback (most recent call last):
  File "/Users/twam/Source/nmigen/./usb-debug.py", line 71, in <module>
    "baInterfaceNr"         / DescriptorField("Number of AudioStreaming and MIDIStreaming interfaces"),
  File "/usr/local/lib/python3.9/site-packages/usb_protocol/types/descriptor.py", line 236, in __rtruediv__
    field_type = self._get_type_for_name(field_name)
  File "/usr/local/lib/python3.9/site-packages/usb_protocol/types/descriptor.py", line 220, in _get_type_for_name
    raise ValueError("field names must be formatted per the USB standard!")
ValueError: field names must be formatted per the USB standard!
antoinevg commented 5 months ago

Notes: