XRServer.java 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package at.acdp.urweb.web;
  2. import at.acdp.urweb.Main;
  3. import at.acdp.urweb.fhpp.Status;
  4. import com.nmote.xr.XRMethod;
  5. import org.slf4j.Logger;
  6. import org.slf4j.LoggerFactory;
  7. public class XRServer {
  8. private final static Logger logger = LoggerFactory.getLogger(XRServer.class);
  9. @XRMethod(value = "example.helloWorld", help = "Returns 'Helo ' + argument")
  10. public static String hello(Object s) {
  11. return "Hello '" + s + "'";
  12. }
  13. @XRMethod(value = "ref2", help = "ref")
  14. public static String ref(String a, String b) {
  15. return "ref";
  16. }
  17. @XRMethod(value = "rel", help = "rel")
  18. public static void rel(String pos) {
  19. logger.info("Relative to {} Begin", pos);
  20. System.out.println("rel: "+pos);
  21. Main.fhm.direktAuftrag(Integer.parseInt(pos),0,true);
  22. waitMC(true);
  23. Main.fhm.direktAuftrag(Integer.parseInt(pos),1,true);
  24. waitMC(true);
  25. logger.info("Relative to {} End", pos);
  26. }
  27. @XRMethod(value = "abs", help = "abs")
  28. public static void abs(String pos) {
  29. logger.info("Absolute to {} Begin", pos);
  30. Main.fhm.direktAuftrag(Integer.parseInt(pos),0, false);
  31. waitMC(true);
  32. Main.fhm.direktAuftrag(Integer.parseInt(pos),1, false);
  33. waitMC(true);
  34. logger.info("Absolute to {} End", pos);
  35. }
  36. private static void waitMC(boolean what) {
  37. logger.info("Waiting for MC");
  38. while(true) {
  39. Status s = Main.fhm.readStatus().join();
  40. if (s.mc == what) break;
  41. }
  42. logger.info("Got MC");
  43. }
  44. private static void checkPos(int pos) {
  45. }
  46. @XRMethod(value = "status", help = "Returns status")
  47. public static String status() {
  48. var x=Main.fhm.readStatus();
  49. try {
  50. return x==null?"<null>":x.get().toString();
  51. } catch (Exception e) {
  52. e.printStackTrace();
  53. return e.toString();
  54. }
  55. }
  56. }