本文整理汇总了Java中javax.usb.UsbEndpoint.getUsbPipe方法的典型用法代码示例。如果您正苦于以下问题:Java UsbEndpoint.getUsbPipe方法的具体用法?Java UsbEndpoint.getUsbPipe怎么用?Java UsbEndpoint.getUsbPipe使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类javax.usb.UsbEndpoint
的用法示例。
在下文中一共展示了UsbEndpoint.getUsbPipe方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: initialize
import javax.usb.UsbEndpoint; //导入方法依赖的package包/类
protected void initialize() throws SecurityException, UsbException {
UsbServices services = UsbHostManager.getUsbServices();
UsbHub usbHub = services.getRootUsbHub();
UsbDevice theDevice = findDevice(usbHub, targetVendor, targetProduct);
if (theDevice == null) {
logger.warn("Could not find the device. The driver is not operable.");
return;
}
for (Object i : theDevice.getActiveUsbConfiguration().getUsbInterfaces()) {
UsbInterface intf = (UsbInterface) i;
for (Object e : intf.getUsbEndpoints()) {
UsbEndpoint endp = (UsbEndpoint) e;
if (endp.getDirection() == UsbConst.ENDPOINT_DIRECTION_IN) {
this.pipe = endp.getUsbPipe();
}
}
}
}
示例2: sendMessage
import javax.usb.UsbEndpoint; //导入方法依赖的package包/类
/**
* Sends an ADB Message.
*
* @param message
* The message to send.
* @throws UsbException
* When USB communication failed.
*/
public void sendMessage(Message message) throws UsbException
{
UsbEndpoint outEndpoint =
this.iface.getUsbEndpoint(this.outEndpoint);
UsbPipe outPipe = outEndpoint.getUsbPipe();
MessageHeader header = message.getHeader();
outPipe.open();
try
{
int sent = outPipe.syncSubmit(header.getBytes());
if (sent != MessageHeader.SIZE)
throw new InvalidMessageException(
"Invalid ADB message header size sent: " + sent);
sent = outPipe.syncSubmit(message.getData());
if (sent != header.getDataLength())
throw new InvalidMessageException(
"Data size mismatch in sent ADB message. Should be "
+ header.getDataLength() + " but is " + sent);
}
finally
{
outPipe.close();
}
}
示例3: sendBulkTransfer
import javax.usb.UsbEndpoint; //导入方法依赖的package包/类
private int sendBulkTransfer(UsbEndpoint usbEndpoint, byte[] data) throws UsbException{
int returnCode = -1;
if(UsbConst.ENDPOINT_DIRECTION_OUT == usbEndpoint.getDirection()){
mLogger.debug("sendBulkTransfer - direction: OUT, byteString: {}", getByteString(data));
}
UsbPipe usbPipe = usbEndpoint.getUsbPipe();
if (usbPipe != null) {
if(!usbPipe.isOpen()){
usbPipe.open();
}
if (usbPipe.isOpen()) {
UsbIrp usbIrp = usbPipe.createUsbIrp();
usbIrp.setData(data);
//TODO: data length does not need to be set explicitly
// int dataLength = (data == null) ? 0 : data.length;
// usbIrp.setLength(dataLength);
usbPipe.syncSubmit(usbIrp);
if (!usbIrp.isUsbException()) {
returnCode = usbIrp.getActualLength();
} else {
// throw usbControlIrp.getUsbException();
usbIrp.getUsbException().printStackTrace();
}
} else {
mLogger.error("usbPipe open ERROR");
}
} else {
mLogger.error("usbPipe is NULL");
}
if(UsbConst.ENDPOINT_DIRECTION_IN == usbEndpoint.getDirection()){
//TODO: show type of packet in debug log
mLogger.debug("sendBulkTransfer - direction: IN, byteString: {}", getByteString(data));
}
return returnCode;
}
示例4: receiveMessage
import javax.usb.UsbEndpoint; //导入方法依赖的package包/类
/**
* Receives an ADB message.
*
* @return The received ADB message.
* @throws UsbException
* When USB communication failed.
*/
public Message receiveMessage() throws UsbException
{
UsbEndpoint inEndpoint =
this.iface.getUsbEndpoint(this.inEndpoint);
UsbPipe inPipe = inEndpoint.getUsbPipe();
inPipe.open();
try
{
byte[] headerBytes = new byte[MessageHeader.SIZE];
int received = inPipe.syncSubmit(headerBytes);
if (received != MessageHeader.SIZE)
throw new InvalidMessageException(
"Invalid ADB message header size: " + received);
MessageHeader header = new MessageHeader(headerBytes);
if (!header.isValid())
throw new InvalidMessageException(
"ADB message header checksum failure");
byte[] data = new byte[header.getDataLength()];
received = inPipe.syncSubmit(data);
if (received != header.getDataLength())
throw new InvalidMessageException(
"ADB message data size mismatch. Should be "
+ header.getDataLength() + " but is " + received);
Message message = Message.create(header, data);
if (!message.isValid())
throw new InvalidMessageException(
"ADB message data checksum failure");
return message;
}
finally
{
inPipe.close();
}
}