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; } }