Class UsbConnection


  • public class UsbConnection
    extends SerialConnection
    A connection to a usb device
    Author:
    man
    • Constructor Detail

      • UsbConnection

        public UsbConnection​(jd2xx.JD2XX.DeviceInfo usbDevice)
        Construct a new USBConnection object
        Parameters:
        usbDevice - DeviceInfo
      • UsbConnection

        public UsbConnection​(jd2xx.JD2XX.DeviceInfo usbDevice,
                             int baudrate)
        Construct a new USBConnection object
        Parameters:
        usbDevice - DeviceInfo
        baudrate - baud rate
      • UsbConnection

        public UsbConnection​(jd2xx.JD2XX.DeviceInfo usbDevice,
                             int baudrate,
                             int dataBit,
                             int stopBit,
                             int parity,
                             int flowControl)
        Construct a new USBConnection object
        Parameters:
        usbDevice - DeviceInfo
        baudrate - baud rate of the connected device, can read with the SerialConnection.getBaudrate() method.
        dataBit - Number of data bits, can read with the SerialConnection.getDataBit() method.
        stopBit - Value of StopBits, can read with the SerialConnection.getStopBit() method. A value larger 2 means 1.5 stopbits.
        parity - Parity-Bit (0 for no, 1 for ODD, 2 for EVEN, 3 for MARK, 4 for SPACE), can read with the SerialConnection.getParity() method.
        flowControl - Flow Control (0 for no, ..), can read with the SerialConnection.getFlowControl() method.
      • UsbConnection

        public UsbConnection​(java.lang.String usbDeviceSerialNumber)
        Construct a new USBConnection object
        Parameters:
        usbDeviceSerialNumber - usb serial number
      • UsbConnection

        public UsbConnection​(java.lang.String usbDeviceSerialNumber,
                             int baudrate)
        Construct a new USBConnection object
        Parameters:
        usbDeviceSerialNumber - usb serial number
        baudrate - baud rate of the connected device, can read with the SerialConnection.getBaudrate() method.
      • UsbConnection

        public UsbConnection​(java.lang.String usbDeviceSerialNumber,
                             int baudrate,
                             int dataBit,
                             int stopBit,
                             int parity,
                             int flowControl)
        Construct a new USBConnection object
        Parameters:
        usbDeviceSerialNumber - usb serial number
        baudrate - baud rate of the connected device, can read with the SerialConnection.getBaudrate() method.
        dataBit - Number of data bits, can read with the SerialConnection.getDataBit() method.
        stopBit - Value of StopBits, can read with the SerialConnection.getStopBit() method. A value larger 2 means 1.5 stopbits.
        parity - Parity-Bit (0 for no, 1 for ODD, 2 for EVEN, 3 for MARK, 4 for SPACE), can read with the SerialConnection.getParity() method.
        flowControl - Flow Control (0 for no, ..), can read with the SerialConnection.getFlowControl() method.
    • Method Detail

      • addVIDPID

        public static void addVIDPID​(int vid,
                                     int pid)
        Add VID/PID pair to the list of supported USB devices.

        Depending on the operating system, all FTDI devices might be usable by default. On some systems like Linux and OS X however, only the default FTDI VID/PIDs and all additional non-standard VID/PIDs used by metraTec devices are supported by default. Therefore in order to write platform-independent code, you should call this method for every non-standard and non-metraTec VID/PID you intend to use (e.g. HAMEG power supply PIDs).

        Parameters:
        vid - Vendor ID
        pid - Product ID
      • getUSBDevices

        public static java.util.ArrayList<jd2xx.JD2XX.DeviceInfo> getUSBDevices()
                                                                         throws CommConnectionException
        Returns:
        ArrayList with Device Infos
        Throws:
        CommConnectionException - possible Errorcodes:
        • NO_LIBRARY_FOUND
        • UNHANDLED_ERROR
      • getUSBDevicesList

        public static java.util.LinkedList<java.lang.String> getUSBDevicesList()
                                                                        throws CommConnectionException
        Returns:
        LinkedList(String) with available devices
        Throws:
        CommConnectionException - possible Errorcodes:
        • NO_LIBRARY_FOUND
        • UNHANDLED_ERROR
      • connect

        public void connect()
                     throws CommConnectionException
        Description copied from class: ICommConnection
        This method opens a connection. Parameters are passed through the constructor
        Specified by:
        connect in class ICommConnection
        Throws:
        CommConnectionException - possible Errorcodes:
        • for TCP Connection:
          • ETHERNET_UNKNOWN_HOST
          • ETHERNET_TIMEOUT
          • WRONG_PARAMETER
        • for USB Connection:
          • DEVICE_IN_USE
          • NO_LIBRARY_FOUND
          • NO_DEVICES_FOUND
          • USB_SET_BAUDRATE
          • USB_SET_DATA_CHARACTERISTICS
          • USB_SET_FLOWCONTROL
          • USB_SET_TIMEOUTS
        • for RS232 Connection:
          • NO_LIBRARY_FOUND
          • SERIAL_PORT_NOT_EXIST
          • SERIAL_PARAMETER_NOT_SET
          • DEVICE_IN_USE
          • SERIAL_NO_ACCESS
          • SERIAL_NO_INITIALISE
      • getInputStream

        public java.io.InputStream getInputStream()
        Specified by:
        getInputStream in class ICommConnection
        Returns:
        the InputStream of this connection
      • getOutputStream

        public java.io.OutputStream getOutputStream()
        Specified by:
        getOutputStream in class ICommConnection
        Returns:
        the OutputStream of this connection
      • isConnected

        public boolean isConnected()
        Specified by:
        isConnected in class ICommConnection
        Returns:
        true if connected else false
      • recv

        public int recv()
                 throws CommConnectionException
        Description copied from class: ICommConnection
        Receives a single byte.
        Specified by:
        recv in class ICommConnection
        Returns:
        byte or -1 if no Data available (timeout)
        Throws:
        CommConnectionException - possible Errorcodes:
        • for TCP Connection:
          • CONNECTION_LOST
          • UNHANDLED_ERROR
          • NOT_INITIALISE
        • for USB Connection:
          • CONNECTION_LOST
          • UNHANDLED_ERROR
          • NOT_INITIALISE
        • for RS232 Connection:
          • CONNECTION_LOST
          • UNHANDLED_ERROR
          • NOT_INITIALISE
      • send

        public void send​(byte[] senddata)
                  throws CommConnectionException
        Description copied from class: ICommConnection
        Sends data to the connected device
        Specified by:
        send in class ICommConnection
        Parameters:
        senddata - data/command send to the connected device
        Throws:
        CommConnectionException - possible Errorcodes:
        • for TCP Connection:
          • WRONG_PARAMETER
          • UNHANDLED_ERROR
          • NOT_INITIALISE
        • for USB Connection:
          • WRONG_PARAMETER
          • UNHANDLED_ERROR
          • NOT_INITIALISE
        • for RS232 Connection:
          • WRONG_PARAMETER
          • CONNECTION_LOST
          • UNHANDLED_ERROR
          • NOT_INITIALISE
      • getInfo

        public java.util.Hashtable<java.lang.String,​java.lang.Object> getInfo()
        Description copied from class: ICommConnection
        Gets Device Informations
        Specified by:
        getInfo in class ICommConnection
        Returns:
        Hashtable with the information
      • setSettings

        public void setSettings​(java.util.Hashtable<java.lang.String,​java.lang.String> settings)
        Description copied from class: ICommConnection
        Sets connections settings
        Specified by:
        setSettings in class ICommConnection
        Parameters:
        settings - Hashtable with the special settings
      • setRecvTimeout

        public void setRecvTimeout​(int timeout)
                            throws CommConnectionException
        Description copied from class: ICommConnection
        set the receive timeout for read data, if the timeout expires an CommConnectionException is raised with errorcode RECV_TIMEOUT, the connection is still valid
        Specified by:
        setRecvTimeout in class ICommConnection
        Parameters:
        timeout - time in milliseconds
        Throws:
        CommConnectionException - possible Errorcodes:
        • for all connections
          • SET_CONFIGURATION
      • getSendTimeout

        public int getSendTimeout()
        Returns:
        the send timeout
      • setConnectionTimeout

        public void setConnectionTimeout​(int time)
        Description copied from class: ICommConnection
        Sets the waiting time for the connection
        Specified by:
        setConnectionTimeout in class ICommConnection
        Parameters:
        time - connection timeout
      • getSerialNumber

        public java.lang.String getSerialNumber()
        Get the USB device's serial number.
        Returns:
        the serial number.
      • setSerialNumber

        public void setSerialNumber​(java.lang.String serialNumber)
        Set the USB device's serial number.
        Parameters:
        serialNumber - the serial number.
      • getJD2XX

        public jd2xx.JD2XX getJD2XX()
        Returns:
        the jd2xx
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • recv

        public void recv​(byte[] b,
                         int off,
                         int len)
                  throws CommConnectionException
        Description copied from class: ICommConnection
        Receives until buffer is filled or timeout occurrs.
        Overrides:
        recv in class ICommConnection
        Parameters:
        b - Byte array to fill
        off - Offset into array (it is filled beginning with the offset)
        len - Number of bytes to read.
        Throws:
        CommConnectionException - possible Errorcodes:
        • for TCP Connection:
          • CONNECTION_LOST
          • RECV_TIMEOUT
          • UNHANDLED_ERROR
          • NOT_INITIALISE
        • for USB Connection:
          • CONNECTION_LOST
          • RECV_TIMEOUT
          • UNHANDLED_ERROR
          • NOT_INITIALISE
        • for RS232 Connection:
          • CONNECTION_LOST
          • RECV_TIMEOUT
          • UNHANDLED_ERROR
          • NOT_INITIALISE
      • receive

        public java.lang.StringBuilder receive​(int... terminators)
                                        throws CommConnectionException
        Description copied from class: ICommConnection
        Receives data from the connected device until one of the terminator signs is found. The result is returned as a StringBuilder for performance reasons.
        Overrides:
        receive in class ICommConnection
        Parameters:
        terminators - A list of terminator signs. Note that this may be a list of parameters or an array.
        Returns:
        a StringBuilder object, including the termination sign
        Throws:
        CommConnectionException - possible Errorcodes:
        • for TCP Connection:
          • CONNECTION_LOST
          • RECV_TIMEOUT
          • UNHANDLED_ERROR
          • NOT_INITIALISE
        • for USB Connection:
          • CONNECTION_LOST
          • RECV_TIMEOUT
          • UNHANDLED_ERROR
          • NOT_INITIALISE
        • for RS232 Connection:
          • CONNECTION_LOST
          • RECV_TIMEOUT
          • UNHANDLED_ERROR
          • NOT_INITIALISE