package it.unibg.robotic.examples.helloWorldDataFlow; import it.unibg.robotics.jorocos.corba.CorbaOrocosSystem; import it.unibg.robotics.jorocos.core.AbstractOrocosComponent; import it.unibg.robotics.jorocos.core.AbstractOrocosConnection.LockPolicy; import it.unibg.robotics.jorocos.core.AbstractOrocosSystem; import it.unibg.robotics.jorocos.core.OrocosPortEvent; import it.unibg.robotics.jorocos.exceptions.ConnectionToPortNotExistException; import it.unibg.robotics.jorocos.exceptions.SystemIpAndPortAlreadyDefinedException; import it.unibg.robotics.jorocos.exceptions.SystemNotConnectedException; import it.unibg.robotics.jorocos.exceptions.WrongPortTypeException; import java.util.Observable; import java.util.Observer; public class HelloWorldDataFlowProxy implements Observer { AbstractOrocosSystem system; AbstractOrocosComponent helloWorldDataFlowComponent; public HelloWorldDataFlowProxy(String systemIP, String systemPort) { try { // create a proxy to the Orocos system and connect to it system = CorbaOrocosSystem.getInstance(systemIP, systemPort); system.connect(); // create a proxy to the Hello World component helloWorldDataFlowComponent = system.getComponent("HelloWorldDataFlow", false); // create a connection to the input port helloWorldDataFlowComponent.createDataConnectionToInputPort("inputPort", LockPolicy.LOCK_FREE, this); // subsribe to the output port with a period of 100ms helloWorldDataFlowComponent.subscribeToDataOutputPort("outputPort", LockPolicy.LOCK_FREE, this, 100); } catch (SystemIpAndPortAlreadyDefinedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SystemNotConnectedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (WrongPortTypeException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void update(Observable observable, Object event) { if(event instanceof OrocosPortEvent){ System.out.println(((OrocosPortEvent)event).getValue()); } } public void writeOnInputPort(String value){ try { helloWorldDataFlowComponent.writeOnPort("inputPort", value, this); } catch (ConnectionToPortNotExistException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (WrongPortTypeException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }