ServiceLinkListener Interface neu
parent
67b9da31b8
commit
c256f9850d
|
@ -7,6 +7,7 @@ import java.nio.ByteBuffer;
|
|||
import java.nio.ByteOrder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Hashtable;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import org.hwo.ChkSum;
|
||||
|
@ -15,6 +16,7 @@ import org.hwo.bitfields.BitField;
|
|||
import org.hwo.interactiveobjects.InteractiveObject;
|
||||
import org.hwo.io.SerialPort;
|
||||
import org.hwo.io.NewSerialPort.NewSerialPort;
|
||||
import org.hwo.io.NewSerialPort.NewSerialPortListener;
|
||||
|
||||
/* ServiceLink
|
||||
*
|
||||
|
@ -34,7 +36,7 @@ import org.hwo.io.NewSerialPort.NewSerialPort;
|
|||
*/
|
||||
|
||||
|
||||
public class ServiceLink {
|
||||
public class ServiceLink implements NewSerialPortListener {
|
||||
|
||||
static int REQ_READ = 0x01;
|
||||
static int REQ_WRITE = 0x02;
|
||||
|
@ -187,17 +189,33 @@ public class ServiceLink {
|
|||
private AsynchronServiceLinkProvider
|
||||
asynchronServiceLinkProvider;
|
||||
|
||||
private List<ServiceLinkListener> serviceLinkListeners;
|
||||
|
||||
public ServiceLink(NewSerialPort serialPort)
|
||||
{
|
||||
this.serviceLinkListeners = new LinkedList<ServiceLinkListener>();
|
||||
this.retries = 3;
|
||||
this.serialPort = serialPort;
|
||||
this.serialPort.setTimeOut(250);
|
||||
this.serialPort.addNewSerialPortListener(this);
|
||||
this.serviceRegisterCache = new ServiceRegisterCache(this);
|
||||
this.asynchronServiceLinkProvider = new AsynchronServiceLinkProvider(serviceRegisterCache);
|
||||
this.requestTime = new Smoother();
|
||||
this.requestTime.setTn(16);
|
||||
}
|
||||
|
||||
public void addServiceLinkListener(ServiceLinkListener listener){
|
||||
serviceLinkListeners.add(listener);
|
||||
}
|
||||
public void removeServiceLinkListener(ServiceLinkListener listener){
|
||||
serviceLinkListeners.remove(listener);
|
||||
}
|
||||
private void fireConnectionStateChanged(Boolean connected){
|
||||
for (ServiceLinkListener l: serviceLinkListeners)
|
||||
l.connectionStateChanged(connected);
|
||||
}
|
||||
|
||||
|
||||
public int getAverageRequestTime()
|
||||
{
|
||||
return requestTime.getWert();
|
||||
|
@ -214,8 +232,9 @@ public class ServiceLink {
|
|||
|
||||
public synchronized void open() throws ServiceLinkException
|
||||
{
|
||||
if (serialPort != null)
|
||||
if (serialPort != null){
|
||||
serialPort.open();
|
||||
}
|
||||
throwNotOpen();
|
||||
}
|
||||
|
||||
|
@ -321,10 +340,13 @@ public class ServiceLink {
|
|||
}
|
||||
|
||||
public synchronized void setSerialPort(NewSerialPort serialPort) {
|
||||
if (isOpen())
|
||||
this.serialPort.close();
|
||||
if (isOpen()){
|
||||
this.close();
|
||||
this.serialPort.removeNewSerialPortListener(this);
|
||||
}
|
||||
|
||||
this.serialPort = serialPort;
|
||||
this.serialPort.addNewSerialPortListener(this);
|
||||
}
|
||||
|
||||
private synchronized void throwNotOpen() throws ServiceLinkException
|
||||
|
@ -337,6 +359,11 @@ public class ServiceLink {
|
|||
{
|
||||
return this.serialPort.isOpen();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connectionStateChanged(NewSerialPort port, boolean connected) {
|
||||
fireConnectionStateChanged(connected);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
package org.hwo.servicelink;
|
||||
|
||||
public interface ServiceLinkListener {
|
||||
|
||||
void connectionStateChanged(Boolean connected);
|
||||
|
||||
}
|
Loading…
Reference in New Issue