这篇教程C++ usb_interrupt_read函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中usb_interrupt_read函数的典型用法代码示例。如果您正苦于以下问题:C++ usb_interrupt_read函数的具体用法?C++ usb_interrupt_read怎么用?C++ usb_interrupt_read使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了usb_interrupt_read函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: interrupt_read_temperaturevoid interrupt_read_temperature(usb_dev_handle *dev, float *tempC) { int r,i, temperature[2]; unsigned char answer[reqIntLen]; bzero(answer, reqIntLen); r = usb_interrupt_read(dev, 0x82, answer, reqIntLen, timeout); // If reading failed, retry once more... if( r != reqIntLen ) { r = usb_interrupt_read(dev, 0x82, answer, reqIntLen, timeout); } if( r != reqIntLen ) { perror("USB interrupt read"); bad("USB read failed"); } if(debug) { for (i=0;i<reqIntLen; i++) printf("%02x ",answer[i] & 0xFF); printf("/n"); } temperature[0] = (answer[3] & 0xFF) + ((signed char)answer[2] << 8); temperature[0] += calibration; tempC[0] = temperature[0] * (125.0 / 32000.0); temperature[1] = (answer[5] & 0xFF) + ((signed char)answer[4] << 8); temperature[1] += calibration; tempC[1] = temperature[1] * (125.0 / 32000.0);}
开发者ID:jeroensteenhuis,项目名称:pcsensor,代码行数:35,
示例2: interrupt_read_temperaturastatic int interrupt_read_temperatura(usb_dev_handle *dev, float *tempC) { int r,i, temperature; char answer[reqIntLen]; bzero(answer, reqIntLen); r = usb_interrupt_read(dev, 0x82, answer, reqIntLen, timeout); if( r != reqIntLen ) { if(debug){ printf("USB interrupt read"); } return -1; } if(debug) { for (i=0;i<reqIntLen; i++) printf("%02x ",answer[i] & 0xFF); printf("/n"); } temperature = (answer[3] & 0xFF) + (answer[2] << 8); *tempC = temperature * (125.0 / 32000.0); return 0;}
开发者ID:raff,项目名称:temper,代码行数:26,
示例3: test_control_transfer/* void test_control_transfer(usb_dev_handle *dev) {// usb_set_altinterface(dev, 0); usb_release_interface(dev, 0); }*/ void test_interrupt_transfer(usb_dev_handle *dev) { int r,i; char answer[reqIntLen]; char question[reqIntLen]; for (i=0;i<reqIntLen; i++) question[i]=i; r = usb_interrupt_write(dev, endpoint_Int_out, question, reqIntLen, timeout); if( r < 0 ) { perror("USB interrupt write"); bad("USB write failed"); } r = usb_interrupt_read(dev, endpoint_Int_in, answer, reqIntLen, timeout); if( r != reqIntLen ) { perror("USB interrupt read"); bad("USB read failed"); }// for (i=0;i<reqIntLen; i++) printf("%i, %i, /n",question[i],answer[i]); for(i = 0;i < reqIntLen; 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,代码行数:34,
示例4: usb_initvoid RF24ComVUsb::initialize(void){ const unsigned char rawVid[2] = {USB_CFG_VENDOR_ID}, rawPid[2] = {USB_CFG_DEVICE_ID}; char vendor[] = {USB_CFG_VENDOR_NAME, 0}, product[] = {USB_CFG_DEVICE_NAME, 0}; int vid, pid; int ret; uint8_t buffer[128]; usb_init(); vid = rawVid[1] * 256 + rawVid[0]; pid = rawPid[1] * 256 + rawPid[0]; if(usbOpenDevice(&handle, vid, vendor, pid, product, NULL, NULL, NULL) != 0) fatal(-1, "Could not find USB device /"%s/" with vid=0x%x pid=0x%x/n", product, vid, pid); // exmptiy thei interrupt queue DPRINT("Emptying usb interrupt queue..."); ret = usb_interrupt_read(handle, USB_ENDPOINT_IN | 1, (char *)buffer, sizeof(buffer), 100); DPRINT("done, returned %d./n", ret); DPRINT("Verifying protocol version/n"); buffer[0] = 4; buffer[1] = 1; buffer[2] = RF24_getProtocolVersion; buffer[3] = 0; sendRequest(buffer); getResponse(buffer); if (buffer[4] != RF24REMOTE_PROTOCOL_VERSION) fatal(-1, "usb client returned wrong protocol version. Expected:%d, received:%d/n", RF24REMOTE_PROTOCOL_VERSION, buffer[4]);}
开发者ID:kaqmak,项目名称:RF24,代码行数:31,
示例5: usbReadCode_USBDIO96Hint usbReadCode_USBDIO96H(HIDInterface* hid, __u32 address, __u8 count, __u8 data[]){ struct t_readCode { __u8 reportID; __u8 address[3]; __u8 count; } readCode; struct t_readCodeI { __u8 reportID; __u8 data[62]; } readCodeI; int bRead; // bytes read if ( count > 62 ) count = 62; readCode.reportID = READ_CODE; memcpy(readCode.address, &address, 3); // 24 bit address readCode.count = count; PMD_SendOutputReport(hid, READ_CODE, (__u8 *) &readCode, sizeof(readCode), FS_DELAY); do { readCode.reportID = 0x0; bRead = usb_interrupt_read(hid->dev_handle, USB_ENDPOINT_IN | 1, (char *) &readCodeI, count+1, FS_DELAY); } while (readCodeI.reportID != READ_CODE && (bRead != count+1)); memcpy(data, readCodeI.data, count); return bRead;}
开发者ID:chaitanyadatye,项目名称:SecureCore,代码行数:29,
示例6: 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,
示例7: 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,
示例8: gotemp_updateint gotemp_update(struct usense_device *dev, void *priv){ /* From the GoIO_SDK */ const double conversion = 0.0078125; struct gotemp *gotemp = priv; double kelvin; char buff[64]; int len; assert(sizeof(gotemp->packet) == 8); do { len = usb_interrupt_read(gotemp->usb, 0x81, (void *)&gotemp->packet, sizeof(gotemp->packet), 1000); if (len < 0 || len != sizeof(gotemp->packet)) { if (len == -EAGAIN) { continue; } return -EINVAL; } } while (0); kelvin = C_TO_K(((double) gotemp->packet.measurement0) * conversion); snprintf(buff, sizeof(buff), "%g", kelvin); return usense_prop_set(dev, "reading", buff);}
开发者ID:ezrec,项目名称:usense,代码行数:25,
示例9: interrupt_read_temperaturavoid interrupt_read_temperatura(usb_dev_handle *dev, float *tempInC, float *tempOutC) { int r,i, temperature; unsigned char answer[reqIntLen]; bzero(answer, reqIntLen); r = usb_interrupt_read(dev, 0x82, answer, reqIntLen, timeout); if( r != reqIntLen ) { perror("USB interrupt read"); bad("USB read failed"); } if(debug) { for (i=0;i<reqIntLen; i++) printf("%02x ",answer[i] & 0xFF); printf("/n"); } temperature = (answer[3] & 0xFF) + ((signed char)answer[2] << 8); temperature += calibration; *tempInC = temperature * (125.0 / 32000.0); temperature = (answer[5] & 0xFF) + ((signed char)answer[4] << 8); temperature += calibration; *tempOutC = temperature * (125.0 / 32000.0);}
开发者ID:MacMarc,项目名称:pcsensor,代码行数:28,
示例10: hid_readint HID_API_EXPORT hid_read(hid_device *dev, unsigned char *data, size_t length){ int bytes_read = -1; bytes_read = usb_interrupt_read(dev->device_handle, 0x81, data, length, -1); return bytes_read;}
开发者ID:psumbera,项目名称:wview,代码行数:8,
示例11: interrupt_readint interrupt_read(struct usb_dev_handle *handle, int ep, char *data, int datalength){ int r; r = usb_return(usb_interrupt_read(handle, ep, data, datalength, READ_TIMEOUT), "usb_interrupt_read"); return r;}
开发者ID:lukasmueller,项目名称:temper1,代码行数:9,
示例12: int INDI::USBDevice::ReadInterrupt(char *buf,int c,int timeout){ int rc; rc=usb_interrupt_read(usb_handle,InputEndpoint,buf,c,timeout); //rc=usb_bulk_read(usb_handle,InputEndpoint,buf,c,timeout); return rc;}
开发者ID:fiz1962,项目名称:INDI-Client,代码行数:9,
示例13: gusb_libusb_getstatic intgusb_libusb_get(garmin_usb_packet *ibuf, size_t sz){ unsigned char *buf = &ibuf->dbuf[0]; int r = -1; r = usb_interrupt_read(udev, gusb_intr_in_ep, (char *) buf, sz, TMOUT_I); return r;}
开发者ID:idaohang,项目名称:gpsbabel-flytec,代码行数:9,
示例14: USBDevice_internalFillReceiveBuffer/* This function assumes we have locked the receiveBuffer mutex! */unsigned int USBDevice_internalFillReceiveBuffer(LPSKYETEK_DEVICE device, unsigned int timeout){ unsigned char receiveBuffer[64]; LPUSB_DEVICE usbDevice; int result; unsigned char retried;#ifdef LINUX unsigned char flushBuffer[3];#endif if((device == NULL) || (device->user == NULL)) return 0; usbDevice = (LPUSB_DEVICE)device->user; /* We emptied the buffer so reset all of our pointers */ usbDevice->receiveBufferReadPtr = usbDevice->receiveBufferWritePtr = usbDevice->receiveBuffer;#ifdef LINUX retried = 0;again:#endif if((result = usb_interrupt_read(usbDevice->usbDevHandle, 1, receiveBuffer, 64, (timeout == 0) ? 100 : timeout)) < 0) { /*printf("usb_interrupt_read failed: %d/r/n", result);*/ #ifdef LINUX if(!retried) { flushBuffer[0] = 0x00; flushBuffer[1] = 0x00; flushBuffer[2] = 0x00; USBDevice_Write(device, flushBuffer, 3, 100); USBDevice_Flush(); retried = 1; }#endif return 0; }#ifdef LINUX usbDevice->packetParity++;#endif /*printf("Reading - %d /r/n", receiveBuffer[0]); for(size_t ix = 0; ix < receiveBuffer[0]; ix++) printf("%02x", receiveBuffer[ix]); printf("/r/n");*/ memcpy(usbDevice->receiveBuffer, (receiveBuffer + 1), receiveBuffer[0]); usbDevice->receiveBufferWritePtr = usbDevice->receiveBuffer + receiveBuffer[0]; return 1;}
开发者ID:JaegarSarauer,项目名称:DCOMM-Assign2,代码行数:57,
示例15: usb4all_data_io/** * Send a command with data to usb4all controller and reads the answer. * Even if some inputs should be read a command to do this has to send before. * /param p pointer to private data structure * /param data_out pointer to data send to controller * /param data_in pointer to buffer where read in data is stored * /return number of bytes read in */intusb4all_data_io(PrivateData *p, tx_buffer * data_out, tx_buffer * data_in){ int res; if (p->usbMode == MODE_BULK) { res = usb_bulk_write(p->usbHandle, p->usbEpOut, (char *)data_out->buffer, data_out->use_count, TIMEOUT_WRITE); } else { res = usb_interrupt_write(p->usbHandle, p->usbEpOut, (char *)data_out->buffer, data_out->use_count, TIMEOUT_WRITE); } if (res < 0) { p->hd44780_functions->drv_report(RPT_WARNING, "usb4all_data_io: unable to send, result = %d ...", res); return -1; } /* if a reset command is send the usb4all controller doesn't answer */ if (data_out->buffer[0] == USB4ALL_RESET) { return 0; } if (res != data_out->use_count) { p->hd44780_functions->drv_report(RPT_WARNING, "usb4all_data_io: Want to send %d bytes but currently only %d bytes was send!?", data_out->use_count, res); return -1; } if (p->usbMode == MODE_BULK) { res = usb_bulk_read(p->usbHandle, p->usbEpIn, (char *)data_in->buffer, USB4ALL_RX_MAX, TIMEOUT_READ); } else { res = usb_interrupt_read(p->usbHandle, p->usbEpIn, (char *)data_in->buffer, USB4ALL_RX_MAX, TIMEOUT_READ); } return res;}
开发者ID:FamousBonecrusher,项目名称:lcdproc-0.5.6_MCP23008,代码行数:63,
示例16: hidReadPollint hidReadPoll(char *buf,int Length, int id){ int rc; buf[0] = id; rc = usb_interrupt_read(usb_dev, EP_IN , buf+1 , Length, 5000);// rc = HidD_GetFeature(hHID, buf, Length);#if DEBUG_PKTDUMP memdump("RD", buf, Length);#endif return rc;}
开发者ID:iruka-,项目名称:ARM_BOOTLOADER,代码行数:11,
示例17: usbReadEndpointssize_tusbReadEndpoint ( UsbDevice *device, unsigned char endpointNumber, void *buffer, size_t length, int timeout) { UsbDeviceExtension *devx = device->extension; const UsbEndpoint *endpoint; if ((endpoint = usbGetInputEndpoint(device, endpointNumber))) { const UsbEndpointDescriptor *descriptor = endpoint->descriptor; UsbEndpointTransfer transfer = USB_ENDPOINT_TRANSFER(descriptor); ssize_t result = -1; switch (transfer) { case UsbEndpointTransfer_Bulk: result = usb_bulk_read(devx->handle, descriptor->bEndpointAddress, buffer, length, timeout); break; case UsbEndpointTransfer_Interrupt: result = usb_interrupt_read(devx->handle, descriptor->bEndpointAddress, buffer, length, timeout); break; default: logMessage(LOG_ERR, "USB endpoint input transfer not supported: 0X%02X", transfer); result = -ENOSYS; break; } if (result >= 0) { if (!usbApplyInputFilters(device, buffer, length, &result)) { result = -EIO; } } if (result >= 0) return result; errno = -result; }#if defined(__MINGW32__) && !defined(ETIMEDOUT)# define ETIMEDOUT 116#endif /* __MINGW32__ && !ETIMEDOUT */#ifdef ETIMEDOUT if (errno == ETIMEDOUT) errno = EAGAIN;#endif /* ETIMEDOUT */ if (errno != EAGAIN) logSystemError("USB endpoint read"); return -1;}
开发者ID:Feechka,项目名称:UOBP,代码行数:54,
示例18: clearLibusbJavaError/* * Class: ch_ntb_usb_LibusbJava * Method: usb_interrupt_read * Signature: (JI[BII)I */JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1interrupt_1read (JNIEnv *env, jclass obj, jlong dev_handle, jint ep, jbyteArray jbytes, jint size, jint timeout) { clearLibusbJavaError(); char *bytes = (char *) malloc(size * sizeof(char)); int num_bytes = usb_interrupt_read((usb_dev_handle *) dev_handle, ep, bytes, size, timeout); if (!bytes) { return num_bytes; } (*env)->SetByteArrayRegion(env, jbytes, 0, size, (jbyte *) bytes); free(bytes); return num_bytes; }
开发者ID:vpereira,项目名称:golden_unicorn,代码行数:16,
|