forked from LupusNobilis/java-org.hwo
77 lines
1.3 KiB
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;
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|