C++ usb

您所在的位置:网站首页 usb编程示例 C++ usb

C++ usb

2024-07-15 10:31| 来源: 网络整理| 查看: 265

本文整理汇总了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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3