diff --git a/sfm/server.py b/sfm/server.py index 2ea6789..e257038 100644 --- a/sfm/server.py +++ b/sfm/server.py @@ -36,13 +36,14 @@ from __future__ import annotations import logging import sys +from pathlib import Path from typing import Optional # FastAPI / Pydantic try: from fastapi import Body, FastAPI, HTTPException, Query from fastapi.middleware.cors import CORSMiddleware - from fastapi.responses import JSONResponse + from fastapi.responses import FileResponse, JSONResponse from pydantic import BaseModel import uvicorn except ImportError: @@ -246,6 +247,12 @@ def health() -> dict: return {"status": "ok", "service": "sfm", "version": "0.1.0"} +@app.get("/", response_class=FileResponse) +def webapp(): + """Serve the SFM web app.""" + return str(Path(__file__).parent / "sfm_webapp.html") + + @app.get("/device/info") def device_info( port: Optional[str] = Query(None, description="Serial port (e.g. COM5, /dev/ttyUSB0)"), diff --git a/sfm/sfm_webapp.html b/sfm/sfm_webapp.html new file mode 100644 index 0000000..c99efc5 --- /dev/null +++ b/sfm/sfm_webapp.html @@ -0,0 +1,1110 @@ + + +
+ + +No waveform loaded
+