73 lines
1.5 KiB
Java
73 lines
1.5 KiB
Java
package org.hwo.pulscounter.service;
|
|
|
|
import java.io.IOException;
|
|
import java.net.InetAddress;
|
|
import java.net.UnknownHostException;
|
|
|
|
import org.hwo.beacon.Beacon;
|
|
import org.hwo.pulscounter.IPulsCounter;
|
|
import org.hwo.pulscounter.NewPulsCounterDevice;
|
|
import org.hwo.rpc.simple.SimpleRPCServer;
|
|
|
|
public class PulsCounterService {
|
|
|
|
private NewPulsCounterDevice localDevice;
|
|
private SimpleRPCServer localRPCServer;
|
|
private Beacon serviceBeacon;
|
|
|
|
|
|
|
|
public PulsCounterService(){
|
|
|
|
serviceBeacon = new Beacon(44556);
|
|
serviceBeacon.getProperties().setProperty("rpc.simple.interfaces", "org.hwo.pulsecounter");
|
|
serviceBeacon.getProperties().setProperty("rpc.simple.port", "44352");
|
|
serviceBeacon.setServerOnly(true);
|
|
|
|
}
|
|
|
|
public void start(){
|
|
|
|
if (localDevice == null){
|
|
localDevice = new NewPulsCounterDevice();
|
|
|
|
try {
|
|
localRPCServer = new SimpleRPCServer(InetAddress.getByName("0.0.0.0"), 44352);
|
|
localRPCServer.registerObject(IPulsCounter.class, localDevice);
|
|
localRPCServer.start();
|
|
|
|
serviceBeacon.start();
|
|
|
|
} catch (Exception e) {
|
|
localDevice = null;
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
public void stop(){
|
|
if (serviceBeacon.isAlive())
|
|
serviceBeacon.exit();
|
|
|
|
if (localDevice != null){
|
|
localRPCServer.exit();
|
|
localDevice.close();
|
|
localDevice = null;
|
|
}
|
|
|
|
}
|
|
|
|
public boolean isActive() {
|
|
return (serviceBeacon.isAlive());
|
|
}
|
|
|
|
public NewPulsCounterDevice getLocalDevice(){
|
|
return localDevice;
|
|
}
|
|
void setLocalDevice(NewPulsCounterDevice device){
|
|
localDevice = device;
|
|
}
|
|
|
|
|
|
}
|