private void init() { try { if (m_out == null) { m_PortIdPrinter = CommPortIdentifier.getPortIdentifier(m_sPort); // Tomamos el puerto m_CommPortPrinter = m_PortIdPrinter.open("PORTID", 2000); // Abrimos el puerto m_out = m_CommPortPrinter.getOutputStream(); // Tomamos el chorro de escritura if (m_PortIdPrinter.getPortType() == CommPortIdentifier.PORT_SERIAL) { ((SerialPort) m_CommPortPrinter) .setSerialPortParams( 9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); // Configuramos el puerto } else if (m_PortIdPrinter.getPortType() == CommPortIdentifier.PORT_PARALLEL) { ((ParallelPort) m_CommPortPrinter).setMode(1); } } } catch (Exception e) { m_PortIdPrinter = null; m_CommPortPrinter = null; m_out = null; m_in = null; // } catch (NoSuchPortException e) { // } catch (PortInUseException e) { // } catch (UnsupportedCommOperationException e) { // } catch (IOException e) { } }
@Override public void stopPolling() { if (_comPort != null && _usable && _isQuestionSupported) { ((SerialPort) _comPort).removeEventListener(); _comPort.close(); } }
/** * @return A HashSet containing the CommPortIdentifier for all serial ports that are not currently * being used. */ @SuppressWarnings({"rawtypes"}) private static HashSet<CommPortIdentifier> getAvailableSerialPorts() { HashSet<CommPortIdentifier> h = new HashSet<CommPortIdentifier>(); Enumeration thePorts = CommPortIdentifier.getPortIdentifiers(); while (thePorts.hasMoreElements()) { CommPortIdentifier com = (CommPortIdentifier) thePorts.nextElement(); switch (com.getPortType()) { case CommPortIdentifier.PORT_SERIAL: try { CommPort thePort = com.open("CommUtil", 50); thePort.close(); h.add(com); } catch (PortInUseException e) { System.out.println("Port, " + com.getName() + ", is in use."); } catch (Exception e) { System.err.println("Failed to open port " + com.getName()); e.printStackTrace(); } } } return h; }
/** @param data */ @Override protected void internalWrite(byte[] data) { try { if (m_out == null) { m_PortIdPrinter = CommPortIdentifier.getPortIdentifier( m_sPortPrinter); // Tomamos el puerto m_CommPortPrinter = m_PortIdPrinter.open("PORTID", 2000); // Abrimos el puerto m_out = m_CommPortPrinter.getOutputStream(); // Tomamos el chorro de escritura if (m_PortIdPrinter.getPortType() == CommPortIdentifier.PORT_SERIAL) { ((SerialPort) m_CommPortPrinter) .setSerialPortParams( 9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); // Configuramos el puerto ((SerialPort) m_CommPortPrinter) .setFlowControlMode( SerialPort .FLOWCONTROL_RTSCTS_IN); // this line prevents the printer tmu220 to stop // printing after +-18 lines printed // this line prevents the printer tmu220 to stop printing after +-18 lines printed. Bug // 8324 // But if added a regression error appears. Bug 9417, Better to keep it commented. // ((SerialPort)m_CommPortPrinter).setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN); // Not needed to set parallel properties // } else if (m_PortIdPrinter.getPortType() == // CommPortIdentifier.PORT_PARALLEL) { // ((ParallelPort)m_CommPortPrinter).setMode(1); } } m_out.write(data); // JG 16 May 12 use multicatch } catch (NoSuchPortException | PortInUseException | UnsupportedCommOperationException | IOException e) { System.err.println(e); } }