配置修改

This commit is contained in:
2026-01-21 13:29:00 +08:00
parent 1e562798eb
commit e965b10603
4 changed files with 58 additions and 24 deletions

View File

@@ -1,6 +1,7 @@
from typing import List, Optional
from fastapi import APIRouter, Depends, HTTPException
from fastapi import APIRouter, Depends, HTTPException, Body
from pydantic import BaseModel
from sqlalchemy.orm import Session
from db.crud import (
@@ -16,6 +17,14 @@ from inference.pipeline import get_pipeline
router = APIRouter(prefix="/api/cameras", tags=["摄像头管理"])
class CameraUpdateRequest(BaseModel):
name: Optional[str] = None
rtsp_url: Optional[str] = None
fps_limit: Optional[int] = None
process_every_n_frames: Optional[int] = None
enabled: Optional[bool] = None
@router.get("", response_model=List[dict])
def list_cameras(
enabled_only: bool = True,
@@ -83,29 +92,25 @@ def add_camera(
@router.put("/{camera_id}", response_model=dict)
def modify_camera(
camera_id: int,
name: Optional[str] = None,
rtsp_url: Optional[str] = None,
fps_limit: Optional[int] = None,
process_every_n_frames: Optional[int] = None,
enabled: Optional[bool] = None,
request: CameraUpdateRequest = Body(...),
db: Session = Depends(get_db),
):
camera = update_camera(
db,
camera_id=camera_id,
name=name,
rtsp_url=rtsp_url,
fps_limit=fps_limit,
process_every_n_frames=process_every_n_frames,
enabled=enabled,
name=request.name,
rtsp_url=request.rtsp_url,
fps_limit=request.fps_limit,
process_every_n_frames=request.process_every_n_frames,
enabled=request.enabled,
)
if not camera:
raise HTTPException(status_code=404, detail="摄像头不存在")
pipeline = get_pipeline()
if enabled is True:
if request.enabled is True:
pipeline.add_camera(camera)
elif enabled is False:
elif request.enabled is False:
pipeline.remove_camera(camera_id)
return {