WebServer.java 1.8 KB

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