package at.acdp.urweb; import at.acdp.urweb.fhpp.IFHMaster; import at.acdp.urweb.fhpp.Status; import at.acdp.urweb.rtde.RTDEClient; import at.acdp.urweb.rtde.packets.RtdeInDataPackage; import at.acdp.urweb.rtde.packets.RtdeSetupInputs; import org.slf4j.LoggerFactory; import java.io.IOException; import java.util.concurrent.CompletableFuture; public class PosThread implements Runnable{ private final static org.slf4j.Logger logger = LoggerFactory.getLogger(PosThread.class); private final RTDEClient rtde; private final IFHMaster fhm; private Thread thread; private volatile boolean _running=true; public static Status lastStatus; public PosThread(RTDEClient r, IFHMaster fhm) { this.rtde=r; this.fhm=fhm; } public void start() { thread=new Thread(this); thread.start(); } @Override public void run() { try { var si=new RtdeSetupInputs() .addVariable("input_int_register_24"); rtde.request(si); while(_running) { CompletableFuture s = fhm.readStatus(); lastStatus=s.join(); var pos=new RtdeInDataPackage(si); pos.put("input_int_register_24", String.valueOf(lastStatus.istPosition)); rtde.request(pos); Thread.sleep(100); } } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } }