File size: 1,621 Bytes
8579cdc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
"""API models."""
from pydantic import BaseModel, Field
from typing import Optional


class ChatMessage(BaseModel):
    """Chat message model."""
    message: str = Field(..., min_length=1, max_length=500)


class DroneTelemetry(BaseModel):
    """Drone telemetry data received from hardware."""
    altitude: float = Field(..., description="Current altitude in meters")
    batteryRemaining: int = Field(..., description="Battery percentage remaining")
    cellCount: int = Field(..., description="Number of battery cells")
    distance: int = Field(..., description="Total distance traveled in meters")
    distanceToHome: float = Field(..., description="Distance to home position in meters")
    firmware: str = Field(..., description="Firmware version")
    flightTime: int = Field(..., description="Total flight time in seconds")
    frame: str = Field(..., description="Aircraft frame type")
    frameId: int = Field(..., description="Frame type ID")
    groundSpeed: float = Field(..., description="Ground speed in m/s")
    heading: float = Field(..., description="Heading in degrees")
    latitude: float = Field(..., description="Current latitude")
    longitude: float = Field(..., description="Current longitude")
    mode: str = Field(..., description="Current flight mode")
    pitch: float = Field(..., description="Pitch angle in degrees")
    roll: float = Field(..., description="Roll angle in degrees")
    satellite: int = Field(..., description="Number of GPS satellites")
    voltage: float = Field(..., description="Battery voltage")
    yaw: float = Field(..., description="Yaw angle in degrees")