WebServer.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package at.acdp.urweb.web;
  2. import at.acdp.urweb.Params;
  3. import at.acdp.urweb.URBot;
  4. import at.acdp.urweb.sclient.URLog;
  5. import org.slf4j.LoggerFactory;
  6. import static spark.Spark.*;
  7. public class WebServer {
  8. private final static org.slf4j.Logger logger = LoggerFactory.getLogger(WebServer.class);
  9. private final URBot urbot;
  10. private final Params params;
  11. public WebServer(Params params) {
  12. this.params = params;
  13. this.urbot=new URBot(params.robotIP);
  14. }
  15. public void start() {
  16. port(params.port);
  17. if (!params.webroot.isEmpty())
  18. staticFileLocation(params.webroot);
  19. else
  20. staticFiles.location("/webroot");
  21. post("/cmd", (req, res) -> {
  22. byte[] bytes = req.raw().getInputStream().readAllBytes();
  23. String cmd=new String(bytes);
  24. urbot.sendProgram(cmd);
  25. return "";
  26. });
  27. post("/freedrive", (req, res) -> {
  28. urbot.sendFreedrive(1);
  29. return "";
  30. });
  31. post("/digital/:which", (req, res) -> {
  32. int which=Integer.parseInt(req.params("which"));
  33. boolean val = Boolean.valueOf(new String(req.raw().getInputStream().readAllBytes()));
  34. urbot.setDigital(which, val);
  35. return "";
  36. });
  37. get("/digital/:which", (req, res) -> {
  38. int which=Integer.parseInt(req.params("which"));
  39. boolean d=urbot.getDigital(which);
  40. res.body(String.valueOf(d));
  41. return "";
  42. });
  43. get("/log/:from", (req, res) -> {
  44. int from=Integer.parseInt(req.params("from"));
  45. from=Integer.max(0,from);
  46. var r = URLog.get(from);
  47. return r.toJSON();
  48. });
  49. }
  50. }