Adds auto connect

This commit is contained in:
Etienne Chassaing 2025-08-04 16:52:17 +02:00
parent d311af6da4
commit 9e79f343a5
3 changed files with 28 additions and 10 deletions

View File

@ -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

13
main.py
View File

@ -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=["."],
)

View File

@ -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 = `<i class="fas fa-power-off"></i> ${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 = `<i class="fas fa-power-off"></i> ${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 = `<i class="fas fa-power-off"></i> ${data.connected ? 'Disconnect' : 'Connect'}`;
}
let isRecording = false;
async function toggleRecording() {
@ -526,6 +535,8 @@ async function fetchMonitorData() {
}
}
getConnectionStatus();
setInterval(fetchMonitorData, 1000);
fetchMonitorData();
</script>