def aa_find_devices_ext(devices, unique_ids): """usage: (int return, u16[] devices, u32[] unique_ids) = aa_find_devices_ext(u16[] devices, u32[] unique_ids) All arrays can be passed into the API as an ArrayType object or as a tuple (array, length), where array is an ArrayType object and length is an integer. The user-specified length would then serve as the length argument to the API funtion (please refer to the product datasheet). If only the array is provided, the array's intrinsic length is used as the argument to the underlying API function. Additionally, for arrays that are filled by the API function, an integer can be passed in place of the array argument and the API will automatically create an array of that length. All output arrays, whether passed in or generated, are passed back in the returned tuple.""" if not AA_LIBRARY_LOADED: return AA_INCOMPATIBLE_LIBRARY # devices pre-processing __devices = isinstance(devices, int) if __devices: (devices, num_devices) = (array_u16(devices), devices) else: (devices, num_devices) = isinstance( devices, ArrayType) and (devices, len(devices)) or ( devices[0], min(len(devices[0]), int(devices[1]))) if devices.typecode != 'H': raise TypeError("type for 'devices' must be array('H')") # unique_ids pre-processing __unique_ids = isinstance(unique_ids, int) if __unique_ids: (unique_ids, num_ids) = (array_u32(unique_ids), unique_ids) else: (unique_ids, num_ids) = isinstance( unique_ids, ArrayType) and (unique_ids, len(unique_ids)) or ( unique_ids[0], min(len(unique_ids[0]), int(unique_ids[1]))) if unique_ids.typecode != 'I': raise TypeError("type for 'unique_ids' must be array('I')") # Call API function (_ret_) = api.py_aa_find_devices_ext(num_devices, num_ids, devices, unique_ids) # devices post-processing if __devices: del devices[max(0, min(_ret_, len(devices))):] # unique_ids post-processing if __unique_ids: del unique_ids[max(0, min(_ret_, len(unique_ids))):] return (_ret_, devices, unique_ids)
def aa_find_devices_ext (devices, unique_ids): """usage: (int return, u16[] devices, u32[] unique_ids) = aa_find_devices_ext(u16[] devices, u32[] unique_ids) All arrays can be passed into the API as an ArrayType object or as a tuple (array, length), where array is an ArrayType object and length is an integer. The user-specified length would then serve as the length argument to the API funtion (please refer to the product datasheet). If only the array is provided, the array's intrinsic length is used as the argument to the underlying API function. Additionally, for arrays that are filled by the API function, an integer can be passed in place of the array argument and the API will automatically create an array of that length. All output arrays, whether passed in or generated, are passed back in the returned tuple.""" if not AA_LIBRARY_LOADED: return AA_INCOMPATIBLE_LIBRARY # devices pre-processing __devices = isinstance(devices, int) if __devices: (devices, num_devices) = (array_u16(devices), devices) else: (devices, num_devices) = isinstance(devices, ArrayType) and (devices, len(devices)) or (devices[0], min(len(devices[0]), int(devices[1]))) if devices.typecode != 'H': raise TypeError("type for 'devices' must be array('H')") # unique_ids pre-processing __unique_ids = isinstance(unique_ids, int) if __unique_ids: (unique_ids, num_ids) = (array_u32(unique_ids), unique_ids) else: (unique_ids, num_ids) = isinstance(unique_ids, ArrayType) and (unique_ids, len(unique_ids)) or (unique_ids[0], min(len(unique_ids[0]), int(unique_ids[1]))) if unique_ids.typecode != 'I': raise TypeError("type for 'unique_ids' must be array('I')") # Call API function (_ret_) = api.py_aa_find_devices_ext(num_devices, num_ids, devices, unique_ids) # devices post-processing if __devices: del devices[max(0, min(_ret_, len(devices))):] # unique_ids post-processing if __unique_ids: del unique_ids[max(0, min(_ret_, len(unique_ids))):] return (_ret_, devices, unique_ids)