1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- 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<Status> 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();
- }
- }
- }
|