diff --git a/MockCAN.py b/MockCAN.py
index 2303b9d..14a528e 100644
--- a/MockCAN.py
+++ b/MockCAN.py
@@ -7,7 +7,7 @@ class CANBackend:
def __init__(self, eds_file=None):
self.connected = False
- def connect(self, node_id: int, eds_path: str) -> bool:
+ def connect(self) -> bool:
# Placeholder for connection logic
self.connected = True
return True
diff --git a/main.py b/main.py
index 489832e..cf8f0a5 100644
--- a/main.py
+++ b/main.py
@@ -124,6 +124,7 @@ def require_login(request: Request):
@app.get("/", response_class=HTMLResponse)
def login_form(request: Request):
+ connect_toggle()
return templates.TemplateResponse("login.html", {"request": request})
@@ -166,7 +167,6 @@ def monitor_page(request: Request):
# ======== CAN + BACKEND ROUTES ========
-
@app.post("/connect_toggle")
def connect_toggle():
logging.info("Toggling CAN connection...")
@@ -178,7 +178,14 @@ def connect_toggle():
if not success:
raise HTTPException(status_code=500, detail="Connection failed.")
- return {"connected": True}
+ return {"connected": can_backend.connected}
+
+@app.post("/is_connected")
+def is_can_connected():
+ """"
+
+ """
+ return {"connected": can_backend.connected}
@app.post("/command/{state}/pu/{pu_number}")
@@ -420,7 +427,7 @@ if __name__ == "__main__":
uvicorn.run(
"main:app",
host="127.0.0.1",
- port=8080,
+ port=8081,
reload=True,
reload_dirs=["."],
)
diff --git a/templates/control.html b/templates/control.html
index 3d527ff..8727c3e 100644
--- a/templates/control.html
+++ b/templates/control.html
@@ -342,14 +342,23 @@
document.getElementById('currentValue').textContent = value;
}
- async function toggleConnection() {
- const response = await fetch('/connect_toggle', {method: 'POST'});
- const data = await response.json();
- const connectButton = document.getElementById('connectButton');
- connectButton.classList.toggle('connected', data.connected);
- connectButton.innerHTML = ` ${data.connected ? 'Disconnect' : 'Connect'}`;
+ async function getConnectionStatus() {
+ const response = await fetch('/connect_toggle', { method: 'GET' });
+ const data = await response.json();
+ const connectButton = document.getElementById('connectButton');
+ connectButton.classList.toggle('connected', data.connected);
+ connectButton.innerHTML = ` ${data.connected ? 'Disconnect' : 'Connect'}`;
}
+ async function toggleConnection() {
+ const response = await fetch('/connect_toggle', { method: 'POST' });
+ const data = await response.json();
+ const connectButton = document.getElementById('connectButton');
+ connectButton.classList.toggle('connected', data.connected);
+ connectButton.innerHTML = ` ${data.connected ? 'Disconnect' : 'Connect'}`;
+ }
+
+
let isRecording = false;
async function toggleRecording() {
@@ -526,6 +535,8 @@ async function fetchMonitorData() {
}
}
+getConnectionStatus();
+
setInterval(fetchMonitorData, 1000);
fetchMonitorData();