mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-20 00:51:41 +00:00
Update backend to provide more useful info to frontend (#866)
This commit is contained in:
@@ -19,13 +19,14 @@ package org.photonvision.server;
|
||||
|
||||
import io.javalin.Javalin;
|
||||
import io.javalin.http.staticfiles.Location;
|
||||
import java.util.StringJoiner;
|
||||
import org.photonvision.common.logging.LogGroup;
|
||||
import org.photonvision.common.logging.Logger;
|
||||
|
||||
public class Server {
|
||||
private static final Logger logger = new Logger(Server.class, LogGroup.WebServer);
|
||||
|
||||
public static void main(int port) {
|
||||
public static void start(int port) {
|
||||
Javalin app =
|
||||
Javalin.create(
|
||||
config -> {
|
||||
@@ -34,15 +35,21 @@ public class Server {
|
||||
config.enableCorsForAllOrigins();
|
||||
|
||||
config.requestLogger(
|
||||
(ctx, ms) ->
|
||||
logger.debug(
|
||||
"Handled HTTP "
|
||||
+ ctx.req.getMethod()
|
||||
+ " request from "
|
||||
+ ctx.req.getRemoteHost()
|
||||
+ " in "
|
||||
+ ms.toString()
|
||||
+ "ms"));
|
||||
(ctx, ms) -> {
|
||||
StringJoiner joiner =
|
||||
new StringJoiner(" ")
|
||||
.add("Handled HTTP request of type")
|
||||
.add(ctx.req.getMethod())
|
||||
.add("from endpoint")
|
||||
.add(ctx.path())
|
||||
.add("for host")
|
||||
.add(ctx.req.getRemoteHost())
|
||||
.add("in")
|
||||
.add(ms.toString())
|
||||
.add("ms");
|
||||
|
||||
logger.debug(joiner.toString());
|
||||
});
|
||||
|
||||
config.wsLogger(
|
||||
ws ->
|
||||
@@ -61,7 +68,7 @@ public class Server {
|
||||
})));
|
||||
});
|
||||
|
||||
/*Web Socket Events for Data Exchage */
|
||||
/*Web Socket Events for Data Exchange */
|
||||
var dsHandler = DataSocketHandler.getInstance();
|
||||
app.ws(
|
||||
"/websocket_data",
|
||||
@@ -70,6 +77,7 @@ public class Server {
|
||||
ws.onClose(dsHandler::onClose);
|
||||
ws.onBinaryMessage(dsHandler::onBinaryMessage);
|
||||
});
|
||||
|
||||
/*Web Socket Events for Camera Streaming */
|
||||
var camDsHandler = CameraSocketHandler.getInstance();
|
||||
app.ws(
|
||||
@@ -80,20 +88,28 @@ public class Server {
|
||||
ws.onBinaryMessage(camDsHandler::onBinaryMessage);
|
||||
ws.onMessage(camDsHandler::onMessage);
|
||||
});
|
||||
|
||||
/*API Events*/
|
||||
app.post("/api/settings/import", RequestHandler::onSettingUpload);
|
||||
app.post("/api/settings/offlineUpdate", RequestHandler::onOfflineUpdate);
|
||||
app.get("/api/settings/photonvision_config.zip", RequestHandler::onSettingsDownload);
|
||||
app.get("/api/settings/photonvision-journalctl.txt", RequestHandler::onExportCurrentLogs);
|
||||
app.post("/api/settings/camera", RequestHandler::onCameraSettingsSave);
|
||||
app.post("/api/settings/general", RequestHandler::onGeneralSettings);
|
||||
app.post("/api/settings/endCalibration", RequestHandler::onCalibrationEnd);
|
||||
app.post("/api/restartDevice", RequestHandler::restartDevice);
|
||||
app.post("api/restartProgram", RequestHandler::restartProgram);
|
||||
app.post("api/vision/pnpModel", RequestHandler::uploadPnpModel);
|
||||
app.post("api/sendMetrics", RequestHandler::sendMetrics);
|
||||
app.post("api/setCameraNickname", RequestHandler::setCameraNickname);
|
||||
app.post("api/calibration/import", RequestHandler::importCalibrationFromCalibdb);
|
||||
// Settings
|
||||
app.post("/api/settings", RequestHandler::onSettingsImportRequest);
|
||||
app.get("/api/settings/photonvision_config.zip", RequestHandler::onSettingsExportRequest);
|
||||
app.post("/api/settings/hardwareConfig", RequestHandler::onHardwareConfigRequest);
|
||||
app.post("/api/settings/hardwareSettings", RequestHandler::onHardwareSettingsRequest);
|
||||
app.post("/api/settings/networkConfig", RequestHandler::onNetworkConfigRequest);
|
||||
app.post("/api/settings/general", RequestHandler::onGeneralSettingsRequest);
|
||||
app.post("/api/settings/camera", RequestHandler::onCameraSettingsRequest);
|
||||
app.post("/api/settings/camera/setNickname", RequestHandler::onCameraNicknameChangeRequest);
|
||||
|
||||
// Utilities
|
||||
app.post("/api/utils/offlineUpdate", RequestHandler::onOfflineUpdateRequest);
|
||||
app.get("/api/utils/logs/photonvision-journalctl.txt", RequestHandler::onLogExportRequest);
|
||||
app.post("/api/utils/restartProgram", RequestHandler::onProgramRestartRequest);
|
||||
app.post("/api/utils/restartDevice", RequestHandler::onDeviceRestartRequest);
|
||||
app.post("/api/utils/publishMetrics", RequestHandler::onMetricsPublishRequest);
|
||||
|
||||
// Calibration
|
||||
app.post("/api/calibration/end", RequestHandler::onCalibrationEndRequest);
|
||||
app.post("/api/calibration/importFromCalibDB", RequestHandler::onCalibrationImportRequest);
|
||||
|
||||
app.start(port);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user