2020-07-02 22:02:21 -04:00
|
|
|
/*
|
|
|
|
|
* Copyright (C) 2020 Photon Vision.
|
|
|
|
|
*
|
|
|
|
|
* This program is free software: you can redistribute it and/or modify
|
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
|
|
|
* (at your option) any later version.
|
|
|
|
|
*
|
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
|
*
|
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
|
*/
|
|
|
|
|
|
2020-06-27 14:58:03 -07:00
|
|
|
package org.photonvision.server;
|
|
|
|
|
|
|
|
|
|
import io.javalin.Javalin;
|
|
|
|
|
|
|
|
|
|
public class Server {
|
|
|
|
|
|
2020-06-28 04:40:43 -04:00
|
|
|
public static void main(int port) {
|
|
|
|
|
Javalin app =
|
|
|
|
|
Javalin.create(
|
|
|
|
|
javalinConfig -> {
|
|
|
|
|
javalinConfig.showJavalinBanner = false;
|
|
|
|
|
javalinConfig.addStaticFiles("web");
|
|
|
|
|
javalinConfig.enableCorsForAllOrigins();
|
|
|
|
|
});
|
|
|
|
|
/*Web Socket Events */
|
|
|
|
|
app.ws(
|
|
|
|
|
"/websocket",
|
|
|
|
|
ws -> {
|
|
|
|
|
ws.onConnect(SocketHandler::onConnect);
|
|
|
|
|
ws.onClose(SocketHandler::onClose);
|
|
|
|
|
ws.onBinaryMessage(SocketHandler::onBinaryMessage);
|
|
|
|
|
});
|
|
|
|
|
/*API Events*/
|
|
|
|
|
app.post("/api/settings/general", RequestHandler::onGeneralSettings);
|
|
|
|
|
app.post("/api/settings/camera", RequestHandler::onCameraSettings);
|
|
|
|
|
app.post("/api/vision/duplicate", RequestHandler::onDuplicatePipeline);
|
|
|
|
|
app.post("/api/settings/startCalibration", RequestHandler::onCalibrationStart);
|
|
|
|
|
app.post("/api/settings/snapshot", RequestHandler::onSnapshot);
|
|
|
|
|
app.post("/api/settings/endCalibration", RequestHandler::onCalibrationEnding);
|
|
|
|
|
app.post("/api/vision/pnpModel", RequestHandler::onPnpModel);
|
|
|
|
|
app.post("/api/install", RequestHandler::onInstallOrUpdate);
|
|
|
|
|
app.start(port);
|
|
|
|
|
}
|
2020-06-27 14:58:03 -07:00
|
|
|
}
|