@classmethod def strings_in_order(cls): return cls.strings # langid must be the 0th string descriptor LANGID_INDEX = StringIndex.index("\u0409", variable_name="language_id") assert LANGID_INDEX == 0 SERIAL_NUMBER_INDEX = StringIndex.index("S" * args.serial_number_length, variable_name="usb_serial_number") device = standard.DeviceDescriptor( description="top", idVendor=args.vid, idProduct=args.pid, iManufacturer=StringIndex.index(args.manufacturer), iProduct=StringIndex.index(args.product), iSerialNumber=SERIAL_NUMBER_INDEX) # Interface numbers are interface-set local and endpoints are interface local # until util.join_interfaces renumbers them. cdc_union = cdc.Union( description="CDC comm", bMasterInterface=0x00, # Adjust this after interfaces are renumbered. bSlaveInterface_list=[0x01]) # Adjust this after interfaces are renumbered. cdc_call_management = cdc.CallManagement( description="CDC comm", bmCapabilities=0x01,
langid = standard.StringDescriptor("\u0409") manufacturer = standard.StringDescriptor(args.manufacturer) product = standard.StringDescriptor(args.product) serial_number = standard.StringDescriptor( "serial number. you should fill in a unique serial number here."[:args. serial_number_length] ) strings = [langid, manufacturer, product, serial_number] # vid = 0x239A # pid = 0x8021 device = standard.DeviceDescriptor(idVendor=args.vid, idProduct=args.pid, iManufacturer=strings.index(manufacturer), iProduct=strings.index(product), iSerialNumber=strings.index(serial_number)) # Interface numbers are interface set local and endpoints are interface local # until core.join_interfaces renumbers them. cdc_interfaces = [ standard.InterfaceDescriptor( bInterfaceClass=0x2, # Communications Device Class bInterfaceSubClass=0x02, # Abstract control model bInterfaceProtocol=0x01, # Common AT Commands subdescriptors=[ # Working 2.x # radix: hexadecimal # 05 24 00 10 01 header # 05 24 01 03 01 call manage