@Override public boolean openPort() throws Exception { responseMessageHandler = new ResponseMessageHandler(); if (serialPort == null) { throw new ConnectionException("The connection wasn't initialized"); } return serialPort.openPort(); }
@Override public void closePort() throws Exception { if (serialPort != null) { serialPort.removeDataListener(); serialPort.closePort(); } }
@Override public List<String> getPortNames() { return Arrays.stream(SerialPort.getCommPorts()) .map(SerialPort::getSystemPortName) .collect(Collectors.toList()); }
private void initSerialPort(String name, int baud) throws Exception { if (serialPort != null && serialPort.isOpen()) { closePort(); } serialPort = SerialPort.getCommPort(name); serialPort.setParity(SerialPort.NO_PARITY); serialPort.setNumStopBits(SerialPort.ONE_STOP_BIT); serialPort.setNumDataBits(8); serialPort.addDataListener(this); serialPort.setBaudRate(baud); }
@Override public void serialEvent(com.fazecast.jSerialComm.SerialPortEvent event) { if (event.getEventType() != SerialPort.LISTENING_EVENT_DATA_AVAILABLE) { return; } int bytesAvailable = serialPort.bytesAvailable(); if (bytesAvailable <= 0) { return; } int bytesRead = serialPort.readBytes(buffer, Math.min(buffer.length, bytesAvailable)); String response = new String(buffer, 0, bytesRead); responseMessageHandler.handleResponse(response, comm); } }
@Override public void connect() { SerialPort[] serialPorts = SerialPort.getCommPorts(); _logger.debug("Number of serial port available:{}", serialPorts.length); for (int portNo = 0; portNo < serialPorts.length; portNo++) { _logger.debug("SerialPort[{}]:[{},{}]", portNo + 1, serialPorts[portNo].getSystemPortName(), serialPorts[portNo].getDescriptivePortName()); } // create an instance of the serial communications class _serialPort = SerialPort.getCommPort(_config.getPortName()); _serialPort.openPort();//Open port if (!_serialPort.isOpen()) { _logger.error("Unable to open serial port:[{}]", _config.getPortName()); _config.setStatus(STATE.DOWN, "ERROR: Unable to open!"); return; } _serialPort.setComPortParameters( _config.getBaudRate(), 8, // data bits SerialPort.ONE_STOP_BIT, SerialPort.NO_PARITY); // create and register the serial data listener _serialPort.addDataListener(new SerialDataListenerjSerialComm(_serialPort, _config, _parser, _queue)); _logger.debug("Serial port initialized with {}", _config); _config.setStatus(STATE.UP, "Connected Successfully"); }
@Override public void open() throws IOException { if (serialPort == null) { serialPort = SerialPort.getCommPort(parameters.getPortName()); if (serialPort.getDescriptivePortName().contains("Bad Port")) { serialPort = null; throw new IOException(String.format("Port %s is not a valid name for a port on this platform", parameters.getPortName())); serialPort.closePort(); setConnectionParameters(); if (!serialPort.openPort(parameters.getOpenDelay())) { close(); Set<String> ports = getCommPorts(); inputStream = serialPort.getInputStream();
@Override public Set<String> getCommPorts() { Set<String> returnValue = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER); SerialPort[] ports = SerialPort.getCommPorts(); if (ports != null && ports.length > 0) { for (SerialPort port : ports) { returnValue.add(port.getSystemPortName()); } } return returnValue; } }
public synchronized void connect() throws Exception { disconnect(); serialPort = SerialPort.getCommPort(portName); serialPort.openPort(0); serialPort.setComPortParameters(baud, dataBits.mask, stopBits.mask, parity.mask); serialPort.setFlowControl(flowControl.mask); if (setDtr) { serialPort.setDTR(); } if (setRts) { serialPort.setRTS(); } serialPort.setComPortTimeouts( SerialPort.TIMEOUT_READ_SEMI_BLOCKING | SerialPort.TIMEOUT_WRITE_BLOCKING, 500, 0); }
public Serial(SerialPort port) throws IOException { port.setComPortTimeouts(SerialPort.TIMEOUT_READ_BLOCKING, TIME_OUT, TIME_OUT); port.setComPortParameters(DATA_RATE, 8, SerialPort.ONE_STOP_BIT, SerialPort.NO_PARITY); port.setFlowControl(SerialPort.FLOW_CONTROL_DISABLED); if (port.openPort()) { this.port = port; output = port.getOutputStream(); input = port.getInputStream(); } else { throw new IOException("Cannot open serial port."); } }
@Override public void sendByteImmediately(byte b) throws Exception { serialPort.writeBytes(new byte[]{b}, 1); }
@Override public void closePort() { this.serialPort.closePort(); }
@Override protected void doConnect(SocketAddress remoteAddress, SocketAddress localAddress) throws Exception { JSerialCommDeviceAddress remote = (JSerialCommDeviceAddress) remoteAddress; SerialPort commPort = SerialPort.getCommPort(remote.value()); if (!commPort.openPort()) { throw new IOException("Could not open port: " + remote.value()); } commPort.setComPortTimeouts( SerialPort.TIMEOUT_READ_BLOCKING, config().getOption(READ_TIMEOUT), 0); deviceAddress = remote; serialPort = commPort; }
@Override public void disconnect() { try { if (_serialPort.closePort()) { _logger.debug("_serialPort{} closed", _serialPort.getDescriptivePortName()); } else { _logger.warn("Failed to close _serialPort{}", _serialPort.getDescriptivePortName()); } _config.setStatus(STATE.DOWN, "Stopped."); } catch (Exception ex) { _config.setStatus(STATE.DOWN, "ERROR:" + ex.getMessage()); } }
public static SerialPort jSerialPort(String portName, SerialConfig config) { SerialPort serialPort = SerialPort.getCommPort(portName); serialPort.setFlowControl(config.getFlowControl().val); serialPort.setComPortParameters( config.getBaud().val, config.getDataBits().val, config.getStopBits().val, config.getParity().val ); return serialPort; }
@Override public int readBytes(byte[] buffer, long bytesToRead) { return serialPort.readBytes(buffer, bytesToRead); }
@Override public String getPortName() { return this.serialPort.getSystemPortName(); }
@Override public void setConnectionParameters() { // Set connection parameters, if set fails return parameters object // to original state if (serialPort != null) { serialPort.setComPortParameters(parameters.getBaudRate(), parameters.getDatabits(), parameters.getStopbits(), parameters.getParity()); serialPort.setFlowControl(parameters.getFlowControlIn() | parameters.getFlowControlOut()); } }
@Override public boolean isOpen() { return serialPort.isOpen(); }