com.hoho.android.usbserial.driver.UsbSerialDriver Java Examples
The following examples show how to use
com.hoho.android.usbserial.driver.UsbSerialDriver.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: DevicesFragment.java From SimpleUsbTerminal with MIT License | 6 votes |
void refresh() { UsbManager usbManager = (UsbManager) getActivity().getSystemService(Context.USB_SERVICE); UsbSerialProber usbDefaultProber = UsbSerialProber.getDefaultProber(); UsbSerialProber usbCustomProber = CustomProber.getCustomProber(); listItems.clear(); for(UsbDevice device : usbManager.getDeviceList().values()) { UsbSerialDriver driver = usbDefaultProber.probeDevice(device); if(driver == null) { driver = usbCustomProber.probeDevice(device); } if(driver != null) { for(int port = 0; port < driver.getPorts().size(); port++) listItems.add(new ListItem(device, port, driver)); } else { listItems.add(new ListItem(device, 0, null)); } } listAdapter.notifyDataSetChanged(); }
Example #2
Source File: DevicesFragment.java From usb-serial-for-android with GNU Lesser General Public License v2.1 | 6 votes |
void refresh() { UsbManager usbManager = (UsbManager) getActivity().getSystemService(Context.USB_SERVICE); UsbSerialProber usbDefaultProber = UsbSerialProber.getDefaultProber(); UsbSerialProber usbCustomProber = CustomProber.getCustomProber(); listItems.clear(); for(UsbDevice device : usbManager.getDeviceList().values()) { UsbSerialDriver driver = usbDefaultProber.probeDevice(device); if(driver == null) { driver = usbCustomProber.probeDevice(device); } if(driver != null) { for(int port = 0; port < driver.getPorts().size(); port++) listItems.add(new ListItem(device, port, driver)); } else { listItems.add(new ListItem(device, 0, null)); } } listAdapter.notifyDataSetChanged(); }
Example #3
Source File: ReactUsbSerialModule.java From react-native-usbserial with MIT License | 6 votes |
private UsbSerialDriver getUsbSerialDriver(int prodId, UsbManager manager) throws Exception { if (prodId == 0) throw new Error(new Error("The deviceObject is not a valid 'UsbDevice' reference")); List<UsbSerialDriver> availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager); // Reject if no driver is available if (availableDrivers.isEmpty()) throw new Exception("No available drivers to communicate with devices"); for (UsbSerialDriver drv : availableDrivers) { if (drv.getDevice().getProductId() == prodId) return drv; } // Reject if no driver exists for the current productId throw new Exception(String.format("No driver found for productId '%s'", prodId)); }
Example #4
Source File: ReactUsbSerialModule.java From react-native-usbserial with MIT License | 6 votes |
@ReactMethod public void openDeviceAsync(ReadableMap deviceObject, Promise p) { try { int prodId = deviceObject.getInt("productId"); UsbManager manager = getUsbManager(); UsbSerialDriver driver = getUsbSerialDriver(prodId, manager); if (manager.hasPermission(driver.getDevice())) { WritableMap usd = createUsbSerialDevice(manager, driver); p.resolve(usd); } else { requestUsbPermission(manager, driver.getDevice(), p); } } catch (Exception e) { p.reject(e); } }
Example #5
Source File: DeviceConnection.java From monkeyboard-radio-android with GNU General Public License v3.0 | 5 votes |
/** * Called once we have permission, this will open a connection to the radio */ private void openConnection() { Log.v(TAG, "Opening connection to device"); usbDeviceConnection = usbManager.openDevice(usbDevice); UsbSerialDriver driver = new CdcAcmSerialDriver(usbDevice); Log.v(TAG, "Device has " + String.valueOf(driver.getPorts().size()) + " ports"); deviceSerialInterface = driver.getPorts().get(0); try { deviceSerialInterface.open(usbDeviceConnection); deviceSerialInterface.setParameters(RadioDevice.BAUD_RATE, 8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE); deviceSerialInterface.setDTR(false); deviceSerialInterface.setRTS(true); readBuffer.clear(); readBufferFillerThread = new Thread(readBufferFillerRunnable); readBufferFillerThread.start(); running = true; if (connectionStateListener != null) { connectionStateListener.onStart(); } } catch (IOException e) { e.printStackTrace(); closeConnection(); if (connectionStateListener != null) { connectionStateListener.onFail(); } } }
Example #6
Source File: UsbDeviceNodeLoader.java From tangobot with Apache License 2.0 | 5 votes |
/** * Internal helper method that returns a single UsbSerialDriver from the android_usb_serial * library given a UsbDevice for which we already have access to */ protected UsbSerialDriver serialDriverForDevice(UsbDevice device, UsbManager usbManager) throws Exception { // Wrap the UsbDevice in the HoHo Driver List<UsbSerialDriver> driverList = UsbSerialProber.getDefaultProber().findAllDrivers(usbManager); // For now, continue only if we have a single driver in the list if (driverList.isEmpty()) { throw new Exception("No drivers found for the supplied USB device: " + device); } if (driverList.size() > 1) { log.warn("There are " + driverList.size() + " drivers found for the provided USB device: " + device + ". Will continue using the first one in the list"); } return driverList.get(0); }
Example #7
Source File: AbstractBaseNodeLoader.java From tangobot with Apache License 2.0 | 5 votes |
@Override public NodeMain[] startNodes(UsbDevice baseUsbDevice, UsbManager usbManager) throws Exception { if(baseUsbDevice == null) { throw new Exception("null USB device provided"); } log.info("Starting base node"); // Wrap the UsbDevice in the HoHo Driver UsbSerialDriver driver = serialDriverForDevice(baseUsbDevice, usbManager); UsbDeviceConnection connection = serialConnectionForDevice(usbManager, driver); if (connection == null) { throw new Exception("No USB connection available to initialize device"); } UsbSerialPort port = serialPortForDevice(driver); // Choose the appropriate BaseDevice implementation for the particular // robot base, using the corresponding subclass BaseDevice baseDevice = getBaseDevice(port, connection); // Create the ROS nodes log.info("Create base controller node"); mBaseControllerNode = new BaseControllerNode(baseDevice, "/cmd_vel"); NodeConfiguration baseControllerNodeConf = NodeConfiguration.newPublic(mRosHostname); baseControllerNodeConf.setNodeName(GraphName.of("base_controller")); baseControllerNodeConf.setMasterUri(mRosMasterUri); mNodeMainExecutor.execute(mBaseControllerNode, baseControllerNodeConf); mBatteryPublisherNode = new RobotBatteryPublisherNode(baseDevice); NodeConfiguration batteryPublisherConf = NodeConfiguration.newPublic(mRosHostname); batteryPublisherConf.setNodeName(mBaseControllerNode.getDefaultNodeName()); batteryPublisherConf.setMasterUri(mRosMasterUri); mNodeMainExecutor.execute(mBatteryPublisherNode, batteryPublisherConf); return new NodeMain[]{mBaseControllerNode, mBaseOdomPublisher}; }
Example #8
Source File: MainActivity.java From Chorus-RF-Laptimer with MIT License | 5 votes |
private UsbDevice getAvailableUsbDevice() { UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); // Find all available drivers from attached devices. List<UsbSerialDriver> availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager); if (availableDrivers.isEmpty()) { return null; } // Open a connection to the first available driver. UsbSerialDriver driver = availableDrivers.get(0); return driver.getDevice(); }
Example #9
Source File: UsbDeviceNodeLoader.java From tangobot with Apache License 2.0 | 4 votes |
protected UsbDeviceConnection serialConnectionForDevice(UsbManager manager, UsbSerialDriver driver) { return manager.openDevice(driver.getDevice()); }
Example #10
Source File: UsbDeviceNodeLoader.java From tangobot with Apache License 2.0 | 4 votes |
protected UsbSerialPort serialPortForDevice(UsbSerialDriver driver) { return driver.getPorts().get(0); }
Example #11
Source File: DevicesFragment.java From SimpleUsbTerminal with MIT License | 4 votes |
ListItem(UsbDevice device, int port, UsbSerialDriver driver) { this.device = device; this.port = port; this.driver = driver; }
Example #12
Source File: ReactUsbSerialModule.java From react-native-usbserial with MIT License | 4 votes |
private WritableMap createUsbSerialDevice(UsbManager manager, UsbSerialDriver driver) throws IOException { UsbDeviceConnection connection = manager.openDevice(driver.getDevice()); // Most have just one port (port 0). UsbSerialPort port = driver.getPorts().get(0); port.open(connection); port.setParameters(115200, 8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE); String id = generateId(); UsbSerialDevice usd = new UsbSerialDevice(port); WritableMap map = Arguments.createMap(); // Add UsbSerialDevice to the usbSerialDriverDict map usbSerialDriverDict.put(id, usd); map.putString("id", id); return map; }
Example #13
Source File: SerialInterface_USBSerial.java From PodEmu with GNU General Public License v3.0 | 4 votes |
/** * Initilize the device * @param context - application context * @return - true on success, false on failure */ public boolean init(Context context) { PodEmuLog.debug("USBSerial: initialization started."); UsbManager usbManager = (UsbManager) context.getSystemService(Context.USB_SERVICE); // Find all available drivers from attached devices. List<UsbSerialDriver> availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(usbManager); if (availableDrivers.isEmpty()) { PodEmuLog.debug("USBSerial: no devices found. Exiting..."); return false; } // Open a connection to the first available driver. UsbSerialDriver driver = availableDrivers.get(0); connection = usbManager.openDevice(driver.getDevice()); if (connection == null) { // You probably need to call UsbManager.requestPermission(driver.getDevice(), ..) PodEmuLog.log("USBSerial: Cannot establish serial connection! Exiting..."); return false; } // Read some data! Most have just one port (port 0). List<UsbSerialPort> ports = driver.getPorts(); port = ports.get(0); try { PodEmuLog.debug("USBSerial: openning connection with baud rate="+baudRate); port.open(connection); port.setParameters(baudRate, 8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE); PodEmuService.communicateSerialStatusChange(); PodEmuLog.debug("USBSerial: connection succesfully open"); } catch (IOException e) { // TODO Deal with error PodEmuLog.debug("USBSerial: unknown exception occured! See trace log below:"); PodEmuLog.error(e.getMessage()); return false; } return true; }
Example #14
Source File: SerialConnector.java From Arduino-Serial-Controller with GNU Lesser General Public License v2.1 | 4 votes |
public void initialize() { UsbManager manager = (UsbManager) mContext.getSystemService(Context.USB_SERVICE); List<UsbSerialDriver> availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager); if (availableDrivers.isEmpty()) { mListener.onReceive(Constants.MSG_SERIAL_ERROR, 0, 0, "Error: There is no available device. \n", null); return; } mDriver = availableDrivers.get(0); if(mDriver == null) { mListener.onReceive(Constants.MSG_SERIAL_ERROR, 0, 0, "Error: Driver is Null \n", null); return; } // Report to UI StringBuilder sb = new StringBuilder(); UsbDevice device = mDriver.getDevice(); sb.append(" DName : ").append(device.getDeviceName()).append("\n") .append(" DID : ").append(device.getDeviceId()).append("\n") .append(" VID : ").append(device.getVendorId()).append("\n") .append(" PID : ").append(device.getProductId()).append("\n") .append(" IF Count : ").append(device.getInterfaceCount()).append("\n"); mListener.onReceive(Constants.MSG_DEVICD_INFO, 0, 0, sb.toString(), null); UsbDeviceConnection connection = manager.openDevice(device); if (connection == null) { mListener.onReceive(Constants.MSG_SERIAL_ERROR, 0, 0, "Error: Cannot connect to device. \n", null); return; } // Read some data! Most have just one port (port 0). mPort = mDriver.getPorts().get(0); if(mPort == null) { mListener.onReceive(Constants.MSG_SERIAL_ERROR, 0, 0, "Error: Cannot get port. \n", null); return; } try { mPort.open(connection); mPort.setParameters(9600, 8, 1, 0); // baudrate:9600, dataBits:8, stopBits:1, parity:N // byte buffer[] = new byte[16]; // int numBytesRead = mPort.read(buffer, 1000); // Log.d(TAG, "Read " + numBytesRead + " bytes."); } catch (IOException e) { // Deal with error. mListener.onReceive(Constants.MSG_SERIAL_ERROR, 0, 0, "Error: Cannot open port \n" + e.toString() + "\n", null); } finally { } // Everything is fine. Start serial monitoring thread. startThread(); }
Example #15
Source File: DevicesFragment.java From usb-serial-for-android with GNU Lesser General Public License v2.1 | 4 votes |
ListItem(UsbDevice device, int port, UsbSerialDriver driver) { this.device = device; this.port = port; this.driver = driver; }
Example #16
Source File: TerminalFragment.java From SimpleUsbTerminal with MIT License | 4 votes |
private void connect(Boolean permissionGranted) { UsbDevice device = null; UsbManager usbManager = (UsbManager) getActivity().getSystemService(Context.USB_SERVICE); for(UsbDevice v : usbManager.getDeviceList().values()) if(v.getDeviceId() == deviceId) device = v; if(device == null) { status("connection failed: device not found"); return; } UsbSerialDriver driver = UsbSerialProber.getDefaultProber().probeDevice(device); if(driver == null) { driver = CustomProber.getCustomProber().probeDevice(device); } if(driver == null) { status("connection failed: no driver for device"); return; } if(driver.getPorts().size() < portNum) { status("connection failed: not enough ports at device"); return; } usbSerialPort = driver.getPorts().get(portNum); UsbDeviceConnection usbConnection = usbManager.openDevice(driver.getDevice()); if(usbConnection == null && permissionGranted == null && !usbManager.hasPermission(driver.getDevice())) { PendingIntent usbPermissionIntent = PendingIntent.getBroadcast(getActivity(), 0, new Intent(Constants.INTENT_ACTION_GRANT_USB), 0); usbManager.requestPermission(driver.getDevice(), usbPermissionIntent); return; } if(usbConnection == null) { if (!usbManager.hasPermission(driver.getDevice())) status("connection failed: permission denied"); else status("connection failed: open failed"); return; } connected = Connected.Pending; try { usbSerialPort.open(usbConnection); usbSerialPort.setParameters(baudRate, UsbSerialPort.DATABITS_8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE); SerialSocket socket = new SerialSocket(getActivity().getApplicationContext(), usbConnection, usbSerialPort); service.connect(socket); // usb connect is not asynchronous. connect-success and connect-error are returned immediately from socket.connect // for consistency to bluetooth/bluetooth-LE app use same SerialListener and SerialService classes onSerialConnect(); } catch (Exception e) { onSerialConnectError(e); } }
Example #17
Source File: TerminalFragment.java From usb-serial-for-android with GNU Lesser General Public License v2.1 | 4 votes |
private void connect() { UsbDevice device = null; UsbManager usbManager = (UsbManager) getActivity().getSystemService(Context.USB_SERVICE); for(UsbDevice v : usbManager.getDeviceList().values()) if(v.getDeviceId() == deviceId) device = v; if(device == null) { status("connection failed: device not found"); return; } UsbSerialDriver driver = UsbSerialProber.getDefaultProber().probeDevice(device); if(driver == null) { driver = CustomProber.getCustomProber().probeDevice(device); } if(driver == null) { status("connection failed: no driver for device"); return; } if(driver.getPorts().size() < portNum) { status("connection failed: not enough ports at device"); return; } usbSerialPort = driver.getPorts().get(portNum); UsbDeviceConnection usbConnection = usbManager.openDevice(driver.getDevice()); if(usbConnection == null && usbPermission == UsbPermission.Unknown && !usbManager.hasPermission(driver.getDevice())) { usbPermission = UsbPermission.Requested; PendingIntent usbPermissionIntent = PendingIntent.getBroadcast(getActivity(), 0, new Intent(INTENT_ACTION_GRANT_USB), 0); usbManager.requestPermission(driver.getDevice(), usbPermissionIntent); return; } if(usbConnection == null) { if (!usbManager.hasPermission(driver.getDevice())) status("connection failed: permission denied"); else status("connection failed: open failed"); return; } try { usbSerialPort.open(usbConnection); usbSerialPort.setParameters(baudRate, 8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE); if(withIoManager) { usbIoManager = new SerialInputOutputManager(usbSerialPort, this); Executors.newSingleThreadExecutor().submit(usbIoManager); } status("connected"); connected = true; controlLines.start(); } catch (Exception e) { status("connection failed: " + e.getMessage()); disconnect(); } }