コード例 #1
0
ファイル: libusb.c プロジェクト: HalasNet/bladeRF
static bool device_is_bladerf(libusb_device *dev)
{
    struct libusb_config_descriptor *cfg;
    int status;
    bool ret;

    if(!device_has_vid_pid(dev, USB_NUAND_VENDOR_ID,
                           USB_NUAND_BLADERF_PRODUCT_ID)) {

        return false;
    }

    status = libusb_get_config_descriptor(dev, 0, &cfg);
    if (status != 0) {
        log_debug("Failed to get configuration descriptor: %s\n",
                  libusb_error_name(status));
        return false;
    }

    /* As of firmware v0.4, we expect there to be 4 altsettings on the
     * first interface. */
    if (cfg->interface->num_altsetting != 4) {
        const uint8_t bus = libusb_get_bus_number(dev);
        const uint8_t addr = libusb_get_device_address(dev);

        log_warning("A bladeRF running incompatible firmware appears to be "
                    "present on bus=%u, addr=%u. If this is true, a firmware "
                    "update via the device's bootloader is required.\n\n",
                    bus, addr);

        ret = false;
    } else {
        ret = true;
    }

    libusb_free_config_descriptor(cfg);
    return ret;
}
コード例 #2
0
ファイル: libusb.c プロジェクト: kaysin/bladeRF
static inline bool device_is_bladerf(libusb_device *dev)
{
    return device_has_vid_pid(dev,
                              USB_NUAND_VENDOR_ID,
                              USB_NUAND_BLADERF_PRODUCT_ID);
}
コード例 #3
0
ファイル: libusb.c プロジェクト: HalasNet/bladeRF
static bool device_is_fx3_bootloader(libusb_device *dev)
{
    return device_has_vid_pid(dev, USB_CYPRESS_VENDOR_ID, USB_FX3_PRODUCT_ID) ||
           device_has_vid_pid(dev, USB_NUAND_VENDOR_ID,
                              USB_NUAND_BLADERF_BOOT_PRODUCT_ID);
}
コード例 #4
0
ファイル: libusb.c プロジェクト: robertghilduta/bladeRF
static inline bool device_has_bladeRF_ids(libusb_device *dev)
{
    return device_has_vid_pid(dev, USB_NUAND_VENDOR_ID, USB_NUAND_BLADERF_PRODUCT_ID) ||
           device_has_vid_pid(dev, USB_NUAND_LEGACY_VENDOR_ID, USB_NUAND_BLADERF_LEGACY_PRODUCT_ID);

}