mirror of https://github.com/DJ2LS/FreeDATA.git
45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
from fastapi import APIRouter, WebSocket, Depends
|
|
from freedata_server.context import AppContext, get_ctx
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.websocket("/events")
|
|
async def websocket_events(websocket: WebSocket, ctx: AppContext = Depends(get_ctx)):
|
|
"""
|
|
WebSocket endpoint for event streams.
|
|
"""
|
|
await websocket.accept()
|
|
await ctx.websocket_manager.handle_connection(websocket, ctx.websocket_manager.events_client_list, ctx.modem_events)
|
|
|
|
|
|
@router.websocket("/fft")
|
|
async def websocket_fft(websocket: WebSocket, ctx: AppContext = Depends(get_ctx)):
|
|
"""
|
|
WebSocket endpoint for FFT data streams.
|
|
"""
|
|
await websocket.accept()
|
|
await ctx.websocket_manager.handle_connection(websocket, ctx.websocket_manager.fft_client_list, ctx.modem_fft)
|
|
|
|
|
|
@router.websocket("/states")
|
|
async def websocket_states(websocket: WebSocket, ctx: AppContext = Depends(get_ctx)):
|
|
"""
|
|
WebSocket endpoint for state updates.
|
|
"""
|
|
await websocket.accept()
|
|
await ctx.websocket_manager.handle_connection(websocket, ctx.websocket_manager.states_client_list, ctx.state_queue)
|
|
|
|
|
|
@router.websocket("/audio_rx")
|
|
async def websocket_audio_rx(websocket: WebSocket, ctx: AppContext = Depends(get_ctx)):
|
|
"""
|
|
WebSocket endpoint for state updates.
|
|
"""
|
|
await websocket.accept()
|
|
await ctx.websocket_manager.handle_connection(
|
|
websocket, ctx.websocket_manager.audio_rx_client_list, ctx.state_queue
|
|
)
|
|
# while True:
|
|
# await websocket.send_bytes(b"\x00" * 1024)
|