这篇教程C++ usb_bulk_write函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中usb_bulk_write函数的典型用法代码示例。如果您正苦于以下问题:C++ usb_bulk_write函数的具体用法?C++ usb_bulk_write怎么用?C++ usb_bulk_write使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了usb_bulk_write函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: rfidtag_xchange /* ** rfidtag_xchange(udp, *outp, out_len, *inp, in_len) ** send a command to the reader and gets the answer ** returns 0 if all goes well; -1 if not **LOCKED IN */intrfidtag_xchange (struct usb_dev_handle *udp, char *outp, int out_len, char *inp, int in_len){ int bytes_sent; int bytes_recv; count++; if ((bytes_sent = usb_bulk_write (udp, 0x02, (char *) outp, out_len, 10)) < 0) { if ((bytes_sent = usb_bulk_write (udp, 0x02, (char *) outp, out_len, 10)) < 0) { perror ("usb_bulk_write"); } } if ((bytes_recv = usb_bulk_read (udp, 0x82, (char *) inp, in_len, 10)) < 0) { if ((bytes_recv = usb_bulk_read (udp, 0x82, (char *) inp, in_len, 100)) < 0) { perror ("usb_bulk_read"); return (-1); } } return bytes_recv;}
开发者ID:micschk,项目名称:python-rfidtag,代码行数:35,
示例2: qDebugqint32 LibUsb::write(QByteArray *buf, const quint32 bytes){ // check it isn't closed if (!this->device) return -1; QString cmd, s; for (int i=0; i<buf->size(); i++) { cmd.append(s.sprintf("%02X",(uchar)buf->at(i))+":"); } cmd.remove(cmd.size()-1, 1); //remove last colon qDebug() << "Sending" << buf->size() << "bytes:" << cmd; // we use a non-interrupted write on Linux/Mac since the interrupt // write block size is incorectly implemented in the version of // libusb we build with. It is no less efficent.#if defined Q_OS_MAC || WIN32 || __linux__ qint32 rc = usb_bulk_write(this->device, this->writeEndpoint, buf->data(), bytes, USB_TIMEOUT_MSEC);#else // Workaround for OSX with the brew libusb package... qint32 rc = usb_bulk_write(this->device, this->writeEndpoint, buf->constData(), bytes, USB_TIMEOUT_MSEC);#endif if (rc < 0) { if (rc == -110) qDebug() << "Timeout"; else if (rc == -2) qCritical() << "EndPoint not found"; else qCritical() << "usb_interrupt_write Error writing: "<< usb_strerror(); } return rc;}
开发者ID:Dionysios,项目名称:STM_Library_2,代码行数:34,
示例3: write_configuration_block_USB500void write_configuration_block_USB500( usb_dev_handle *udev, configurationBlock *cblock ){ __u8 send_configuration[3] = {0x01, 0xff, 0xff}; // Send Configuration String __u8 acknowledge = 0x0; // Acknowledge unsigned int size = 0; int ret; /* Determine the size of the Configuration Block */ switch(cblock->type) { case 0x1: // EL-USB-1 Temperature Logger Packet size 64 bytes case 0x2: // EL-USB-1 Temperature Logger Packet size 64 bytes send_configuration[1] = 0x40; // Low Byte send_configuration[2] = 0x00; // High Byte size = 64; break; case 0x3: // EL-USB-2 Temperature/Humidity Logger Packet size 128 bytes send_configuration[1] = 0x80; // Low Byte send_configuration[2] = 0x00; // High Byte size = 128; break; case 0x4: // EL-USB-3 Voltage Logger 256 bytes case 0x6: // EL-USB-3 Voltage Logger 256 bytes case 0x5: // EL-USB-4 Current Logger 256 bytes case 0x7: // EL-USB-4 Current Logger 256 bytes send_configuration[1] = 0x00; // Low Byte send_configuration[2] = 0x01; // High Byte size = 256; break; default: printf("Unknown type device = %d/n", cblock->type); return; break; } unlock_device_USB500(udev); ret = usb_bulk_write(udev, USB_ENDPOINT_OUT | 2, (char *) send_configuration, 3, USB500_WAIT_WRITE); if (ret < 0) { perror("Error in sending configuration acknowledgement (Bulk Write)"); } ret = usb_bulk_write(udev, USB_ENDPOINT_OUT | 2, (char *) cblock, size, USB500_WAIT_WRITE); if (ret < 0) { perror("Error in sending configuration block (Bulk Write)"); } acknowledge = 0x0; do { ret = usb_bulk_read(udev, USB_ENDPOINT_IN|2, (char *) &acknowledge, 1, USB500_WAIT_READ); } while (acknowledge != 0xff); lock_device_USB500(udev);}
开发者ID:chaitanyadatye,项目名称:SecureCore,代码行数:56,
示例4: wrap_scsistatic int wrap_scsi(DPFContext * h, unsigned char *cmd, int cmdlen, char out, unsigned char *data, unsigned long block_len){ int len; int ret; static unsigned char ansbuf[13]; // Do not change size. g_buf[14] = cmdlen; memcpy(&g_buf[15], cmd, cmdlen); g_buf[8] = block_len; g_buf[9] = block_len >> 8; g_buf[10] = block_len >> 16; g_buf[11] = block_len >> 24; ret = usb_bulk_write(h->udev, ENDPT_OUT, (const char *) g_buf, sizeof(g_buf), 1000); if (ret < 0) return ret; if (out == DIR_OUT) { if (data) { ret = usb_bulk_write(h->udev, ENDPT_OUT, (const char *) data, block_len, 3000); if (ret != (int) block_len) { fprintf(stderr, "dpf_ax ERROR: bulk write./n"); return ret; } } } else if (data) { ret = usb_bulk_read(h->udev, ENDPT_IN, (char *) data, block_len, 4000); if (ret != (int) block_len) { fprintf(stderr, "dpf_ax ERROR: bulk read./n"); return ret; } } // get ACK: len = sizeof(ansbuf); int retry = 0; int timeout = 0; do { timeout = 0; ret = usb_bulk_read(h->udev, ENDPT_IN, (char *) ansbuf, len, 5000); if (ret != len) { fprintf(stderr, "dpf_ax ERROR: bulk ACK read./n"); timeout = 1; } retry++; } while (timeout && retry < 5); if (strncmp((char *) ansbuf, "USBS", 4)) { fprintf(stderr, "dpf_ax ERROR: got invalid reply/n."); return -1; } // pass back return code set by peer: return ansbuf[12];}
开发者ID:KCFTech,项目名称:lcd4linux,代码行数:54,
示例5: emulate_scsiint emulate_scsi(usb_dev_handle *dev, unsigned char *cmd, int cmdlen, char out, unsigned char *data, unsigned long block_len){ int len; int ret; static unsigned char ansbuf[13]; // Do not change size. g_buf[14] = cmdlen; memcpy(&g_buf[15], cmd, cmdlen); g_buf[8] = block_len; g_buf[9] = block_len >> 8; g_buf[10] = block_len >> 16; g_buf[11] = block_len >> 24; ret = usb_bulk_write(dev, ENDPT_OUT, g_buf, sizeof(g_buf), 1000); if (ret < 0) return ret; if (out == DIR_OUT) { if (data) { ret = usb_bulk_write(dev, ENDPT_OUT, (const char* )data, block_len, 3000); if (ret != block_len) { perror("bulk write"); return ret; } } } else if (data) { ret = usb_bulk_read(dev, ENDPT_IN, (char *) data, block_len, 4000); if (ret != block_len) { perror("bulk data read"); } } // get ACK: len = sizeof(ansbuf); int retry = 0; do { ret = usb_bulk_read(dev, ENDPT_IN, (char *) ansbuf, len, 5000); if (ret != len) { perror("bulk ACK read"); ret = DEVERR_TIMEOUT; } retry++; } while (ret == DEVERR_TIMEOUT && retry < 5); if (strncmp((char *) ansbuf, "USBS", 4)) { return handle_error("Got invalid reply/n"); } // pass back return code set by peer: return ansbuf[12];}
开发者ID:jvanvinkenroye,项目名称:painload,代码行数:50,
示例6: pn53x_usb_bulk_writeintpn53x_usb_bulk_write (struct pn53x_usb_data *data, uint8_t abtTx[], const size_t szTx, const int timeout){ LOG_HEX ("TX", abtTx, szTx); int res = usb_bulk_write (data->pudh, data->uiEndPointOut, (char *) abtTx, szTx, timeout); if (res > 0) { // HACK This little hack is a well know problem of USB, see http://www.libusb.org/ticket/6 for more details if ((res % data->uiMaxPacketSize) == 0) { usb_bulk_write (data->pudh, data->uiEndPointOut, "/0", 0, timeout); } } else { log_put (LOG_CATEGORY, NFC_PRIORITY_ERROR, "Unable to write to USB (%s)", _usb_strerror (res)); } return res;}
开发者ID:copacetic,项目名称:tabulator,代码行数:15,
示例7: send_usbint send_usb(const char *msg, struct my_usb_device *mydev, struct fpga_packet_header *phead, int len, int timeout){ char *p = (char *)phead; int ret; if(verbose >= LOG_DEBUG) dump_packet(msg, p, len); if(mydev->my_ep_out & USB_ENDPOINT_IN) { ERR("send_usb called with an input endpoint 0x%x/n", mydev->my_ep_out); return -EINVAL; } ret = usb_bulk_write(mydev->handle, mydev->my_ep_out, p, len, timeout); if(ret < 0) { /* * If the device was gone, it may be the * result of renumeration. Ignore it. */ if(ret != -ENODEV) { ERR("bulk_write to endpoint 0x%x failed: %s/n", mydev->my_ep_out, usb_strerror()); dump_packet("send_usb[ERR]", p, len); } else { disconnected = 1; my_usb_device_cleanup(mydev); } return ret; } else if(ret != len) { ERR("bulk_write to endpoint 0x%x short write: %s/n", mydev->my_ep_out, usb_strerror()); dump_packet("send_usb[ERR]", p, len); return -EFAULT; } return ret;}
开发者ID:commshare,项目名称:squeezeterisk,代码行数:32,
示例8: usb_storage_read_capacityu8 usb_storage_read_capacity(u8 device){ /* send cwb "usbc" */ u8 tmp[8]; u8 i; usb_storage_cbw * cbw = (usb_storage_cbw*)malloc(sizeof(usb_storage_cbw)); usb_control_msg(massstorage[device], 0x02,1,0, 0x8100, 0,tmp, 0); cbw->dCBWSignature= 0x43425355; cbw->dCBWTag=0x826A6008; cbw->dCBWDataTransferLength=0x00000008; cbw->bCWDFlags=0x80; cbw->bCBWLun=0x00; cbw->bCBWCBLength=0x0A; for(i=0;i<16;i++) cbw->CBWCB[i]=0x00; cbw->CBWCB[0]=0x25; // 0x12 = INQUIRY usb_bulk_write(massstorage[device], 2, (u8*)cbw, 31, 0); usb_bulk_read(massstorage[device], 1, (u8*)cbw, 8, 0); usb_bulk_read(massstorage[device], 1, (u8*)cbw, 13, 0); free(cbw); return 0;}
开发者ID:lewurm,项目名称:ppcskel,代码行数:30,
示例9: ep1_generic_commandl/* * ep1 commands are up to USB_EP1OUT_SIZE bytes in length. * This function takes care of zeroing the unused bytes before sending the packet. * Any reply packet is not handled by this function. */static int ep1_generic_commandl(usb_dev_handle *pHDev_param, size_t length, ...){ uint8_t usb_buffer[USB_EP1OUT_SIZE]; uint8_t *usb_buffer_p; va_list ap; int usb_ret; if (length > sizeof(usb_buffer)) length = sizeof(usb_buffer); usb_buffer_p = usb_buffer; va_start(ap, length); while (length > 0) { *usb_buffer_p++ = va_arg(ap, int); length--; } memset( usb_buffer_p, 0, sizeof(usb_buffer) - (usb_buffer_p - usb_buffer) ); usb_ret = usb_bulk_write( pHDev_param, USB_EP1OUT_ADDR, (char *)usb_buffer, sizeof(usb_buffer), USB_TIMEOUT_MS ); return usb_ret;}
开发者ID:01org,项目名称:CODK-A-Flashpack,代码行数:38,
示例10: mainint main(int argc, char *argv[]) { if (2 != argc) { usage(); return 1; } struct usb_dev_handle *hdev = open_port(); if (!hdev) { return 1; } unsigned int len = 0; unsigned char* write_buf = prepare_write_buf(argv[1], &len); if (NULL == write_buf) return 1; unsigned int remain = len; unsigned int towrite; printf("Writing data .../n"); while (remain) { towrite = remain > 512 ? 512 : remain; if (towrite != usb_bulk_write(hdev, 0x03, write_buf + (len - remain), towrite, 3000)) { perror("usb_bulk_write failed"); break; } remain -= towrite; printf("/r%d%/t %d bytes ", (len - remain) * 100 / len, len - remain); fflush(stdout); } if (0 == remain) printf("Done!/n"); return 0;}
开发者ID:cutecheng,项目名称:rounder,代码行数:35,
示例11: xusb_sendint xusb_send(struct xusb *xusb, char *buf, int len, int timeout){ int ret; dump_packet(LOG_DEBUG, DBG_MASK, __FUNCTION__, buf, len); if(EP_OUT(xusb) & USB_ENDPOINT_IN) { ERR("%s called with an input endpoint 0x%x/n", __FUNCTION__, EP_OUT(xusb)); return -EINVAL; } ret = usb_bulk_write(xusb->handle, EP_OUT(xusb), buf, len, timeout); if(ret < 0) { /* * If the device was gone, it may be the * result of renumeration. Ignore it. */ if(ret != -ENODEV) { ERR("bulk_write to endpoint 0x%x failed: (%d) %s/n", EP_OUT(xusb), ret, usb_strerror()); dump_packet(LOG_ERR, DBG_MASK, "xbus_send[ERR]", buf, len); //exit(2); } else { DBG("bulk_write to endpoint 0x%x got ENODEV/n", EP_OUT(xusb)); xusb_close(xusb); } return ret; } else if(ret != len) { ERR("bulk_write to endpoint 0x%x short write: (%d) %s/n", EP_OUT(xusb), ret, usb_strerror()); dump_packet(LOG_ERR, DBG_MASK, "xbus_send[ERR]", buf, len); return -EFAULT; } return ret;}
开发者ID:YongHoJang,项目名称:dahdi-tools,代码行数:33,
示例12: musb_writeint musb_write(MUSB_INTERFACE *musb_interface, int endpoint, const void *buf, int count, int timeout){ int n_written;#if defined(HAVE_LIBUSB) n_written = usb_bulk_write(musb_interface->dev, endpoint, (char*)buf, count, timeout); if (n_written != count) { fprintf(stderr, "musb_write: requested %d, wrote %d, errno %d (%s)/n", count, n_written, errno, strerror(errno)); }#elif defined(HAVE_LIBUSB10) int status = libusb_bulk_transfer(musb_interface->dev, endpoint, (unsigned char*)buf, count, &n_written, timeout); if (n_written != count) { fprintf(stderr, "musb_write: requested %d, wrote %d, errno %d (%s)/n", count, n_written, status, strerror(status)); }#elif defined(OS_DARWIN) IOReturn status; IOUSBInterfaceInterface182 **interface = (IOUSBInterfaceInterface182 **)musb_interface->interface; status = (*interface)->WritePipeTO(interface, endpoint, buf, count, 0, timeout); if (status != 0) { fprintf(stderr, "musb_write: WritePipe() status %d 0x%x/n", status, status); return -1; } n_written = count;#elif defined(_MSC_VER) WriteFile(musb_interface->whandle, buf, count, &n_written, NULL);#endif //fprintf(stderr, "musb_write(ep %d, %d bytes) (%s) returns %d/n", endpoint, count, buf, n_written); return n_written;}
开发者ID:andrewpeck,项目名称:drs4-daq,代码行数:31,
示例13: write_cmdint write_cmd(usb_dev_handle *udev, unsigned char *cmd, int read){ int ret=0, i=0; unsigned char receive_data[1024]; unsigned char interrupt_data; for (i=0; i<1024; i++) receive_data[i] = 0x00; printf("write_cmd/n"); ret = usb_bulk_write(udev, 0x02, cmd, sizeof(cmd), 10000); if (ret != sizeof(cmd)) printf("Error!/n"); //if (read) { ret = usb_bulk_read(udev, 0x81, receive_data, sizeof(receive_data), 10000); mcrw_debug(receive_data, ret); } //else { ret = usb_interrupt_read(udev, 0x83, &interrupt_data, 1, 10000); mcrw_debug(&interrupt_data, ret); } return 0;}
开发者ID:audiohacked,项目名称:audiohacked,代码行数:26,
示例14: grecko_readint grecko_read(unsigned long addr, unsigned char *buf, int size){ unsigned char data[8]; unsigned long addr2 = addr+size; unsigned char *ptr = (unsigned char*) &addr; int i, ret; addr = htonl(addr - (addr%4)); addr2 = htonl(addr2 - (addr2%4)); /* read command */ grecko_send_command(4); /* memory offsets */ memcpy(data, addr, 4); memcpy(data, addr2, 4); usb_bulk_write(dev, ep, (unsigned char *)&data, 8, timeout); /* data read */ ret = usb_bulk_read(dev, ep, (unsigned char *)buf, 4096, timeout); if (ret < 0) return -1; for(i=0;i<ret;i++) { printf("%02x ", readbuf[i]); } return ret;}
开发者ID:111X,项目名称:radare,代码行数:28,
示例15: send_cancel/* Optimised packet handling to reduce overhead during bulk file transfers. */int send_cancel(libusb_device_handle* fd){ trace(3, printf("send_cancel/n")); return usb_bulk_write(fd, 0x01, cancel_packet, 8, default_timeout());}
开发者ID:q-bits,项目名称:Antares,代码行数:8,
示例16: cable_usbblaster_outint cable_usbblaster_out(uint8_t value){ int rv; // to catch return values of functions char out; int err = APP_ERR_NONE; // open the device, if necessary if(h_device == NULL) { rv = cable_usbblaster_open_cable(); if(rv != APP_ERR_NONE) return rv; } out = (USBBLASTER_CMD_OE | USBBLASTER_CMD_nCS); // Set output enable (appears necessary) and nCS (necessary for byte-shift reads) // Translate to USB blaster protocol // USB-Blaster has no TRST pin if(value & TCLK_BIT) out |= USBBLASTER_CMD_TCK; if(value & TDI_BIT) out |= USBBLASTER_CMD_TDI; if(value & TMS_BIT) out |= USBBLASTER_CMD_TMS; rv = usb_bulk_write(h_device, EP2, &out, 1, USB_TIMEOUT); if (rv != 1){ fprintf(stderr, "/nFailed to write to the FIFO (rv = %d):/n%s", rv, usb_strerror()); err |= APP_ERR_USB; } return err;}
开发者ID:tjbramer,项目名称:bemicro_cv_a9_sopc,代码行数:32,
示例17: lothar_usb_writeint lothar_usb_write(void *connection, uint8_t const *data, size_t len){ int status = usb_bulk_write((usb_dev_handle *)connection, USB_ENDPOINT_OUT | 1, (char *)data, len, 0); if(status < 0) LOTHAR_RETURN_ERROR(LOTHAR_ERROR_NXT_WRITE_ERROR); return status;}
开发者ID:klaasjacobdevries,项目名称:lothar,代码行数:7,
示例18: int TCD2Usb::TCD2Usb_bulk_write_EP1OUT(const char *buf, size_t nbytes){ int retval = 0; // EP1OUT only takes 64 bytes total if( nbytes > 64 ) { // printf("TCD2Usb::TCD2Usb_bulk_write_EP1OUT: > 64 bytes for EP1OUT write/n"); return -TCD2USB_WRITE_TOO_MANY_BYTES_ERR; } // Check if TCD USB device is open if(!IsOpen()) { // printf("TCD2Usb::TCD2Usb_bulk_write_EP1OUT: TCD2 USB device not open!/n"); return -TCD2USB_OPEN_ERR; } // Check if TCD USB device is claimed if(!IsClaimed()) { // printf("TCD2Usb::TCD2Usb_bulk_write_EP1IN: TCD2 USB device not claimed!/n"); return -TCD2USB_CLAIM_ERR; } // Write to EP1OUT if( (retval = usb_bulk_write(usbhdl,1,(char*)buf,nbytes,10)) < 0 )// timeout is ms { // printf("TCD2Usb::TCD2Usb_bulk_write: Write attempt failed. Returned %d/n",retval); // printf("usbhdl = %d/n",usbhdl); return -TCD2USB_WRITE_ERR; } //printf("Was able to write/n"); return 0;}
开发者ID:tba109,项目名称:tgacs,代码行数:35,
示例19: camera_bulk_writeint camera_bulk_write(usb_dev_handle *handle, char *buffer, int length){ if(verbose) fprintf(stderr, "CAMERA BULK WRITE %x/n", length); return usb_bulk_write(handle, CAMERA_BULK_WRITE_EP, buffer, length, USB_TIMEOUT);}
开发者ID:acekiller,项目名称:MasterThesis,代码行数:7,
示例20: sendBuffervoid sendBuffer(char* buffer, size_t size) { OpenIBootCmd cmd; cmd.command = OPENIBOOTCMD_SENDCOMMAND; cmd.dataLen = size; usb_interrupt_write(device, 4, (char*) (&cmd), sizeof(OpenIBootCmd), 1000); while(1) { usb_interrupt_read(device, 3, (char*) (&cmd), sizeof(OpenIBootCmd), 1000); if(cmd.command == OPENIBOOTCMD_SENDCOMMAND_GOAHEAD) break; } int toSend = 0; while(size > 0) { if(size <= MAX_TO_SEND) toSend = size; else toSend = MAX_TO_SEND; usb_bulk_write(device, 2, buffer, toSend, 1000); buffer += toSend; size -= toSend; }}
开发者ID:Bluerise,项目名称:iphonelinux,代码行数:26,
示例21: versaloon_libusb_comm_transactstatic vsf_err_t versaloon_libusb_comm_transact(uint8_t *buffer_out, uint16_t out_len, uint8_t *buffer_in, uint16_t *in_len){ int ret; ret = usb_bulk_write(versaloon_device_handle, usb_param_epout(), (char *)buffer_out, out_len, versaloon_to); if (ret != out_len) { LOG_ERROR(ERRMSG_FAILURE_OPERATION_ERRSTRING, "send usb data", usb_strerror()); return ERRCODE_FAILURE_OPERATION; } if (in_len != NULL) { ret = usb_bulk_read(versaloon_device_handle, usb_param_epin(), (char *)buffer_in, *in_len, versaloon_to); if (ret > 0) { *in_len = (uint16_t)ret; return VSFERR_NONE; } else { LOG_ERROR(ERRMSG_FAILURE_OPERATION_ERRSTRING, "receive usb data", usb_strerror()); return VSFERR_FAIL; } } else { return VSFERR_NONE; }}
开发者ID:Roscou,项目名称:versaloon,代码行数:35,
示例22: SendCommandvoid SendCommand(UsbCommand *c){ int ret;#if 0 printf("Sending %d bytes/n", sizeof(UsbCommand));#endif ret = usb_bulk_write(devh, 0x01, (char*)c, sizeof(UsbCommand), 1000); if (ret<0) { error_occured = 1; if (return_on_error) return; fprintf(stderr, "write failed: %s!/nTrying to reopen device.../n", usb_strerror()); if (devh) { usb_close(devh); devh = NULL; } while(!OpenProxmark(0)) { sleep(1); } printf(PROXPROMPT); fflush(NULL); return; }}
开发者ID:Proxmark,项目名称:proxmark3,代码行数:27,
示例23: usb_interrupt_writeint LibUsb::write(char *buf, int bytes, int timeout){ // check it isn't closed if (!device) return -1; int rc; if (OperatingSystem == WINDOWS) { rc = usb_interrupt_write(device, writeEndpoint, buf, bytes, 1000); } else { // we use a non-interrupted write on Linux/Mac since the interrupt // write block size is incorrectly implemented in the version of // libusb we build with. It is no less efficient. rc = usb_bulk_write(device, writeEndpoint, buf, bytes, timeout); } if (rc < 0) { // Report timeouts - previously we ignored -110 errors. This masked a serious // problem with write on Linux/Mac, the USB stick needed a reset to avoid // these error messages, so we DO report them now qDebug()<<"usb_interrupt_write Error writing ["<<rc<<"]: "<< usb_strerror(); } return rc;}
开发者ID:WaterworthD,项目名称:GoldenCheetah,代码行数:26,
示例24: WriteUSB/***************************************************************************** * * WriteUSB * ****************************************************************************/status_t WriteUSB(unsigned int reader_index, unsigned int length, unsigned char *buffer){ int rv; char debug_header[] = "-> 121234 "; (void)snprintf(debug_header, sizeof(debug_header), "-> %06X ", (int)reader_index); DEBUG_XXD(debug_header, buffer, length); rv = usb_bulk_write(usbDevice[reader_index].handle, usbDevice[reader_index].bulk_out, (char *)buffer, length, USB_WRITE_TIMEOUT); if (rv < 0) { DEBUG_CRITICAL4("usb_bulk_write(%s/%s): %s", usbDevice[reader_index].dirname, usbDevice[reader_index].filename, strerror(errno)); if (ENODEV == errno) return STATUS_NO_SUCH_DEVICE; return STATUS_UNSUCCESSFUL; } return STATUS_SUCCESS;} /* WriteUSB */
开发者ID:andyvand,项目名称:pcsc-lite-clone,代码行数:34,
示例25: mcrw_addr_debugunsigned char *mc2rw_read_page(usb_dev_handle *udev, int page){ int i=0, p=0, wret=0, rret=0; int prev_size; static unsigned char data_p[USB_FRAMESIZE*4], temp_data[USB_FRAMESIZE]; struct psx_usb_read_receive_buf receive_data; mcrw_addr_debug(page); mc2rw_read_set_sector(udev, page); /* read data */ printf("Reading Data/n"); for (p=0; p<4; p++) { unsigned char send_data[148] = {0xaa, 0x42, 0x90, 0x00, 0x81, 0x43, 0x80, 0x00, 0x00}; //mcrw_debug(send_data, sizeof(send_data)); wret = usb_bulk_write(udev, 0x02, send_data, sizeof(send_data), 1000); rret = usb_bulk_read(udev, 0x81, temp_data, sizeof(temp_data), 1000); //printf("segment: &(data_p[%d]) = 0x%X/n", USB_FRAMESIZE*p, &(data_p[USB_FRAMESIZE*p])); memcpy(&(data_p[USB_FRAMESIZE*p]), temp_data, rret); } mcrw_debug(data_p, sizeof(data_p)); mc2rw_read_ecc(udev); mc2rw_read_commit(udev); return data_p;}
开发者ID:audiohacked,项目名称:audiohacked,代码行数:30,
示例26: grub_usb_bulk_writegrub_usb_err_tgrub_usb_bulk_write (grub_usb_device_t dev, int endpoint, grub_size_t size, char *data){ usb_dev_handle *devh; struct usb_device *d = dev->data; devh = usb_open (d); if (usb_claim_interface (devh, 0) < 0) goto fail; if (usb_bulk_write (devh, endpoint, data, size, 20) < 0) goto fail; if (usb_release_interface (devh, 0) < 0) goto fail; usb_close (devh); return GRUB_USB_ERR_NONE; fail: usb_close (devh); return GRUB_USB_ERR_STALL;}
开发者ID:Der-Jan,项目名称:grub-zfs,代码行数:25,
示例27: usb_storage_inquiryu8 usb_storage_inquiry(u8 device){ /* send cwb "usbc" */ usb_storage_cbw *cbw = (usb_storage_cbw*)malloc(sizeof(usb_storage_cbw)); cbw->dCBWSignature= 0x43425355; cbw->dCBWTag=0x826A6008; cbw->dCBWDataTransferLength=0x00000024; cbw->bCWDFlags=0x80; cbw->bCBWLun=0x00; cbw->bCBWCBLength=0x01; u8 i; for(i=0;i<16;i++) cbw->CBWCB[i]=0x00; cbw->CBWCB[0]=0x12; // 0x12 = INQUIRY usb_bulk_write(massstorage[device], 2, (u8*)cbw, 31, 0); usb_bulk_read(massstorage[device], 1, (u8*)cbw, 36, 0); usb_bulk_read(massstorage[device], 1, (u8*)cbw, 13, 0); free(cbw); return 0;}
开发者ID:lewurm,项目名称:ppcskel,代码行数:26,
示例28: test_bulk_transfer void test_bulk_transfer(usb_dev_handle *dev) { int r,i; char answer[reqBulkLen]; char question[reqBulkLen]; for (i=0;i<reqBulkLen; i++) question[i]=i; r = usb_bulk_write(dev, endpoint_Bulk_out, question, reqBulkLen, timeout); if( r < 0 ) { perror("USB bulk write"); bad("USB write failed"); } r = usb_bulk_read(dev, endpoint_Bulk_in, answer, reqBulkLen, timeout); if( r != reqBulkLen ) { perror("USB bulk read"); bad("USB read failed"); }// for (i=0;i<reqBulkLen;i++) printf("%i, %i, /n",question[i],answer[i]); for(i = 0;i < reqBulkLen; i++) { if(i%8 == 0) printf("/n"); printf("%02x, %02x; ",question[i],answer[i]); } printf("/n");// usb_set_altinterface(dev, 0); usb_release_interface(dev, 0); }
开发者ID:gxliu,项目名称:lvr_winusb,代码行数:26,
示例29: WriteUSB/***************************************************************************** * * WriteUSB * ****************************************************************************/status_t WriteUSB(unsigned int reader_index, unsigned int length, unsigned char *buffer){ int rv; char debug_header[] = "-> 121234 "; int pos; int len; int delayed = FALSE; (void)snprintf(debug_header, sizeof(debug_header), "-> %06X ", (int)reader_index); DEBUG_XXD(debug_header, buffer, length); // Fix APG8201 and ACR85 ICC cannot receive command properly // Add delay for APG8201 and ACR85 ICC if ((usbDevice[reader_index].ccid.readerID == ACS_APG8201) || (usbDevice[reader_index].ccid.readerID == ACS_ACR85_PINPAD_READER_ICC)) { delayed = TRUE; } // Send command by dividing number of packets pos = 0; while (length > 0) { if (length > usbDevice[reader_index].bulkOutMaxPacketSize) len = usbDevice[reader_index].bulkOutMaxPacketSize; else len = length; rv = usb_bulk_write(usbDevice[reader_index].handle, usbDevice[reader_index].bulk_out, (char *)buffer + pos, len, USB_WRITE_TIMEOUT); if (rv < 0) { DEBUG_CRITICAL4("usb_bulk_write(%s/%s): %s", usbDevice[reader_index].dirname, usbDevice[reader_index].filename, strerror(errno)); if (ENODEV == errno) return STATUS_NO_SUCH_DEVICE; return STATUS_UNSUCCESSFUL; } if (delayed) { // Delay 10 ms if (length > usbDevice[reader_index].bulkOutMaxPacketSize) usleep(10 * 1000); } pos += len; length -= len; } return STATUS_SUCCESS;} /* WriteUSB */
开发者ID:timmattison,项目名称:timmattison-acr122-software,代码行数:65,
注:本文中的usb_bulk_write函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ usb_bus_mem_alloc_all函数代码示例 C++ usb_bulk_read函数代码示例 |