配置修改
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user