123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- package at.acdp.urweb.web;
- import at.acdp.urweb.Main;
- import at.acdp.urweb.fhpp.Status;
- import com.nmote.xr.XRMethod;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import java.util.concurrent.ExecutionException;
- public class XRServer {
- private final static Logger logger = LoggerFactory.getLogger(XRServer.class);
- @XRMethod(value = "example.helloWorld", help = "Returns 'Helo ' + argument")
- public static String hello(Object s) {
- return "Hello '" + s + "'";
- }
- @XRMethod(value = "ref2", help = "ref")
- public static String ref(String a, String b) {
- return "ref";
- }
- @XRMethod(value = "rel", help = "rel")
- public static boolean rel(int relPos, int speed) {
- try {
- logger.info("rel {}", relPos);
- int curPos=Main.fhm.readStatus().get().istPosition;
- int targetPos=curPos+relPos;
- logger.info("Relative by {} from {} to {} speed {}", relPos, curPos, targetPos, speed);
- Main.fhm.bereitschaft();
- if(!Main.fhm.readStatus().get().enabled) {
- logger.info("Controller not enabled");
- return false;
- }
- Main.fhm.direktAuftrag(relPos, speed,0, true);
- Thread.sleep(10);
- Main.fhm.direktAuftrag(relPos, speed, 1, true);
- Thread.sleep(10);
- while(true) {
- boolean reached=checkPos(targetPos);
- if(reached) {
- logger.info("Reached {}", targetPos);
- return true;
- }
- try {
- Thread.sleep(100);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- } catch (ExecutionException|InterruptedException e) {
- logger.warn("abs failed", e);
- }
- return false;
- }
- @XRMethod(value = "abs", help = "abs")
- public boolean abs(int targetPos, int speed) {
- try {
- logger.info("Absolute to {} speed {}", targetPos, speed);
- Main.fhm.bereitschaft();
- if(!Main.fhm.readStatus().get().enabled) {
- logger.info("Controller not enabled");
- return false;
- }
- Main.fhm.direktAuftrag(targetPos, speed, 0, false);
- Thread.sleep(100);
- Main.fhm.direktAuftrag(targetPos, speed, 1, false);
- while(true) {
- boolean reached=checkPos(targetPos);
- if(reached) {
- logger.info("Reached {}", targetPos);
- return true;
- }
- try {
- Thread.sleep(100);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- } catch (ExecutionException|InterruptedException e) {
- logger.warn("abs failed", e);
- }
- return false;
- }
- @XRMethod(value = "getpos", help = "getpos")
- public static int getpos() {
- logger.info("GetPos");
- try {
- return Main.fhm.readStatus().get().istPosition;
- } catch (InterruptedException e) {
- e.printStackTrace();
- } catch (ExecutionException e) {
- e.printStackTrace();
- }
- return -1;
- }
- @XRMethod(value = "ready", help = "ready")
- public static void ready() {
- logger.info("Ready Begin");
- Main.fhm.bereitschaft();
- logger.info("Ready End");
- }
- private static boolean checkPos(int pos) {
- try {
- Status s= Main.fhm.readStatus().get();
- int curPos = s.istPosition;
- logger.info("curpos {} ({})", curPos, pos);
- if(curPos==pos) {
- logger.info("reached {}", pos);
- return true;
- }
- Thread.sleep(500);
- } catch (ExecutionException e) {
- e.printStackTrace();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- return false;
- }
- @XRMethod(value = "status", help = "Returns status")
- public static String status() {
- var x=Main.fhm.readStatus();
- try {
- return x==null?"<null>":x.get().toString();
- } catch (Exception e) {
- e.printStackTrace();
- return e.toString();
- }
- }
- }
|