Package Backlight

Source Code of Backlight.ArduinoCom

package Backlight;

import java.io.InputStream;
import java.io.OutputStream;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import java.util.Enumeration;

public class ArduinoCom  {
  private SerialPort _serialPort; 
  private InputStream _input;
  private OutputStream _output;

  private CommPortIdentifier ResolvePort(BacklightConfiguration bc)  {
    CommPortIdentifier portId = null;
    @SuppressWarnings("rawtypes")
    Enumeration portEnum = CommPortIdentifier.getPortIdentifiers();
    String portName = bc.PortName;

    while (portEnum.hasMoreElements()) {
      CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement();
      if (currPortId.getName() == portName) {
        portId = currPortId;
        break;
      }
    }

    if (portId == null) FailNoComPortFound();
    return portId;
  }
 
  private void FailNoComPortFound()  {
    System.err.println("Could not find COM port.");
    System.exit(1);
  }
 
  public void Init(BacklightConfiguration bc) {
    try {
      _serialPort = (SerialPort) (ResolvePort(bc).open(this.getClass().getName(), bc.SerialTimeOut));
      _serialPort.setSerialPortParams(bc.SerialDataRate, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);

      _input = _serialPort.getInputStream();
      _output = _serialPort.getOutputStream();
     
      Thread.sleep(bc.ConnectionInitSleep);

            new BacklightThread(bc, new ComWriter(_input, _output, bc.SendMaxTrys, bc.SendOnlyChanges, bc.ReCheckAvailibleBeforeWrite, bc.CheckAvailibleBeforeUsage)).Start();
    } catch (Exception e) {
      System.err.println(e.toString());
    }
    }
 
  public synchronized void Close() {
    if (_serialPort != null) _serialPort.close();
  }
}
TOP

Related Classes of Backlight.ArduinoCom

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.