本文整理汇总了C++中usb_close函数的典型用法代码示例。如果您正苦于以下问题:C++ usb_close函数的具体用法?C++ usb_close怎么用?C++ usb_close使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了usb_close函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char **argv)
{
unsigned int count = 0U, removed = 0U;
struct usb_bus *bus;
struct usb_device *dev;
static usb_dev_handle *handle;
char name[256];
usb_init();
usb_find_busses();
usb_find_devices();
for (bus = usb_get_busses(); bus != NULL; bus = bus->next) {
for (dev = bus->devices; dev != NULL; dev = dev->next) {
if (dev->descriptor.idVendor == C108_VENDOR_ID &&
(dev->descriptor.idProduct == C108_PRODUCT_ID ||
dev->descriptor.idProduct == C108AH_PRODUCT_ID ||
dev->descriptor.idProduct == C119_PRODUCT_ID)) {
count++;
if ((handle = usb_open(dev)) == NULL) {
fprintf(stderr, "rmuridrv: cannot open the USB device: %s\n", usb_strerror());
continue;
}
memset(name, 0, 256);
if (usb_get_driver_np(handle, CM108_INTERFACE, name, 256) == 0) {
if (strcmp(name, "usbhid") == 0) {
if (usb_detach_kernel_driver_np(handle, CM108_INTERFACE) == 0)
removed++;
else
fprintf(stderr, "rmuridrv: could not disconnect from usbhid: %s\n", usb_strerror());
}
}
usb_close(handle);
}
}
}
fprintf(stdout, "rmuridrv: found %u CM108 devices and removed %u from the usbhid driver\n", count, removed);
return 0;
}开发者ID:KH6VM,项目名称:OpenSystemFusion,代码行数:43,代码来源:rmuridrv.c
示例2: open_port
struct usb_dev_handle * open_port()
{
struct usb_bus *busses, *bus;
usb_init();
usb_find_busses();
usb_find_devices();
busses = usb_get_busses();
for (bus = busses; bus; bus = bus->next)
{
struct usb_device *dev;
for (dev = bus->devices; dev; dev = dev->next)
{
//printf("idVendor:0x%x\t,ipProduct:0x%x\n", dev->descriptor.idVendor, dev->descriptor.idProduct);
if (VENDOR_ID == dev->descriptor.idVendor
&& PRODUCT_ID == dev->descriptor.idProduct)
{
printf("Target usb device found!\n");
struct usb_dev_handle *hdev = usb_open(dev);
if (!hdev)
{
perror("Cannot open device");
}
else
{
if (0 != usb_claim_interface(hdev, 0))
{
perror("Cannot claim interface");
usb_close(hdev);
hdev = NULL;
}
}
return hdev;
}
}
}
printf("Target usb device not found!\n");
return NULL;
}开发者ID:hechaoyuyu,项目名称:dnw-linux,代码行数:43,代码来源:dnw2.c
示例3: main
int main (int argc, const char **argv) {
int r = 0;
struct usb_device *dev;
struct usb_dev_handle *handle;
printf("CC1800 usbtool v1.0.0 by Ignacio Garcia Perez \n");
if (argc < 2) {
fputs(help, stderr);
return 1;
}
dev = cc1800_find();
if (dev == NULL) {
fprintf(stderr, "ERROR: cannot find CC1800 device\n");
return 1;
}
printf("Found device %s at bus %s\n", dev->filename, dev->bus->dirname);
handle = usb_open(dev);
if (handle == NULL) {
fprintf(stderr, "ERROR: cannot open device (%s)\n", strerror(errno));
return 1;
}
r = usb_set_configuration(handle, 1);
if (r < 0)
fprintf(stderr, "ERROR: cannot set configuration\n");
else {
r = usb_claim_interface(handle, 0);
if (r < 0)
fprintf(stderr, "ERROR: cannot claim interface\n");
else r = cc1800_fiddle(handle, argc, argv);
}
usb_close(handle);
return r;
}开发者ID:iggarpe,项目名称:cc1800,代码行数:42,代码来源:main.c
示例4: find_dev
struct usb_device * find_dev(void)
{
struct usb_bus *bus;
struct usb_device *dev;
struct usb_dev_handle *handle;
char man[40];
char prod[40];
usb_find_busses();
usb_find_devices();
for(bus = usb_get_busses(); bus; bus = bus->next) {
for(dev = bus->devices; dev; dev = dev->next) {
/* Check for ST Microelectronics vendor ID */
if ((dev->descriptor.idVendor != 0x483) &&
(dev->descriptor.idVendor != 0x1d50))
continue;
handle = usb_open(dev);
usb_get_string_simple(handle, dev->descriptor.iManufacturer, man,
sizeof(man));
usb_get_string_simple(handle, dev->descriptor.iProduct, prod,
sizeof(prod));
#if 0
printf("%s:%s [%04X:%04X] %s : %s\n", bus->dirname, dev->filename,
dev->descriptor.idVendor, dev->descriptor.idProduct, man, prod);
#endif
usb_close(handle);
if (((dev->descriptor.idProduct == 0x5740) ||
(dev->descriptor.idProduct == 0x6018)) &&
!strcmp(man, "Black Sphere Technologies"))
return dev;
if (((dev->descriptor.idProduct == 0xDF11) ||
(dev->descriptor.idProduct == 0x6017)) &&
!strcmp(man, "Black Sphere Technologies"))
return dev;
}
}
return NULL;
}开发者ID:ChuckM,项目名称:blackmagic,代码行数:42,代码来源:main.c
示例5: open_device
static int open_device(struct bslhid_transport *tr, struct usb_device *dev)
{
if (find_interface(tr, dev) < 0)
return -1;
printc_dbg("Opening interface %d (config %d)...\n",
tr->int_number, tr->cfg_number);
if (find_endpoints(tr, dev) < 0)
return -1;
printc_dbg("Found endpoints: IN: 0x%02x, OUT: 0x%02x\n",
tr->in_ep, tr->out_ep);
tr->handle = usb_open(dev);
if (!tr->handle) {
pr_error("bslhid: can't open device");
return -1;
}
#ifdef __Windows__
if (usb_set_configuration(tr->handle, tr->cfg_number) < 0)
pr_error("warning: bslhid: can't set configuration");
#endif
#ifdef __linux__
if (usb_detach_kernel_driver_np(tr->handle, tr->int_number) < 0)
pr_error("warning: bslhid: can't detach kernel driver");
#endif
if (usb_claim_interface(tr->handle, tr->int_number) < 0) {
pr_error("bslhid: can't claim interface");
usb_close(tr->handle);
return -1;
}
/* Save the bus path for a future suspend/resume */
strncpy(tr->bus_name, dev->bus->dirname, sizeof(tr->bus_name));
tr->bus_name[sizeof(tr->bus_name) - 1] = 0;
return 0;
}开发者ID:Batov,项目名称:libusb_chrome_api,代码行数:42,代码来源:bslhid.c
示例6: usbfbus_disconnect_request
/*
* Function usbfbus_link_disconnect_request (self)
*
* Shutdown the USB link
*
*/
static int usbfbus_disconnect_request(struct gn_statemachine *state)
{
int ret;
if (state->device.fd < 0)
return 0;
ret = usb_set_altinterface(DEVINSTANCE(state)->interface->dev_data, DEVINSTANCE(state)->interface->data_idle_setting);
if (ret < 0)
dprintf("Can't set data idle setting %d\n", ret);
ret = usb_release_interface(DEVINSTANCE(state)->interface->dev_data, DEVINSTANCE(state)->interface->data_interface);
if (ret < 0)
dprintf("Can't release data interface %d\n", ret);
ret = usb_release_interface(DEVINSTANCE(state)->interface->dev_data, DEVINSTANCE(state)->interface->control_interface);
if (ret < 0)
dprintf("Can't release control interface %d\n", ret);
ret = usb_close(DEVINSTANCE(state)->interface->dev_data);
if (ret < 0)
dprintf("Can't close data interface %d\n", ret);
return ret;
}开发者ID:ihipop,项目名称:I-GNOKII,代码行数:26,代码来源:dku2libusb.c
示例7: load_from_usb
static int load_from_usb(unsigned *_len, struct usb *usb)
{
unsigned len, n;
enable_irqs();
usb_queue_read(usb, &len, 4);
usb_write(usb, &MSG, 4);
n = usb_wait_read(usb);
if (n)
return -1;
if (usb_read(usb, (void*) CONFIG_ADDR_DOWNLOAD, len))
return -1;
usb_close(usb);
disable_irqs();
*_len = len;
return 0;
}开发者ID:aneeshv,项目名称:omapboot,代码行数:20,代码来源:aboot.c
示例8: vsllink_usb_close
static void vsllink_usb_close(struct vsllink *vsllink)
{
int ret;
ret = usb_release_interface(vsllink->usb_handle,
versaloon_interface.usb_setting.interface);
if (ret != 0) {
LOG_ERROR("fail to release interface %d, %d returned",
versaloon_interface.usb_setting.interface, ret);
exit(-1);
}
ret = usb_close(vsllink->usb_handle);
if (ret != 0) {
LOG_ERROR("fail to close usb, %d returned", ret);
exit(-1);
}
free(vsllink);
}开发者ID:Bot007,项目名称:openOCD,代码行数:20,代码来源:vsllink.c
示例9: usbdev_close
static void usbdev_close(union filedescriptor *fd)
{
usb_dev_handle *udev = (usb_dev_handle *)fd->usb.handle;
if (udev == NULL)
return;
(void)usb_release_interface(udev, usb_interface);
#if defined(__linux__)
/*
* Without this reset, the AVRISP mkII seems to stall the second
* time we try to connect to it. This is not necessary on
* FreeBSD.
*/
usb_reset(udev);
#endif
usb_close(udev);
}开发者ID:UbiquityRobotics,项目名称:bus_loki,代码行数:20,代码来源:usb_libusb.c
示例10: main
int main (int argc,char **argv)
{
struct usb_dev_handle *usbprog_handle;
struct usb_device *usbprog_device;
int send_status;
int open_status;
unsigned char send_data[10000];
unsigned char receive_data[64];
usb_init();
usb_set_debug(2);
if ((usbprog_handle = locate_usbprog())==0)
{
printf("Could not open the USBprog device\n");
return (-1);
}
open_status = usb_set_configuration(usbprog_handle,1);
printf("conf_stat=%d\n",open_status);
open_status = usb_claim_interface(usbprog_handle,0);
printf("claim_stat=%d\n",open_status);
open_status = usb_set_altinterface(usbprog_handle,0);
printf("alt_stat=%d\n",open_status);
int k;
for(k=0;kdescriptor.iManufacturer, vendor_name) &&
usb_match_string(handle, dev->descriptor.iProduct, product_name) &&
usb_match_string(handle, dev->descriptor.iSerialNumber, serial)
) {
return handle;
}
usb_close(handle);
return NULL;
}开发者ID:webconn,项目名称:ecorset-console-client,代码行数:21,代码来源:usb.c
示例12: rfidtag_close
/*
**
**rfidtag close - power down reader and close usb communication
**
**LOCKED IN
*/
int
rfidtag_close (void)
{
int i = 0;
for (i = 0; i < numtagreaders; i++)
{
if (rfidtag_xchange
(rfid_dev[i], power_down, sizeof (power_down), recvbuf,
sizeof (recvbuf)) < 0)
{
perror ("xchange");
}
//printf("closing[%d]\n\n", i+1);
if (usb_close (rfid_dev[i]) < 0)
{
perror ("usb_close");
return (-1);
}
}
return (0);
}开发者ID:micschk,项目名称:python-rfidtag,代码行数:27,代码来源:rfidtag.c
示例13: usb_get_device_desc
static int usb_get_device_desc(struct usb_device *dev)
{
struct usb_dev_handle *hnd = usb_open(dev);
if (!hnd)
return 1;
ULONG actlen = 0;
if (!WinUsb_GetDescriptor(hnd->fd, USB_DEVICE_DESCRIPTOR_TYPE, 0, 0,
(unsigned char*)&dev->descriptor,
sizeof(dev->descriptor), &actlen)
|| actlen != sizeof(dev->descriptor))
{
return 1;
}
// Descriptor as read from the device is in little-endian format. No need
// to convert since this is guaranteed to be Windows which runs only on
// little-endian processors.
return usb_close(hnd);
}开发者ID:4ib3r,项目名称:domoticz,代码行数:21,代码来源:libusbwinusbbridge.cpp
示例14: ftdibb_reset
int ftdibb_reset(usb_dev_handle *dev_handle,unsigned char what)
{
unsigned short value;
// lower 8 byte is bitmask,
//Set Bit Bang Mode
//40 -> bmRequestType
//0 -> bmRequest
//what -> lValue, what=0->reset sio,1 purge Rx, 2 purge Tx
//0 -> hValue
// index: 0 = default(sioA, 1 sioA, 2 sioB, 3 parallel
// rest is zero
//This resets the communication port
value=what & 0x3;
if (usb_control_msg(dev_handle, 0x40, 0, value, 0, NULL, 0, 4000) != 0){
usb_close (dev_handle);
fprintf(stderr,"ftdibb error: can not execute a reset. Not a ftdi BM chip??\n");
return(-1); // bitbang init fail
}
return(0);
}开发者ID:cyphunk,项目名称:sectk,代码行数:21,代码来源:ftdibb.c
示例15: close_usb_dev
void close_usb_dev(struct usb_dev_handle *devh)
{
#if defined(__linux)
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) && LINUX_VERSION_CODE |