12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package at.acdp.urweb.web;
- import at.acdp.urweb.Params;
- import at.acdp.urweb.RobotCommand;
- import at.acdp.urweb.URBot;
- import at.acdp.urweb.sclient.URLog;
- import com.eclipsesource.json.JsonArray;
- import org.slf4j.LoggerFactory;
- import static spark.Spark.*;
- public class WebServer {
- private final static org.slf4j.Logger logger = LoggerFactory.getLogger(WebServer.class);
- private URBot urbot;
- private final Params params;
- public WebServer(Params params) {
- this.params = params;
- }
- public void start() {
- this.urbot=new URBot(params.robotIP);
- this.urbot.start();
- port(params.port);
- if (!params.webroot.isEmpty())
- staticFileLocation(params.webroot);
- else
- staticFiles.location("/webroot");
- post("/cmd", (req, res) -> {
- var cmd=req.queryParams("script");
- RobotCommand rc=new RobotCommand(cmd);
- rc.cpeeCallback = req.headers("CPEE-CALLBACK");
- rc.cpeeCallbackId = req.headers("CPEE-CALLBACK-ID");
- rc.cpeeInstanceURL = req.headers("CPEE-INSTANCE-URL");
- if (Boolean.valueOf(req.queryParams("callback"))) {
- res.header("CPEE-CALLBACK", "true");
- rc.doCpeeCallback = true;
- }
- urbot.sendCmd(rc);
- return "";
- });
- post("/freedrive", (req, res) -> {
- urbot.sendFreedrive(1);
- return "";
- });
- post("/digital/:which", (req, res) -> {
- int which=Integer.parseInt(req.params("which"));
- boolean val = Boolean.valueOf(new String(req.raw().getInputStream().readAllBytes()));
- urbot.setDigital(which, val);
- return "";
- });
- get("/digital/:which", (req, res) -> {
- int which=Integer.parseInt(req.params("which"));
- boolean d=urbot.getDigital(which);
- res.body(String.valueOf(d));
- return "";
- });
- get("/log/:from", (req, res) -> {
- int from=Integer.parseInt(req.params("from"));
- from=Integer.max(0,from);
- var r = URLog.get(from);
- return r.toJSON();
- });
- get("/cmdq", (req, res) -> {
- JsonArray jsa=new JsonArray();
- for(var c:urbot.getCmdq()) {
- jsa.add(c.toJSON());
- }
- return jsa.toString();
- });
- }
- }
|