本文整理汇总了C++中USBDevice::bulkRead方法的典型用法代码示例。如果您正苦于以下问题:C++ USBDevice::bulkRead方法的具体用法?C++ USBDevice::bulkRead怎么用?C++ USBDevice::bulkRead使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类USBDevice
的用法示例。
在下文中一共展示了USBDevice::bulkRead方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getUSBDevice
JNIEXPORT jint JNICALL Java_com_stericsson_sdk_equipment_io_usb_internal_USBNativeDevice_read(
JNIEnv *env, jobject src, jbyteArray data, jint offset, jint length,
jint timeout) {
try {
USBDevice *device = getUSBDevice(env, src);
if (device) {
jsize dataLength = env->GetArrayLength(data);
if ((offset < 0) || ((offset + length) > dataLength)) {
env->ThrowNew(env->FindClass(EX_ARRAY_INDEX_OUT_OF_BOUND),
"Given offset and length exceeds read buffer space!");
} else {
jbyte *buf = (jbyte *) malloc(length * sizeof(jbyte));
env->GetByteArrayRegion(data, offset, length, buf);
int ret = device->bulkRead(env, (char *) buf, length, timeout);
if (ret > 0) {
env->SetByteArrayRegion(data, offset, ret, buf);
}
free(buf);
return ret;
}
} else {
Logger::getInstance()->error(LP, "Cannot find device!");
}
} catch (const char *errorString) {
env->ThrowNew(env->FindClass(EX_NATIVE_EXCEPTION), errorString);
} catch (...) {
env->ThrowNew(env->FindClass(EX_NATIVE_EXCEPTION),
"Unexpected native call failure in method read!");
}
return UNDEF;
}