java-org.hwo/src/org/hwo/io/SerialPort.java

77 lines
1.3 KiB
Java

package org.hwo.io;
import java.io.InputStream;
import java.io.OutputStream;
import org.hwo.os.OsDetect;
public abstract class SerialPort {
static public String[] getPortNames()
{
switch (OsDetect.getOperatingSystem())
{
case OSX:
return SerialPortOSX.getPortNames();
case WINDOWS:
return SerialPortWINDOWS.getPortNames();
case LINUX:
return SerialPortLINUX.getPortNames();
default:
return new String[]{};
}
}
static public SerialPort newInstance()
{
switch (OsDetect.getOperatingSystem())
{
case OSX:
return new SerialPortOSX();
case WINDOWS:
return new SerialPortWINDOWS();
case LINUX:
return new SerialPortLINUX();
default:
return null;
}
}
private String portName;
private int timeout; // 0 = Non-Blocking, -1 = Block forever
protected SerialPort()
{
this.portName = "";
this.timeout = -1;
}
abstract public boolean isOpen();
abstract public boolean open();
abstract public void close();
abstract public InputStream getInputStream();
abstract public OutputStream getOutputStream();
public String getPortName() {
return portName;
}
public void setPortName(String portName) {
this.portName = portName;
}
public int getTimeout() {
return timeout;
}
public void setTimeout(int timeout) {
this.timeout = timeout;
}
}