SYMBOL INDEX (8037 symbols across 499 files) FILE: actions.py function fail (line 96) | def fail(): function check_mavsdk_server_running (line 103) | def check_mavsdk_server_running(port): function wait_for_port (line 117) | def wait_for_port(port, host='localhost', timeout=10.0): function log_mavsdk_output (line 131) | async def log_mavsdk_output(mavsdk_server): function stop_mavsdk_server (line 169) | def stop_mavsdk_server(mavsdk_server): function find_mavsdk_server (line 187) | def find_mavsdk_server(): function start_mavsdk_server (line 213) | def start_mavsdk_server(grpc_port, udp_port): function _normalize_action_name (line 267) | def _normalize_action_name(action_name: str | None) -> str | None: function perform_action (line 274) | async def perform_action(action, altitude=None, parameters=None, branch=... function wait_for_drone_connection (line 375) | async def wait_for_drone_connection(drone, timeout=10): function wait_for_telemetry_condition (line 391) | async def wait_for_telemetry_condition(stream_factory, predicate, descri... function _get_local_drone_state_snapshot (line 407) | def _get_local_drone_state_snapshot(timeout: float = 1.0): function _get_local_home_position_snapshot (line 421) | def _get_local_home_position_snapshot(timeout: float = 1.0): function _get_local_relative_altitude_snapshot (line 435) | def _get_local_relative_altitude_snapshot(timeout: float = 1.0): function _get_current_relative_altitude (line 451) | async def _get_current_relative_altitude(drone, timeout: float = 3.0): function _get_current_landed_state (line 468) | async def _get_current_landed_state(drone, timeout: float = 3.0): function wait_until_armed_state (line 480) | async def wait_until_armed_state(drone, expected: bool, timeout=15): function wait_until_landed_state (line 490) | async def wait_until_landed_state(drone, expected_states, description, t... function wait_until_flight_mode (line 500) | async def wait_until_flight_mode(drone, expected_mode, timeout=15): function wait_until_relative_altitude (line 509) | async def wait_until_relative_altitude(drone, minimum_relative_altitude_... function safe_action (line 531) | async def safe_action(func, *args, **kwargs): function _run_takeoff (line 550) | async def _run_takeoff(context: ActionExecutionContext, invocation: Acti... function _run_land (line 554) | async def _run_land(context: ActionExecutionContext, invocation: ActionI... function _run_return_rtl (line 558) | async def _run_return_rtl(context: ActionExecutionContext, invocation: A... function _run_hold (line 562) | async def _run_hold(context: ActionExecutionContext, invocation: ActionI... function _run_kill_terminate (line 566) | async def _run_kill_terminate(context: ActionExecutionContext, invocatio... function _run_test (line 570) | async def _run_test(context: ActionExecutionContext, invocation: ActionI... function _run_reboot_fc (line 574) | async def _run_reboot_fc(context: ActionExecutionContext, invocation: Ac... function _run_reboot_sys (line 578) | async def _run_reboot_sys(context: ActionExecutionContext, invocation: A... function _run_init_sysid (line 582) | async def _run_init_sysid(context: ActionExecutionContext, invocation: A... function _run_apply_common_params (line 586) | async def _run_apply_common_params(context: ActionExecutionContext, invo... function _run_update_code (line 590) | async def _run_update_code(context: ActionExecutionContext, invocation: ... function _run_precision_move (line 594) | async def _run_precision_move(context: ActionExecutionContext, invocatio... function get_action_spec (line 598) | def get_action_spec(action_name: str | None) -> ActionSpec | None: function parse_param_value (line 687) | def parse_param_value(raw_value, param_name): function set_parameters (line 708) | async def set_parameters(drone, parameters): function apply_common_params (line 728) | async def apply_common_params(drone, reboot_after=False): function ensure_ready_for_flight (line 790) | async def ensure_ready_for_flight(drone, timeout: float | None = None): function takeoff (line 837) | async def takeoff(drone, altitude): function land (line 891) | async def land(drone): function return_rtl (line 962) | async def return_rtl(drone): function kill_terminate (line 1027) | async def kill_terminate(drone): function hold (line 1057) | async def hold(drone): function test (line 1078) | async def test(drone): function reboot (line 1103) | async def reboot(drone, fc_flag, sys_flag, force_reboot=True): function reboot_system (line 1134) | async def reboot_system(): function update_code (line 1149) | async def update_code(branch=None): function init_sysid (line 1226) | async def init_sysid(drone): FILE: app/dashboard/drone-dashboard/src/App.js constant MOBILE_BREAKPOINT (line 63) | const MOBILE_BREAKPOINT = 960; FILE: app/dashboard/drone-dashboard/src/components/CommandPreflightSummary.js function normalizeId (line 13) | function normalizeId(value) { FILE: app/dashboard/drone-dashboard/src/components/DroneActions.js constant ACTION_SECTIONS (line 37) | const ACTION_SECTIONS = [ constant ACTION_SHORT_LABELS (line 64) | const ACTION_SHORT_LABELS = { constant ACTION_ICONS (line 82) | const ACTION_ICONS = { constant ACTION_DESCRIPTIONS (line 100) | const ACTION_DESCRIPTIONS = { FILE: app/dashboard/drone-dashboard/src/components/DroneConfigCard.js constant SERIAL_PORT_OPTIONS (line 54) | const SERIAL_PORT_OPTIONS = [ constant BAUDRATE_OPTIONS (line 61) | const BAUDRATE_OPTIONS = [ constant HEX_COLOR_PATTERN (line 69) | const HEX_COLOR_PATTERN = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i; constant RGB_COLOR_PATTERN (line 70) | const RGB_COLOR_PATTERN = /^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{... constant DEFAULT_MARKER_COLOR_FALLBACK (line 71) | const DEFAULT_MARKER_COLOR_FALLBACK = [95, 185, 255]; function normalizeRuntimeModeValue (line 105) | function normalizeRuntimeModeValue(value) { function getCustomFieldValuePreview (line 116) | function getCustomFieldValuePreview(field) { function buildHeartbeatPresencePresentation (line 774) | function buildHeartbeatPresencePresentation(heartbeatData, heartbeatAgeS... function DroneConfigCard (line 1502) | function DroneConfigCard({ FILE: app/dashboard/drone-dashboard/src/components/DroneCriticalCommands.js constant PRIMARY_COMMAND_SLOT (line 23) | const PRIMARY_COMMAND_SLOT = { constant SECONDARY_COMMANDS (line 42) | const SECONDARY_COMMANDS = [ function getDisabledReason (line 69) | function getDisabledReason(command, isArmed, runtimeStatus) { function getPanelNote (line 81) | function getPanelNote(isArmed, runtimeStatus) { FILE: app/dashboard/drone-dashboard/src/components/DroneCriticalCommands.test.js function MonitorProbe (line 35) | function MonitorProbe() { FILE: app/dashboard/drone-dashboard/src/components/DroneDetail.js constant POLLING_RATE_HZ (line 23) | const POLLING_RATE_HZ = 2; FILE: app/dashboard/drone-dashboard/src/components/DroneGraph.js function buildGraphElements (line 7) | function buildGraphElements(drones) { function applySelectionClasses (line 40) | function applySelectionClasses(cy, selectedDroneId) { function DroneGraph (line 58) | function DroneGraph({ swarmData, selectedDroneId, onSelectDrone }) { FILE: app/dashboard/drone-dashboard/src/components/DroneReadinessReport.js function getStatusIcon (line 8) | function getStatusIcon(status) { function renderMessageList (line 21) | function renderMessageList(messages, emptyLabel) { function getCompactDetailsLabel (line 43) | function getCompactDetailsLabel(readiness) { FILE: app/dashboard/drone-dashboard/src/components/ErrorBoundary.js class ErrorBoundary (line 5) | class ErrorBoundary extends React.Component { method constructor (line 6) | constructor(props) { method getDerivedStateFromError (line 11) | static getDerivedStateFromError(error) { method componentDidCatch (line 15) | componentDidCatch(error, errorInfo) { method render (line 37) | render() { FILE: app/dashboard/drone-dashboard/src/components/Globe.js constant DEFAULT_DRONE_MARKER_COLOR (line 19) | const DEFAULT_DRONE_MARKER_COLOR = 'dodgerblue'; constant HEX_COLOR_PATTERN (line 20) | const HEX_COLOR_PATTERN = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i; constant SELECTED_CARD_WIDTH_PX (line 21) | const SELECTED_CARD_WIDTH_PX = 320; constant SELECTED_CARD_HEIGHT_PX (line 22) | const SELECTED_CARD_HEIGHT_PX = 260; constant SELECTED_CARD_GAP_PX (line 23) | const SELECTED_CARD_GAP_PX = 18; constant DEFAULT_CAMERA_POSITION (line 24) | const DEFAULT_CAMERA_POSITION = [12, 10, 12]; constant CAMERA_FIT_PADDING (line 25) | const CAMERA_FIT_PADDING = 6; constant CAMERA_FIT_SCALE (line 26) | const CAMERA_FIT_SCALE = 1.32; constant MIN_CAMERA_FIT_DISTANCE (line 27) | const MIN_CAMERA_FIT_DISTANCE = 9; function Globe (line 303) | function Globe({ drones, selectedDroneId, onSelectDrone }) { FILE: app/dashboard/drone-dashboard/src/components/GlobeControlBox.js function buildDroneClusterGroups (line 8) | function buildDroneClusterGroups(drones = []) { function GlobeControlBox (line 76) | function GlobeControlBox({ FILE: app/dashboard/drone-dashboard/src/components/GlobeMapView.js constant DEFAULT_DRONE_MARKER_COLOR (line 40) | const DEFAULT_DRONE_MARKER_COLOR = 'dodgerblue'; constant HEX_COLOR_PATTERN (line 41) | const HEX_COLOR_PATTERN = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i; function fitLeafletMapToFleet (line 80) | function fitLeafletMapToFleet(map, validDrones = []) { FILE: app/dashboard/drone-dashboard/src/components/ImportSection.js constant PROGRESS_STEPS (line 32) | const PROGRESS_STEPS = [ constant INITIAL_PROGRESS (line 41) | const INITIAL_PROGRESS = { FILE: app/dashboard/drone-dashboard/src/components/InfoHint.js function InfoHint (line 7) | function InfoHint({ content, label = 'More information', className = '',... FILE: app/dashboard/drone-dashboard/src/components/InitialLaunchPlot.js function InitialLaunchPlot (line 7) | function InitialLaunchPlot({ FILE: app/dashboard/drone-dashboard/src/components/MapSelector.js function MapEvents (line 24) | function MapEvents({ onSelect, initialPosition, hasInteracted, onFirstIn... FILE: app/dashboard/drone-dashboard/src/components/MissionLayout.test.js function MockOriginModal (line 11) | function MockOriginModal({ isOpen }) { FILE: app/dashboard/drone-dashboard/src/components/MissionTrigger.js constant MISSION_PRESENTATIONS (line 30) | const MISSION_PRESENTATIONS = { constant DEFAULT_MISSION_PRESENTATION (line 68) | const DEFAULT_MISSION_PRESENTATION = { function getMissionPresentation (line 75) | function getMissionPresentation(missionType) { FILE: app/dashboard/drone-dashboard/src/components/OriginModal.js function extractDroneParameters (line 12) | function extractDroneParameters(drone, telemetryData) { FILE: app/dashboard/drone-dashboard/src/components/PrecisionMoveDialog.js constant MOVE_STEP_OPTIONS (line 18) | const MOVE_STEP_OPTIONS = [0.25, 0.5, 1, 2, 5]; constant YAW_STEP_OPTIONS (line 19) | const YAW_STEP_OPTIONS = [15, 30, 45, 90]; constant DEFAULT_FORM_STATE (line 21) | const DEFAULT_FORM_STATE = Object.freeze({ constant FRAME_LABELS (line 35) | const FRAME_LABELS = { constant YAW_MODE_OPTIONS (line 56) | const YAW_MODE_OPTIONS = [ constant CONTROL_MODE_OPTIONS (line 62) | const CONTROL_MODE_OPTIONS = [ function buildInitialState (line 75) | function buildInitialState() { function parseSignedNumber (line 79) | function parseSignedNumber(value) { function parseOptionalPositiveNumber (line 88) | function parseOptionalPositiveNumber(value) { function formatSignedDistance (line 101) | function formatSignedDistance(value, positiveLabel, negativeLabel) { function formatAxisValue (line 110) | function formatAxisValue(value) { function formatRuntimeValue (line 117) | function formatRuntimeValue(value, unit, fallback = 'Runtime policy unav... function buildPrecisionMoveResult (line 125) | function buildPrecisionMoveResult(formState, frameConfig) { FILE: app/dashboard/drone-dashboard/src/components/PrecisionMoveDialog.test.js function renderDialog (line 45) | function renderDialog(overrides = {}) { FILE: app/dashboard/drone-dashboard/src/components/RouteDocsShortcut.js function buildRepoWebUrl (line 7) | function buildRepoWebUrl(repo = '') { function RouteDocsShortcut (line 12) | function RouteDocsShortcut() { FILE: app/dashboard/drone-dashboard/src/components/RuntimeModeBadge.js function normalizeMode (line 7) | function normalizeMode(mode) { function RuntimeModeBadge (line 18) | function RuntimeModeBadge({ FILE: app/dashboard/drone-dashboard/src/components/SwarmPlots.js function getThemeColors (line 14) | function getThemeColors() { function getRoleColor (line 28) | function getRoleColor(role, colors) { function getBaseLayout (line 40) | function getBaseLayout(colors, isThreeDimensional = false) { function buildHoverText (line 71) | function buildHoverText(points) { function buildMarker (line 84) | function buildMarker(points, colors) { function PlotFrame (line 96) | function PlotFrame({ title, data, layout, config = plotConfig, className... function ThreeDPlot (line 122) | function ThreeDPlot({ points }) { function NorthEastPlot (line 167) | function NorthEastPlot({ points }) { function EastAltitudePlot (line 196) | function EastAltitudePlot({ points }) { function NorthAltitudePlot (line 225) | function NorthAltitudePlot({ points }) { function SwarmPlots (line 254) | function SwarmPlots({ swarmData, configData, selectedClusterId, onSelect... FILE: app/dashboard/drone-dashboard/src/components/SwarmRuntimeControls.js constant ACTION_ICONS (line 30) | const ACTION_ICONS = { function buildRuntimeBrief (line 37) | function buildRuntimeBrief(targetDrones = []) { FILE: app/dashboard/drone-dashboard/src/components/SwarmRuntimeControls.test.js function MonitorProbe (line 28) | function MonitorProbe() { FILE: app/dashboard/drone-dashboard/src/components/TacticalDroneCard.js constant GPS_FIX_LABELS (line 26) | const GPS_FIX_LABELS = { constant HEX_COLOR_PATTERN (line 64) | const HEX_COLOR_PATTERN = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i; FILE: app/dashboard/drone-dashboard/src/components/VisualizationSection.js constant VIS_TOKENS (line 47) | const VIS_TOKENS = { FILE: app/dashboard/drone-dashboard/src/components/logs/LogTable.js constant LEVEL_ICONS (line 7) | const LEVEL_ICONS = { FILE: app/dashboard/drone-dashboard/src/components/logs/OnboardUlogDialog.js constant POLL_INTERVAL_MS (line 22) | const POLL_INTERVAL_MS = 1200; FILE: app/dashboard/drone-dashboard/src/components/map/LeafletDrawControl.js constant CLICK_DELAY (line 28) | const CLICK_DELAY = 300; function normalizeInitialPoints (line 41) | function normalizeInitialPoints(points = []) { method click (line 131) | click(e) { method dblclick (line 162) | dblclick(e) { method mousemove (line 176) | mousemove(e) { FILE: app/dashboard/drone-dashboard/src/components/map/LeafletFindingMarkers.js method click (line 22) | click(event) { FILE: app/dashboard/drone-dashboard/src/components/map/MapFallbackBanner.js constant SESSION_KEY (line 10) | const SESSION_KEY = 'mds_fallback_banner_dismissed'; constant MAPBOX_GUIDE_URL (line 11) | const MAPBOX_GUIDE_URL = buildDocsUrl(getRouteDoc('/globe-view'), { FILE: app/dashboard/drone-dashboard/src/components/map/ViewModeToggle.js constant VIEW_MODES (line 8) | const VIEW_MODES = { FILE: app/dashboard/drone-dashboard/src/components/missionConfig/MissionConfigAlertStack.js function MissionConfigAlertStack (line 7) | function MissionConfigAlertStack({ FILE: app/dashboard/drone-dashboard/src/components/missionConfig/MissionConfigToolbar.js function MissionConfigToolbar (line 9) | function MissionConfigToolbar({ FILE: app/dashboard/drone-dashboard/src/components/missionConfig/PendingEnrollmentPanel.js function PendingEnrollmentPanel (line 6) | function PendingEnrollmentPanel({ FILE: app/dashboard/drone-dashboard/src/components/sar/FindingReviewPanel.js constant FINDING_TYPE_OPTIONS (line 3) | const FINDING_TYPE_OPTIONS = [ constant PRIORITY_OPTIONS (line 14) | const PRIORITY_OPTIONS = [ constant CONFIDENCE_OPTIONS (line 21) | const CONFIDENCE_OPTIONS = [ constant SOURCE_OPTIONS (line 27) | const SOURCE_OPTIONS = [ constant STATUS_OPTIONS (line 34) | const STATUS_OPTIONS = [ FILE: app/dashboard/drone-dashboard/src/components/sar/MissionRecoveryPanel.js constant ACTIVE_STATES (line 3) | const ACTIVE_STATES = new Set(['executing', 'paused']); FILE: app/dashboard/drone-dashboard/src/components/sar/QuickScoutLaunchReview.js function getReturnBehaviorLabel (line 13) | function getReturnBehaviorLabel(returnBehavior) { function getLaunchStatus (line 23) | function getLaunchStatus(planNeedsRecompute, launchReadiness) { FILE: app/dashboard/drone-dashboard/src/components/trajectory/SearchBar.js constant CACHE_MAX (line 23) | const CACHE_MAX = 50; FILE: app/dashboard/drone-dashboard/src/components/trajectory/TrajectoryExportDialog.js constant EXPORT_FORMATS (line 4) | const EXPORT_FORMATS = [ FILE: app/dashboard/drone-dashboard/src/components/ui/OperatorPrimitives.js constant TONES (line 10) | const TONES = ['neutral', 'info', 'success', 'warning', 'danger', 'muted']; constant SIZES (line 11) | const SIZES = ['sm', 'md', 'lg']; function StatusBadge (line 13) | function StatusBadge({ tone = 'neutral', icon = null, children, classNam... function ActionIconButton (line 32) | function ActionIconButton({ function OperatorCard (line 74) | function OperatorCard({ function MetricPill (line 108) | function MetricPill({ label, value, detail = '', icon = null, tone = 'ne... function MetricStrip (line 129) | function MetricStrip({ items = [], label = 'Status summary', className =... function DocsLink (line 159) | function DocsLink({ function PageActionBar (line 209) | function PageActionBar({ function PageShell (line 262) | function PageShell({ function OperatorNotice (line 309) | function OperatorNotice({ function EmptyState (line 344) | function EmptyState({ icon = null, title, detail = '', action = null, cl... function ConfirmDialog (line 365) | function ConfirmDialog({ FILE: app/dashboard/drone-dashboard/src/config/apiConfig.js constant DEFAULT_GCS_PORT (line 21) | const DEFAULT_GCS_PORT = process.env.REACT_APP_GCS_PORT || '5030'; constant DEFAULT_DRONE_PORT (line 22) | const DEFAULT_DRONE_PORT = process.env.REACT_APP_DRONE_PORT || '7070'; function getBaseServerURL (line 30) | function getBaseServerURL() { function getGCSPort (line 51) | function getGCSPort() { function getDronePort (line 59) | function getDronePort() { function getBackendURL (line 68) | function getBackendURL(port = null) { function getDroneServiceURL (line 78) | function getDroneServiceURL() { method baseURL (line 85) | get baseURL() { return getBaseServerURL(); } method gcsPort (line 86) | get gcsPort() { return getGCSPort(); } method dronePort (line 87) | get dronePort() { return getDronePort(); } method gcsURL (line 88) | get gcsURL() { return getBackendURL(); } method droneURL (line 89) | get droneURL() { return getDroneServiceURL(); } FILE: app/dashboard/drone-dashboard/src/config/mapConfig.js constant MAP_PROVIDERS (line 4) | const MAP_PROVIDERS = { constant DEFAULT_PROVIDER (line 9) | const DEFAULT_PROVIDER = MAP_PROVIDERS.MAPBOX; constant MAPBOX_TOKEN (line 11) | const MAPBOX_TOKEN = constant TILE_LAYERS (line 17) | const TILE_LAYERS = { constant DEFAULT_CENTER (line 47) | const DEFAULT_CENTER = { lat: 35.6895, lng: 139.6917 }; constant DEFAULT_LEAFLET_SUBDOMAINS (line 48) | const DEFAULT_LEAFLET_SUBDOMAINS = 'abc'; constant LEAFLET_DEFAULTS (line 50) | const LEAFLET_DEFAULTS = { constant PROVIDER_STORAGE_KEY (line 58) | const PROVIDER_STORAGE_KEY = 'mds_map_provider'; constant TILE_STORAGE_KEY (line 59) | const TILE_STORAGE_KEY = 'mds_tile_layer'; constant DEFAULT_TILE_KEY (line 63) | const DEFAULT_TILE_KEY = 'esriSatellite'; FILE: app/dashboard/drone-dashboard/src/config/routeDocs.js constant DEFAULT_DOC_BRANCH (line 4) | const DEFAULT_DOC_BRANCH = 'main'; constant ROUTE_DOCS (line 6) | const ROUTE_DOCS = Object.freeze([ constant ROUTE_DOCS_BY_PATH (line 133) | const ROUTE_DOCS_BY_PATH = Object.freeze( function getRouteDoc (line 140) | function getRouteDoc(pathname = '/') { function normalizeGithubRepoUrl (line 144) | function normalizeGithubRepoUrl(repoUrl = '') { function buildDocsUrl (line 168) | function buildDocsUrl(doc, { repoUrl = '', repoWebUrl = '', branch = DEF... function getRouteDocUrl (line 186) | function getRouteDocUrl(pathname = '/', options = {}) { FILE: app/dashboard/drone-dashboard/src/constants/droneConstants.js constant DRONE_MISSION_TYPES (line 8) | const DRONE_MISSION_TYPES = { constant DRONE_MISSION_DISPLAY_ORDER (line 17) | const DRONE_MISSION_DISPLAY_ORDER = [ constant DRONE_ACTION_TYPES (line 25) | const DRONE_ACTION_TYPES = { constant DRONE_MISSION_IMAGES (line 43) | const DRONE_MISSION_IMAGES = { constant DRONE_MISSION_NAMES (line 48) | const DRONE_MISSION_NAMES = { constant DRONE_ACTION_NAMES (line 56) | const DRONE_ACTION_NAMES = { FILE: app/dashboard/drone-dashboard/src/constants/droneStates.js constant DRONE_SHOW_STATES (line 11) | const DRONE_SHOW_STATES = { FILE: app/dashboard/drone-dashboard/src/constants/fieldMappings.js constant FIELD_NAMES (line 21) | const FIELD_NAMES = { constant DRONE_RUNTIME_CLOCK_PROP (line 86) | const DRONE_RUNTIME_CLOCK_PROP = '__runtimeClock'; constant UNIX_MS_THRESHOLD (line 88) | const UNIX_MS_THRESHOLD = 1_000_000_000_000; function normalizeRuntimeTimestampMs (line 90) | function normalizeRuntimeTimestampMs(value) { function extractServerNowMs (line 109) | function extractServerNowMs(headers = {}) { function getRuntimeClockReferenceMs (line 122) | function getRuntimeClockReferenceMs(droneData) { function normalizeClockMeta (line 133) | function normalizeClockMeta(clockMeta = {}) { function attachDroneRuntimeClock (line 156) | function attachDroneRuntimeClock(droneData, clockMeta = {}) { function normalizeDroneData (line 192) | function normalizeDroneData(droneData) { function normalizeTelemetryResponse (line 286) | function normalizeTelemetryResponse(telemetryResponse, clockMeta = {}) { function getField (line 313) | function getField(drone, fieldKey, defaultValue = undefined) { FILE: app/dashboard/drone-dashboard/src/constants/logConstants.js constant LOG_LEVELS (line 4) | const LOG_LEVELS = ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL']; constant LOG_LEVEL_COLORS (line 6) | const LOG_LEVEL_COLORS = { constant OPS_DEFAULT_LEVEL (line 15) | const OPS_DEFAULT_LEVEL = 'WARNING'; constant DEV_DEFAULT_LEVEL (line 17) | const DEV_DEFAULT_LEVEL = 'DEBUG'; constant MAX_LOG_LINES (line 20) | const MAX_LOG_LINES = 5000; constant SSE_BATCH_INTERVAL_MS (line 23) | const SSE_BATCH_INTERVAL_MS = 200; constant HEALTH_POLL_INTERVAL_MS (line 26) | const HEALTH_POLL_INTERVAL_MS = 5000; constant MODES (line 29) | const MODES = { OPS: 'operations', DEV: 'developer' }; constant LIVE_TIME_WINDOWS (line 32) | const LIVE_TIME_WINDOWS = [ constant SEVERITY_FOCUS (line 40) | const SEVERITY_FOCUS = { FILE: app/dashboard/drone-dashboard/src/constants/px4FlightModes.js constant PX4_MAIN_MODES (line 18) | const PX4_MAIN_MODES = { constant PX4_AUTO_SUB_MODES (line 33) | const PX4_AUTO_SUB_MODES = { constant PX4_FLIGHT_MODES (line 50) | const PX4_FLIGHT_MODES = { constant MAV_STATE (line 86) | const MAV_STATE = { FILE: app/dashboard/drone-dashboard/src/constants/trajectoryMissionPolicy.js constant DEFAULT_TRAJECTORY_ALTITUDE_POLICY (line 1) | const DEFAULT_TRAJECTORY_ALTITUDE_POLICY = Object.freeze({ constant DEFAULT_TRAJECTORY_SPEED_POLICY (line 8) | const DEFAULT_TRAJECTORY_SPEED_POLICY = Object.freeze({ constant DEFAULT_TRAJECTORY_TIMING_POLICY (line 16) | const DEFAULT_TRAJECTORY_TIMING_POLICY = Object.freeze({ constant DEFAULT_TRAJECTORY_TERRAIN_POLICY (line 22) | const DEFAULT_TRAJECTORY_TERRAIN_POLICY = Object.freeze({ constant TRAJECTORY_ALTITUDE_POLICY (line 27) | const TRAJECTORY_ALTITUDE_POLICY = { ...DEFAULT_TRAJECTORY_ALTITUDE_POLI... constant TRAJECTORY_SPEED_POLICY (line 28) | const TRAJECTORY_SPEED_POLICY = { ...DEFAULT_TRAJECTORY_SPEED_POLICY }; constant TRAJECTORY_TIMING_POLICY (line 29) | const TRAJECTORY_TIMING_POLICY = { ...DEFAULT_TRAJECTORY_TIMING_POLICY }; constant TRAJECTORY_TERRAIN_POLICY (line 30) | const TRAJECTORY_TERRAIN_POLICY = { ...DEFAULT_TRAJECTORY_TERRAIN_POLICY }; FILE: app/dashboard/drone-dashboard/src/contexts/AuthContext.js function AuthProvider (line 13) | function AuthProvider({ children }) { function useAuth (line 88) | function useAuth() { FILE: app/dashboard/drone-dashboard/src/contexts/CommandActivityContext.js constant MAX_COMMAND_MONITORS (line 16) | const MAX_COMMAND_MONITORS = 8; constant ACTIVE_COMMAND_REFRESH_MS (line 17) | const ACTIVE_COMMAND_REFRESH_MS = 2000; constant RECENT_COMMAND_REFRESH_MS (line 18) | const RECENT_COMMAND_REFRESH_MS = 15000; function sortCommandMonitors (line 20) | function sortCommandMonitors(monitors = []) { function mergeSnapshots (line 33) | function mergeSnapshots(previousMonitors, incomingSnapshots) { FILE: app/dashboard/drone-dashboard/src/contexts/CommandActivityContext.test.js function MonitorProbe (line 17) | function MonitorProbe() { FILE: app/dashboard/drone-dashboard/src/contexts/ThemeContext.js constant META_THEME_COLOR_TOKEN (line 3) | const META_THEME_COLOR_TOKEN = '--app-meta-theme-color'; constant THEMES (line 6) | const THEMES = { FILE: app/dashboard/drone-dashboard/src/contexts/ThemeContext.test.js function ThemeProbe (line 6) | function ThemeProbe() { FILE: app/dashboard/drone-dashboard/src/hooks/useGcsGitInfo.js constant DEFAULT_POLL_INTERVAL_MS (line 6) | const DEFAULT_POLL_INTERVAL_MS = 15000; function formatRepoLabel (line 8) | function formatRepoLabel(remoteUrl, fallback = STATIC_REPO) { function useGcsGitInfo (line 22) | function useGcsGitInfo(pollIntervalMs = DEFAULT_POLL_INTERVAL_MS) { FILE: app/dashboard/drone-dashboard/src/hooks/useGcsRuntimeStatus.js constant DEFAULT_POLL_INTERVAL_MS (line 5) | const DEFAULT_POLL_INTERVAL_MS = 15000; constant RUNTIME_MODE_CACHE_KEY (line 6) | const RUNTIME_MODE_CACHE_KEY = 'mds:gcs-runtime-mode'; function normalizeModeLabel (line 8) | function normalizeModeLabel(mode) { function useGcsRuntimeStatus (line 19) | function useGcsRuntimeStatus(pollIntervalMs = DEFAULT_POLL_INTERVAL_MS) { FILE: app/dashboard/drone-dashboard/src/hooks/useLogStream.test.js class MockEventSource (line 6) | class MockEventSource { method constructor (line 7) | constructor(url, options = undefined) { method close (line 15) | close() { this.closed = true; } FILE: app/dashboard/drone-dashboard/src/hooks/useNormalizedTelemetry.js function useNormalizedTelemetry (line 37) | function useNormalizedTelemetry(endpoint, interval = null, normalize = t... function useDroneTelemetry (line 107) | function useDroneTelemetry(droneId, interval = 1000) { FILE: app/dashboard/drone-dashboard/src/hooks/useSyncDrones.js function useSyncDrones (line 9) | function useSyncDrones() { FILE: app/dashboard/drone-dashboard/src/pages/CustomShowPage.js constant FALLBACK_REQUIRED_COLUMNS (line 34) | const FALLBACK_REQUIRED_COLUMNS = ['t', 'px', 'py', 'pz', 'vx', 'vy', 'v... function formatDuration (line 36) | function formatDuration(durationSec) { FILE: app/dashboard/drone-dashboard/src/pages/EnvironmentsPage.js constant DOMAIN_LABELS (line 40) | const DOMAIN_LABELS = { function compactHash (line 53) | function compactHash(value) { function boolLabel (line 58) | function boolLabel(value) { function displayValue (line 69) | function displayValue(entry) { function valueTone (line 79) | function valueTone(entry) { function restartTone (line 92) | function restartTone(restartRequired) { function restartLabel (line 105) | function restartLabel(restartRequired) { function normalizeError (line 118) | function normalizeError(error, fallback) { function resolveNodeHost (line 122) | function resolveNodeHost(row) { function downloadJson (line 142) | function downloadJson(filename, payload) { function buildGcsEnvProfile (line 154) | function buildGcsEnvProfile(values) { function buildNodeEnvProfile (line 158) | function buildNodeEnvProfile(values, hwId) { function buildEnvProfile (line 162) | function buildEnvProfile(values, extra) { function parseEnvProfile (line 180) | function parseEnvProfile(rawText, expectedScope) { function parseGcsEnvProfile (line 198) | function parseGcsEnvProfile(rawText) { function parseNodeEnvProfile (line 202) | function parseNodeEnvProfile(rawText) { function buildInitialDraft (line 206) | function buildInitialDraft(entry) { function buildEnvEntryDocPath (line 216) | function buildEnvEntryDocPath(entry) { function EnvEntryCard (line 221) | function EnvEntryCard({ function EnvEntryDialog (line 280) | function EnvEntryDialog({ entry, busy, onSave, onClose }) { function buildNodePlanDraft (line 396) | function buildNodePlanDraft(entry) { function NodeEnvPlanner (line 409) | function NodeEnvPlanner({ function EnvImportDialog (line 537) | function EnvImportDialog({ plan, busy, onConfirm, onClose }) { function EnvironmentsPage (line 597) | function EnvironmentsPage() { FILE: app/dashboard/drone-dashboard/src/pages/EnvironmentsPage.test.js function renderPage (line 177) | function renderPage() { FILE: app/dashboard/drone-dashboard/src/pages/FleetEnrollmentPage.js constant ACTIVE_STATE_SET (line 45) | const ACTIVE_STATE_SET = new Set(['pending_operator_review', 'conflict']); function formatCandidateStateLabel (line 47) | function formatCandidateStateLabel(state) { function formatCandidateStateTone (line 66) | function formatCandidateStateTone(state) { function formatRuntimeModeLabel (line 83) | function formatRuntimeModeLabel(value) { function formatConflictReason (line 94) | function formatConflictReason(reason) { function formatHeartbeatSummary (line 109) | function formatHeartbeatSummary(candidate) { function buildCandidateSearchBlob (line 122) | function buildCandidateSearchBlob(candidate) { function filterCandidateByState (line 141) | function filterCandidateByState(candidate, stateFilter) { function buildMutationNotice (line 151) | function buildMutationNotice(responseData) { function EnrollmentNotice (line 173) | function EnrollmentNotice({ notice }) { function CandidateStatePill (line 193) | function CandidateStatePill({ state }) { function ActionDialog (line 201) | function ActionDialog({ function FleetEnrollmentPage (line 235) | function FleetEnrollmentPage() { FILE: app/dashboard/drone-dashboard/src/pages/FleetEnrollmentPage.test.js function mockFetch (line 42) | function mockFetch({ candidates, config }) { FILE: app/dashboard/drone-dashboard/src/pages/FleetOpsPage.js constant TABS (line 35) | const TABS = [ constant FILTERS (line 42) | const FILTERS = [ function toPrimitiveTone (line 50) | function toPrimitiveTone(tone) { function StatusMetric (line 57) | function StatusMetric({ icon: Icon, label, status, detail }) { function dashboardPortFromRuntime (line 70) | function dashboardPortFromRuntime(runtime) { function formatDashboardHost (line 82) | function formatDashboardHost(ip) { function resolveDashboardHref (line 90) | function resolveDashboardHref(runtime, nodeIp) { function DashboardQuickLinks (line 108) | function DashboardQuickLinks({ row }) { function DashboardLinks (line 163) | function DashboardLinks({ runtime, nodeIp, label }) { function SidecarHashFacts (line 195) | function SidecarHashFacts({ runtime, profile = false }) { function NodeDetails (line 224) | function NodeDetails({ row, activeTab }) { function NodeCard (line 304) | function NodeCard({ row, activeTab, selected, onToggleSelected }) { function filterRows (line 340) | function filterRows(rows, query, filter) { function FleetOpsPage (line 377) | function FleetOpsPage({ gitStatusOverride = null, heartbeatOverride = nu... FILE: app/dashboard/drone-dashboard/src/pages/FleetOpsPage.test.js function mockFleetFeeds (line 109) | function mockFleetFeeds() { function clonePayload (line 121) | function clonePayload(payload) { function renderFleetOps (line 125) | function renderFleetOps(props = {}) { FILE: app/dashboard/drone-dashboard/src/pages/LoginPage.js constant AUTH_GUIDE_URL (line 9) | const AUTH_GUIDE_URL = buildDocsUrl( function LoginPage (line 14) | function LoginPage() { FILE: app/dashboard/drone-dashboard/src/pages/ManageDroneShow.js constant WORKFLOW_STEPS (line 20) | const WORKFLOW_STEPS = [ FILE: app/dashboard/drone-dashboard/src/pages/MissionConfig.test.js function MockOriginModal (line 42) | function MockOriginModal({ isOpen }) { FILE: app/dashboard/drone-dashboard/src/pages/Px4ParametersPage.js constant SNAPSHOT_REFRESH_INTERVAL_MS (line 50) | const SNAPSHOT_REFRESH_INTERVAL_MS = 15000; constant COMPACT_BREAKPOINT (line 51) | const COMPACT_BREAKPOINT = 1120; constant TOUCH_COMPACT_BREAKPOINT (line 52) | const TOUCH_COMPACT_BREAKPOINT = 1400; constant PARAMETER_LINK_ACTIVE_LEVELS (line 53) | const PARAMETER_LINK_ACTIVE_LEVELS = new Set(['online', 'degraded']); function isTouchViewport (line 55) | function isTouchViewport() { function isCompactParameterViewport (line 65) | function isCompactParameterViewport() { function trimTrailingZeros (line 73) | function trimTrailingZeros(value) { function formatParameterValue (line 80) | function formatParameterValue(value, row = null) { function formatParameterRange (line 106) | function formatParameterRange(row = null) { function formatRelativeSnapshotAge (line 125) | function formatRelativeSnapshotAge(snapshot) { function isSnapshotStale (line 139) | function isSnapshotStale(snapshot) { function deriveWriteBlockedReason (line 146) | function deriveWriteBlockedReason(policy, selectedDrone, snapshotSummary... function getSnapshotStatusLabel (line 166) | function getSnapshotStatusLabel({ selectedDrone, writeBlockedReason, sna... function buildNotice (line 182) | function buildNotice(tone, title, detail = '', busy = false) { function buildTrackingNotice (line 186) | function buildTrackingNotice(snapshot, fallbackTitle = 'Command update') { function summarizeBatchResults (line 208) | function summarizeBatchResults(results = []) { function parseDraftValue (line 375) | function parseDraftValue(row, draftValue) { function downloadTextFile (line 385) | function downloadTextFile(filename, text) { function loadPolicy (line 460) | async function loadPolicy() { function loadProfiles (line 480) | async function loadProfiles() { function loadSwarmAssignments (line 507) | async function loadSwarmAssignments() { function loadFleetConfig (line 527) | async function loadFleetConfig() { function loadTelemetry (line 547) | async function loadTelemetry() { function loadProfile (line 678) | async function loadProfile() { FILE: app/dashboard/drone-dashboard/src/pages/QuickScoutPage.js constant DEFAULT_SURVEY_CONFIG (line 85) | const DEFAULT_SURVEY_CONFIG = { constant DEFAULT_LAST_KNOWN_POINT_RADIUS_M (line 96) | const DEFAULT_LAST_KNOWN_POINT_RADIUS_M = 120; constant DEFAULT_CORRIDOR_WIDTH_M (line 97) | const DEFAULT_CORRIDOR_WIDTH_M = 90; constant ACTIVE_MISSION_STATES (line 99) | const ACTIVE_MISSION_STATES = new Set(['executing', 'paused']); constant MONITOR_MISSION_STATES (line 100) | const MONITOR_MISSION_STATES = new Set(['executing', 'paused', 'complete... FILE: app/dashboard/drone-dashboard/src/pages/RuntimeAdminPage.js function formatRepoAccessModeLabel (line 43) | function formatRepoAccessModeLabel(mode) { function StatusPill (line 56) | function StatusPill({ tone = 'neutral', children }) { function formatAuthHealthTone (line 65) | function formatAuthHealthTone(status) { function formatRepoSyncTone (line 78) | function formatRepoSyncTone(status) { function formatRepoSyncLabel (line 94) | function formatRepoSyncLabel(status) { function formatNoticeTone (line 113) | function formatNoticeTone(status, fallback = 'neutral') { function buildNotice (line 129) | function buildNotice(payload, fallbackTone = 'neutral') { function RuntimeAdminPage (line 141) | function RuntimeAdminPage({ runtimeOverride = null, gitInfoOverride = nu... FILE: app/dashboard/drone-dashboard/src/pages/SitlControlPage.js constant INVENTORY_POLL_INTERVAL_MS (line 42) | const INVENTORY_POLL_INTERVAL_MS = 10000; constant OPERATION_POLL_INTERVAL_MS (line 43) | const OPERATION_POLL_INTERVAL_MS = 2000; constant LOG_TAIL_OPTIONS (line 44) | const LOG_TAIL_OPTIONS = [80, 200, 500]; constant TERMINAL_OPERATION_STATES (line 45) | const TERMINAL_OPERATION_STATES = new Set(['failed', 'succeeded']); constant ENABLE_BACKGROUND_POLLING (line 46) | const ENABLE_BACKGROUND_POLLING = process.env.NODE_ENV !== 'test'; function splitImageRef (line 48) | function splitImageRef(imageRef) { function buildImageCatalog (line 64) | function buildImageCatalog(images) { function getImageShortLabel (line 99) | function getImageShortLabel(imageRef) { function getRepoLabel (line 105) | function getRepoLabel(repoUrl) { function formatBytes (line 118) | function formatBytes(value) { function formatTimestamp (line 133) | function formatTimestamp(value) { function formatDockerTone (line 151) | function formatDockerTone(dockerState) { function formatInstanceTone (line 158) | function formatInstanceTone(instance) { function formatOperationTone (line 168) | function formatOperationTone(operation) { function getPrimaryInstanceIp (line 181) | function getPrimaryInstanceIp(instance, preferredNetworkName) { function SummaryCard (line 192) | function SummaryCard({ icon: Icon, label, value, tone = 'default', detai... function SectionHeader (line 207) | function SectionHeader({ title, detail = '', action = null }) { function SitlEmptyState (line 219) | function SitlEmptyState({ title, detail }) { function FieldLabel (line 225) | function FieldLabel({ label, hint = '' }) { function buildConfirmDialogMessage (line 234) | function buildConfirmDialogMessage(dialog) { function sanitizeTagValue (line 258) | function sanitizeTagValue(value, { fallback = '' } = {}) { function buildDefaultReleaseVersionTag (line 267) | function buildDefaultReleaseVersionTag(image, policy) { function buildDefaultArchiveBasename (line 278) | function buildDefaultArchiveBasename(imageRepo) { function formatPercent (line 287) | function formatPercent(value) { function buildPortainerUrl (line 295) | function buildPortainerUrl(host) { function evaluateHostResources (line 303) | function evaluateHostResources(host) { function SitlControlPage (line 375) | function SitlControlPage() { FILE: app/dashboard/drone-dashboard/src/pages/SwarmDesign.js constant CSV_HEADERS (line 59) | const CSV_HEADERS = ['hw_id', 'follow', 'offset_x', 'offset_y', 'offset_... function hasIncompleteNumericValue (line 61) | function hasIncompleteNumericValue(value) { function SwarmDesign (line 69) | function SwarmDesign() { FILE: app/dashboard/drone-dashboard/src/pages/TrajectoryPlanning.js method click (line 85) | click(e) { FILE: app/dashboard/drone-dashboard/src/services/ElevationService.js constant CACHE_MAX (line 8) | const CACHE_MAX = 500; constant GRID_SNAP (line 9) | const GRID_SNAP = 0.0002; function snapCoord (line 12) | function snapCoord(val) { function getCacheKey (line 16) | function getCacheKey(lat, lng) { function cacheSet (line 20) | function cacheSet(key, value) { function estimateStaticElevation (line 32) | function estimateStaticElevation(lat, lng) { function queryMapboxTilequery (line 58) | async function queryMapboxTilequery(lat, lng, timeout = 5000) { function getTerrainElevation (line 99) | async function getTerrainElevation(lat, lng, options = {}) { function clearElevationCache (line 163) | function clearElevationCache() { FILE: app/dashboard/drone-dashboard/src/services/TerrainService.js class TerrainService (line 17) | class TerrainService { method constructor (line 18) | constructor() { method initialize (line 33) | async initialize(mapboxToken = null, mapInstance = null) { method setAltitudePreference (line 72) | setAltitudePreference(preference) { method getAltitudePreference (line 84) | getAltitudePreference() { method getGroundElevation (line 95) | async getGroundElevation(latitude, longitude) { method getBatchGroundElevation (line 146) | async getBatchGroundElevation(coordinates) { method convertMSLtoAGL (line 201) | async convertMSLtoAGL(latitude, longitude, mslAltitude) { method convertAGLtoMSL (line 226) | async convertAGLtoMSL(latitude, longitude, aglAltitude) { method getWaypointAltitudeInfo (line 251) | async getWaypointAltitudeInfo(waypoint) { method processTrajectoryTerrain (line 297) | async processTrajectoryTerrain(waypoints) { method validateAltitudeWithTerrain (line 360) | validateAltitudeWithTerrain(mslAltitude, aglAltitude, groundElevation) { method verifyTerrainSource (line 419) | async verifyTerrainSource() { method queryMapboxTerrain (line 455) | async queryMapboxTerrain(latitude, longitude) { method batchQueryTerrain (line 479) | async batchQueryTerrain(coordinates) { method estimateElevation (line 498) | estimateElevation(latitude, longitude) { method formatAltitudeDisplay (line 540) | formatAltitudeDisplay(mslAltitude, aglAltitude) { method cacheElevation (line 551) | cacheElevation(key, elevation) { method clearCache (line 564) | clearCache(bounds = null) { method getServiceStats (line 583) | getServiceStats() { FILE: app/dashboard/drone-dashboard/src/services/apiError.js function extractApiErrorMessage (line 1) | async function extractApiErrorMessage(error, fallbackMessage = 'Request ... FILE: app/dashboard/drone-dashboard/src/services/fleetEnrollmentApiService.js function buildFleetCandidateUrl (line 9) | function buildFleetCandidateUrl(candidateId = '', suffix = '') { function listFleetCandidates (line 19) | async function listFleetCandidates({ includeInactive = false, runtimeMod... function getFleetCandidate (line 28) | async function getFleetCandidate(candidateId) { function announceFleetCandidate (line 32) | async function announceFleetCandidate(payload) { function acceptFleetCandidate (line 36) | async function acceptFleetCandidate(candidateId, payload, { commit = tru... function replaceFleetCandidate (line 42) | async function replaceFleetCandidate(candidateId, payload, { commit = tr... function recoverFleetCandidate (line 48) | async function recoverFleetCandidate(candidateId, payload, { commit = tr... function rejectFleetCandidate (line 54) | async function rejectFleetCandidate(candidateId, payload = {}) { function ignoreFleetCandidate (line 58) | async function ignoreFleetCandidate(candidateId, payload = {}) { FILE: app/dashboard/drone-dashboard/src/services/gcsApiService.js constant ABSOLUTE_URL_PATTERN (line 4) | const ABSOLUTE_URL_PATTERN = /^[a-z][a-z\d+\-.]*:\/\//i; constant ABSOLUTE_WS_URL_PATTERN (line 5) | const ABSOLUTE_WS_URL_PATTERN = /^wss?:\/\//i; constant COMMAND_SUBMIT_TIMEOUT_MS (line 6) | const COMMAND_SUBMIT_TIMEOUT_MS = 12000; constant GCS_ROUTE_KEYS (line 8) | const GCS_ROUTE_KEYS = Object.freeze({ constant GCS_ROUTES (line 88) | const GCS_ROUTES = Object.freeze({ constant GCS_WS_ROUTES (line 168) | const GCS_WS_ROUTES = Object.freeze({ constant ROUTE_KEY_BY_PATH (line 174) | const ROUTE_KEY_BY_PATH = Object.freeze({ function resolveGcsRoute (line 249) | function resolveGcsRoute(routeOrPath) { function resolveGcsRouteKey (line 268) | function resolveGcsRouteKey(routeOrPath) { function buildGcsUrl (line 284) | function buildGcsUrl(routeOrPath) { function buildGcsWebSocketUrl (line 292) | function buildGcsWebSocketUrl(path) { function setGcsCsrfToken (line 307) | function setGcsCsrfToken(token) { function withGcsAuthConfig (line 311) | function withGcsAuthConfig(config = {}, method = 'GET') { function buildTelemetryWebSocketUrl (line 331) | function buildTelemetryWebSocketUrl() { function buildHeartbeatWebSocketUrl (line 335) | function buildHeartbeatWebSocketUrl() { function buildGitStatusWebSocketUrl (line 339) | function buildGitStatusWebSocketUrl() { function buildLogsUrl (line 343) | function buildLogsUrl(suffix = '') { function buildSarUrl (line 347) | function buildSarUrl(suffix = '') { function buildShowPlotUrl (line 351) | function buildShowPlotUrl(filename = '') { function buildShowDownloadUrl (line 359) | function buildShowDownloadUrl(type = 'raw') { function buildStaticPlotUrl (line 367) | function buildStaticPlotUrl(filename) { function buildSwarmTrajectoryUrl (line 371) | function buildSwarmTrajectoryUrl(suffix = '') { function unwrapFleetTelemetryPayload (line 375) | function unwrapFleetTelemetryPayload(payload) { function unwrapSwarmConfigPayload (line 382) | function unwrapSwarmConfigPayload(payload) { function fetchGcsResource (line 392) | async function fetchGcsResource(routeOrPath, config = {}) { function fetchBlobGcsResource (line 396) | async function fetchBlobGcsResource(routeOrPath, config = {}) { function postGcsResource (line 403) | async function postGcsResource(routeOrPath, payload = {}, config = {}) { function putGcsResource (line 407) | async function putGcsResource(routeOrPath, payload = {}, config = {}) { function patchGcsResource (line 411) | async function patchGcsResource(routeOrPath, payload = {}, config = {}) { function deleteGcsResource (line 415) | async function deleteGcsResource(routeOrPath, config = {}) { function getAuthStatusResponse (line 419) | async function getAuthStatusResponse(config = {}) { function loginResponse (line 427) | async function loginResponse(payload, config = {}) { function logoutResponse (line 435) | async function logoutResponse(config = {}) { function changeOwnPasswordResponse (line 441) | async function changeOwnPasswordResponse(payload, config = {}) { function listAuthUsersResponse (line 445) | async function listAuthUsersResponse(config = {}) { function createAuthUserResponse (line 449) | async function createAuthUserResponse(payload, config = {}) { function updateAuthUserResponse (line 453) | async function updateAuthUserResponse(username, payload, config = {}) { function listAuthTokensResponse (line 457) | async function listAuthTokensResponse(config = {}) { function createAuthTokenResponse (line 461) | async function createAuthTokenResponse(payload, config = {}) { function revokeAuthTokenResponse (line 465) | async function revokeAuthTokenResponse(tokenId, config = {}) { function getFleetTelemetryResponse (line 469) | async function getFleetTelemetryResponse(config = {}) { function getFleetConfigResponse (line 473) | async function getFleetConfigResponse(config = {}) { function getFleetHeartbeatsResponse (line 477) | async function getFleetHeartbeatsResponse(config = {}) { function saveFleetConfigResponse (line 481) | async function saveFleetConfigResponse(payload, config = {}) { function validateFleetConfigResponse (line 485) | async function validateFleetConfigResponse(payload, config = {}) { function getSwarmConfigResponse (line 489) | async function getSwarmConfigResponse(config = {}) { function saveSwarmConfigResponse (line 493) | async function saveSwarmConfigResponse(payload, { commit = false, ...con... function getUnifiedGitStatusResponse (line 506) | async function getUnifiedGitStatusResponse(config = {}) { function normalizeCommandSubmitPayload (line 510) | function normalizeCommandSubmitPayload(payload = {}) { function submitCommandResponse (line 538) | async function submitCommandResponse(payload, config = {}) { function getCommandStatusResponse (line 542) | async function getCommandStatusResponse(commandId, config = {}) { function getRecentCommandsResponse (line 546) | async function getRecentCommandsResponse( function getActiveCommandsResponse (line 561) | async function getActiveCommandsResponse(config = {}) { function getPrecisionMovePolicyResponse (line 565) | async function getPrecisionMovePolicyResponse(config = {}) { function syncReposResponse (line 569) | async function syncReposResponse(payload = {}, config = {}) { function getConnectivityProfileResponse (line 573) | async function getConnectivityProfileResponse(config = {}) { function updateConnectivityProfileResponse (line 577) | async function updateConnectivityProfileResponse(payload = {}, config = ... function getOriginResponse (line 581) | async function getOriginResponse(config = {}) { function setOriginResponse (line 585) | async function setOriginResponse(payload, config = {}) { function getPositionDeviationsResponse (line 589) | async function getPositionDeviationsResponse(config = {}) { function getDronePositionsResponse (line 593) | async function getDronePositionsResponse(config = {}) { function getNetworkInfoResponse (line 597) | async function getNetworkInfoResponse(config = {}) { function getGcsConfigResponse (line 601) | async function getGcsConfigResponse(config = {}) { function saveGcsConfigResponse (line 605) | async function saveGcsConfigResponse(payload, config = {}) { function applyGcsConfigResponse (line 609) | async function applyGcsConfigResponse(config = {}) { function getEnvRegistryResponse (line 613) | async function getEnvRegistryResponse(config = {}) { function getGcsEnvResponse (line 617) | async function getGcsEnvResponse(config = {}) { function updateGcsEnvResponse (line 621) | async function updateGcsEnvResponse(payload = {}, config = {}) { function applyGcsEnvResponse (line 625) | async function applyGcsEnvResponse(config = {}) { function planFleetEnvResponse (line 629) | async function planFleetEnvResponse(payload = {}, config = {}) { function getFleetNodeEnvResponse (line 633) | async function getFleetNodeEnvResponse(hwId, config = {}) { function updateFleetNodeEnvResponse (line 637) | async function updateFleetNodeEnvResponse(hwId, payload = {}, config = {... function applyRuntimeUpdateResponse (line 641) | async function applyRuntimeUpdateResponse(config = {}) { function getRuntimeStatusResponse (line 645) | async function getRuntimeStatusResponse(config = {}) { function computeOriginResponse (line 649) | async function computeOriginResponse(payload, config = {}) { function getSwarmLeadersResponse (line 653) | async function getSwarmLeadersResponse(config = {}) { function getShowInfoResponse (line 657) | async function getShowInfoResponse(config = {}) { function getShowPlotsResponse (line 661) | async function getShowPlotsResponse(config = {}) { function getComprehensiveMetricsResponse (line 665) | async function getComprehensiveMetricsResponse(config = {}) { function getCustomShowInfoResponse (line 669) | async function getCustomShowInfoResponse(config = {}) { function importShowResponse (line 673) | async function importShowResponse(payload, config = {}) { function importCustomShowResponse (line 677) | async function importCustomShowResponse(payload, config = {}) { function getTrajectoryFirstRowResponse (line 681) | async function getTrajectoryFirstRowResponse(posId, config = {}) { function getSwarmTrajectoryStatusResponse (line 688) | async function getSwarmTrajectoryStatusResponse(config = {}) { function getSwarmTrajectoryPolicyResponse (line 692) | async function getSwarmTrajectoryPolicyResponse(config = {}) { function processSwarmTrajectoriesResponse (line 696) | async function processSwarmTrajectoriesResponse(payload = {}, config = {... function clearProcessedSwarmTrajectoriesResponse (line 700) | async function clearProcessedSwarmTrajectoriesResponse(config = {}) { FILE: app/dashboard/drone-dashboard/src/services/px4ParamsApiService.js function buildPx4ParamsUrl (line 9) | function buildPx4ParamsUrl(suffix = '') { function getPx4ParamPolicy (line 13) | async function getPx4ParamPolicy() { function listPx4ParamProfiles (line 17) | async function listPx4ParamProfiles() { function getPx4ParamProfile (line 21) | async function getPx4ParamProfile(profileId) { function refreshPx4ParamSnapshots (line 25) | async function refreshPx4ParamSnapshots({ hwIds, componentId = 1 }) { function getPx4ParamSnapshot (line 32) | async function getPx4ParamSnapshot(snapshotId) { function getPx4ParamSnapshotRows (line 36) | async function getPx4ParamSnapshotRows(snapshotId) { function createPx4ParamPatchJob (line 40) | async function createPx4ParamPatchJob({ function getPx4ParamPatchJob (line 54) | async function getPx4ParamPatchJob(jobId) { function importQgcParameterFile (line 58) | async function importQgcParameterFile(content) { function importMdsPatch (line 62) | async function importMdsPatch(content) { function diffPx4ParamSnapshot (line 66) | async function diffPx4ParamSnapshot({ FILE: app/dashboard/drone-dashboard/src/services/sarApiService.js function buildQueryString (line 15) | function buildQueryString(params = {}) { FILE: app/dashboard/drone-dashboard/src/services/sitlControlService.js constant SITL_CONTROL_READ_TIMEOUT_MS (line 10) | const SITL_CONTROL_READ_TIMEOUT_MS = 10000; constant SITL_CONTROL_MUTATION_TIMEOUT_MS (line 11) | const SITL_CONTROL_MUTATION_TIMEOUT_MS = 30000; function withTimeout (line 13) | function withTimeout(config = {}, timeout) { function getSitlControlPolicy (line 20) | async function getSitlControlPolicy(config = {}) { function getSitlControlHost (line 25) | async function getSitlControlHost(config = {}) { function getSitlControlImages (line 30) | async function getSitlControlImages(config = {}) { function releaseSitlImage (line 35) | async function releaseSitlImage(payload, config = {}) { function getSitlControlInstances (line 40) | async function getSitlControlInstances(config = {}) { function runSitlInstanceAction (line 45) | async function runSitlInstanceAction(payload, config = {}) { function createSitlInstance (line 50) | async function createSitlInstance(payload, config = {}) { function reconcileSitlFleet (line 55) | async function reconcileSitlFleet(payload, config = {}) { function getSitlControlOperations (line 60) | async function getSitlControlOperations({ limit = 20, ...config } = {}) { function getSitlControlOperation (line 71) | async function getSitlControlOperation(operationId, config = {}) { function restartSitlInstance (line 77) | async function restartSitlInstance(instanceName, config = {}) { function removeSitlInstance (line 83) | async function removeSitlInstance(instanceName, config = {}) { function getSitlControlInstanceLogs (line 89) | async function getSitlControlInstanceLogs(instanceName, { tail = 200, ..... FILE: app/dashboard/drone-dashboard/src/setupTests.js method addListener (line 14) | addListener() {} method removeListener (line 15) | removeListener() {} method addEventListener (line 16) | addEventListener() {} method removeEventListener (line 17) | removeEventListener() {} method dispatchEvent (line 18) | dispatchEvent() { return false; } FILE: app/dashboard/drone-dashboard/src/utilities/SpeedCalculator.js constant SPEED_THRESHOLDS (line 17) | const SPEED_THRESHOLDS = { constant YAW_CONSTANTS (line 32) | const YAW_CONSTANTS = { constant TIMING_MODES (line 38) | const TIMING_MODES = { constant ALTITUDE_REFERENCE (line 43) | const ALTITUDE_REFERENCE = { constant EARTH_RADIUS_M (line 48) | const EARTH_RADIUS_M = 6_371_000; constant TRAJECTORY_SEGMENT_COLORS (line 218) | const TRAJECTORY_SEGMENT_COLORS = Object.freeze({ FILE: app/dashboard/drone-dashboard/src/utilities/TrajectoryStateManager.js constant ACTION_TYPES (line 6) | const ACTION_TYPES = { class TrajectoryStateManager (line 25) | class TrajectoryStateManager { method constructor (line 26) | constructor(maxHistorySize = 50) { method getCurrentState (line 40) | getCurrentState() { method executeAction (line 47) | executeAction(actionType, payload, description = '') { method applyAction (line 66) | applyAction(actionType, payload) { method saveToUndoStack (line 125) | saveToUndoStack(actionType, description) { method undo (line 139) | undo() { method redo (line 166) | redo() { method canUndo (line 187) | canUndo() { method canRedo (line 194) | canRedo() { method getHistoryStatus (line 201) | getHistoryStatus() { method getActionHistory (line 219) | getActionHistory() { method clearHistory (line 237) | clearHistory() { method setInitialState (line 245) | setInitialState(state) { method createCheckpoint (line 253) | createCheckpoint(description = 'Checkpoint') { method optimizeStacks (line 261) | optimizeStacks() { method getDefaultDescription (line 274) | getDefaultDescription(actionType) { method deepClone (line 298) | deepClone(obj) { method validateState (line 324) | validateState(state = this.currentState) { method export (line 364) | export() { method import (line 377) | import(data) { FILE: app/dashboard/drone-dashboard/src/utilities/TrajectoryStorage.js class TrajectoryStorage (line 20) | class TrajectoryStorage { method constructor (line 21) | constructor() { method saveTrajectory (line 31) | async saveTrajectory(name, waypoints, metadata = {}) { method loadTrajectory (line 101) | async loadTrajectory(identifier) { method getAllTrajectories (line 142) | getAllTrajectories() { method deleteTrajectory (line 154) | async deleteTrajectory(identifier) { method exportTrajectory (line 188) | async exportTrajectory(identifier, format = 'json') { method exportCurrentTrajectory (line 216) | async exportCurrentTrajectory(name, waypoints, format = 'json', metada... method buildPersistenceSignature (line 245) | buildPersistenceSignature(name, waypoints = []) { method importTrajectory (line 257) | async importTrajectory(file) { method autoSave (line 314) | async autoSave(waypoints, metadata = {}) { method createBackup (line 335) | async createBackup() { method getStorageStats (line 357) | getStorageStats() { method validateTrajectoryData (line 383) | validateTrajectoryData(trajectory) { method sanitizeWaypoints (line 419) | sanitizeWaypoints(waypoints) { method convertToCSV (line 448) | convertToCSV(waypoints) { method convertToKML (line 491) | convertToKML(trajectory) { method buildExportFile (line 519) | buildExportFile(trajectory, format = 'json') { method parseCSV (line 549) | parseCSV(content, filename) { method getStorageData (line 615) | getStorageData(key) { method setStorageData (line 624) | async setStorageData(key, data) { method handleStorageQuotaExceeded (line 639) | async handleStorageQuotaExceeded() { method updateTrajectory (line 651) | async updateTrajectory(trajectory) { method cleanupAutoSaves (line 667) | cleanupAutoSaves() { method cleanupBackups (line 685) | cleanupBackups(maxKeep = this.maxBackups) { method generateId (line 702) | generateId() { method formatBytes (line 709) | formatBytes(bytes) { method readFileContent (line 720) | readFileContent(file) { method downloadFile (line 732) | downloadFile(content, filename, mimeType) { FILE: app/dashboard/drone-dashboard/src/utilities/commandExecutionPolicy.js constant STRICT_SYNC_MISSION_TYPES (line 3) | const STRICT_SYNC_MISSION_TYPES = new Set([ constant STRICT_SYNC_ACTION_KEYS (line 9) | const STRICT_SYNC_ACTION_KEYS = new Set([ constant SCHEDULABLE_ACTION_KEYS (line 13) | const SCHEDULABLE_ACTION_KEYS = new Set([ FILE: app/dashboard/drone-dashboard/src/utilities/commandLifecycleFeedback.js constant OVERRIDE_COMMANDS (line 7) | const OVERRIDE_COMMANDS = new Set([101, 102, 104, 105]); constant PERSISTENT_MISSION_TYPES (line 8) | const PERSISTENT_MISSION_TYPES = new Set([2]); constant TERMINAL_PHASE (line 9) | const TERMINAL_PHASE = 'terminal'; constant POLL_INTERVAL_MS (line 10) | const POLL_INTERVAL_MS = 1500; constant MAX_POLL_ERRORS (line 11) | const MAX_POLL_ERRORS = 3; constant DEFAULT_TRACK_TIMEOUT_MS (line 12) | const DEFAULT_TRACK_TIMEOUT_MS = 120000; constant DEFAULT_PROGRESS_LABELS (line 13) | const DEFAULT_PROGRESS_LABELS = { function resolveTrackTimeoutMs (line 27) | function resolveTrackTimeoutMs(response, overrideTimeoutMs) { function normalizeMissionType (line 41) | function normalizeMissionType(missionType) { function titleCaseSegment (line 46) | function titleCaseSegment(segment) { function humanizeCommandToken (line 58) | function humanizeCommandToken(value) { function formatCommandLabel (line 76) | function formatCommandLabel(commandData, response) { function isPersistentMission (line 82) | function isPersistentMission(commandData = {}, response = null, status =... function getAcceptedCount (line 89) | function getAcceptedCount(response) { function getTargetCount (line 94) | function getTargetCount(response) { function getAckSummary (line 99) | function getAckSummary(response) { function isFutureTrigger (line 117) | function isFutureTrigger(triggerTime, referenceNowMs = Date.now()) { function formatTriggerTime (line 123) | function formatTriggerTime(triggerTime) { function normalizeTargetDrones (line 140) | function normalizeTargetDrones(commandData, response, status) { function buildInitialProgress (line 145) | function buildInitialProgress(commandData, response) { function buildLifecycleSnapshot (line 192) | function buildLifecycleSnapshot({ function extractTriggerTime (line 276) | function extractTriggerTime(commandData = {}, status = null) { function buildLifecycleSnapshotFromStatus (line 286) | function buildLifecycleSnapshotFromStatus(status) { function buildSubmissionToastMessage (line 312) | function buildSubmissionToastMessage(commandData, response) { function buildTerminalSuffix (line 391) | function buildTerminalSuffix(status) { function buildTerminalToast (line 420) | function buildTerminalToast(status, commandLabel) { function buildProgressToast (line 458) | function buildProgressToast(status, commandLabel) { function stripUiMeta (line 480) | function stripUiMeta(commandData = {}) { function emitToast (line 485) | function emitToast(level, message) { function trackCommandLifecycle (line 491) | async function trackCommandLifecycle(commandId, commandLabel, initialPha... function submitCommandWithLifecycleFeedback (line 582) | async function submitCommandWithLifecycleFeedback(commandData, options =... FILE: app/dashboard/drone-dashboard/src/utilities/commandScheduling.js constant COMMAND_SCHEDULE_MODES (line 3) | const COMMAND_SCHEDULE_MODES = { constant COMMAND_DELAY_PRESETS (line 9) | const COMMAND_DELAY_PRESETS = [10, 30, 60]; constant CLOCK_OFFSET_WARNING_THRESHOLD_MS (line 10) | const CLOCK_OFFSET_WARNING_THRESHOLD_MS = 30_000; function pad (line 12) | function pad(value) { function formatDateTimeLocalInput (line 16) | function formatDateTimeLocalInput(dateLike) { function getFleetReferenceClock (line 25) | function getFleetReferenceClock(drones = [], nowMs = Date.now()) { function formatClockOffsetLabel (line 56) | function formatClockOffsetLabel(offsetMs = 0) { function formatCommandAbsoluteTime (line 65) | function formatCommandAbsoluteTime(unixSeconds) { function buildCommandSchedule (line 83) | function buildCommandSchedule({ FILE: app/dashboard/drone-dashboard/src/utilities/dronePresentation.js constant DRONE_SEARCH_PLACEHOLDER (line 5) | const DRONE_SEARCH_PLACEHOLDER = 'Search, P1|H1, pos 1-5, or hw 2,4'; constant DRONE_SEARCH_HELP_TEXT (line 6) | const DRONE_SEARCH_HELP_TEXT = 'Try P1|H1, pos 1-5, hw 2,4, free text, o... function readField (line 8) | function readField(drone, key, fallback = '') { function normalizeToken (line 16) | function normalizeToken(value) { function toSearchTermList (line 20) | function toSearchTermList(values = []) { function isNumericToken (line 32) | function isNumericToken(value) { function matchesRangeToken (line 36) | function matchesRangeToken(candidate, token) { function buildDroneSearchSnapshot (line 59) | function buildDroneSearchSnapshot(drone, additionalTerms = []) { function parseStructuredDroneQuery (line 86) | function parseStructuredDroneQuery(rawQuery) { function matchesStructuredFilter (line 144) | function matchesStructuredFilter(snapshot, filter) { function getDroneOperatorAlias (line 173) | function getDroneOperatorAlias(drone) { function getDroneDisplayIdentity (line 185) | function getDroneDisplayIdentity(drone) { function matchesDroneSearchQuery (line 226) | function matchesDroneSearchQuery(drone, rawQuery, additionalTerms = []) { FILE: app/dashboard/drone-dashboard/src/utilities/droneReadiness.js constant STATUS_LABELS (line 4) | const STATUS_LABELS = { constant READINESS_SNAPSHOT_GRACE_THRESHOLD_MS (line 10) | const READINESS_SNAPSHOT_GRACE_THRESHOLD_MS = 90_000; function normalizeMessages (line 12) | function normalizeMessages(messages) { function normalizeChecks (line 27) | function normalizeChecks(checks) { function dedupeMessages (line 42) | function dedupeMessages(messages) { function getAvailabilityGuard (line 55) | function getAvailabilityGuard(runtimeStatus, canUseLastSnapshot = false) { function hasFreshReadinessSnapshot (line 81) | function hasFreshReadinessSnapshot(drone, runtimeStatus) { function getDroneReadinessModel (line 95) | function getDroneReadinessModel(drone, runtimeStatus = null) { FILE: app/dashboard/drone-dashboard/src/utilities/droneRuntimeStatus.js constant LIVE_TELEMETRY_THRESHOLD_MS (line 4) | const LIVE_TELEMETRY_THRESHOLD_MS = 10_000; constant HEARTBEAT_GRACE_THRESHOLD_MS (line 5) | const HEARTBEAT_GRACE_THRESHOLD_MS = 35_000; constant OFFLINE_CONFIRMED_THRESHOLD_MS (line 6) | const OFFLINE_CONFIRMED_THRESHOLD_MS = 60_000; constant CLIENT_CLOCK_SKEW_TOLERANCE_MS (line 7) | const CLIENT_CLOCK_SKEW_TOLERANCE_MS = 30_000; constant MS_PER_SECOND (line 8) | const MS_PER_SECOND = 1_000; constant UNIX_MS_THRESHOLD (line 9) | const UNIX_MS_THRESHOLD = 1_000_000_000_000; function normalizeTimestampMs (line 11) | function normalizeTimestampMs(value) { function toAgeSeconds (line 24) | function toAgeSeconds(nowMs, timestampMs) { function formatAge (line 32) | function formatAge(ageSeconds, label) { function formatClockOffset (line 40) | function formatClockOffset(offsetMs) { function getDroneReferenceNowMs (line 49) | function getDroneReferenceNowMs(drone, nowMs = Date.now()) { function getDroneRuntimeStatus (line 69) | function getDroneRuntimeStatus(drone, nowMs = Date.now()) { FILE: app/dashboard/drone-dashboard/src/utilities/fleetOpsViewModel.js constant HEALTHY_VALUES (line 3) | const HEALTHY_VALUES = new Set(['healthy', 'active', 'running', 'synced'... constant WARNING_VALUES (line 4) | const WARNING_VALUES = new Set(['warning', 'degraded', 'unknown', 'inact... constant ERROR_VALUES (line 5) | const ERROR_VALUES = new Set(['error', 'failed', 'unhealthy']); function normalizeRuntimeMode (line 7) | function normalizeRuntimeMode(value) { function formatRuntimeMode (line 18) | function formatRuntimeMode(value) { function formatRepoAccessMode (line 29) | function formatRepoAccessMode(value) { function compactCommit (line 44) | function compactCommit(commit) { function compactHash (line 48) | function compactHash(hash) { function buildGitHubDocsUrl (line 56) | function buildGitHubDocsUrl(remoteUrl, branch, docPath) { function formatHashMatch (line 80) | function formatHashMatch(runtime) { function classifyTone (line 89) | function classifyTone(value) { function classifyRuntimeStepTone (line 103) | function classifyRuntimeStepTone(value) { function classifyNodePresence (line 114) | function classifyNodePresence(heartbeat, payloadTimestamp) { function isAttentionTone (line 205) | function isAttentionTone(tone) { function worstTone (line 209) | function worstTone(...tones) { function classifyGitSync (line 222) | function classifyGitSync(gitStatus, gcsStatus) { function classifyGitAuth (line 253) | function classifyGitAuth(gitStatus) { function classifyGitSyncRuntime (line 272) | function classifyGitSyncRuntime(gitSyncRuntime) { function classifyMavlinkRuntime (line 305) | function classifyMavlinkRuntime(runtime, runtimeMode = 'unknown') { function classifyConnectivityRuntime (line 348) | function classifyConnectivityRuntime(runtime, runtimeMode = 'unknown') { function rowNeedsAttention (line 390) | function rowNeedsAttention(row) { function rowHasComplianceDrift (line 400) | function rowHasComplianceDrift(row) { function normalizeHeartbeatMap (line 407) | function normalizeHeartbeatMap(heartbeatPayload) { function makeRow (line 418) | function makeRow(gitKey, gitStatus, heartbeat, gcsStatus, payloadTimesta... function buildFleetOpsViewModel (line 463) | function buildFleetOpsViewModel(gitPayload, heartbeatPayload) { FILE: app/dashboard/drone-dashboard/src/utilities/globeScreenInteractions.js constant DEFAULT_GLOBE_ANCHOR_HIT_RADIUS_PX (line 1) | const DEFAULT_GLOBE_ANCHOR_HIT_RADIUS_PX = 70; function getEventClientPoint (line 3) | function getEventClientPoint(event) { function findNearestScreenAnchor (line 16) | function findNearestScreenAnchor( FILE: app/dashboard/drone-dashboard/src/utilities/globeTelemetryViewModel.js constant LOW_LATENCY_INTERVAL_MS (line 7) | const LOW_LATENCY_INTERVAL_MS = 1000; constant MEDIUM_FLEET_INTERVAL_MS (line 8) | const MEDIUM_FLEET_INTERVAL_MS = 1500; constant LARGE_FLEET_INTERVAL_MS (line 9) | const LARGE_FLEET_INTERVAL_MS = 2500; constant BACKGROUND_INTERVAL_MS (line 10) | const BACKGROUND_INTERVAL_MS = 6000; constant CONSTRAINED_NETWORK_INTERVAL_MS (line 11) | const CONSTRAINED_NETWORK_INTERVAL_MS = 3000; function toFiniteNumber (line 13) | function toFiniteNumber(value, fallback = null) { function hasNonZeroCoordinate (line 18) | function hasNonZeroCoordinate(lat, lon) { function getConnectionProfile (line 24) | function getConnectionProfile() { function calculateGlobeTelemetryIntervalMs (line 32) | function calculateGlobeTelemetryIntervalMs(droneCount = 0, options = {}) { function buildGlobeDroneViewModels (line 59) | function buildGlobeDroneViewModels(telemetryPayload = {}, configPayload ... FILE: app/dashboard/drone-dashboard/src/utilities/logViewerUtils.js constant SESSION_ID_PATTERN (line 1) | const SESSION_ID_PATTERN = /^s_(\d{4})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2... FILE: app/dashboard/drone-dashboard/src/utilities/missionConfigFields.js constant CORE_IDENTITY_FIELDS (line 6) | const CORE_IDENTITY_FIELDS = ['hw_id', 'pos_id']; constant CORE_CONNECTIVITY_FIELDS (line 7) | const CORE_CONNECTIVITY_FIELDS = ['ip', 'mavlink_port', 'serial_port', '... constant CORE_MISSION_CONFIG_FIELDS (line 8) | const CORE_MISSION_CONFIG_FIELDS = [ constant TRANSIENT_MISSION_CONFIG_FIELDS (line 13) | const TRANSIENT_MISSION_CONFIG_FIELDS = [ constant RESERVED_MISSION_CONFIG_FIELDS (line 20) | const RESERVED_MISSION_CONFIG_FIELDS = new Set([ constant CUSTOM_FIELD_TYPES (line 25) | const CUSTOM_FIELD_TYPES = { constant CUSTOM_FIELD_TYPE_OPTIONS (line 33) | const CUSTOM_FIELD_TYPE_OPTIONS = [ constant FIELD_LABEL_OVERRIDES (line 41) | const FIELD_LABEL_OVERRIDES = { constant PROMOTED_CUSTOM_FIELD_KEYS (line 55) | const PROMOTED_CUSTOM_FIELD_KEYS = ['callsign', 'display_name', 'nicknam... constant CUSTOM_FIELD_KEY_PATTERN (line 56) | const CUSTOM_FIELD_KEY_PATTERN = /^[a-z][a-z0-9_]*$/; constant HEX_COLOR_PATTERN (line 57) | const HEX_COLOR_PATTERN = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i; constant ACRONYM_WORDS (line 58) | const ACRONYM_WORDS = new Set(['id', 'ip', 'gps', 'gcs', 'mavlink', 'rtl... constant DEFAULT_MARKER_COLOR (line 60) | const DEFAULT_MARKER_COLOR = '#00d4ff'; constant MISSION_CUSTOM_FIELD_TEMPLATES (line 62) | const MISSION_CUSTOM_FIELD_TEMPLATES = [ constant CUSTOM_FIELD_TEMPLATE_OPTIONS (line 97) | const CUSTOM_FIELD_TEMPLATE_OPTIONS = [ function nextCustomFieldDraftId (line 107) | function nextCustomFieldDraftId() { function humanizeMissionConfigFieldKey (line 112) | function humanizeMissionConfigFieldKey(key) { function normalizeMissionCustomFieldKey (line 143) | function normalizeMissionCustomFieldKey(value) { function getMissionCustomFieldTemplate (line 153) | function getMissionCustomFieldTemplate(key) { function inferMissionCustomFieldType (line 158) | function inferMissionCustomFieldType(value, key = '') { function isReservedMissionConfigField (line 179) | function isReservedMissionConfigField(key) { function formatMissionCustomFieldValue (line 183) | function formatMissionCustomFieldValue(value, type = inferMissionCustomF... function getPromotedFieldPriority (line 209) | function getPromotedFieldPriority(key) { function getMissionConfigCustomFields (line 215) | function getMissionConfigCustomFields(drone = {}) { function getPromotedMissionConfigField (line 249) | function getPromotedMissionConfigField(drone = {}) { function createMissionCustomFieldDraft (line 253) | function createMissionCustomFieldDraft(overrides = {}) { function createMissionCustomFieldDraftFromTemplate (line 263) | function createMissionCustomFieldDraftFromTemplate(templateKey, override... function coerceMissionCustomFieldValueForEditor (line 277) | function coerceMissionCustomFieldValueForEditor(type, value) { function buildMissionConfigFormState (line 316) | function buildMissionConfigFormState(drone = {}) { function parseMissionCustomFieldDraftValue (line 350) | function parseMissionCustomFieldDraftValue(field) { function serializeMissionConfigFormState (line 365) | function serializeMissionConfigFormState(formState = {}) { function validateMissionCustomFields (line 389) | function validateMissionCustomFields(customFields = []) { FILE: app/dashboard/drone-dashboard/src/utilities/missionConfigUtilities.js constant CORE_FIELDS (line 13) | const CORE_FIELDS = ['hw_id', 'pos_id', 'ip', 'mavlink_port', 'serial_po... FILE: app/dashboard/drone-dashboard/src/utilities/missionIdentityUtils.js constant INTEGER_PATTERN (line 1) | const INTEGER_PATTERN = /^\d+$/; constant POSITIVE_INTEGER_PATTERN (line 2) | const POSITIVE_INTEGER_PATTERN = /^[1-9]\d*$/; function toTrimmedString (line 4) | function toTrimmedString(value, fallback = '') { function normalizeComparableId (line 12) | function normalizeComparableId(value, fallback = '') { function formatDroneLabel (line 25) | function formatDroneLabel(value, fallback = 'Drone') { function formatShowSlotLabel (line 30) | function formatShowSlotLabel(value, fallback = 'Show Slot') { function formatCompactDroneIdentity (line 35) | function formatCompactDroneIdentity(posValue, hwValue, fallback = 'Unass... function getIdentityDoctrineCopy (line 54) | function getIdentityDoctrineCopy(surface = 'default') { function normalizeRuntimeIp (line 133) | function normalizeRuntimeIp(value) { function areGitRevisionsEquivalent (line 147) | function areGitRevisionsEquivalent(leftValue, rightValue) { function isPositiveIntegerId (line 164) | function isPositiveIntegerId(value) { function compareMissionIds (line 168) | function compareMissionIds(leftValue, rightValue) { function sortMissionIds (line 189) | function sortMissionIds(values = []) { function normalizeDroneConfigEntry (line 199) | function normalizeDroneConfigEntry(entry = {}) { function normalizeDroneConfigData (line 222) | function normalizeDroneConfigData(entries = []) { function buildSuggestedHwIds (line 232) | function buildSuggestedHwIds(configData = []) { function buildKnownPositionIds (line 253) | function buildKnownPositionIds(configData = [], extraIds = []) { function findDuplicatePositionAssignment (line 260) | function findDuplicatePositionAssignment(configData = [], currentHwId, c... function getDuplicateAssignments (line 276) | function getDuplicateAssignments(configData = []) { function getRoleSwaps (line 309) | function getRoleSwaps(configData = []) { function getHeartbeatTimestamp (line 317) | function getHeartbeatTimestamp(heartbeat) { function getOnlineDroneCount (line 322) | function getOnlineDroneCount(heartbeats = {}, staleThresholdSeconds = 20) { function toBackendConfigDrone (line 335) | function toBackendConfigDrone(drone = {}) { FILE: app/dashboard/drone-dashboard/src/utilities/missionSlotStatus.js function formatSlotValue (line 3) | function formatSlotValue(value) { function buildSlotChip (line 7) | function buildSlotChip(label, value, tone = 'neutral') { function determineMissionSlotStatus (line 16) | function determineMissionSlotStatus(configPosId, assignedPosId, autoPosI... function buildMissionSlotStatusPresentation (line 60) | function buildMissionSlotStatusPresentation(configPosId, assignedPosId, ... FILE: app/dashboard/drone-dashboard/src/utilities/missionUtils.js constant MISSION_INT_TO_NAME (line 10) | const MISSION_INT_TO_NAME = { constant MISSION_DISPLAY_NAMES (line 35) | const MISSION_DISPLAY_NAMES = { constant EMPTY_MISSION_NAMES (line 57) | const EMPTY_MISSION_NAMES = new Set(['NONE', 'N/A', '']); FILE: app/dashboard/drone-dashboard/src/utilities/plotThemeColors.js constant CSS_VAR_REFERENCE_PATTERN (line 1) | const CSS_VAR_REFERENCE_PATTERN = /var\(\s*(--[A-Za-z0-9-_]+)\s*(?:,\s*(... FILE: app/dashboard/drone-dashboard/src/utilities/px4ParameterFiles.js constant MAV_PARAM_TYPES (line 1) | const MAV_PARAM_TYPES = Object.freeze({ function buildQgcParameterFile (line 6) | function buildQgcParameterFile(snapshotResponse) { FILE: app/dashboard/drone-dashboard/src/utilities/px4ParameterProfiles.js function buildMdsParameterProfileFile (line 1) | function buildMdsParameterProfileFile(profile) { FILE: app/dashboard/drone-dashboard/src/utilities/quickScoutLaunchReadiness.js function normalizeId (line 6) | function normalizeId(value) { function summarizeIssue (line 10) | function summarizeIssue(issueMap) { function buildQuickScoutLaunchReadiness (line 14) | function buildQuickScoutLaunchReadiness({ FILE: app/dashboard/drone-dashboard/src/utilities/quickScoutMissionPresentation.js function formatQuickScoutArea (line 3) | function formatQuickScoutArea(areaSqM) { function formatQuickScoutDuration (line 15) | function formatQuickScoutDuration(seconds) { function formatQuickScoutDistance (line 35) | function formatQuickScoutDistance(distanceM) { function getQuickScoutMissionTemplateLabel (line 47) | function getQuickScoutMissionTemplateLabel(missionTemplate) { function getQuickScoutMissionPhaseLabel (line 57) | function getQuickScoutMissionPhaseLabel(operationPhase) { function formatCoordinate (line 82) | function formatCoordinate(point) { function buildQuickScoutGeometrySummary (line 89) | function buildQuickScoutGeometrySummary({ FILE: app/dashboard/drone-dashboard/src/utilities/quickScoutPlanningSignature.js function normalizePoint (line 1) | function normalizePoint(point = {}) { function normalizeSurveyConfig (line 11) | function normalizeSurveyConfig(surveyConfig = {}) { function normalizeIds (line 35) | function normalizeIds(values = []) { function buildQuickScoutPlanningSignature (line 43) | function buildQuickScoutPlanningSignature({ FILE: app/dashboard/drone-dashboard/src/utilities/quickScoutProfiles.js constant QUICKSCOUT_PROFILE_PRESETS (line 1) | const QUICKSCOUT_PROFILE_PRESETS = [ constant DEFAULT_QUICKSCOUT_PROFILE_ID (line 52) | const DEFAULT_QUICKSCOUT_PROFILE_ID = QUICKSCOUT_PROFILE_PRESETS[0].id; FILE: app/dashboard/drone-dashboard/src/utilities/quickScoutSearchGeometry.js constant EARTH_RADIUS_M (line 5) | const EARTH_RADIUS_M = 6378137; function hasFiniteCoordinate (line 7) | function hasFiniteCoordinate(value) { function hasFiniteLatLng (line 14) | function hasFiniteLatLng(point) { function calculateCircularAreaSqM (line 18) | function calculateCircularAreaSqM(radiusM) { function normalizeSearchPath (line 26) | function normalizeSearchPath(path = []) { function calculateSearchPathLengthM (line 33) | function calculateSearchPathLengthM(path = []) { function buildLastKnownPointGeoJSON (line 59) | function buildLastKnownPointGeoJSON(center, radiusM, steps = 48) { function buildCorridorPathGeoJSON (line 102) | function buildCorridorPathGeoJSON(path = []) { function buildCorridorGeoJSON (line 125) | function buildCorridorGeoJSON(path = [], corridorWidthM) { function calculateCorridorAreaSqM (line 153) | function calculateCorridorAreaSqM(path = [], corridorWidthM) { FILE: app/dashboard/drone-dashboard/src/utilities/smartSwarmLaunchReadiness.js constant SMART_SWARM_MIN_AIRBORNE_ALTITUDE_M (line 5) | const SMART_SWARM_MIN_AIRBORNE_ALTITUDE_M = 0.3; function normalizeId (line 7) | function normalizeId(value) { function isFiniteNumber (line 11) | function isFiniteNumber(value) { function buildScopedTargets (line 15) | function buildScopedTargets({ drones = [], targetMode = 'all', selectedD... function buildSmartSwarmLaunchReadiness (line 29) | function buildSmartSwarmLaunchReadiness({ FILE: app/dashboard/drone-dashboard/src/utilities/swarmDesignUtils.js constant TOP_LEADER_FOLLOW_VALUE (line 4) | const TOP_LEADER_FOLLOW_VALUE = '0'; constant VALID_FRAMES (line 6) | const VALID_FRAMES = new Set(['ned', 'body']); constant ROLE_ORDER (line 7) | const ROLE_ORDER = { constant BLOCKING_WARNING_CODES (line 13) | const BLOCKING_WARNING_CODES = new Set([ function normalizeNumericString (line 19) | function normalizeNumericString(value, fallback = '') { function normalizeOffset (line 32) | function normalizeOffset(value) { function sortIds (line 37) | function sortIds(leftId, rightId) { function createDefaultAssignment (line 41) | function createDefaultAssignment(hwId) { function normalizeConfigDrone (line 52) | function normalizeConfigDrone(entry = {}) { function normalizeSwarmAssignment (line 68) | function normalizeSwarmAssignment(entry = {}, fallbackHwId = '') { function assignmentToComparableString (line 87) | function assignmentToComparableString(assignment) { function buildFollowerMap (line 96) | function buildFollowerMap(assignments) { function detectCycleIds (line 121) | function detectCycleIds(assignmentMap) { function getClusterResolution (line 155) | function getClusterResolution(droneId, assignmentMap, cycleIds) { function getDepth (line 197) | function getDepth(drone, assignmentMap, cycleIds, depthCache) { function getRoleKey (line 213) | function getRoleKey(drone, followerMap) { function getRoleLabel (line 221) | function getRoleLabel(roleKey) { function getRoleSummary (line 233) | function getRoleSummary(roleKey, drone, directFollowers) { function getOffsetAxisLabels (line 249) | function getOffsetAxisLabels(frame) { function formatSignedOffset (line 269) | function formatSignedOffset(value) { function formatOffsetSummary (line 275) | function formatOffsetSummary(drone) { function compareDrones (line 284) | function compareDrones(leftDrone, rightDrone) { function buildSummary (line 298) | function buildSummary(drones, clusters) { function buildFollowOptions (line 335) | function buildFollowOptions(drones) { function buildWorkingSwarmAssignments (line 344) | function buildWorkingSwarmAssignments(configData = [], swarmData = []) { function getDirtyAssignmentIds (line 382) | function getDirtyAssignmentIds(currentAssignments = [], baselineAssignme... function buildSwarmViewModel (line 397) | function buildSwarmViewModel(assignments = [], configData = []) { function calculateClusterOffset (line 580) | function calculateClusterOffset(droneId, assignmentMap, visited = new Se... function calculateClusterPlotData (line 609) | function calculateClusterPlotData(assignments = [], configData = [], clu... function buildClusterScopeOptions (line 695) | function buildClusterScopeOptions(clusters = [], fallbackTotal = 0) { function filterClustersByScope (line 738) | function filterClustersByScope(clusters = [], scopeId = 'all') { function toSwarmApiPayload (line 750) | function toSwarmApiPayload(assignments = []) { FILE: app/dashboard/drone-dashboard/src/utilities/swarmRuntimeUtils.js constant SWARM_RUNTIME_SCOPE (line 6) | const SWARM_RUNTIME_SCOPE = { constant SWARM_RUNTIME_ACTIONS (line 11) | const SWARM_RUNTIME_ACTIONS = { function getTargetIdSet (line 46) | function getTargetIdSet(targetIds = []) { function formatRuntimeTargetList (line 50) | function formatRuntimeTargetList(targetIds = []) { function formatScopeCountLabel (line 58) | function formatScopeCountLabel(label, count) { function resolveSwarmRuntimeTargets (line 62) | function resolveSwarmRuntimeTargets( function getSwarmRuntimeStartBlockerReason (line 117) | function getSwarmRuntimeStartBlockerReason({ function getSwarmRuntimeTelemetrySummary (line 165) | function getSwarmRuntimeTelemetrySummary(targetIds = [], telemetryById =... function buildSwarmRuntimeCommand (line 208) | function buildSwarmRuntimeCommand(actionKey, targetIds = []) { FILE: app/dashboard/drone-dashboard/src/utilities/swarmScopeUtils.js function buildNormalizedIdSet (line 6) | function buildNormalizedIdSet(values = []) { function buildNormalizedFollowMap (line 14) | function buildNormalizedFollowMap(followMap = {}) { function getClusterMemberIds (line 29) | function getClusterMemberIds(cluster = {}) { function buildLeaderChainSelectionIssues (line 38) | function buildLeaderChainSelectionIssues({ followMap = {}, activeIds = [... FILE: app/dashboard/drone-dashboard/src/utilities/swarmTrajectoryLaunchReadiness.js function buildSelectionScope (line 19) | function buildSelectionScope(clusterStatus = {}, selectedDroneIds = []) { function formatSelectionIssues (line 53) | function formatSelectionIssues(selectionIssues = []) { function aggregatePackageStats (line 84) | function aggregatePackageStats(statsList = []) { function normalizePackageStats (line 133) | function normalizePackageStats(stats = null) { function getPackageDroneStat (line 150) | function getPackageDroneStat(packageDroneStats = {}, droneId) { FILE: app/dashboard/drone-dashboard/src/utilities/swarmTrajectoryViewModel.js constant CLUSTER_STATE_META (line 1) | const CLUSTER_STATE_META = { constant CLUSTER_STATE_ALIASES (line 30) | const CLUSTER_STATE_ALIASES = { function normalizeClusterState (line 34) | function normalizeClusterState(state) { function getClusterStateMeta (line 38) | function getClusterStateMeta(cluster = {}) { function buildFallbackClusters (line 45) | function buildFallbackClusters({ function buildSwarmTrajectoryViewModel (line 79) | function buildSwarmTrajectoryViewModel({ FILE: app/dashboard/drone-dashboard/src/utilities/swarmTrajectoryWorkspaceModel.js function buildSwarmTrajectoryWorkspaceStatus (line 14) | function buildSwarmTrajectoryWorkspaceStatus({ viewModel, recommendation... function buildSwarmTrajectoryStages (line 102) | function buildSwarmTrajectoryStages({ viewModel, recommendation, hasProc... FILE: app/dashboard/drone-dashboard/src/utilities/toastFeedback.js function toastThrottled (line 5) | function toastThrottled(level, key, message, options = {}) { function toastErrorThrottled (line 30) | function toastErrorThrottled(key, message, options = {}) { function toastWarningThrottled (line 34) | function toastWarningThrottled(key, message, options = {}) { function toastInfoThrottled (line 38) | function toastInfoThrottled(key, message, options = {}) { function clearThrottledToast (line 42) | function clearThrottledToast(key) { FILE: app/dashboard/drone-dashboard/src/utilities/utilities.js function getTelemetryURL (line 14) | function getTelemetryURL() { function getElevationURL (line 18) | function getElevationURL(lat, lon) { function getCustomShowImageURL (line 27) | function getCustomShowImageURL() { constant LAT_TO_METERS (line 32) | const LAT_TO_METERS = 111321; constant LON_TO_METERS (line 33) | const LON_TO_METERS = 111321; constant WORLD_SIZE (line 34) | const WORLD_SIZE = 400; constant TEXTURE_REPEAT (line 35) | const TEXTURE_REPEAT = 10; constant POLLING_RATE_HZ (line 38) | const POLLING_RATE_HZ = 1; constant STALE_DATA_THRESHOLD_SECONDS (line 39) | const STALE_DATA_THRESHOLD_SECONDS = 5; function _snapElev (line 46) | function _snapElev(v) { return Math.round(v / _ELEV_GRID) * _ELEV_GRID; } function _elevKey (line 47) | function _elevKey(lat, lon) { return `${_snapElev(lat).toFixed(4)},${_sn... FILE: app/dashboard/drone-dashboard/src/version.js constant DEFAULT_VERSION (line 13) | const DEFAULT_VERSION = '5.3'; constant DEFAULT_GIT_COMMIT (line 14) | const DEFAULT_GIT_COMMIT = '9c300006'; constant DEFAULT_GIT_BRANCH (line 15) | const DEFAULT_GIT_BRANCH = 'main'; constant DEFAULT_GIT_REPO (line 16) | const DEFAULT_GIT_REPO = 'alireza787b/mavsdk_drone_show'; constant VERSION (line 18) | const VERSION = process.env.REACT_APP_VERSION || DEFAULT_VERSION; constant GIT_COMMIT (line 19) | const GIT_COMMIT = process.env.REACT_APP_GIT_COMMIT || DEFAULT_GIT_COMMIT; constant GIT_BRANCH (line 20) | const GIT_BRANCH = process.env.REACT_APP_GIT_BRANCH || DEFAULT_GIT_BRANCH; constant GIT_REPO (line 21) | const GIT_REPO = process.env.REACT_APP_GIT_REPO || DEFAULT_GIT_REPO; constant VERSION_DISPLAY (line 22) | const VERSION_DISPLAY = `v${VERSION}`; constant VERSION_META_DISPLAY (line 23) | const VERSION_META_DISPLAY = `${GIT_BRANCH} • ${GIT_REPO}`; FILE: coordinator.py class StartupState (line 58) | class StartupState(Enum): class StartupError (line 72) | class StartupError(Exception): function safe_init (line 81) | def safe_init( function validate_startup_prerequisites (line 125) | def validate_startup_prerequisites() -> bool: function schedule_missions_thread (line 189) | def schedule_missions_thread(drone_setup_instance): function schedule_missions_async (line 196) | async def schedule_missions_async(drone_setup_instance): function main_loop (line 249) | def main_loop(): function main (line 360) | def main(): FILE: drone_show.py function str2bool (line 168) | def str2bool(v): function blender_north_west_up_to_ned (line 191) | def blender_north_west_up_to_ned(x_b, y_b, z_b=0.0): function read_config (line 216) | def read_config(filename: str) -> Drone: function extract_initial_positions (line 290) | def extract_initial_positions(first_waypoint: dict) -> tuple: function adjust_waypoints (line 315) | def adjust_waypoints( function get_current_ned_position (line 366) | async def get_current_ned_position(drone: System) -> PositionNedYaw: function read_trajectory_file (line 423) | def read_trajectory_file( function perform_trajectory (line 598) | async def perform_trajectory( function controlled_landing (line 997) | async def controlled_landing(drone: System): function wait_for_landing (line 1057) | async def wait_for_landing(drone: System): function initial_setup_and_connection (line 1081) | async def initial_setup_and_connection(): function fetch_origin_with_fallback (line 1137) | async def fetch_origin_with_fallback(drone: System): function validate_drone_position (line 1294) | async def validate_drone_position(drone: System, origin: dict, config: d... function pre_flight_checks (line 1374) | async def pre_flight_checks(drone: System, require_global_position: bool): function arming_and_starting_offboard_mode (line 1465) | async def arming_and_starting_offboard_mode(drone: System, home_position... function compute_position_drift (line 1550) | async def compute_position_drift(): function perform_landing (line 1594) | async def perform_landing(drone: System): function stop_offboard_mode (line 1623) | async def stop_offboard_mode(drone: System): function disarm_drone (line 1640) | async def disarm_drone(drone: System): function get_mavsdk_server_path (line 1666) | def get_mavsdk_server_path(): function start_mavsdk_server (line 1677) | def start_mavsdk_server(udp_port: int): function check_mavsdk_server_running (line 1750) | def check_mavsdk_server_running(port): function wait_for_port (line 1771) | def wait_for_port(port, host="localhost", timeout=Params.PRE_FLIGHT_TIME... function log_mavsdk_output (line 1794) | async def log_mavsdk_output(mavsdk_server): function stop_mavsdk_server (line 1821) | def stop_mavsdk_server(mavsdk_server): function run_drone (line 1852) | async def run_drone(synchronized_start_time, custom_csv=None, auto_launc... function main (line 2182) | def main(): FILE: drone_show_src/utils.py function calculate_ned_origin (line 16) | def calculate_ned_origin(current_gps, ned_position): function read_hw_id (line 40) | def read_hw_id(): function clamp_led_value (line 46) | def clamp_led_value(value): function get_expected_position_from_trajectory (line 64) | def get_expected_position_from_trajectory(pos_id, sim_mode=False): function global_to_local (line 136) | def global_to_local(global_position, home_position): function pre_flight_checks (line 174) | async def pre_flight_checks(drone: System): FILE: functions/circle.py function generate_circle (line 6) | def generate_circle(params: CircleParameters): FILE: functions/create_active_csv.py function takeoff_and_initial_climb (line 84) | def takeoff_and_initial_climb(initial_altitude, climb_rate, step_time, w... function hold_position (line 126) | def hold_position(hold_time, step_time, writer, last_time, last_step, la... function move_to (line 161) | def move_to(target_coordinates, move_speed, step_time, writer, last_time... function move_to_maneuver_start (line 211) | def move_to_maneuver_start(shape_fcn, maneuver_time, diameter, direction... function perform_maneuver (line 266) | def perform_maneuver(shape_fcn, maneuver_time, diameter, direction, init... function repeat_maneuver (line 306) | def repeat_maneuver(num_repeats, shape_fcn, maneuver_time, diameter, dir... function create_active_csv (line 347) | def create_active_csv(shape_name,num_repeats, diameter, direction, maneu... FILE: functions/data_utils.py function safe_int (line 4) | def safe_int(value, default=0): function safe_float (line 13) | def safe_float(value, default=0.0): function safe_get (line 24) | def safe_get(dct, key, default=None): FILE: functions/drone_show_metrics.py class DroneShowMetrics (line 12) | class DroneShowMetrics: method __init__ (line 21) | def __init__(self, processed_dir: str): method load_drone_data (line 27) | def load_drone_data(self) -> bool: method calculate_comprehensive_metrics (line 47) | def calculate_comprehensive_metrics(self) -> Dict: method calculate_basic_metrics (line 67) | def calculate_basic_metrics(self) -> Dict: method calculate_safety_metrics (line 240) | def calculate_safety_metrics(self) -> Dict: method calculate_performance_metrics (line 341) | def calculate_performance_metrics(self) -> Dict: method calculate_formation_metrics (line 411) | def calculate_formation_metrics(self) -> Dict: method calculate_quality_metrics (line 458) | def calculate_quality_metrics(self) -> Dict: method _generate_recommendations (line 501) | def _generate_recommendations(self, quality_score: float, smoothness: ... method save_metrics_to_file (line 514) | def save_metrics_to_file(self, metrics: Dict, filename: str = 'compreh... FILE: functions/export_and_plot_shape.py function export_and_plot_shape (line 7) | def export_and_plot_shape(output_file): FILE: functions/file_management.py function setup_logging (line 10) | def setup_logging(): function ensure_directory_exists (line 20) | def ensure_directory_exists(directory): function clear_directory (line 26) | def clear_directory(directory): function copy_files (line 40) | def copy_files(source_dir, dest_dir): FILE: functions/file_utils.py function load_csv (line 29) | def load_csv(file_path: str) -> List[Dict[str, Any]]: function save_csv (line 71) | def save_csv( function validate_csv_schema (line 125) | def validate_csv_schema( function load_json (line 158) | def load_json(file_path: str) -> Any: function save_json (line 175) | def save_json(data: Any, file_path: str, indent: int = 2) -> bool: function load_trajectory_csv (line 192) | def load_trajectory_csv(file_path: str) -> List[Dict[str, float]]: function get_trajectory_duration (line 228) | def get_trajectory_duration(waypoints: List[Dict[str, float]]) -> float: function get_trajectory_first_position (line 245) | def get_trajectory_first_position(file_path: str) -> Optional[Dict[str, ... FILE: functions/git_manager.py function normalize_branch_name (line 33) | def normalize_branch_name(raw_branch: Optional[str]) -> str: function resolve_current_git_branch (line 49) | def resolve_current_git_branch( function filter_git_status_lines (line 98) | def filter_git_status_lines(status_lines: list[str]) -> list[str]: function parse_filtered_git_status (line 115) | def parse_filtered_git_status(status_output: Optional[str]) -> list[str]: function get_tracking_branch_sync_counts (line 122) | def get_tracking_branch_sync_counts( function describe_repo_access_mode (line 158) | def describe_repo_access_mode( function build_read_only_git_auth_health (line 175) | def build_read_only_git_auth_health( function execute_git_command (line 229) | def execute_git_command(command: list, cwd: Optional[str] = None) -> Opt... function get_local_git_report (line 255) | def get_local_git_report(repo_path: Optional[str] = None) -> Dict[str, A... function get_local_git_short_status (line 366) | def get_local_git_short_status(repo_path: Optional[str] = None) -> Dict[... function get_remote_git_status (line 402) | def get_remote_git_status( function compare_git_status (line 445) | def compare_git_status(local_status: Dict, remote_status: Dict) -> Dict[... FILE: functions/global_to_local.py function global_to_local (line 4) | def global_to_local(global_position, home_position): FILE: functions/plot_drone_paths.py function setup_matplotlib_style (line 11) | def setup_matplotlib_style(): function extract_drone_id (line 27) | def extract_drone_id(filename: str) -> str: function compute_plot_limits (line 33) | def compute_plot_limits(data_list: List[pd.DataFrame]) -> Tuple[float, f... function plot_drone_paths (line 76) | def plot_drone_paths( FILE: functions/process_drone_files.py function validate_drone_data (line 11) | def validate_drone_data(df: pd.DataFrame) -> bool: function smooth_trajectory (line 25) | def smooth_trajectory(data: np.ndarray, window_length: int = 11, poly_or... function build_output_time_vector (line 46) | def build_output_time_vector(t_end: float, dt: float) -> np.ndarray: function _build_interpolator (line 65) | def _build_interpolator(method: str, t_original: np.ndarray, values: pd.... function process_drone_files (line 83) | def process_drone_files( FILE: functions/seven_segment.py function generate_seven_segment (line 7) | def generate_seven_segment(params: SevenSegmentParameters): function generate_segment (line 47) | def generate_segment(segment_id, drones_per_segment, params): FILE: functions/shapeParameters.py class ShapeParameters (line 5) | class ShapeParameters: class CircleParameters (line 20) | class CircleParameters(ShapeParameters): class SevenSegmentParameters (line 25) | class SevenSegmentParameters(ShapeParameters): FILE: functions/shape_functions.py function rotate (line 8) | def rotate(points, heading): function closest_drones (line 32) | def closest_drones(points): function check_collision (line 50) | def check_collision(points,treshhold=0.5): FILE: functions/shape_plots.py function plot_points (line 7) | def plot_points(points, viewer_position): function plot_2d_observer (line 85) | def plot_2d_observer(points, heading, plane): FILE: functions/show_static_shape_results.py function show_static_shape_results (line 7) | def show_static_shape_results(points, params): FILE: functions/swarm_analyzer.py function _validate_follow_chains (line 14) | def _validate_follow_chains(swarm_df): function get_backend_url (line 35) | def get_backend_url(): function fetch_swarm_data (line 39) | def fetch_swarm_data(): function analyze_swarm_structure (line 71) | def analyze_swarm_structure(swarm_data=None): function get_all_followers (line 126) | def get_all_followers(leader_id, swarm_df, lineage=None): function get_drone_config (line 143) | def get_drone_config(hw_id, swarm_config): function find_ultimate_leader (line 149) | def find_ultimate_leader(hw_id, swarm_df=None): FILE: functions/swarm_global_calculator.py function calculate_follower_global_position (line 12) | def calculate_follower_global_position(leader_lat, leader_lon, leader_al... function calculate_follower_yaw (line 61) | def calculate_follower_yaw(leader_yaw, offset_config): FILE: functions/swarm_kml_generator.py function generate_kml_for_drone (line 14) | def generate_kml_for_drone(drone_id: int, trajectory_df: pd.DataFrame, o... function _add_drone_styles (line 66) | def _add_drone_styles(document: Element, drone_id: int): function _add_animated_trajectory (line 99) | def _add_animated_trajectory(document: Element, drone_id: int, trajector... function _add_static_path (line 156) | def _add_static_path(document: Element, drone_id: int, trajectory_df: pd... function generate_cluster_kml (line 201) | def generate_cluster_kml(cluster_leader_id: int, cluster_drones: list, p... function _add_cluster_styles (line 286) | def _add_cluster_styles(document: Element, cluster_drones: list, leader_... function _add_cluster_animated_trajectory (line 345) | def _add_cluster_animated_trajectory(folder: Element, drone_id: int, tra... function _add_cluster_static_path (line 401) | def _add_cluster_static_path(folder: Element, drone_id: int, trajectory_... function _add_cluster_overview (line 448) | def _add_cluster_overview(document: Element, cluster_trajectories: dict,... function _calculate_path_distance (line 498) | def _calculate_path_distance(trajectory_df: pd.DataFrame) -> float: function generate_swarm_kml (line 522) | def generate_swarm_kml(processed_dir: str, plots_dir: str) -> dict: FILE: functions/swarm_plotter.py function generate_swarm_plots (line 17) | def generate_swarm_plots(all_trajectories, swarm_structure, plots_dir): function plot_single_drone (line 59) | def plot_single_drone(hw_id, trajectory, plots_dir): function plot_cluster (line 102) | def plot_cluster(leader_id, cluster_trajectories, plots_dir): function plot_combined_swarm (line 148) | def plot_combined_swarm(all_trajectories, plots_dir): FILE: functions/swarm_session_manager.py class ProcessingSession (line 20) | class ProcessingSession: class SwarmSessionManager (line 30) | class SwarmSessionManager: method __init__ (line 33) | def __init__(self): method generate_swarm_fingerprint (line 37) | def generate_swarm_fingerprint(self) -> str: method generate_parameters_hash (line 63) | def generate_parameters_hash(self) -> str: method generate_raw_inputs_hash (line 84) | def generate_raw_inputs_hash(self) -> str: method get_current_session (line 118) | def get_current_session(self) -> Optional[ProcessingSession]: method save_session (line 132) | def save_session(self, session: ProcessingSession): method get_uploaded_leaders (line 143) | def get_uploaded_leaders(self) -> List[int]: method get_expected_top_leaders (line 166) | def get_expected_top_leaders(self) -> List[int]: method detect_changes (line 182) | def detect_changes(self) -> Dict[str, Any]: method create_processing_session (line 244) | def create_processing_session(self, processed_leaders: List[int], tota... method clear_session (line 262) | def clear_session(self): method get_processing_recommendation (line 271) | def get_processing_recommendation(self) -> Dict[str, Any]: FILE: functions/swarm_trajectory_processor.py function load_leader_trajectories (line 21) | def load_leader_trajectories(raw_dir: str, top_leaders: list) -> Dict[in... function calculate_follower_trajectory (line 60) | def calculate_follower_trajectory(leader_trajectory: pd.DataFrame, drone... function _normalize_swarm_dataframe (line 92) | def _normalize_swarm_dataframe(swarm_data: List[Dict[str, Any]]) -> pd.D... function _resolve_drone_trajectory (line 109) | def _resolve_drone_trajectory( function save_drone_trajectory (line 166) | def save_drone_trajectory(hw_id: int, trajectory: pd.DataFrame, processe... function clear_processed_data (line 177) | def clear_processed_data(force_clear: bool = False) -> Dict[str, Any]: function auto_reload_missing_leaders (line 220) | def auto_reload_missing_leaders(uploaded_leaders: List[int]) -> List[int]: function get_processing_recommendation (line 248) | def get_processing_recommendation() -> Dict[str, Any]: function process_swarm_trajectories (line 253) | def process_swarm_trajectories(force_clear: bool = False, auto_reload: b... function _execute_trajectory_processing (line 319) | def _execute_trajectory_processing( FILE: functions/swarm_trajectory_service.py class SwarmTrajectoryError (line 31) | class SwarmTrajectoryError(Exception): method __init__ (line 34) | def __init__(self, message: str, status_code: int = 400): function _processing_failure_status_code (line 40) | def _processing_failure_status_code(result: Dict) -> int: function _load_swarm_structure (line 53) | def _load_swarm_structure() -> Dict: function _collect_drone_ids (line 58) | def _collect_drone_ids(directory: str) -> List[int]: function _remove_file (line 75) | def _remove_file(path: Path, removed_files: List[str], label: str) -> bool: function _clear_current_session (line 84) | def _clear_current_session() -> None: function _clear_session_file (line 88) | def _clear_session_file(session_file: Path, cleared_items: List[str]) ->... function _build_follow_map (line 94) | def _build_follow_map(structure: Dict) -> Dict[int, int]: function _build_empty_package_stats (line 108) | def _build_empty_package_stats() -> Dict: function _round_metric (line 122) | def _round_metric(value: Optional[float]) -> Optional[float]: function _collect_processed_package_drone_stats (line 128) | def _collect_processed_package_drone_stats(processed_dir: Path, drone_id... function _aggregate_package_stats_from_drone_stats (line 173) | def _aggregate_package_stats_from_drone_stats(drone_stats: Dict[int, Dic... function validate_target_scope_for_swarm_trajectory (line 209) | def validate_target_scope_for_swarm_trajectory( function _build_cluster_status (line 280) | def _build_cluster_status( function get_swarm_leaders_payload (line 377) | def get_swarm_leaders_payload() -> Dict: function save_uploaded_trajectory (line 397) | def save_uploaded_trajectory(leader_id: int, filename: str, content: byt... function process_trajectories_payload (line 423) | def process_trajectories_payload(force_clear: bool = False, auto_reload:... function get_processing_recommendation_payload (line 434) | def get_processing_recommendation_payload() -> Dict: function get_processing_status_payload (line 442) | def get_processing_status_payload() -> Dict: function clear_processed_payload (line 535) | def clear_processed_payload() -> Dict: function clear_all_payload (line 546) | def clear_all_payload() -> Dict: function remove_leader_trajectory_payload (line 597) | def remove_leader_trajectory_payload(leader_id: int) -> Dict: function clear_leader_trajectory_payload (line 650) | def clear_leader_trajectory_payload(leader_id: int) -> Dict: function get_processed_trajectory_download (line 659) | def get_processed_trajectory_download(drone_id: int) -> Tuple[str, str]: function get_drone_kml_download (line 669) | def get_drone_kml_download(drone_id: int) -> Tuple[bytes, str]: function get_cluster_kml_download (line 691) | def get_cluster_kml_download(leader_id: int) -> Tuple[bytes, str]: function clear_individual_drone_payload (line 718) | def clear_individual_drone_payload(drone_id: int) -> Dict: function commit_trajectory_changes_payload (line 784) | def commit_trajectory_changes_payload(commit_message: str | None = None)... FILE: functions/swarm_trajectory_smoother.py function _build_local_metric_transformers (line 16) | def _build_local_metric_transformers(origin_lat, origin_lon): function smooth_trajectory_with_waypoints (line 28) | def smooth_trajectory_with_waypoints(waypoints_df, dt=None): function calculate_ned_velocities (line 113) | def calculate_ned_velocities(times, lats, lons, alts): function calculate_ned_accelerations (line 125) | def calculate_ned_accelerations(times, velocities): function create_trajectory_dataframe (line 133) | def create_trajectory_dataframe(times, lats, lons, alts, yaws, velocitie... function create_flyover_splines (line 159) | def create_flyover_splines(times, lats, lons, alts, yaws, curve_tightness): function create_flyby_splines (line 205) | def create_flyby_splines(times, lats, lons, alts, yaws, acceptance_radiu... function create_straight_line_trajectory (line 242) | def create_straight_line_trajectory(all_times, waypoint_times, lats, lon... function calculate_dynamic_acceptance_radius (line 272) | def calculate_dynamic_acceptance_radius(base_radius, current_speed, spee... FILE: functions/swarm_trajectory_utils.py function get_project_root (line 11) | def get_project_root(base_dir=None): function get_swarm_trajectory_folders (line 19) | def get_swarm_trajectory_folders(sim_mode=None, base_dir=None): FILE: functions/trajectories.py function map_shape_to_code (line 5) | def map_shape_to_code(shape_name): function sine_wave_trajectory (line 42) | def sine_wave_trajectory(step, maneuver_time, diameter, direction, initi... function infinity_shape_trajectory (line 63) | def infinity_shape_trajectory(step, maneuver_time, diameter, direction, ... function spiral_square_trajectory (line 82) | def spiral_square_trajectory(step, maneuver_time, diameter, direction, i... function star_shape_trajectory (line 101) | def star_shape_trajectory(step, maneuver_time, diameter, direction, init... function zigzag_trajectory (line 121) | def zigzag_trajectory(step, maneuver_time, diameter, direction, initial_... function heart_shape_trajectory (line 139) | def heart_shape_trajectory(step, maneuver_time, diameter, direction, ini... function stationary_trajectory (line 161) | def stationary_trajectory(step, maneuver_time, diameter, direction, init... function helix_trajectory (line 182) | def helix_trajectory(step, maneuver_time, diameter, direction, initial_a... function eight_shape_trajectory (line 203) | def eight_shape_trajectory(step, maneuver_time, diameter, direction,init... function circle_trajectory (line 222) | def circle_trajectory(step, maneuver_time, diameter, direction, initial_... function square_trajectory (line 240) | def square_trajectory(step, maneuver_time, diameter, direction, initial_... FILE: gcs-server/api_errors.py function _error_title (line 41) | def _error_title(status_code: int) -> str: function build_error_payload (line 50) | def build_error_payload( function normalize_validation_errors (line 65) | def normalize_validation_errors(exc: RequestValidationError) -> list[dic... FILE: gcs-server/api_routes/auth.py class LoginRequest (line 19) | class LoginRequest(BaseModel): class UserCreateRequest (line 24) | class UserCreateRequest(BaseModel): class UserUpdateRequest (line 32) | class UserUpdateRequest(BaseModel): class PasswordChangeRequest (line 39) | class PasswordChangeRequest(BaseModel): class TokenCreateRequest (line 44) | class TokenCreateRequest(BaseModel): function _current_auth (line 51) | def _current_auth(request: Request) -> dict[str, Any]: function _require_admin (line 55) | def _require_admin(request: Request) -> dict[str, Any]: function _cookie_options (line 62) | def _cookie_options(service) -> dict[str, Any]: function _csrf_cookie_options (line 72) | def _csrf_cookie_options(service) -> dict[str, Any]: function _status_payload (line 82) | def _status_payload(request: Request) -> dict[str, Any]: function create_auth_router (line 104) | def create_auth_router(deps: Any) -> APIRouter: FILE: gcs-server/api_routes/commands.py function _build_precision_move_policy_payload (line 30) | def _build_precision_move_policy_payload(params: Any) -> dict[str, Any]: function create_command_router (line 66) | def create_command_router(deps: Any) -> APIRouter: FILE: gcs-server/api_routes/configuration.py function _canonical_profile_bytes (line 25) | def _canonical_profile_bytes(profile: dict[str, Any]) -> bytes: function _profile_hash (line 29) | def _profile_hash(profile: dict[str, Any]) -> str: function _summarize_connectivity_profile (line 33) | def _summarize_connectivity_profile(profile: dict[str, Any]) -> dict[str... function _connectivity_profile_target (line 44) | def _connectivity_profile_target(deps: Any) -> tuple[Path, str, bool]: function _validate_connectivity_profile (line 61) | def _validate_connectivity_profile(profile: dict[str, Any]) -> None: function _read_connectivity_profile_status (line 80) | def _read_connectivity_profile_status(deps: Any, message: str | None = N... function _write_connectivity_profile (line 122) | def _write_connectivity_profile(path: Path, profile: dict[str, Any]) -> ... function _get_trajectory_start_position_payload (line 129) | def _get_trajectory_start_position_payload(deps: Any, pos_id: int) -> di... function create_configuration_router (line 144) | def create_configuration_router(deps: Any) -> APIRouter: FILE: gcs-server/api_routes/core.py function _build_health_check_response (line 27) | def _build_health_check_response(deps: Any) -> HealthCheckResponse: function _build_typed_telemetry_response (line 36) | def _build_typed_telemetry_response(deps: Any, response: Response | None... function _build_heartbeat_response (line 53) | def _build_heartbeat_response(deps: Any) -> HeartbeatResponse: function _build_network_status_response (line 123) | def _build_network_status_response(deps: Any) -> NetworkStatusResponse: function _accept_heartbeat (line 140) | def _accept_heartbeat(deps: Any, heartbeat: HeartbeatRequest, request: R... function create_core_router (line 181) | def create_core_router(deps: Any) -> APIRouter: FILE: gcs-server/api_routes/fleet_candidates.py function _translate_candidate_error (line 41) | def _translate_candidate_error(exc: Exception) -> HTTPException: function _build_list_response (line 51) | def _build_list_response(candidates: list[FleetCandidateRecord], *, runt... function _resolve_candidate_runtime_filter (line 69) | def _resolve_candidate_runtime_filter(runtime_mode: str | None) -> tuple... function _build_post_sync_plan (line 81) | def _build_post_sync_plan( function _build_mutation_response (line 136) | def _build_mutation_response( function create_fleet_candidates_router (line 162) | def create_fleet_candidates_router(deps: Any) -> APIRouter: FILE: gcs-server/api_routes/git_status.py function _safe_int (line 27) | def _safe_int(value: Any, default: int = 0) -> int: function _safe_string_list (line 34) | def _safe_string_list(value: Any) -> list[str]: function _build_git_status_response (line 40) | def _build_git_status_response(deps: Any) -> GitStatusResponse: function _resolve_actionable_online_hw_ids (line 232) | def _resolve_actionable_online_hw_ids(deps: Any) -> set[str] | None: function create_git_router (line 268) | def create_git_router(deps: Any) -> APIRouter: FILE: gcs-server/api_routes/management.py function _get_gcs_config_path (line 83) | def _get_gcs_config_path() -> Path: function _normalize_runtime_mode_value (line 87) | def _normalize_runtime_mode_value(value: str | None) -> str | None: function _persist_env_updates (line 99) | def _persist_env_updates(path: Path, updates: dict[str, Any]) -> list[str]: function _build_gcs_env_entry_response (line 103) | def _build_gcs_env_entry_response(entry: EnvRegistryEntry, values: dict[... function _build_gcs_env_response (line 132) | def _build_gcs_env_response() -> GCSRuntimeEnvResponse: function _validate_gcs_env_updates (line 162) | def _validate_gcs_env_updates(updates: dict[str, Any]) -> tuple[dict[str... function _validate_fleet_env_plan_updates (line 194) | def _validate_fleet_env_plan_updates(updates: dict[str, Any]) -> tuple[d... function _normalize_hw_id_list (line 226) | def _normalize_hw_id_list(values: list[Any]) -> list[str]: function _resolve_fleet_env_plan_targets (line 238) | def _resolve_fleet_env_plan_targets(deps: Any, requested_hw_ids: list[An... function _snapshot_git_status_env_reports (line 262) | def _snapshot_git_status_env_reports(deps: Any) -> dict[str, dict[str, A... function _normalize_hw_id (line 273) | def _normalize_hw_id(value: Any) -> str: function _drone_api_port (line 277) | def _drone_api_port(deps: Any) -> int: function _extract_node_host (line 287) | def _extract_node_host(row: dict[str, Any] | None) -> str | None: function _node_record_matches (line 309) | def _node_record_matches(row: dict[str, Any], key: Any, target: str) -> ... function _merge_node_records (line 315) | def _merge_node_records(config_row: dict[str, Any] | None, reported_row:... function _resolve_config_node_record (line 327) | def _resolve_config_node_record(deps: Any, target: str) -> dict[str, Any... function _resolve_node_record (line 338) | def _resolve_node_record(deps: Any, hw_id: str) -> dict[str, Any] | None: function _build_node_env_url (line 358) | def _build_node_env_url(deps: Any, host: str) -> str: function _extract_proxy_error (line 365) | def _extract_proxy_error(response: httpx.Response) -> str: function _proxy_node_env_request (line 377) | async def _proxy_node_env_request( function _build_fleet_env_plan_response (line 407) | def _build_fleet_env_plan_response(deps: Any, payload: FleetRuntimeEnvPl... function _gcs_env_restart_required (line 480) | def _gcs_env_restart_required(values: dict[str, str]) -> bool: function _resolve_requested_runtime_mode (line 492) | def _resolve_requested_runtime_mode(payload: GCSConfigUpdateRequest | No... function _resolve_configured_runtime_mode (line 511) | def _resolve_configured_runtime_mode(config_values: dict[str, str], fall... function _resolve_configured_git_auto_push (line 516) | def _resolve_configured_git_auto_push(config_values: dict[str, str], fal... function _log_event (line 520) | def _log_event(deps: Any, message: str, level: str = "INFO", subsystem: ... function _log_error (line 529) | def _log_error(deps: Any, message: str, subsystem: str = "runtime_admin"... function _list_sitl_instance_count (line 535) | def _list_sitl_instance_count(deps: Any) -> int | None: function _schedule_gcs_restart (line 547) | def _schedule_gcs_restart(*, target_mode: str) -> bool: function _build_gcs_config_response (line 581) | def _build_gcs_config_response(deps: Any) -> GCSConfigResponse: function _normalize_github_docs_base (line 607) | def _normalize_github_docs_base(repo_url: str, branch: str) -> str | None: function _describe_repo_access_mode (line 619) | def _describe_repo_access_mode(repo_url: str, token_file: str, ssh_key_f... function _build_git_auth_health (line 630) | def _build_git_auth_health( function _build_runtime_repo_sync_status_from_report (line 671) | def _build_runtime_repo_sync_status_from_report(report: dict[str, Any] |... function _build_runtime_repo_sync_status (line 720) | def _build_runtime_repo_sync_status(deps: Any) -> RuntimeRepoSyncStatusR... function _run_repo_command (line 728) | def _run_repo_command(args: list[str], *, timeout: int = 15) -> subproce... function _refresh_repo_sync_status (line 739) | def _refresh_repo_sync_status(deps: Any) -> RuntimeRepoSyncStatusResponse: function _list_pending_update_paths (line 756) | def _list_pending_update_paths(tracking_branch: str | None) -> list[str]: function _resolve_target_commit (line 769) | def _resolve_target_commit(tracking_branch: str | None) -> str | None: function _blocked_gcs_update_paths (line 780) | def _blocked_gcs_update_paths(paths: list[str]) -> list[str]: function _schedule_gcs_runtime_update (line 794) | def _schedule_gcs_runtime_update(*, target_mode: str, tracking_branch: s... function _build_mavlink_runtime_status (line 826) | def _build_mavlink_runtime_status(deployment_profile: Any) -> RuntimeMav... function _build_connectivity_runtime_status (line 830) | def _build_connectivity_runtime_status(deployment_profile: Any) -> Runti... function _build_runtime_status_response (line 834) | def _build_runtime_status_response(deps: Any) -> RuntimeStatusResponse: function create_management_router (line 917) | def create_management_router(deps: Any) -> APIRouter: FILE: gcs-server/api_routes/origin.py function _coerce_origin_timestamp_ms (line 24) | def _coerce_origin_timestamp_ms(origin: dict[str, Any]) -> int | None: function _validate_origin (line 35) | def _validate_origin(origin: dict[str, Any] | None, *, detail: str, stat... function _build_origin_response (line 41) | def _build_origin_response(origin: dict[str, Any]) -> OriginResponse: function _render_launch_positions_csv (line 51) | def _render_launch_positions_csv(payload: dict[str, Any]) -> Response: function _render_launch_positions_kml (line 79) | def _render_launch_positions_kml(payload: dict[str, Any]) -> Response: function create_origin_router (line 131) | def create_origin_router(deps: Any) -> APIRouter: FILE: gcs-server/api_routes/px4_params.py function create_px4_params_router (line 50) | def create_px4_params_router(deps: Any) -> APIRouter: FILE: gcs-server/api_routes/show_management.py function create_show_management_router (line 30) | def create_show_management_router(deps: Any) -> APIRouter: FILE: gcs-server/api_routes/sitl_control.py function _get_service (line 40) | def _get_service(deps: Any) -> SitlControlService: function create_sitl_control_router (line 47) | def create_sitl_control_router(deps: Any) -> APIRouter: FILE: gcs-server/api_routes/static_assets.py function _resolve_static_plot_path (line 10) | def _resolve_static_plot_path(plots_dir: str, filename: str) -> Path: function create_static_assets_router (line 22) | def create_static_assets_router(deps: Any) -> APIRouter: FILE: gcs-server/api_routes/swarm.py function _normalize_swarm_hw_id (line 18) | def _normalize_swarm_hw_id(value: Any) -> Optional[int]: function _extract_swarm_assignments (line 26) | def _extract_swarm_assignments(payload: Any): function _build_swarm_config_resource (line 34) | def _build_swarm_config_resource(assignments: list[dict[str, Any]]) -> d... function _parse_swarm_config_payload (line 41) | def _parse_swarm_config_payload(payload: Any) -> list[dict[str, Any]]: function _would_create_swarm_cycle (line 53) | def _would_create_swarm_cycle(assignments: list[dict[str, Any]], hw_id: ... function _validate_swarm_cycle_constraints (line 82) | def _validate_swarm_cycle_constraints(payload: Any) -> None: function _apply_swarm_assignment_patch (line 112) | def _apply_swarm_assignment_patch(deps: Any, hw_id: int, data: dict[str,... function create_swarm_router (line 175) | def create_swarm_router(deps: Any) -> APIRouter: FILE: gcs-server/api_routes/swarm_trajectory.py function _swarm_error_response (line 29) | def _swarm_error_response(request: Request, exc: Exception) -> JSONRespo... function _swarm_problem_response (line 40) | def _swarm_problem_response(request: Request, *, status_code: int, detai... function _log_swarm_internal_error (line 51) | def _log_swarm_internal_error(deps: Any, message: str, exc: Exception) -... function _git_failure_status_code (line 55) | def _git_failure_status_code(message: str | None) -> int: function _build_swarm_trajectory_policy_payload (line 64) | def _build_swarm_trajectory_policy_payload(params: Any) -> dict[str, Any]: function create_swarm_trajectory_router (line 97) | def create_swarm_trajectory_router(deps: Any) -> APIRouter: FILE: gcs-server/app_fastapi.py function _custom_show_csv_path (line 159) | def _custom_show_csv_path() -> str: function _custom_show_preview_path (line 163) | def _custom_show_preview_path() -> str: function _load_saved_metrics_if_current (line 171) | def _load_saved_metrics_if_current() -> Optional[Dict[str, Any]]: function _refresh_saved_show_metrics (line 179) | def _refresh_saved_show_metrics(show_filename: Optional[str] = None) -> ... class BackgroundServices (line 192) | class BackgroundServices: method __init__ (line 195) | def __init__(self): method _normalize_drones (line 202) | def _normalize_drones(self, drones: List[Dict]) -> List[Dict[str, Any]]: method apply_drone_targets (line 228) | def apply_drone_targets(self, drones: List[Dict]) -> dict[str, int]: method start (line 269) | async def start(self, drones: List[Dict]): method reconcile (line 303) | async def reconcile(self, drones: List[Dict]): method stop (line 320) | async def stop(self): method _poll_telemetry (line 351) | async def _poll_telemetry(self): method _poll_git_status (line 408) | async def _poll_git_status(self): method _poll_command_timeouts (line 448) | async def _poll_command_timeouts(self): function _normalize_heartbeat_first_seen (line 472) | def _normalize_heartbeat_first_seen(value: Any) -> Optional[int]: function _normalize_update_time_ms (line 491) | def _normalize_update_time_ms(value: Any) -> Optional[int]: function observe_fleet_candidate_heartbeat (line 509) | def observe_fleet_candidate_heartbeat(heartbeat: dict[str, Any]): function list_fleet_candidates (line 514) | def list_fleet_candidates(*, include_inactive: bool = False, runtime_mod... function get_fleet_candidate (line 523) | def get_fleet_candidate(candidate_id: str): function announce_fleet_candidate (line 528) | def announce_fleet_candidate(payload: FleetCandidateAnnounceRequest): function accept_fleet_candidate (line 533) | def accept_fleet_candidate(candidate_id: str, payload: FleetCandidateAcc... function replace_fleet_candidate (line 544) | def replace_fleet_candidate(candidate_id: str, payload: FleetCandidateRe... function recover_fleet_candidate (line 557) | def recover_fleet_candidate(candidate_id: str, payload: FleetCandidateRe... function set_fleet_candidate_state (line 568) | def set_fleet_candidate_state( function reconcile_background_services (line 583) | async def reconcile_background_services() -> list[dict[str, Any]]: function _local_mavlink_stale_threshold_ms (line 590) | def _local_mavlink_stale_threshold_ms() -> int: function _build_stale_background_blocker (line 601) | def _build_stale_background_blocker(message: str, timestamp_ms: int) -> ... function _has_valid_global_position (line 610) | def _has_valid_global_position(record: Dict[str, Any]) -> bool: function _position_unavailable_reason (line 623) | def _position_unavailable_reason(record: Dict[str, Any]) -> Optional[str]: function _ensure_position_quality_fields (line 635) | def _ensure_position_quality_fields(record: Dict[str, Any], now_ms: int)... function _build_background_unavailable_record (line 663) | def _build_background_unavailable_record( function _build_background_telemetry_record (line 743) | def _build_background_telemetry_record(hw_id: Any, ip: str, data: Dict[s... function lifespan (line 798) | async def lifespan(app: FastAPI): function log_requests (line 905) | async def log_requests(request: Request, call_next): function _select_sync_target_drones (line 931) | def _select_sync_target_drones( function _is_git_sync_verified (line 964) | def _is_git_sync_verified( function _verify_sync_targets (line 988) | async def _verify_sync_targets( function request_validation_error_handler (line 1040) | async def request_validation_error_handler(request: Request, exc: Reques... function http_error_handler (line 1053) | async def http_error_handler(request: Request, exc: StarletteHTTPExcepti... function internal_error_handler (line 1068) | async def internal_error_handler(request: Request, exc: Exception): FILE: gcs-server/auth_runtime.py function _auth_error (line 45) | def _auth_error(status_code: int, error: str, message: str, recovery_hin... function _extract_bearer_token (line 56) | def _extract_bearer_token(value: str | None) -> str | None: function _is_public_path (line 66) | def _is_public_path(path: str) -> bool: function _is_admin_path (line 74) | def _is_admin_path(path: str) -> bool: function _is_machine_endpoint (line 78) | def _is_machine_endpoint(method: str, path: str) -> bool: function _role_allows_request (line 82) | def _role_allows_request(role: str, method: str, path: str) -> tuple[boo... class MDSAuthMiddleware (line 95) | class MDSAuthMiddleware(BaseHTTPMiddleware): method dispatch (line 98) | async def dispatch(self, request: Request, call_next): # type: ignore... function authorize_websocket (line 154) | async def authorize_websocket(websocket: WebSocket) -> dict[str, Any] | ... FILE: gcs-server/command.py function normalize_drone_id (line 81) | def normalize_drone_id(drone_id: Any) -> str: function normalize_drone_ids (line 86) | def normalize_drone_ids(drone_ids: Iterable[Any]) -> List[str]: function _partition_recently_online_drones (line 91) | def _partition_recently_online_drones( function resolve_mission_type (line 135) | def resolve_mission_type(mission_type: Any) -> Mission | None: function normalize_mission_type (line 173) | def normalize_mission_type(mission_type: Any) -> Tuple[str, str, Mission... function is_critical_mission (line 184) | def is_critical_mission(mission: Mission | None) -> bool: function mission_requires_launch_armability_probe (line 189) | def mission_requires_launch_armability_probe(mission: Mission | None) ->... function mission_requires_strict_sync_dispatch (line 194) | def mission_requires_strict_sync_dispatch(mission: Mission | None) -> bool: function _extract_trigger_time_seconds (line 199) | def _extract_trigger_time_seconds(command_payload: Dict[str, Any]) -> fl... function _get_sync_dispatch_deadline (line 212) | def _get_sync_dispatch_deadline(mission: Mission | None, command_payload... function _log_command_event (line 225) | def _log_command_event(message: str, level: str = "INFO", drone_id: Any ... function _log_drone_command_result (line 232) | def _log_drone_command_result(drone_id: Any, command_type: Any, success:... function _summarize_ack_error (line 242) | def _summarize_ack_error(payload: Dict[str, Any]) -> str: function parse_command_ack_response (line 251) | def parse_command_ack_response(response: requests.Response) -> Tuple[boo... function send_command_to_drone (line 288) | def send_command_to_drone(drone: Dict[str, str], command_data: Dict[str,... function probe_live_armability_for_drone (line 414) | def probe_live_armability_for_drone( function probe_live_armability_for_drones (line 462) | def probe_live_armability_for_drones( function send_commands_to_all (line 509) | def send_commands_to_all(drones: List[Dict[str, str]], command_data: Dic... function send_commands_to_selected (line 687) | def send_commands_to_selected(drones: List[Dict[str, str]], command_data... function validate_command_data (line 735) | def validate_command_data(command_data: Dict[str, Any]) -> Tuple[bool, s... function execute_drone_command (line 769) | def execute_drone_command(drones: List[Dict[str, str]], command_data: Di... FILE: gcs-server/command_submission.py function _get_telemetry_record_for_hw_id (line 24) | def _get_telemetry_record_for_hw_id( function estimate_max_target_relative_altitude_m (line 47) | def estimate_max_target_relative_altitude_m( function build_results_summary (line 120) | def build_results_summary(results: dict[str, Any]) -> dict[str, int]: function derive_submission_status (line 129) | def derive_submission_status(results: dict[str, Any]) -> str: function _build_results_summary_from_status (line 144) | def _build_results_summary_from_status(command_status: Dict[str, Any]) -... function _derive_submission_status_from_status (line 154) | def _derive_submission_status_from_status(command_status: Dict[str, Any]... function build_submit_replay_response (line 161) | def build_submit_replay_response(command_status: Dict[str, Any]) -> Subm... function build_submit_request_fingerprint (line 203) | def build_submit_request_fingerprint(command: SubmitCommandRequest) -> str: function record_command_acknowledgements (line 216) | async def record_command_acknowledgements(tracker: Any, command_id: str,... function submit_tracked_command (line 252) | async def submit_tracked_command(deps: Any, command: SubmitCommandReques... FILE: gcs-server/command_timeout_policy.py function _coerce_mission (line 17) | def _coerce_mission(value: Any) -> Mission | None: function _safe_int (line 41) | def _safe_int(value: Any, default: int) -> int: function _target_drone_file_names (line 48) | def _target_drone_file_names(target_drone_ids: Optional[Iterable[Any]]) ... function _extract_future_trigger_delay_ms (line 62) | def _extract_future_trigger_delay_ms(command_data: Optional[Dict[str, An... function _read_show_duration_ms (line 83) | def _read_show_duration_ms( function _read_custom_show_duration_ms (line 120) | def _read_custom_show_duration_ms(shapes_dir: Path) -> Optional[int]: function _read_swarm_processed_duration_s (line 142) | def _read_swarm_processed_duration_s( function estimate_command_tracking_timeout_ms (line 169) | def estimate_command_tracking_timeout_ms( FILE: gcs-server/command_tracker.py class CommandIdempotencyConflictError (line 72) | class CommandIdempotencyConflictError(ValueError): class CommandCreationResult (line 77) | class CommandCreationResult: class DroneAck (line 85) | class DroneAck: class DroneExecution (line 97) | class DroneExecution: class TrackedCommand (line 109) | class TrackedCommand: class CommandTracker (line 154) | class CommandTracker: method __init__ (line 162) | def __init__( method _all_execution_failures_superseded (line 198) | def _all_execution_failures_superseded(command: TrackedCommand) -> bool: method _is_terminal (line 213) | def _is_terminal(command: TrackedCommand) -> bool: method _can_recover_from_offline_terminal (line 218) | def _can_recover_from_offline_terminal(command: TrackedCommand, hw_id:... method _reopen_offline_terminal_locked (line 241) | def _reopen_offline_terminal_locked(self, command: TrackedCommand, tim... method _get_mission_name (line 253) | def _get_mission_name(self, mission_type: int) -> str: method build_request_fingerprint (line 263) | def build_request_fingerprint(payload: Dict[str, Any]) -> str: method _validate_replay_fingerprint (line 284) | def _validate_replay_fingerprint( method _evict_oldest_command_locked (line 299) | def _evict_oldest_command_locked(self) -> None: method lookup_command_by_idempotency_key (line 307) | async def lookup_command_by_idempotency_key( method create_or_replay_command (line 334) | async def create_or_replay_command( method create_command (line 397) | async def create_command( method mark_submitted (line 424) | async def mark_submitted(self, command_id: str) -> bool: method record_ack (line 441) | async def record_ack( method _mark_execution_started_locked (line 577) | def _mark_execution_started_locked( method _record_late_ack_locked (line 602) | def _record_late_ack_locked( method _record_late_execution_start_locked (line 629) | def _record_late_execution_start_locked( method _record_late_execution_locked (line 648) | def _record_late_execution_locked( method _promote_execution_evidence_to_accepted_locked (line 679) | def _promote_execution_evidence_to_accepted_locked( method record_execution_start (line 727) | async def record_execution_start( method record_execution (line 775) | async def record_execution( method cancel_command (line 925) | async def cancel_command(self, command_id: str, reason: str = "User ca... method check_timeouts (line 946) | async def check_timeouts(self) -> List[str]: method get_status (line 994) | async def get_status(self, command_id: str) -> Optional[Dict[str, Any]]: method get_recent (line 1008) | async def get_recent( method get_statistics (line 1040) | async def get_statistics(self) -> Dict[str, Any]: method get_active_commands (line 1062) | async def get_active_commands(self) -> List[Dict[str, Any]]: method _build_result_summary (line 1072) | def _build_result_summary(self, command: TrackedCommand) -> str: method _extract_trigger_time_ms (line 1086) | def _extract_trigger_time_ms(params: Optional[Dict[str, Any]]) -> Opti... method _build_progress_summary (line 1108) | def _build_progress_summary(self, command: TrackedCommand) -> Dict[str... method _command_to_dict (line 1226) | def _command_to_dict(self, command: TrackedCommand) -> Dict[str, Any]: function get_command_tracker (line 1349) | def get_command_tracker() -> CommandTracker: function init_command_tracker (line 1357) | def init_command_tracker(mission_enum: Optional[type] = None, **kwargs) ... FILE: gcs-server/config.py function load_config (line 31) | def load_config(file_path=None): function save_config (line 42) | def save_config(config, file_path=None): function load_swarm (line 49) | def load_swarm(file_path=None): function save_swarm (line 60) | def save_swarm(swarm, file_path=None): function get_gcs_git_report (line 67) | def get_gcs_git_report(): function get_drone_git_status (line 76) | def get_drone_git_status(drone_uri): function validate_and_process_config (line 85) | def validate_and_process_config(config_data, sim_mode=None): function get_all_drone_positions (line 234) | def get_all_drone_positions(sim_mode=None): FILE: gcs-server/fleet_candidates.py function get_fleet_candidate_registry (line 37) | def get_fleet_candidate_registry() -> "FleetCandidateRegistry": class FleetCandidateError (line 46) | class FleetCandidateError(RuntimeError): class FleetCandidateNotFoundError (line 50) | class FleetCandidateNotFoundError(FleetCandidateError): class FleetCandidateConflictError (line 54) | class FleetCandidateConflictError(FleetCandidateError): class FleetCandidateValidationError (line 58) | class FleetCandidateValidationError(FleetCandidateError): function _now_ms (line 62) | def _now_ms() -> int: function _normalize_string (line 66) | def _normalize_string(value: Any) -> Optional[str]: function _normalize_ip (line 75) | def _normalize_ip(value: Any) -> Optional[str]: function _normalize_runtime_mode (line 84) | def _normalize_runtime_mode(value: Any) -> Optional[str]: function _normalize_timestamp_ms (line 94) | def _normalize_timestamp_ms(value: Any, fallback_ms: Optional[int] = Non... function _normalize_hw_id_int (line 106) | def _normalize_hw_id_int(value: Any) -> int: function _active_candidate_sort_key (line 116) | def _active_candidate_sort_key(candidate: FleetCandidateRecord) -> tuple... class FleetCandidateRegistry (line 137) | class FleetCandidateRegistry: method __init__ (line 140) | def __init__(self, state_path: str | None = None, events_path: str | N... method _load_state (line 159) | def _load_state(self) -> None: method _persist_state_locked (line 177) | def _persist_state_locked(self) -> None: method _append_event_locked (line 188) | def _append_event_locked(self, event_type: str, candidate_id: str, pay... method _candidate_key_seed (line 199) | def _candidate_key_seed(self, *, runtime_mode: Optional[str], node_uui... method _candidate_runtime_matches (line 205) | def _candidate_runtime_matches(self, raw: dict[str, Any], runtime_mode... method _find_candidate_key_locked (line 210) | def _find_candidate_key_locked( method _build_candidate_locked (line 227) | def _build_candidate_locked( method _configured_maps (line 246) | def _configured_maps(self, config_entries: list[dict[str, Any]]) -> tu... method _refresh_candidate_state_locked (line 258) | def _refresh_candidate_state_locked( method list_candidates (line 328) | def list_candidates( method get_candidate (line 351) | def get_candidate(self, candidate_id: str, *, load_config) -> FleetCan... method observe_heartbeat (line 362) | def observe_heartbeat(self, heartbeat: dict[str, Any], *, load_config)... method announce_candidate (line 428) | def announce_candidate(self, request: FleetCandidateAnnounceRequest, *... method _require_candidate_locked (line 498) | def _require_candidate_locked(self, candidate_id: str) -> dict[str, Any]: method accept_candidate (line 505) | def accept_candidate( method replace_candidate (line 572) | def replace_candidate( method recover_candidate (line 668) | def recover_candidate( method update_candidate_state (line 744) | def update_candidate_state( FILE: gcs-server/gcs_config_updater.py function validate_ip_address (line 16) | def validate_ip_address(ip_string): function update_gcs_ip_in_params (line 43) | def update_gcs_ip_in_params(new_ip): function get_current_gcs_ip (line 153) | def get_current_gcs_ip(): FILE: gcs-server/get_elevation.py function get_distance (line 11) | def get_distance(lat1, lon1, lat2, lon2): function fetch_elevation_data (line 21) | def fetch_elevation_data(lat, lon): function get_elevation (line 31) | def get_elevation(lat, lon): FILE: gcs-server/git_status.py function commits_match (line 23) | def commits_match(left_commit: str, right_commit: str) -> bool: function check_git_sync_status (line 35) | def check_git_sync_status(): FILE: gcs-server/heartbeat.py function _normalize_runtime_mode (line 21) | def _normalize_runtime_mode(value): function _resolve_current_runtime_mode (line 33) | def _resolve_current_runtime_mode(): function _log_missing_runtime_mode_once (line 40) | def _log_missing_runtime_mode_once(hw_id): function _log_runtime_mode_mismatch_once (line 52) | def _log_runtime_mode_mismatch_once(hw_id, declared_mode, current_mode): function handle_heartbeat_post (line 67) | def handle_heartbeat_post(pos_id, hw_id, detected_pos_id=None, ip=None, ... function get_all_heartbeats (line 167) | def get_all_heartbeats(): function get_network_info_from_heartbeats (line 177) | def get_network_info_from_heartbeats(): FILE: gcs-server/link_presence.py function _normalize_hw_id (line 11) | def _normalize_hw_id(value: Any) -> str: function get_recent_link_presence (line 15) | def get_recent_link_presence( FILE: gcs-server/log_background.py class BackgroundLogPuller (line 25) | class BackgroundLogPuller: method __init__ (line 28) | def __init__(self, log_dir: str | None = None): method set_enabled (line 34) | def set_enabled(self, enabled: bool) -> None: method start (line 42) | async def start(self) -> None: method stop (line 47) | async def stop(self) -> None: method _run_loop (line 58) | async def _run_loop(self) -> None: method _pull_once (line 69) | async def _pull_once(self) -> None: FILE: gcs-server/log_proxy.py function _drone_api_port (line 30) | def _drone_api_port() -> int: class DroneProxyRequestError (line 43) | class DroneProxyRequestError(Exception): class DroneProxyUnavailableError (line 47) | class DroneProxyUnavailableError(DroneProxyRequestError): class DroneProxyResponseError (line 51) | class DroneProxyResponseError(DroneProxyRequestError): method __init__ (line 54) | def __init__(self, status_code: int, detail: str) -> None: function resolve_drone_ip (line 60) | def resolve_drone_ip(drone_id: int) -> Optional[str]: function _build_drone_url (line 73) | def _build_drone_url(drone_ip: str, path: str) -> str: function _extract_error_detail (line 77) | def _extract_error_detail(response: httpx.Response) -> str: function _request_json (line 90) | async def _request_json( function fetch_drone_sessions (line 115) | async def fetch_drone_sessions(drone_ip: str) -> Optional[dict]: function fetch_drone_session_content (line 127) | async def fetch_drone_session_content( function fetch_drone_ulog_policy (line 161) | async def fetch_drone_ulog_policy(drone_ip: str) -> dict: function fetch_drone_ulog_files (line 165) | async def fetch_drone_ulog_files(drone_ip: str) -> dict: function create_drone_ulog_download_job (line 169) | async def create_drone_ulog_download_job( function fetch_drone_ulog_download_job (line 187) | async def fetch_drone_ulog_download_job(drone_ip: str, job_id: str) -> d... function delete_drone_ulog_download_job (line 196) | async def delete_drone_ulog_download_job(drone_ip: str, job_id: str) -> ... function erase_all_drone_ulogs (line 205) | async def erase_all_drone_ulogs(drone_ip: str) -> dict: function open_drone_ulog_download_stream (line 209) | async def open_drone_ulog_download_stream(drone_ip: str, job_id: str) ->... function stream_drone_logs (line 233) | def stream_drone_logs( FILE: gcs-server/log_routes.py function create_log_router (line 46) | def create_log_router( FILE: gcs-server/origin.py function _get_telemetry_record_for_hw_id (line 18) | def _get_telemetry_record_for_hw_id(telemetry_snapshot, hw_id): function _normalize_origin_payload (line 47) | def _normalize_origin_payload(data: Dict[str, Any], *, default_alt_sourc... function _load_json_origin_file (line 66) | def _load_json_origin_file(path: str, *, default_alt_source: str) -> Opt... function load_sitl_default_origin (line 77) | def load_sitl_default_origin() -> Optional[Dict[str, Any]]: function save_origin (line 94) | def save_origin(data): function load_origin (line 128) | def load_origin(): function calculate_position_deviations (line 173) | def calculate_position_deviations(telemetry_data_all_drones, drones_conf... function rotate_north_east (line 269) | def rotate_north_east(north: float, east: float, heading_deg: float) -> ... function build_position_deviation_report (line 277) | def build_position_deviation_report( function build_desired_launch_positions_report (line 469) | def build_desired_launch_positions_report( function compute_origin_from_drone (line 533) | def compute_origin_from_drone(current_lat, current_lon, intended_north, ... FILE: gcs-server/presence.py class PresenceThresholds (line 17) | class PresenceThresholds: function _safe_float (line 24) | def _safe_float(value: Any, default: float) -> float: function resolve_presence_thresholds (line 32) | def resolve_presence_thresholds(params: Any | None = None) -> PresenceTh... function _normalize_timestamp_ms (line 69) | def _normalize_timestamp_ms(value: Any) -> int | None: function _age_sec (line 83) | def _age_sec(timestamp_ms: int | None, now_ms: int) -> float | None: function _pick_newest_source (line 89) | def _pick_newest_source( function build_presence_snapshot (line 104) | def build_presence_snapshot( FILE: gcs-server/px4_param_store.py function build_px4_param_policy_payload (line 49) | def build_px4_param_policy_payload(params: Any) -> Px4ParamPolicyResponse: function _resolve_profile_dir (line 53) | def _resolve_profile_dir(params: Any) -> Path: function _load_profile_file (line 61) | def _load_profile_file(profile_path: Path) -> Px4ParamProfileResponse: function list_repo_profiles (line 80) | def list_repo_profiles(params: Any) -> Px4ParamProfileListResponse: function get_repo_profile (line 114) | def get_repo_profile(params: Any, profile_id: str) -> Px4ParamProfileRes... function save_snapshot (line 125) | def save_snapshot(snapshot: Px4ParamSnapshotResponse) -> None: function save_patch_job (line 130) | def save_patch_job(job: Px4ParamPatchJobResponse) -> None: function get_snapshot (line 135) | def get_snapshot(snapshot_id: str) -> Px4ParamSnapshotResponse | None: function get_patch_job (line 140) | def get_patch_job(job_id: str) -> Px4ParamPatchJobResponse | None: function build_snapshot_rows_response (line 145) | def build_snapshot_rows_response(snapshot_id: str) -> Px4ParamSnapshotRo... function fetch_snapshots_for_targets (line 157) | def fetch_snapshots_for_targets(deps: Any, request: Px4ParamFleetSnapsho... function _resolve_target_drone (line 200) | def _resolve_target_drone(deps: Any, hw_id: str) -> dict[str, Any] | None: function _build_drone_api_url (line 206) | def _build_drone_api_url(ip: str, port: int, route: str) -> str: function _request_json (line 210) | def _request_json(method: str, url: str, *, timeout_sec: float, payload:... function run_patch_job_for_targets (line 216) | def run_patch_job_for_targets(deps: Any, request: Px4ParamPatchJobReques... function import_qgc_parameter_file (line 318) | def import_qgc_parameter_file(request: Px4ParamImportRequest) -> Px4Para... function import_mds_patch (line 385) | def import_mds_patch(request: Px4ParamImportRequest) -> Px4ParamImportRe... function build_param_diff_response (line 408) | def build_param_diff_response(request: Px4ParamDiffRequest) -> Px4ParamD... FILE: gcs-server/request_logging.py function is_routine_success_path (line 21) | def is_routine_success_path(path: str) -> bool: function get_request_log_level (line 38) | def get_request_log_level(path: str, status_code: int) -> str: FILE: gcs-server/sar/coverage_planner.py function _require_shapely (line 40) | def _require_shapely(): class BaseCoveragePlanner (line 50) | class BaseCoveragePlanner: method plan (line 53) | def plan( class BoustrophedonPlanner (line 73) | class BoustrophedonPlanner(BaseCoveragePlanner): method plan (line 89) | def plan( method _compute_sweep_angle (line 180) | def _compute_sweep_angle(self, enu_points: List[Tuple[float, float]]) ... method _generate_sweep_lines (line 195) | def _generate_sweep_lines( method _build_boustrophedon (line 243) | def _build_boustrophedon(self, lines: List[LineString]) -> List[LineSt... method _partition_lines (line 253) | def _partition_lines(self, lines: List[LineString], n: int) -> List[Li... method _assign_sectors (line 289) | def _assign_sectors( method _build_waypoints (line 326) | def _build_waypoints( method _compute_total_distance (line 373) | def _compute_total_distance(self, waypoints: List[CoverageWaypoint]) -... method _haversine_m (line 384) | def _haversine_m(lat1: float, lng1: float, lat2: float, lng2: float) -... FILE: gcs-server/sar/mission_manager.py function get_mission_manager (line 20) | def get_mission_manager() -> "MissionManager": class MissionManager (line 27) | class MissionManager: method __init__ (line 30) | def __init__(self): method create_mission (line 33) | def create_mission(self, mission_id, plans, config): method get_status (line 36) | def get_status(self, mission_id: str): method get_plans (line 39) | def get_plans(self, mission_id: str): method get_config (line 42) | def get_config(self, mission_id: str): method start_mission (line 45) | def start_mission(self, mission_id: str): method update_drone_progress (line 48) | def update_drone_progress( method pause_mission (line 66) | def pause_mission(self, mission_id: str, hw_ids: Optional[List[str]] =... method resume_mission (line 69) | def resume_mission(self, mission_id: str, hw_ids: Optional[List[str]] ... method abort_mission (line 72) | def abort_mission( FILE: gcs-server/sar/routes.py function create_sar_router (line 29) | def create_sar_router(deps: Any) -> APIRouter: FILE: gcs-server/sar/schemas.py class ReturnBehavior (line 12) | class ReturnBehavior(str, Enum): class QuickScoutMissionTemplate (line 18) | class QuickScoutMissionTemplate(str, Enum): class SurveyState (line 24) | class SurveyState(str, Enum): class QuickScoutMissionPhase (line 33) | class QuickScoutMissionPhase(str, Enum): class QuickScoutControlEffect (line 44) | class QuickScoutControlEffect(str, Enum): class QuickScoutControlAvailability (line 50) | class QuickScoutControlAvailability(BaseModel): class FindingType (line 61) | class FindingType(str, Enum): class FindingPriority (line 72) | class FindingPriority(str, Enum): class FindingStatus (line 79) | class FindingStatus(str, Enum): class FindingConfidence (line 87) | class FindingConfidence(str, Enum): class FindingSource (line 93) | class FindingSource(str, Enum): class SearchAreaPoint (line 102) | class SearchAreaPoint(BaseModel): class SearchArea (line 108) | class SearchArea(BaseModel): method validate_shape_requirements (line 119) | def validate_shape_requirements(self): class SurveyConfig (line 142) | class SurveyConfig(BaseModel): class QuickScoutMissionRequest (line 160) | class QuickScoutMissionRequest(BaseModel): class CoverageWaypoint (line 179) | class CoverageWaypoint(BaseModel): class DroneCoveragePlan (line 193) | class DroneCoveragePlan(BaseModel): class CoveragePlanResponse (line 205) | class CoveragePlanResponse(BaseModel): class QuickScoutFinding (line 216) | class QuickScoutFinding(BaseModel): class QuickScoutFindingCreate (line 238) | class QuickScoutFindingCreate(BaseModel): class QuickScoutFindingUpdate (line 258) | class QuickScoutFindingUpdate(BaseModel): class DroneSurveyState (line 276) | class DroneSurveyState(BaseModel): class MissionStatus (line 290) | class MissionStatus(BaseModel): class QuickScoutMissionSummary (line 321) | class QuickScoutMissionSummary(BaseModel): class QuickScoutMissionCatalogResponse (line 346) | class QuickScoutMissionCatalogResponse(BaseModel): class QuickScoutLaunchSubmission (line 353) | class QuickScoutLaunchSubmission(BaseModel): class QuickScoutMissionLaunchResponse (line 366) | class QuickScoutMissionLaunchResponse(BaseModel): class QuickScoutMissionControlResponse (line 384) | class QuickScoutMissionControlResponse(BaseModel): class QuickScoutOperationRecord (line 404) | class QuickScoutOperationRecord(BaseModel): class QuickScoutMissionWorkspaceResponse (line 445) | class QuickScoutMissionWorkspaceResponse(BaseModel): class QuickScoutMissionHandoffFinding (line 452) | class QuickScoutMissionHandoffFinding(BaseModel): class QuickScoutMissionHandoff (line 468) | class QuickScoutMissionHandoff(BaseModel): class DroneProgressReport (line 501) | class DroneProgressReport(BaseModel): FILE: gcs-server/sar/service.py function get_quickscout_service (line 59) | def get_quickscout_service() -> "QuickScoutService": class QuickScoutService (line 66) | class QuickScoutService: method __init__ (line 69) | def __init__(self, store=None, planner_factory=BoustrophedonPlanner): method _resolve_pos_ids_to_hw_ids (line 73) | def _resolve_pos_ids_to_hw_ids( method _build_operator_label (line 95) | def _build_operator_label(action: str, mission_id: str, hw_id: Optiona... method _accepted_hw_ids_from_response (line 100) | def _accepted_hw_ids_from_response( method _summarize_command_response (line 118) | def _summarize_command_response(response: Optional[SubmitCommandRespon... method _resolve_abort_mission_type (line 137) | def _resolve_abort_mission_type(return_behavior: ReturnBehavior) -> Mi... method _submit_control_command (line 144) | async def _submit_control_command( method _get_drone_gps_positions (line 162) | def _get_drone_gps_positions(self, deps: Any, pos_ids: Optional[List[i... method _build_ready_drone_states (line 178) | def _build_ready_drone_states(operation: QuickScoutOperationRecord) ->... method _calculate_total_coverage (line 193) | def _calculate_total_coverage(drone_states: Dict[str, DroneSurveyState... method _return_behavior_label (line 199) | def _return_behavior_label(return_behavior: ReturnBehavior) -> str: method _derive_operation_phase (line 206) | def _derive_operation_phase(self, operation: QuickScoutOperationRecord... method _build_control_availability (line 229) | def _build_control_availability( method _build_status_summary (line 278) | def _build_status_summary( method _build_last_known_point_polygon (line 333) | def _build_last_known_point_polygon( method _resolve_search_area_for_planning (line 351) | def _resolve_search_area_for_planning( method _build_corridor_search_polygon (line 394) | def _build_corridor_search_polygon( method plan_mission (line 448) | async def plan_mission(self, deps: Any, request: QuickScoutMissionRequ... method _apply_camera_interval (line 524) | def _apply_camera_interval(waypoints, camera_interval_s: float): method get_operation (line 532) | def get_operation(self, mission_id: str) -> Optional[QuickScoutOperati... method get_plans (line 535) | def get_plans(self, mission_id: str): method get_config (line 539) | def get_config(self, mission_id: str): method get_status (line 543) | def get_status(self, mission_id: str) -> Optional[MissionStatus]: method list_operation_summaries (line 568) | def list_operation_summaries( method get_workspace (line 606) | def get_workspace(self, mission_id: str) -> Optional[QuickScoutMission... method _handoff_sort_key (line 614) | def _handoff_sort_key(finding: QuickScoutFinding) -> Tuple[int, int, f... method _build_handoff_brief (line 630) | def _build_handoff_brief( method get_mission_handoff (line 676) | def get_mission_handoff(self, mission_id: str) -> Optional[QuickScoutM... method start_mission (line 754) | def start_mission( method update_drone_progress (line 789) | def update_drone_progress( method pause_mission (line 844) | def pause_mission(self, mission_id: str, hw_ids: Optional[List[str]] =... method resume_mission (line 865) | def resume_mission(self, mission_id: str, hw_ids: Optional[List[str]] ... method abort_mission (line 881) | def abort_mission( method _persist_last_command_summary (line 914) | def _persist_last_command_summary( method _build_launch_summary_payload (line 930) | def _build_launch_summary_payload( method _build_control_summary_payload (line 958) | def _build_control_summary_payload( method launch_mission (line 978) | async def launch_mission(self, deps: Any, mission_id: str) -> QuickSco... method pause_and_command (line 1085) | async def pause_and_command( method resume_and_record (line 1143) | def resume_and_record( method abort_and_command (line 1177) | async def abort_and_command( method report_progress (line 1238) | def report_progress(self, mission_id: str, report: DroneProgressReport... method add_finding (line 1251) | def add_finding( method get_findings (line 1273) | def get_findings(self, mission_id: str) -> List[QuickScoutFinding]: method update_finding (line 1276) | def update_finding( method delete_finding (line 1301) | def delete_finding(self, finding_id: str) -> bool: FILE: gcs-server/sar/store.py function get_quickscout_store (line 30) | def get_quickscout_store() -> "QuickScoutStore": class QuickScoutStore (line 39) | class QuickScoutStore: method __init__ (line 42) | def __init__(self, db_path: str | None = None): method _resolve_default_db_path (line 49) | def _resolve_default_db_path() -> str: method _connect (line 57) | def _connect(self) -> sqlite3.Connection: method _initialize_schema (line 64) | def _initialize_schema(self) -> None: method save_operation (line 112) | def save_operation(self, operation: QuickScoutOperationRecord) -> Quic... method get_operation (line 136) | def get_operation(self, mission_id: str) -> Optional[QuickScoutOperati... method delete_operation (line 148) | def delete_operation(self, mission_id: str) -> bool: method save_finding (line 156) | def save_finding(self, mission_id: str, finding: QuickScoutFinding) ->... method list_findings (line 182) | def list_findings(self, mission_id: str) -> list[QuickScoutFinding]: method get_finding (line 195) | def get_finding(self, finding_id: str) -> Optional[QuickScoutFinding]: method delete_finding (line 205) | def delete_finding(self, finding_id: str) -> bool: method reset_all (line 213) | def reset_all(self) -> None: method list_operations (line 227) | def list_operations(self) -> Iterable[QuickScoutOperationRecord]: FILE: gcs-server/sar/terrain.py function batch_get_elevations (line 24) | async def batch_get_elevations(points: List[dict], chunk_size: int = 100... function apply_terrain_following (line 51) | async def apply_terrain_following( FILE: gcs-server/schemas.py class DroneState (line 30) | class DroneState(str, Enum): class FlightMode (line 42) | class FlightMode(str, Enum): class GitStatus (line 57) | class GitStatus(str, Enum): class DroneConfig (line 71) | class DroneConfig(BaseModel): class FleetConfig (line 85) | class FleetConfig(BaseModel): class FleetConfigEntryPayload (line 91) | class FleetConfigEntryPayload(BaseModel): class SwarmAssignment (line 101) | class SwarmAssignment(BaseModel): class SwarmConfig (line 113) | class SwarmConfig(BaseModel): class SwarmConfigSaveResponse (line 119) | class SwarmConfigSaveResponse(BaseModel): class SwarmAssignmentPatchRequest (line 127) | class SwarmAssignmentPatchRequest(BaseModel): class SwarmAssignmentUpdateResponse (line 138) | class SwarmAssignmentUpdateResponse(BaseModel): class ConfigListResponse (line 145) | class ConfigListResponse(BaseModel): class ConfigUpdateRequest (line 152) | class ConfigUpdateRequest(BaseModel): class ConfigUpdateResponse (line 157) | class ConfigUpdateResponse(BaseModel): class ConnectivityProfileUpdateRequest (line 165) | class ConnectivityProfileUpdateRequest(BaseModel): class ConnectivityProfileStatusResponse (line 173) | class ConnectivityProfileStatusResponse(BaseModel): class FleetCandidateState (line 191) | class FleetCandidateState(str, Enum): class FleetCandidateRecord (line 201) | class FleetCandidateRecord(BaseModel): method normalize_candidate_runtime_mode (line 241) | def normalize_candidate_runtime_mode(cls, value): class FleetCandidateListResponse (line 252) | class FleetCandidateListResponse(BaseModel): class FleetCandidateAnnounceRequest (line 262) | class FleetCandidateAnnounceRequest(BaseModel): method normalize_candidate_hw_id (line 285) | def normalize_candidate_hw_id(cls, value): method normalize_candidate_announce_runtime_mode (line 294) | def normalize_candidate_announce_runtime_mode(cls, value): class FleetCandidateActionRequest (line 305) | class FleetCandidateActionRequest(BaseModel): class FleetCandidateAcceptRequest (line 312) | class FleetCandidateAcceptRequest(BaseModel): class FleetCandidateReplaceRequest (line 325) | class FleetCandidateReplaceRequest(BaseModel): class FleetCandidateRecoverRequest (line 337) | class FleetCandidateRecoverRequest(BaseModel): class FleetCandidatePostSyncPlan (line 348) | class FleetCandidatePostSyncPlan(BaseModel): class FleetCandidateMutationResponse (line 358) | class FleetCandidateMutationResponse(BaseModel): class PositionNED (line 375) | class PositionNED(BaseModel): class PositionGPS (line 382) | class PositionGPS(BaseModel): class VelocityNED (line 389) | class VelocityNED(BaseModel): class AttitudeEuler (line 396) | class AttitudeEuler(BaseModel): class BatteryStatus (line 403) | class BatteryStatus(BaseModel): class TelemetryReadinessCheck (line 410) | class TelemetryReadinessCheck(BaseModel): class TelemetryReadinessMessage (line 418) | class TelemetryReadinessMessage(BaseModel): class DroneTelemetry (line 426) | class DroneTelemetry(BaseModel): method normalize_hw_id (line 493) | def normalize_hw_id(cls, value: Any) -> str: class TelemetryResponse (line 498) | class TelemetryResponse(BaseModel): method normalize_telemetry_keys (line 507) | def normalize_telemetry_keys(cls, value: Any) -> Any: class HeartbeatData (line 518) | class HeartbeatData(BaseModel): class HeartbeatResponse (line 532) | class HeartbeatResponse(BaseModel): class HeartbeatRequest (line 541) | class HeartbeatRequest(BaseModel): method normalize_hw_id (line 553) | def normalize_hw_id(cls, value): method normalize_ip (line 568) | def normalize_ip(cls, value): method normalize_runtime_mode (line 581) | def normalize_runtime_mode(cls, value): class HeartbeatPostResponse (line 594) | class HeartbeatPostResponse(BaseModel): class DroneMavlinkRuntimeStatus (line 605) | class DroneMavlinkRuntimeStatus(BaseModel): class DroneConnectivityRuntimeStatus (line 626) | class DroneConnectivityRuntimeStatus(BaseModel): class DroneGitSyncRuntimeStatus (line 647) | class DroneGitSyncRuntimeStatus(BaseModel): class DroneEnvRuntimeStatus (line 663) | class DroneEnvRuntimeStatus(BaseModel): class DroneGitStatus (line 685) | class DroneGitStatus(BaseModel): class GitStatusResponse (line 723) | class GitStatusResponse(BaseModel): class SyncReposRequest (line 734) | class SyncReposRequest(BaseModel): class SyncReposResponse (line 740) | class SyncReposResponse(BaseModel): class TrajectoryPoint (line 755) | class TrajectoryPoint(BaseModel): class DroneTrajectory (line 764) | class DroneTrajectory(BaseModel): class SwarmTrajectory (line 772) | class SwarmTrajectory(BaseModel): class SwarmTrajectoryLeaderListResponse (line 781) | class SwarmTrajectoryLeaderListResponse(BaseModel): method _normalize_swarm_mapping_keys (line 799) | def _normalize_swarm_mapping_keys(cls, value: Any) -> Any: class SwarmTrajectoryUploadResponse (line 805) | class SwarmTrajectoryUploadResponse(BaseModel): class SwarmTrajectoryProcessRequest (line 813) | class SwarmTrajectoryProcessRequest(BaseModel): class SwarmTrajectoryCommitRequest (line 822) | class SwarmTrajectoryCommitRequest(BaseModel): method _normalize_commit_message (line 831) | def _normalize_commit_message(cls, value: Any) -> Any: class SwarmTrajectoryProcessingChanges (line 838) | class SwarmTrajectoryProcessingChanges(BaseModel): class SwarmTrajectoryProcessingRecommendation (line 852) | class SwarmTrajectoryProcessingRecommendation(BaseModel): class SwarmTrajectoryRecommendationResponse (line 867) | class SwarmTrajectoryRecommendationResponse(BaseModel): class SwarmTrajectoryDronePackageStats (line 874) | class SwarmTrajectoryDronePackageStats(BaseModel): class SwarmTrajectoryPackageStats (line 886) | class SwarmTrajectoryPackageStats(BaseModel): class SwarmTrajectoryClusterSummary (line 900) | class SwarmTrajectoryClusterSummary(BaseModel): class SwarmTrajectoryClusterStatus (line 913) | class SwarmTrajectoryClusterStatus(BaseModel): class SwarmTrajectorySessionStatus (line 934) | class SwarmTrajectorySessionStatus(BaseModel): class SwarmTrajectoryStatusPayload (line 944) | class SwarmTrajectoryStatusPayload(BaseModel): method _normalize_status_mapping_keys (line 976) | def _normalize_status_mapping_keys(cls, value: Any) -> Any: class SwarmTrajectoryStatusResponse (line 982) | class SwarmTrajectoryStatusResponse(BaseModel): class SwarmTrajectoryProcessingStatistics (line 990) | class SwarmTrajectoryProcessingStatistics(BaseModel): class SwarmTrajectoryProcessResponse (line 998) | class SwarmTrajectoryProcessResponse(BaseModel): class SwarmTrajectoryPolicyAltitude (line 1017) | class SwarmTrajectoryPolicyAltitude(BaseModel): class SwarmTrajectoryPolicySpeed (line 1026) | class SwarmTrajectoryPolicySpeed(BaseModel): class SwarmTrajectoryPolicyTiming (line 1035) | class SwarmTrajectoryPolicyTiming(BaseModel): class SwarmTrajectoryPolicyTerrain (line 1043) | class SwarmTrajectoryPolicyTerrain(BaseModel): class SwarmTrajectoryPolicyPayload (line 1050) | class SwarmTrajectoryPolicyPayload(BaseModel): class SwarmTrajectoryPolicyResponse (line 1059) | class SwarmTrajectoryPolicyResponse(BaseModel): class SwarmTrajectoryClearProcessedResponse (line 1066) | class SwarmTrajectoryClearProcessedResponse(BaseModel): class SwarmTrajectoryClearAllResponse (line 1074) | class SwarmTrajectoryClearAllResponse(BaseModel): class SwarmTrajectoryRemoveLeaderResponse (line 1082) | class SwarmTrajectoryRemoveLeaderResponse(BaseModel): class SwarmTrajectoryClearLeaderResponse (line 1091) | class SwarmTrajectoryClearLeaderResponse(BaseModel): class SwarmTrajectoryClearDroneResponse (line 1099) | class SwarmTrajectoryClearDroneResponse(BaseModel): class SwarmTrajectoryCommitResponse (line 1107) | class SwarmTrajectoryCommitResponse(BaseModel): class ShowImportRequest (line 1119) | class ShowImportRequest(BaseModel): class ShowImportResponse (line 1125) | class ShowImportResponse(BaseModel): class ShowDeploymentRequest (line 1139) | class ShowDeploymentRequest(BaseModel): method _normalize_show_deployment_message (line 1147) | def _normalize_show_deployment_message(cls, value): class ShowDeploymentResponse (line 1154) | class ShowDeploymentResponse(BaseModel): class CustomShowInfoResponse (line 1161) | class CustomShowInfoResponse(BaseModel): class CustomShowImportResponse (line 1173) | class CustomShowImportResponse(BaseModel): class CommandRequest (line 1188) | class CommandRequest(BaseModel): class CommandResponse (line 1195) | class CommandResponse(BaseModel): class OriginRequest (line 1208) | class OriginRequest(BaseModel): class OriginComputeRequest (line 1216) | class OriginComputeRequest(BaseModel): class OriginComputeResponse (line 1223) | class OriginComputeResponse(BaseModel): class OriginResponse (line 1230) | class OriginResponse(BaseModel): class GPSGlobalOriginResponse (line 1239) | class GPSGlobalOriginResponse(BaseModel): class GCSConfigResponse (line 1247) | class GCSConfigResponse(BaseModel): class GCSConfigUpdateRequest (line 1264) | class GCSConfigUpdateRequest(BaseModel): class GCSConfigSaveResponse (line 1275) | class GCSConfigSaveResponse(BaseModel): class GCSConfigApplyResponse (line 1289) | class GCSConfigApplyResponse(BaseModel): class GCSRuntimeUpdateResponse (line 1302) | class GCSRuntimeUpdateResponse(BaseModel): class EnvRegistryEntryResponse (line 1319) | class EnvRegistryEntryResponse(BaseModel): class EnvRegistryResponse (line 1344) | class EnvRegistryResponse(BaseModel): class GCSRuntimeEnvEntryResponse (line 1353) | class GCSRuntimeEnvEntryResponse(BaseModel): class GCSRuntimeEnvResponse (line 1378) | class GCSRuntimeEnvResponse(BaseModel): class GCSRuntimeEnvUpdateRequest (line 1391) | class GCSRuntimeEnvUpdateRequest(BaseModel): class GCSRuntimeEnvUpdateResponse (line 1398) | class GCSRuntimeEnvUpdateResponse(BaseModel): class FleetRuntimeEnvPlanRequest (line 1411) | class FleetRuntimeEnvPlanRequest(BaseModel): class FleetRuntimeEnvNodePlan (line 1423) | class FleetRuntimeEnvNodePlan(BaseModel): class FleetRuntimeEnvPlanResponse (line 1439) | class FleetRuntimeEnvPlanResponse(BaseModel): class FleetRuntimeEnvNodeResponse (line 1456) | class FleetRuntimeEnvNodeResponse(BaseModel): class FleetRuntimeEnvNodeUpdateResponse (line 1473) | class FleetRuntimeEnvNodeUpdateResponse(BaseModel): class GCSRuntimeEnvApplyResponse (line 1488) | class GCSRuntimeEnvApplyResponse(BaseModel): class RuntimeDocsResponse (line 1500) | class RuntimeDocsResponse(BaseModel): class RuntimeFleetDefaultsResponse (line 1510) | class RuntimeFleetDefaultsResponse(BaseModel): class RuntimeGitAuthHealthResponse (line 1531) | class RuntimeGitAuthHealthResponse(BaseModel): class RuntimeRepoSyncStatusResponse (line 1539) | class RuntimeRepoSyncStatusResponse(BaseModel): class RuntimeMavlinkRuntimeResponse (line 1554) | class RuntimeMavlinkRuntimeResponse(BaseModel): class RuntimeConnectivityRuntimeResponse (line 1576) | class RuntimeConnectivityRuntimeResponse(BaseModel): class RuntimeStatusResponse (line 1598) | class RuntimeStatusResponse(BaseModel): class NetworkStatus (line 1637) | class NetworkStatus(BaseModel): class NetworkStatusResponse (line 1646) | class NetworkStatusResponse(BaseModel): class HealthCheckResponse (line 1654) | class HealthCheckResponse(BaseModel): class ErrorDetail (line 1666) | class ErrorDetail(BaseModel): class ErrorResponse (line 1673) | class ErrorResponse(BaseModel): class WebSocketMessage (line 1685) | class WebSocketMessage(BaseModel): class TelemetryStreamMessage (line 1692) | class TelemetryStreamMessage(WebSocketMessage): method normalize_data_keys (line 1699) | def normalize_data_keys(cls, value: Any) -> Any: class GitStatusStreamMessage (line 1706) | class GitStatusStreamMessage(WebSocketMessage): class HeartbeatStreamMessage (line 1713) | class HeartbeatStreamMessage(WebSocketMessage): class DroneAckDetail (line 1724) | class DroneAckDetail(BaseModel): class DroneExecutionDetail (line 1742) | class DroneExecutionDetail(BaseModel): class AckSummary (line 1751) | class AckSummary(BaseModel): class ExecutionSummary (line 1763) | class ExecutionSummary(BaseModel): class LateAckSummary (line 1774) | class LateAckSummary(BaseModel): class LateExecutionStartSummary (line 1784) | class LateExecutionStartSummary(BaseModel): class LateExecutionSummary (line 1790) | class LateExecutionSummary(BaseModel): class LateReportSummary (line 1798) | class LateReportSummary(BaseModel): class CommandProgressSummary (line 1805) | class CommandProgressSummary(BaseModel): class CommandStatusResponse (line 1819) | class CommandStatusResponse(BaseModel): class CommandListResponse (line 1847) | class CommandListResponse(BaseModel): class CommandStatisticsResponse (line 1854) | class CommandStatisticsResponse(BaseModel): class PrecisionMovePolicyDefaults (line 1868) | class PrecisionMovePolicyDefaults(BaseModel): class PrecisionMovePolicyLimits (line 1877) | class PrecisionMovePolicyLimits(BaseModel): class PrecisionMovePolicyExecution (line 1887) | class PrecisionMovePolicyExecution(BaseModel): class PrecisionMovePolicyResponse (line 1897) | class PrecisionMovePolicyResponse(BaseModel): class SubmitCommandRequest (line 1905) | class SubmitCommandRequest(SharedSubmitCommandRequest): class SubmitCommandResponse (line 1909) | class SubmitCommandResponse(BaseModel): class ExecutionReportRequest (line 1944) | class ExecutionReportRequest(BaseModel): class ExecutionStartRequest (line 1955) | class ExecutionStartRequest(BaseModel): class ExecutionStartResponse (line 1962) | class ExecutionStartResponse(BaseModel): class ExecutionReportResponse (line 1972) | class ExecutionReportResponse(BaseModel): FILE: gcs-server/show_management.py function copy_directory_contents (line 25) | def copy_directory_contents(src_dir: str, dst_dir: str) -> None: function swarm_directory (line 36) | def swarm_directory(shapes_dir: str) -> str: function saved_metrics_path (line 40) | def saved_metrics_path(shapes_dir: str) -> str: function count_processed_drone_files (line 44) | def count_processed_drone_files(directory: str) -> int: function custom_show_csv_path (line 56) | def custom_show_csv_path(shapes_dir: str) -> str: function custom_show_preview_path (line 60) | def custom_show_preview_path(shapes_dir: str) -> str: function inspect_custom_show_csv (line 64) | def inspect_custom_show_csv(csv_path: str) -> Dict[str, Any]: function generate_custom_show_preview (line 146) | def generate_custom_show_preview(points: List[Dict[str, float]], preview... function load_saved_metrics_if_current (line 181) | def load_saved_metrics_if_current( function refresh_saved_show_metrics (line 215) | def refresh_saved_show_metrics( function import_show_archive (line 235) | def import_show_archive( function build_show_info_payload (line 364) | def build_show_info_payload(skybrush_dir: str) -> Dict[str, Any]: function build_custom_show_info_payload (line 412) | def build_custom_show_info_payload(shapes_dir: str) -> Dict[str, Any]: function import_custom_show_csv (line 432) | def import_custom_show_csv( function build_comprehensive_metrics_payload (line 499) | def build_comprehensive_metrics_payload( function build_safety_report_payload (line 515) | def build_safety_report_payload( function build_trajectory_validation_payload (line 548) | def build_trajectory_validation_payload( function resolve_show_plot_path (line 594) | def resolve_show_plot_path(plots_directory: str, filename: str) -> Path: function list_show_plots_payload (line 606) | def list_show_plots_payload(plots_directory: str) -> Dict[str, Any]: function resolve_custom_show_image_path (line 620) | def resolve_custom_show_image_path(shapes_dir: str) -> str: FILE: gcs-server/telemetry.py function _build_link_blocker (line 38) | def _build_link_blocker(now_ms: int, message: str) -> Dict[str, Any]: function _build_telemetry_unavailable_record (line 47) | def _build_telemetry_unavailable_record(drone_id: str, drone_ip: str, er... function _normalize_heartbeat_first_seen (line 75) | def _normalize_heartbeat_first_seen(value): function _log_system_event (line 94) | def _log_system_event(message: str, level: str = "INFO", component: str ... function _format_log_value (line 101) | def _format_log_value(value): function _build_telemetry_message (line 109) | def _build_telemetry_message(details): function _log_drone_telemetry_event (line 140) | def _log_drone_telemetry_event(drone_id: str, success: bool, details) ->... function get_enum_name (line 156) | def get_enum_name(enum_class, value): function initialize_telemetry_tracking (line 169) | def initialize_telemetry_tracking(drones): function update_telemetry_stats (line 188) | def update_telemetry_stats(drone_id: str, success: bool): function _get_enhanced_armed_status (line 203) | def _get_enhanced_armed_status(telemetry_data): function should_log_telemetry_event (line 225) | def should_log_telemetry_event(drone_id: str, success: bool) -> bool: function poll_telemetry (line 272) | def poll_telemetry(drone): function start_telemetry_polling (line 515) | def start_telemetry_polling(drones): function _start_telemetry_reporter (line 554) | def _start_telemetry_reporter(): function get_telemetry_summary (line 608) | def get_telemetry_summary(): FILE: gcs-server/utils.py function allowed_file (line 18) | def allowed_file(filename): function clear_show_directories (line 25) | def clear_show_directories(base_dir): function zip_directory (line 67) | def zip_directory(folder_path, zip_path): function ensure_directory (line 73) | def ensure_directory(directory): function _run_git_with_timeout (line 78) | def _run_git_with_timeout(git_cmd, args, timeout): function _rollback_auto_commit (line 93) | def _rollback_auto_commit(git, commit_hash): function git_operations (line 108) | def git_operations(base_dir, commit_message, timeout=30): FILE: led_indicator.py function parse_arguments (line 84) | def parse_arguments(): function get_rgb_from_name (line 115) | def get_rgb_from_name(name: str) -> tuple: function get_color (line 147) | def get_color(color_name: str): function initialize_strip (line 162) | def initialize_strip() -> PixelStrip: function set_strip_color (line 181) | def set_strip_color(strip: PixelStrip, color: Color): function list_available_states (line 193) | def list_available_states(): function main (line 212) | def main(): FILE: mavsdk/_base.py class AsyncBase (line 4) | class AsyncBase: method __init__ (line 9) | def __init__(self, async_plugin_manager): method _init_plugin (line 12) | def _init_plugin(self, async_plugin_manager): method _setup_stub (line 19) | def _setup_stub(self, channel): FILE: mavsdk/action.py class OrbitYawBehavior (line 9) | class OrbitYawBehavior(Enum): method translate_to_rpc (line 39) | def translate_to_rpc(self): method translate_from_rpc (line 52) | def translate_from_rpc(rpc_enum_value): method __str__ (line 65) | def __str__(self): class ActionResult (line 69) | class ActionResult: class Result (line 85) | class Result(Enum): method translate_to_rpc (line 151) | def translate_to_rpc(self): method translate_from_rpc (line 182) | def translate_from_rpc(rpc_enum_value): method __str__ (line 213) | def __str__(self): method __init__ (line 217) | def __init__( method __eq__ (line 225) | def __eq__(self, to_compare): method __str__ (line 237) | def __str__(self): method translate_from_rpc (line 247) | def translate_from_rpc(rpcActionResult): method translate_to_rpc (line 257) | def translate_to_rpc(self, rpcActionResult): class ActionError (line 276) | class ActionError(Exception): method __init__ (line 279) | def __init__(self, result, origin, *params): method __str__ (line 284) | def __str__(self): class Action (line 288) | class Action(AsyncBase): method _setup_stub (line 298) | def _setup_stub(self, channel): method _extract_result (line 303) | def _extract_result(self, response): method arm (line 308) | async def arm(self): method disarm (line 331) | async def disarm(self): method takeoff (line 354) | async def takeoff(self): method land (line 379) | async def land(self): method reboot (line 401) | async def reboot(self): method shutdown (line 423) | async def shutdown(self): method terminate (line 447) | async def terminate(self): method kill (line 469) | async def kill(self): method return_to_launch (line 492) | async def return_to_launch(self): method goto_location (line 516) | async def goto_location(self, latitude_deg, longitude_deg, absolute_al... method do_orbit (line 559) | async def do_orbit(self, radius_m, velocity_ms, yaw_behavior, latitude... method hold (line 610) | async def hold(self): method set_actuator (line 636) | async def set_actuator(self, index, value): method transition_to_fixedwing (line 666) | async def transition_to_fixedwing(self): method transition_to_multicopter (line 690) | async def transition_to_multicopter(self): method get_takeoff_altitude (line 714) | async def get_takeoff_altitude(self): method set_takeoff_altitude (line 742) | async def set_takeoff_altitude(self, altitude): method get_maximum_speed (line 768) | async def get_maximum_speed(self): method set_maximum_speed (line 796) | async def set_maximum_speed(self, speed): method get_return_to_launch_altitude (line 822) | async def get_return_to_launch_altitude(self): method set_return_to_launch_altitude (line 850) | async def set_return_to_launch_altitude(self, relative_altitude_m): method set_current_speed (line 876) | async def set_current_speed(self, speed_m_s): FILE: mavsdk/action_pb2_grpc.py class ActionServiceStub (line 8) | class ActionServiceStub(object): method __init__ (line 12) | def __init__(self, channel): class ActionServiceServicer (line 130) | class ActionServiceServicer(object): method Arm (line 134) | def Arm(self, request, context): method Disarm (line 145) | def Disarm(self, request, context): method Takeoff (line 156) | def Takeoff(self, request, context): method Land (line 169) | def Land(self, request, context): method Reboot (line 179) | def Reboot(self, request, context): method Shutdown (line 189) | def Shutdown(self, request, context): method Terminate (line 201) | def Terminate(self, request, context): method Kill (line 211) | def Kill(self, request, context): method ReturnToLaunch (line 222) | def ReturnToLaunch(self, request, context): method GotoLocation (line 234) | def GotoLocation(self, request, context): method DoOrbit (line 247) | def DoOrbit(self, request, context): method Hold (line 257) | def Hold(self, request, context): method SetActuator (line 271) | def SetActuator(self, request, context): method TransitionToFixedwing (line 279) | def TransitionToFixedwing(self, request, context): method TransitionToMulticopter (line 291) | def TransitionToMulticopter(self, request, context): method GetTakeoffAltitude (line 303) | def GetTakeoffAltitude(self, request, context): method SetTakeoffAltitude (line 311) | def SetTakeoffAltitude(self, request, context): method GetMaximumSpeed (line 319) | def GetMaximumSpeed(self, request, context): method SetMaximumSpeed (line 327) | def SetMaximumSpeed(self, request, context): method GetReturnToLaunchAltitude (line 335) | def GetReturnToLaunchAltitude(self, request, context): method SetReturnToLaunchAltitude (line 343) | def SetReturnToLaunchAltitude(self, request, context): method SetCurrentSpeed (line 351) | def SetCurrentSpeed(self, request, context): function add_ActionServiceServicer_to_server (line 363) | def add_ActionServiceServicer_to_server(servicer, server): class ActionService (line 482) | class ActionService(object): method Arm (line 487) | def Arm(request, method Disarm (line 504) | def Disarm(request, method Takeoff (line 521) | def Takeoff(request, method Land (line 538) | def Land(request, method Reboot (line 555) | def Reboot(request, method Shutdown (line 572) | def Shutdown(request, method Terminate (line 589) | def Terminate(request, method Kill (line 606) | def Kill(request, method ReturnToLaunch (line 623) | def ReturnToLaunch(request, method GotoLocation (line 640) | def GotoLocation(request, method DoOrbit (line 657) | def DoOrbit(request, method Hold (line 674) | def Hold(request, method SetActuator (line 691) | def SetActuator(request, method TransitionToFixedwing (line 708) | def TransitionToFixedwing(request, method TransitionToMulticopter (line 725) | def TransitionToMulticopter(request, method GetTakeoffAltitude (line 742) | def GetTakeoffAltitude(request, method SetTakeoffAltitude (line 759) | def SetTakeoffAltitude(request, method GetMaximumSpeed (line 776) | def GetMaximumSpeed(request, method SetMaximumSpeed (line 793) | def SetMaximumSpeed(request, method GetReturnToLaunchAltitude (line 810) | def GetReturnToLaunchAltitude(request, method SetReturnToLaunchAltitude (line 827) | def SetReturnToLaunchAltitude(request, method SetCurrentSpeed (line 844) | def SetCurrentSpeed(request, FILE: mavsdk/action_server.py class FlightMode (line 9) | class FlightMode(Enum): method translate_to_rpc (line 78) | def translate_to_rpc(self): method translate_from_rpc (line 109) | def translate_from_rpc(rpc_enum_value): method __str__ (line 140) | def __str__(self): class AllowableFlightModes (line 144) | class AllowableFlightModes: method __init__ (line 164) | def __init__( method __eq__ (line 174) | def __eq__(self, to_compare): method __str__ (line 187) | def __str__(self): method translate_from_rpc (line 198) | def translate_from_rpc(rpcAllowableFlightModes): method translate_to_rpc (line 211) | def translate_to_rpc(self, rpcAllowableFlightModes): class ArmDisarm (line 235) | class ArmDisarm: method __init__ (line 251) | def __init__( method __eq__ (line 259) | def __eq__(self, to_compare): method __str__ (line 271) | def __str__(self): method translate_from_rpc (line 281) | def translate_from_rpc(rpcArmDisarm): method translate_to_rpc (line 291) | def translate_to_rpc(self, rpcArmDisarm): class ActionServerResult (line 309) | class ActionServerResult: class Result (line 325) | class Result(Enum): method translate_to_rpc (line 387) | def translate_to_rpc(self): method translate_from_rpc (line 416) | def translate_from_rpc(rpc_enum_value): method __str__ (line 445) | def __str__(self): method __init__ (line 449) | def __init__( method __eq__ (line 457) | def __eq__(self, to_compare): method __str__ (line 469) | def __str__(self): method translate_from_rpc (line 479) | def translate_from_rpc(rpcActionServerResult): method translate_to_rpc (line 489) | def translate_to_rpc(self, rpcActionServerResult): class ActionServerError (line 508) | class ActionServerError(Exception): method __init__ (line 511) | def __init__(self, result, origin, *params): method __str__ (line 516) | def __str__(self): class ActionServer (line 520) | class ActionServer(AsyncBase): method _setup_stub (line 530) | def _setup_stub(self, channel): method _extract_result (line 535) | def _extract_result(self, response): method arm_disarm (line 540) | async def arm_disarm(self): method flight_mode_change (line 579) | async def flight_mode_change(self): method takeoff (line 618) | async def takeoff(self): method land (line 657) | async def land(self): method reboot (line 696) | async def reboot(self): method shutdown (line 735) | async def shutdown(self): method terminate (line 774) | async def terminate(self): method set_allow_takeoff (line 813) | async def set_allow_takeoff(self, allow_takeoff): method set_armable (line 839) | async def set_armable(self, armable, force_armable): method set_disarmable (line 869) | async def set_disarmable(self, disarmable, force_disarmable): method set_allowable_flight_modes (line 899) | async def set_allowable_flight_modes(self, flight_modes): method get_allowable_flight_modes (line 927) | async def get_allowable_flight_modes(self): FILE: mavsdk/action_server_pb2_grpc.py class ActionServerServiceStub (line 8) | class ActionServerServiceStub(object): method __init__ (line 12) | def __init__(self, channel): class ActionServerServiceServicer (line 80) | class ActionServerServiceServicer(object): method SubscribeArmDisarm (line 84) | def SubscribeArmDisarm(self, request, context): method SubscribeFlightModeChange (line 91) | def SubscribeFlightModeChange(self, request, context): method SubscribeTakeoff (line 98) | def SubscribeTakeoff(self, request, context): method SubscribeLand (line 105) | def SubscribeLand(self, request, context): method SubscribeReboot (line 112) | def SubscribeReboot(self, request, context): method SubscribeShutdown (line 119) | def SubscribeShutdown(self, request, context): method SubscribeTerminate (line 126) | def SubscribeTerminate(self, request, context): method SetAllowTakeoff (line 133) | def SetAllowTakeoff(self, request, context): method SetArmable (line 140) | def SetArmable(self, request, context): method SetDisarmable (line 147) | def SetDisarmable(self, request, context): method SetAllowableFlightModes (line 154) | def SetAllowableFlightModes(self, request, context): method GetAllowableFlightModes (line 161) | def GetAllowableFlightModes(self, request, context): function add_ActionServerServiceServicer_to_server (line 169) | def add_ActionServerServiceServicer_to_server(servicer, server): class ActionServerService (line 238) | class ActionServerService(object): method SubscribeArmDisarm (line 243) | def SubscribeArmDisarm(request, method SubscribeFlightModeChange (line 260) | def SubscribeFlightModeChange(request, method SubscribeTakeoff (line 277) | def SubscribeTakeoff(request, method SubscribeLand (line 294) | def SubscribeLand(request, method SubscribeReboot (line 311) | def SubscribeReboot(request, method SubscribeShutdown (line 328) | def SubscribeShutdown(request, method SubscribeTerminate (line 345) | def SubscribeTerminate(request, method SetAllowTakeoff (line 362) | def SetAllowTakeoff(request, method SetArmable (line 379) | def SetArmable(request, method SetDisarmable (line 396) | def SetDisarmable(request, method SetAllowableFlightModes (line 413) | def SetAllowableFlightModes(request, method GetAllowableFlightModes (line 430) | def GetAllowableFlightModes(request, FILE: mavsdk/async_plugin_manager.py class AsyncPluginManager (line 6) | class AsyncPluginManager: method create (line 11) | async def create(cls, host, port=50051): method _connect_backend (line 23) | async def _connect_backend(self): method channel (line 42) | def channel(self): FILE: mavsdk/calibration.py class CalibrationResult (line 9) | class CalibrationResult: class Result (line 25) | class Result(Enum): method translate_to_rpc (line 83) | def translate_to_rpc(self): method translate_from_rpc (line 110) | def translate_from_rpc(rpc_enum_value): method __str__ (line 137) | def __str__(self): method __init__ (line 141) | def __init__( method __eq__ (line 149) | def __eq__(self, to_compare): method __str__ (line 161) | def __str__(self): method translate_from_rpc (line 171) | def translate_from_rpc(rpcCalibrationResult): method translate_to_rpc (line 181) | def translate_to_rpc(self, rpcCalibrationResult): class ProgressData (line 199) | class ProgressData: method __init__ (line 223) | def __init__( method __eq__ (line 235) | def __eq__(self, to_compare): method __str__ (line 249) | def __str__(self): method translate_from_rpc (line 261) | def translate_from_rpc(rpcProgressData): method translate_to_rpc (line 277) | def translate_to_rpc(self, rpcProgressData): class CalibrationError (line 308) | class CalibrationError(Exception): method __init__ (line 311) | def __init__(self, result, origin, *params): method __str__ (line 316) | def __str__(self): class Calibration (line 320) | class Calibration(AsyncBase): method _setup_stub (line 330) | def _setup_stub(self, channel): method _extract_result (line 335) | def _extract_result(self, response): method calibrate_gyro (line 340) | async def calibrate_gyro(self): method calibrate_accelerometer (line 380) | async def calibrate_accelerometer(self): method calibrate_magnetometer (line 420) | async def calibrate_magnetometer(self): method calibrate_level_horizon (line 460) | async def calibrate_level_horizon(self): method calibrate_gimbal_accelerometer (line 500) | async def calibrate_gimbal_accelerometer(self): method cancel (line 540) | async def cancel(self): FILE: mavsdk/calibration_pb2_grpc.py class CalibrationServiceStub (line 8) | class CalibrationServiceStub(object): method __init__ (line 12) | def __init__(self, channel): class CalibrationServiceServicer (line 50) | class CalibrationServiceServicer(object): method SubscribeCalibrateGyro (line 54) | def SubscribeCalibrateGyro(self, request, context): method SubscribeCalibrateAccelerometer (line 61) | def SubscribeCalibrateAccelerometer(self, request, context): method SubscribeCalibrateMagnetometer (line 68) | def SubscribeCalibrateMagnetometer(self, request, context): method SubscribeCalibrateLevelHorizon (line 75) | def SubscribeCalibrateLevelHorizon(self, request, context): method SubscribeCalibrateGimbalAccelerometer (line 82) | def SubscribeCalibrateGimbalAccelerometer(self, request, context): method Cancel (line 89) | def Cancel(self, request, context): function add_CalibrationServiceServicer_to_server (line 97) | def add_CalibrationServiceServicer_to_server(servicer, server): class CalibrationService (line 136) | class CalibrationService(object): method SubscribeCalibrateGyro (line 141) | def SubscribeCalibrateGyro(request, method SubscribeCalibrateAccelerometer (line 158) | def SubscribeCalibrateAccelerometer(request, method SubscribeCalibrateMagnetometer (line 175) | def SubscribeCalibrateMagnetometer(request, method SubscribeCalibrateLevelHorizon (line 192) | def SubscribeCalibrateLevelHorizon(request, method SubscribeCalibrateGimbalAccelerometer (line 209) | def SubscribeCalibrateGimbalAccelerometer(request, method Cancel (line 226) | def Cancel(request, FILE: mavsdk/camera.py class Mode (line 9) | class Mode(Enum): method translate_to_rpc (line 31) | def translate_to_rpc(self): method translate_from_rpc (line 40) | def translate_from_rpc(rpc_enum_value): method __str__ (line 49) | def __str__(self): class PhotosRange (line 53) | class PhotosRange(Enum): method translate_to_rpc (line 71) | def translate_to_rpc(self): method translate_from_rpc (line 78) | def translate_from_rpc(rpc_enum_value): method __str__ (line 85) | def __str__(self): class CameraResult (line 89) | class CameraResult: class Result (line 105) | class Result(Enum): method translate_to_rpc (line 155) | def translate_to_rpc(self): method translate_from_rpc (line 178) | def translate_from_rpc(rpc_enum_value): method __str__ (line 201) | def __str__(self): method __init__ (line 205) | def __init__( method __eq__ (line 213) | def __eq__(self, to_compare): method __str__ (line 225) | def __str__(self): method translate_from_rpc (line 235) | def translate_from_rpc(rpcCameraResult): method translate_to_rpc (line 245) | def translate_to_rpc(self, rpcCameraResult): class Position (line 263) | class Position: method __init__ (line 285) | def __init__( method __eq__ (line 297) | def __eq__(self, to_compare): method __str__ (line 311) | def __str__(self): method translate_from_rpc (line 323) | def translate_from_rpc(rpcPosition): method translate_to_rpc (line 339) | def translate_to_rpc(self, rpcPosition): class Quaternion (line 369) | class Quaternion: method __init__ (line 398) | def __init__( method __eq__ (line 410) | def __eq__(self, to_compare): method __str__ (line 424) | def __str__(self): method translate_from_rpc (line 436) | def translate_from_rpc(rpcQuaternion): method translate_to_rpc (line 452) | def translate_to_rpc(self, rpcQuaternion): class EulerAngle (line 482) | class EulerAngle: method __init__ (line 506) | def __init__( method __eq__ (line 516) | def __eq__(self, to_compare): method __str__ (line 529) | def __str__(self): method translate_from_rpc (line 540) | def translate_from_rpc(rpcEulerAngle): method translate_to_rpc (line 553) | def translate_to_rpc(self, rpcEulerAngle): class CaptureInfo (line 577) | class CaptureInfo: method __init__ (line 608) | def __init__( method __eq__ (line 626) | def __eq__(self, to_compare): method __str__ (line 643) | def __str__(self): method translate_from_rpc (line 658) | def translate_from_rpc(rpcCaptureInfo): method translate_to_rpc (line 683) | def translate_to_rpc(self, rpcCaptureInfo): class VideoStreamSettings (line 731) | class VideoStreamSettings: method __init__ (line 762) | def __init__( method __eq__ (line 780) | def __eq__(self, to_compare): method __str__ (line 797) | def __str__(self): method translate_from_rpc (line 812) | def translate_from_rpc(rpcVideoStreamSettings): method translate_to_rpc (line 837) | def translate_to_rpc(self, rpcVideoStreamSettings): class VideoStreamInfo (line 885) | class VideoStreamInfo: class VideoStreamStatus (line 904) | class VideoStreamStatus(Enum): method translate_to_rpc (line 922) | def translate_to_rpc(self): method translate_from_rpc (line 929) | def translate_from_rpc(rpc_enum_value): method __str__ (line 936) | def __str__(self): class VideoStreamSpectrum (line 940) | class VideoStreamSpectrum(Enum): method translate_to_rpc (line 962) | def translate_to_rpc(self): method translate_from_rpc (line 971) | def translate_from_rpc(rpc_enum_value): method __str__ (line 980) | def __str__(self): method __init__ (line 984) | def __init__( method __eq__ (line 994) | def __eq__(self, to_compare): method __str__ (line 1007) | def __str__(self): method translate_from_rpc (line 1018) | def translate_from_rpc(rpcVideoStreamInfo): method translate_to_rpc (line 1031) | def translate_to_rpc(self, rpcVideoStreamInfo): class Status (line 1055) | class Status: class StorageStatus (line 1095) | class StorageStatus(Enum): method translate_to_rpc (line 1121) | def translate_to_rpc(self): method translate_from_rpc (line 1132) | def translate_from_rpc(rpc_enum_value): method __str__ (line 1143) | def __str__(self): class StorageType (line 1147) | class StorageType(Enum): method translate_to_rpc (line 1181) | def translate_to_rpc(self): method translate_from_rpc (line 1196) | def translate_from_rpc(rpc_enum_value): method __str__ (line 1211) | def __str__(self): method __init__ (line 1215) | def __init__( method __eq__ (line 1239) | def __eq__(self, to_compare): method __str__ (line 1259) | def __str__(self): method translate_from_rpc (line 1277) | def translate_from_rpc(rpcStatus): method translate_to_rpc (line 1311) | def translate_to_rpc(self, rpcStatus): class Option (line 1377) | class Option: method __init__ (line 1393) | def __init__( method __eq__ (line 1401) | def __eq__(self, to_compare): method __str__ (line 1413) | def __str__(self): method translate_from_rpc (line 1423) | def translate_from_rpc(rpcOption): method translate_to_rpc (line 1433) | def translate_to_rpc(self, rpcOption): class Setting (line 1451) | class Setting: method __init__ (line 1473) | def __init__( method __eq__ (line 1485) | def __eq__(self, to_compare): method __str__ (line 1499) | def __str__(self): method translate_from_rpc (line 1511) | def translate_from_rpc(rpcSetting): method translate_to_rpc (line 1527) | def translate_to_rpc(self, rpcSetting): class SettingOptions (line 1557) | class SettingOptions: method __init__ (line 1579) | def __init__( method __eq__ (line 1591) | def __eq__(self, to_compare): method __str__ (line 1605) | def __str__(self): method translate_from_rpc (line 1617) | def translate_from_rpc(rpcSettingOptions): method translate_to_rpc (line 1633) | def translate_to_rpc(self, rpcSettingOptions): class Information (line 1670) | class Information: method __init__ (line 1701) | def __init__( method __eq__ (line 1719) | def __eq__(self, to_compare): method __str__ (line 1736) | def __str__(self): method translate_from_rpc (line 1751) | def translate_from_rpc(rpcInformation): method translate_to_rpc (line 1776) | def translate_to_rpc(self, rpcInformation): class CameraError (line 1825) | class CameraError(Exception): method __init__ (line 1828) | def __init__(self, result, origin, *params): method __str__ (line 1833) | def __str__(self): class Camera (line 1837) | class Camera(AsyncBase): method _setup_stub (line 1853) | def _setup_stub(self, channel): method _extract_result (line 1858) | def _extract_result(self, response): method prepare (line 1863) | async def prepare(self): method take_photo (line 1883) | async def take_photo(self): method start_photo_interval (line 1903) | async def start_photo_interval(self, interval_s): method stop_photo_interval (line 1929) | async def stop_photo_interval(self): method start_video (line 1949) | async def start_video(self): method stop_video (line 1969) | async def stop_video(self): method start_video_streaming (line 1989) | async def start_video_streaming(self): method stop_video_streaming (line 2009) | async def stop_video_streaming(self): method set_mode (line 2029) | async def set_mode(self, mode): method list_photos (line 2058) | async def list_photos(self, photos_range): method mode (line 2101) | async def mode(self): method information (line 2125) | async def information(self): method video_stream_info (line 2149) | async def video_stream_info(self): method capture_info (line 2173) | async def capture_info(self): method status (line 2197) | async def status(self): method current_settings (line 2221) | async def current_settings(self): method possible_setting_options (line 2245) | async def possible_setting_options(self): method set_setting (line 2269) | async def set_setting(self, setting): method get_setting (line 2300) | async def get_setting(self, setting): method format_storage (line 2341) | async def format_storage(self): method select_camera (line 2363) | async def select_camera(self, camera_id): FILE: mavsdk/camera_pb2_grpc.py class CameraServiceStub (line 8) | class CameraServiceStub(object): method __init__ (line 19) | def __init__(self, channel): class CameraServiceServicer (line 132) | class CameraServiceServicer(object): method Prepare (line 143) | def Prepare(self, request, context): method TakePhoto (line 151) | def TakePhoto(self, request, context): method StartPhotoInterval (line 159) | def StartPhotoInterval(self, request, context): method StopPhotoInterval (line 167) | def StopPhotoInterval(self, request, context): method StartVideo (line 175) | def StartVideo(self, request, context): method StopVideo (line 183) | def StopVideo(self, request, context): method StartVideoStreaming (line 191) | def StartVideoStreaming(self, request, context): method StopVideoStreaming (line 199) | def StopVideoStreaming(self, request, context): method SetMode (line 207) | def SetMode(self, request, context): method ListPhotos (line 215) | def ListPhotos(self, request, context): method SubscribeMode (line 223) | def SubscribeMode(self, request, context): method SubscribeInformation (line 231) | def SubscribeInformation(self, request, context): method SubscribeVideoStreamInfo (line 239) | def SubscribeVideoStreamInfo(self, request, context): method SubscribeCaptureInfo (line 247) | def SubscribeCaptureInfo(self, request, context): method SubscribeStatus (line 255) | def SubscribeStatus(self, request, context): method SubscribeCurrentSettings (line 263) | def SubscribeCurrentSettings(self, request, context): method SubscribePossibleSettingOptions (line 271) | def SubscribePossibleSettingOptions(self, request, context): method SetSetting (line 279) | def SetSetting(self, request, context): method GetSetting (line 289) | def GetSetting(self, request, context): method FormatStorage (line 299) | def FormatStorage(self, request, context): method SelectCamera (line 309) | def SelectCamera(self, request, context): function add_CameraServiceServicer_to_server (line 320) | def add_CameraServiceServicer_to_server(servicer, server): class CameraService (line 434) | class CameraService(object): method Prepare (line 446) | def Prepare(request, method TakePhoto (line 463) | def TakePhoto(request, method StartPhotoInterval (line 480) | def StartPhotoInterval(request, method StopPhotoInterval (line 497) | def StopPhotoInterval(request, method StartVideo (line 514) | def StartVideo(request, method StopVideo (line 531) | def StopVideo(request, method StartVideoStreaming (line 548) | def StartVideoStreaming(request, method StopVideoStreaming (line 565) | def StopVideoStreaming(request, method SetMode (line 582) | def SetMode(request, method ListPhotos (line 599) | def ListPhotos(request, method SubscribeMode (line 616) | def SubscribeMode(request, method SubscribeInformation (line 633) | def SubscribeInformation(request, method SubscribeVideoStreamInfo (line 650) | def SubscribeVideoStreamInfo(request, method SubscribeCaptureInfo (line 667) | def SubscribeCaptureInfo(request, method SubscribeStatus (line 684) | def SubscribeStatus(request, method SubscribeCurrentSettings (line 701) | def SubscribeCurrentSettings(request, method SubscribePossibleSettingOptions (line 718) | def SubscribePossibleSettingOptions(request, method SetSetting (line 735) | def SetSetting(request, method GetSetting (line 752) | def GetSetting(request, method FormatStorage (line 769) | def FormatStorage(request, method SelectCamera (line 786) | def SelectCamera(request, FILE: mavsdk/camera_server.py class TakePhotoFeedback (line 9) | class TakePhotoFeedback(Enum): method translate_to_rpc (line 35) | def translate_to_rpc(self): method translate_from_rpc (line 46) | def translate_from_rpc(rpc_enum_value): method __str__ (line 57) | def __str__(self): class Information (line 61) | class Information: method __init__ (line 104) | def __init__( method __eq__ (line 130) | def __eq__(self, to_compare): method __str__ (line 151) | def __str__(self): method translate_from_rpc (line 170) | def translate_from_rpc(rpcInformation): method translate_to_rpc (line 207) | def translate_to_rpc(self, rpcInformation): class Position (line 279) | class Position: method __init__ (line 301) | def __init__( method __eq__ (line 313) | def __eq__(self, to_compare): method __str__ (line 327) | def __str__(self): method translate_from_rpc (line 339) | def translate_from_rpc(rpcPosition): method translate_to_rpc (line 355) | def translate_to_rpc(self, rpcPosition): class Quaternion (line 385) | class Quaternion: method __init__ (line 414) | def __init__( method __eq__ (line 426) | def __eq__(self, to_compare): method __str__ (line 440) | def __str__(self): method translate_from_rpc (line 452) | def translate_from_rpc(rpcQuaternion): method translate_to_rpc (line 468) | def translate_to_rpc(self, rpcQuaternion): class CaptureInfo (line 498) | class CaptureInfo: method __init__ (line 526) | def __init__( method __eq__ (line 542) | def __eq__(self, to_compare): method __str__ (line 558) | def __str__(self): method translate_from_rpc (line 572) | def translate_from_rpc(rpcCaptureInfo): method translate_to_rpc (line 594) | def translate_to_rpc(self, rpcCaptureInfo): class CameraServerResult (line 636) | class CameraServerResult: class Result (line 652) | class Result(Enum): method translate_to_rpc (line 698) | def translate_to_rpc(self): method translate_from_rpc (line 719) | def translate_from_rpc(rpc_enum_value): method __str__ (line 740) | def __str__(self): method __init__ (line 744) | def __init__( method __eq__ (line 752) | def __eq__(self, to_compare): method __str__ (line 764) | def __str__(self): method translate_from_rpc (line 774) | def translate_from_rpc(rpcCameraServerResult): method translate_to_rpc (line 784) | def translate_to_rpc(self, rpcCameraServerResult): class CameraServerError (line 803) | class CameraServerError(Exception): method __init__ (line 806) | def __init__(self, result, origin, *params): method __str__ (line 811) | def __str__(self): class CameraServer (line 815) | class CameraServer(AsyncBase): method _setup_stub (line 825) | def _setup_stub(self, channel): method _extract_result (line 830) | def _extract_result(self, response): method set_information (line 835) | async def set_information(self, information): method set_in_progress (line 864) | async def set_in_progress(self, in_progress): method take_photo (line 890) | async def take_photo(self): method respond_take_photo (line 913) | async def respond_take_photo(self, take_photo_feedback, capture_info): FILE: mavsdk/camera_server_pb2_grpc.py class CameraServerServiceStub (line 8) | class CameraServerServiceStub(object): method __init__ (line 12) | def __init__(self, channel): class CameraServerServiceServicer (line 40) | class CameraServerServiceServicer(object): method SetInformation (line 44) | def SetInformation(self, request, context): method SetInProgress (line 51) | def SetInProgress(self, request, context): method SubscribeTakePhoto (line 58) | def SubscribeTakePhoto(self, request, context): method RespondTakePhoto (line 65) | def RespondTakePhoto(self, request, context): function add_CameraServerServiceServicer_to_server (line 73) | def add_CameraServerServiceServicer_to_server(servicer, server): class CameraServerService (line 102) | class CameraServerService(object): method SetInformation (line 107) | def SetInformation(request, method SetInProgress (line 124) | def SetInProgress(request, method SubscribeTakePhoto (line 141) | def SubscribeTakePhoto(request, method RespondTakePhoto (line 158) | def RespondTakePhoto(request, FILE: mavsdk/component_information.py class FloatParam (line 9) | class FloatParam: method __init__ (line 46) | def __init__( method __eq__ (line 68) | def __eq__(self, to_compare): method __str__ (line 87) | def __str__(self): method translate_from_rpc (line 104) | def translate_from_rpc(rpcFloatParam): method translate_to_rpc (line 135) | def translate_to_rpc(self, rpcFloatParam): class FloatParamUpdate (line 195) | class FloatParamUpdate: method __init__ (line 211) | def __init__( method __eq__ (line 219) | def __eq__(self, to_compare): method __str__ (line 231) | def __str__(self): method translate_from_rpc (line 241) | def translate_from_rpc(rpcFloatParamUpdate): method translate_to_rpc (line 251) | def translate_to_rpc(self, rpcFloatParamUpdate): class ComponentInformationResult (line 269) | class ComponentInformationResult: class Result (line 285) | class Result(Enum): method translate_to_rpc (line 307) | def translate_to_rpc(self): method translate_from_rpc (line 316) | def translate_from_rpc(rpc_enum_value): method __str__ (line 325) | def __str__(self): method __init__ (line 329) | def __init__( method __eq__ (line 337) | def __eq__(self, to_compare): method __str__ (line 349) | def __str__(self): method translate_from_rpc (line 359) | def translate_from_rpc(rpcComponentInformationResult): method translate_to_rpc (line 369) | def translate_to_rpc(self, rpcComponentInformationResult): class ComponentInformationError (line 388) | class ComponentInformationError(Exception): method __init__ (line 391) | def __init__(self, result, origin, *params): method __str__ (line 396) | def __str__(self): class ComponentInformation (line 400) | class ComponentInformation(AsyncBase): method _setup_stub (line 410) | def _setup_stub(self, channel): method _extract_result (line 415) | def _extract_result(self, response): method access_float_params (line 420) | async def access_float_params(self): method float_param (line 452) | async def float_param(self): FILE: mavsdk/component_information_pb2_grpc.py class ComponentInformationServiceStub (line 8) | class ComponentInformationServiceStub(object): method __init__ (line 12) | def __init__(self, channel): class ComponentInformationServiceServicer (line 30) | class ComponentInformationServiceServicer(object): method AccessFloatParams (line 34) | def AccessFloatParams(self, request, context): method SubscribeFloatParam (line 42) | def SubscribeFloatParam(self, request, context): function add_ComponentInformationServiceServicer_to_server (line 51) | def add_ComponentInformationServiceServicer_to_server(servicer, server): class ComponentInformationService (line 70) | class ComponentInformationService(object): method AccessFloatParams (line 75) | def AccessFloatParams(request, method SubscribeFloatParam (line 92) | def SubscribeFloatParam(request, FILE: mavsdk/component_information_server.py class FloatParam (line 9) | class FloatParam: method __init__ (line 46) | def __init__( method __eq__ (line 68) | def __eq__(self, to_compare): method __str__ (line 87) | def __str__(self): method translate_from_rpc (line 104) | def translate_from_rpc(rpcFloatParam): method translate_to_rpc (line 135) | def translate_to_rpc(self, rpcFloatParam): class FloatParamUpdate (line 195) | class FloatParamUpdate: method __init__ (line 211) | def __init__( method __eq__ (line 219) | def __eq__(self, to_compare): method __str__ (line 231) | def __str__(self): method translate_from_rpc (line 241) | def translate_from_rpc(rpcFloatParamUpdate): method translate_to_rpc (line 251) | def translate_to_rpc(self, rpcFloatParamUpdate): class ComponentInformationServerResult (line 269) | class ComponentInformationServerResult: class Result (line 285) | class Result(Enum): method translate_to_rpc (line 323) | def translate_to_rpc(self): method translate_from_rpc (line 340) | def translate_from_rpc(rpc_enum_value): method __str__ (line 357) | def __str__(self): method __init__ (line 361) | def __init__( method __eq__ (line 369) | def __eq__(self, to_compare): method __str__ (line 381) | def __str__(self): method translate_from_rpc (line 391) | def translate_from_rpc(rpcComponentInformationServerResult): method translate_to_rpc (line 401) | def translate_to_rpc(self, rpcComponentInformationServerResult): class ComponentInformationServerError (line 420) | class ComponentInformationServerError(Exception): method __init__ (line 423) | def __init__(self, result, origin, *params): method __str__ (line 428) | def __str__(self): class ComponentInformationServer (line 432) | class ComponentInformationServer(AsyncBase): method _setup_stub (line 442) | def _setup_stub(self, channel): method _extract_result (line 447) | def _extract_result(self, response): method provide_float_param (line 452) | async def provide_float_param(self, param): method float_param (line 481) | async def float_param(self): FILE: mavsdk/component_information_server_pb2_grpc.py class ComponentInformationServerServiceStub (line 8) | class ComponentInformationServerServiceStub(object): method __init__ (line 12) | def __init__(self, channel): class ComponentInformationServerServiceServicer (line 30) | class ComponentInformationServerServiceServicer(object): method ProvideFloatParam (line 34) | def ProvideFloatParam(self, request, context): method SubscribeFloatParam (line 42) | def SubscribeFloatParam(self, request, context): function add_ComponentInformationServerServiceServicer_to_server (line 51) | def add_ComponentInformationServerServiceServicer_to_server(servicer, se... class ComponentInformationServerService (line 70) | class ComponentInformationServerService(object): method ProvideFloatParam (line 75) | def ProvideFloatParam(request, method SubscribeFloatParam (line 92) | def SubscribeFloatParam(request, FILE: mavsdk/core.py class ConnectionState (line 9) | class ConnectionState: method __init__ (line 22) | def __init__( method __eq__ (line 28) | def __eq__(self, to_compare): method __str__ (line 39) | def __str__(self): method translate_from_rpc (line 48) | def translate_from_rpc(rpcConnectionState): method translate_to_rpc (line 55) | def translate_to_rpc(self, rpcConnectionState): class Core (line 69) | class Core(AsyncBase): method _setup_stub (line 79) | def _setup_stub(self, channel): method connection_state (line 85) | async def connection_state(self): method set_mavlink_timeout (line 109) | async def set_mavlink_timeout(self, timeout_s): FILE: mavsdk/core_pb2_grpc.py class CoreServiceStub (line 8) | class CoreServiceStub(object): method __init__ (line 12) | def __init__(self, channel): class CoreServiceServicer (line 30) | class CoreServiceServicer(object): method SubscribeConnectionState (line 34) | def SubscribeConnectionState(self, request, context): method SetMavlinkTimeout (line 42) | def SetMavlinkTimeout(self, request, context): function add_CoreServiceServicer_to_server (line 56) | def add_CoreServiceServicer_to_server(servicer, server): class CoreService (line 75) | class CoreService(object): method SubscribeConnectionState (line 80) | def SubscribeConnectionState(request, method SetMavlinkTimeout (line 97) | def SetMavlinkTimeout(request, FILE: mavsdk/failure.py class FailureUnit (line 9) | class FailureUnit(Enum): method translate_to_rpc (line 79) | def translate_to_rpc(self): method translate_from_rpc (line 112) | def translate_from_rpc(rpc_enum_value): method __str__ (line 145) | def __str__(self): class FailureType (line 149) | class FailureType(Enum): method translate_to_rpc (line 191) | def translate_to_rpc(self): method translate_from_rpc (line 210) | def translate_from_rpc(rpc_enum_value): method __str__ (line 229) | def __str__(self): class FailureResult (line 233) | class FailureResult: class Result (line 249) | class Result(Enum): method translate_to_rpc (line 291) | def translate_to_rpc(self): method translate_from_rpc (line 310) | def translate_from_rpc(rpc_enum_value): method __str__ (line 329) | def __str__(self): method __init__ (line 333) | def __init__( method __eq__ (line 341) | def __eq__(self, to_compare): method __str__ (line 353) | def __str__(self): method translate_from_rpc (line 363) | def translate_from_rpc(rpcFailureResult): method translate_to_rpc (line 373) | def translate_to_rpc(self, rpcFailureResult): class FailureError (line 392) | class FailureError(Exception): method __init__ (line 395) | def __init__(self, result, origin, *params): method __str__ (line 400) | def __str__(self): class Failure (line 404) | class Failure(AsyncBase): method _setup_stub (line 414) | def _setup_stub(self, channel): method _extract_result (line 419) | def _extract_result(self, response): method inject (line 424) | async def inject(self, failure_unit, failure_type, instance): FILE: mavsdk/failure_pb2_grpc.py class FailureServiceStub (line 8) | class FailureServiceStub(object): method __init__ (line 12) | def __init__(self, channel): class FailureServiceServicer (line 25) | class FailureServiceServicer(object): method Inject (line 29) | def Inject(self, request, context): function add_FailureServiceServicer_to_server (line 37) | def add_FailureServiceServicer_to_server(servicer, server): class FailureService (line 51) | class FailureService(object): method Inject (line 56) | def Inject(request, FILE: mavsdk/follow_me.py class Config (line 9) | class Config: class FollowAltitudeMode (line 37) | class FollowAltitudeMode(Enum): method translate_to_rpc (line 59) | def translate_to_rpc(self): method translate_from_rpc (line 68) | def translate_from_rpc(rpc_enum_value): method __str__ (line 77) | def __str__(self): method __init__ (line 81) | def __init__( method __eq__ (line 97) | def __eq__(self, to_compare): method __str__ (line 113) | def __str__(self): method translate_from_rpc (line 127) | def translate_from_rpc(rpcConfig): method translate_to_rpc (line 149) | def translate_to_rpc(self, rpcConfig): class TargetLocation (line 191) | class TargetLocation: method __init__ (line 219) | def __init__( method __eq__ (line 235) | def __eq__(self, to_compare): method __str__ (line 251) | def __str__(self): method translate_from_rpc (line 265) | def translate_from_rpc(rpcTargetLocation): method translate_to_rpc (line 287) | def translate_to_rpc(self, rpcTargetLocation): class FollowMeResult (line 329) | class FollowMeResult: class Result (line 345) | class Result(Enum): method translate_to_rpc (line 391) | def translate_to_rpc(self): method translate_from_rpc (line 412) | def translate_from_rpc(rpc_enum_value): method __str__ (line 433) | def __str__(self): method __init__ (line 437) | def __init__( method __eq__ (line 445) | def __eq__(self, to_compare): method __str__ (line 457) | def __str__(self): method translate_from_rpc (line 467) | def translate_from_rpc(rpcFollowMeResult): method translate_to_rpc (line 477) | def translate_to_rpc(self, rpcFollowMeResult): class FollowMeError (line 496) | class FollowMeError(Exception): method __init__ (line 499) | def __init__(self, result, origin, *params): method __str__ (line 504) | def __str__(self): class FollowMe (line 508) | class FollowMe(AsyncBase): method _setup_stub (line 519) | def _setup_stub(self, channel): method _extract_result (line 524) | def _extract_result(self, response): method get_config (line 529) | async def get_config(self): method set_config (line 549) | async def set_config(self, config): method is_active (line 578) | async def is_active(self): method set_target_location (line 598) | async def set_target_location(self, location): method get_last_location (line 627) | async def get_last_location(self): method start (line 647) | async def start(self): method stop (line 667) | async def stop(self): FILE: mavsdk/follow_me_pb2_grpc.py class FollowMeServiceStub (line 8) | class FollowMeServiceStub(object): method __init__ (line 14) | def __init__(self, channel): class FollowMeServiceServicer (line 57) | class FollowMeServiceServicer(object): method GetConfig (line 63) | def GetConfig(self, request, context): method SetConfig (line 70) | def SetConfig(self, request, context): method IsActive (line 77) | def IsActive(self, request, context): method SetTargetLocation (line 84) | def SetTargetLocation(self, request, context): method GetLastLocation (line 91) | def GetLastLocation(self, request, context): method Start (line 98) | def Start(self, request, context): method Stop (line 105) | def Stop(self, request, context): function add_FollowMeServiceServicer_to_server (line 113) | def add_FollowMeServiceServicer_to_server(servicer, server): class FollowMeService (line 157) | class FollowMeService(object): method GetConfig (line 164) | def GetConfig(request, method SetConfig (line 181) | def SetConfig(request, method IsActive (line 198) | def IsActive(request, method SetTargetLocation (line 215) | def SetTargetLocation(request, method GetLastLocation (line 232) | def GetLastLocation(request, method Start (line 249) | def Start(request, method Stop (line 266) | def Stop(request, FILE: mavsdk/ftp.py class ProgressData (line 9) | class ProgressData: method __init__ (line 25) | def __init__( method __eq__ (line 33) | def __eq__(self, to_compare): method __str__ (line 45) | def __str__(self): method translate_from_rpc (line 55) | def translate_from_rpc(rpcProgressData): method translate_to_rpc (line 65) | def translate_to_rpc(self, rpcProgressData): class FtpResult (line 83) | class FtpResult: class Result (line 99) | class Result(Enum): method translate_to_rpc (line 161) | def translate_to_rpc(self): method translate_from_rpc (line 190) | def translate_from_rpc(rpc_enum_value): method __str__ (line 219) | def __str__(self): method __init__ (line 223) | def __init__( method __eq__ (line 231) | def __eq__(self, to_compare): method __str__ (line 243) | def __str__(self): method translate_from_rpc (line 253) | def translate_from_rpc(rpcFtpResult): method translate_to_rpc (line 263) | def translate_to_rpc(self, rpcFtpResult): class FtpError (line 282) | class FtpError(Exception): method __init__ (line 285) | def __init__(self, result, origin, *params): method __str__ (line 290) | def __str__(self): class Ftp (line 294) | class Ftp(AsyncBase): method _setup_stub (line 304) | def _setup_stub(self, channel): method _extract_result (line 309) | def _extract_result(self, response): method reset (line 314) | async def reset(self): method download (line 334) | async def download(self, remote_file_path, local_dir): method upload (line 384) | async def upload(self, local_file_path, remote_dir): method list_directory (line 434) | async def list_directory(self, remote_dir): method create_directory (line 471) | async def create_directory(self, remote_dir): method remove_directory (line 497) | async def remove_directory(self, remote_dir): method remove_file (line 523) | async def remove_file(self, remote_file_path): method rename (line 549) | async def rename(self, remote_from_path, remote_to_path): method are_files_identical (line 579) | async def are_files_identical(self, local_file_path, remote_file_path): method set_root_directory (line 623) | async def set_root_directory(self, root_dir): method set_target_compid (line 649) | async def set_target_compid(self, compid): method get_our_compid (line 675) | async def get_our_compid(self): FILE: mavsdk/ftp_pb2_grpc.py class FtpServiceStub (line 8) | class FtpServiceStub(object): method __init__ (line 13) | def __init__(self, channel): class FtpServiceServicer (line 81) | class FtpServiceServicer(object): method Reset (line 86) | def Reset(self, request, context): method SubscribeDownload (line 94) | def SubscribeDownload(self, request, context): method SubscribeUpload (line 102) | def SubscribeUpload(self, request, context): method ListDirectory (line 110) | def ListDirectory(self, request, context): method CreateDirectory (line 118) | def CreateDirectory(self, request, context): method RemoveDirectory (line 126) | def RemoveDirectory(self, request, context): method RemoveFile (line 134) | def RemoveFile(self, request, context): method Rename (line 142) | def Rename(self, request, context): method AreFilesIdentical (line 150) | def AreFilesIdentical(self, request, context): method SetRootDirectory (line 158) | def SetRootDirectory(self, request, context): method SetTargetCompid (line 166) | def SetTargetCompid(self, request, context): method GetOurCompid (line 174) | def GetOurCompid(self, request, context): function add_FtpServiceServicer_to_server (line 183) | def add_FtpServiceServicer_to_server(servicer, server): class FtpService (line 252) | class FtpService(object): method Reset (line 258) | def Reset(request, method SubscribeDownload (line 275) | def SubscribeDownload(request, method SubscribeUpload (line 292) | def SubscribeUpload(request, method ListDirectory (line 309) | def ListDirectory(request, method CreateDirectory (line 326) | def CreateDirectory(request, method RemoveDirectory (line 343) | def RemoveDirectory(request, method RemoveFile (line 360) | def RemoveFile(request, method Rename (line 377) | def Rename(request, method AreFilesIdentical (line 394) | def AreFilesIdentical(request, method SetRootDirectory (line 411) | def SetRootDirectory(request, method SetTargetCompid (line 428) | def SetTargetCompid(request, method GetOurCompid (line 445) | def GetOurCompid(request, FILE: mavsdk/geofence.py class FenceType (line 9) | class FenceType(Enum): method translate_to_rpc (line 27) | def translate_to_rpc(self): method translate_from_rpc (line 34) | def translate_from_rpc(rpc_enum_value): method __str__ (line 41) | def __str__(self): class Point (line 45) | class Point: method __init__ (line 61) | def __init__( method __eq__ (line 69) | def __eq__(self, to_compare): method __str__ (line 81) | def __str__(self): method translate_from_rpc (line 91) | def translate_from_rpc(rpcPoint): method translate_to_rpc (line 101) | def translate_to_rpc(self, rpcPoint): class Polygon (line 119) | class Polygon: method __init__ (line 135) | def __init__( method __eq__ (line 143) | def __eq__(self, to_compare): method __str__ (line 155) | def __str__(self): method translate_from_rpc (line 165) | def translate_from_rpc(rpcPolygon): method translate_to_rpc (line 175) | def translate_to_rpc(self, rpcPolygon): class Circle (line 200) | class Circle: method __init__ (line 219) | def __init__( method __eq__ (line 229) | def __eq__(self, to_compare): method __str__ (line 242) | def __str__(self): method translate_from_rpc (line 253) | def translate_from_rpc(rpcCircle): method translate_to_rpc (line 266) | def translate_to_rpc(self, rpcCircle): class GeofenceData (line 290) | class GeofenceData: method __init__ (line 306) | def __init__( method __eq__ (line 314) | def __eq__(self, to_compare): method __str__ (line 326) | def __str__(self): method translate_from_rpc (line 336) | def translate_from_rpc(rpcGeofenceData): method translate_to_rpc (line 346) | def translate_to_rpc(self, rpcGeofenceData): class GeofenceResult (line 378) | class GeofenceResult: class Result (line 394) | class Result(Enum): method translate_to_rpc (line 436) | def translate_to_rpc(self): method translate_from_rpc (line 455) | def translate_from_rpc(rpc_enum_value): method __str__ (line 474) | def __str__(self): method __init__ (line 478) | def __init__( method __eq__ (line 486) | def __eq__(self, to_compare): method __str__ (line 498) | def __str__(self): method translate_from_rpc (line 508) | def translate_from_rpc(rpcGeofenceResult): method translate_to_rpc (line 518) | def translate_to_rpc(self, rpcGeofenceResult): class GeofenceError (line 537) | class GeofenceError(Exception): method __init__ (line 540) | def __init__(self, result, origin, *params): method __str__ (line 545) | def __str__(self): class Geofence (line 549) | class Geofence(AsyncBase): method _setup_stub (line 559) | def _setup_stub(self, channel): method _extract_result (line 564) | def _extract_result(self, response): method upload_geofence (line 569) | async def upload_geofence(self, geofence_data): method clear_geofence (line 601) | async def clear_geofence(self): FILE: mavsdk/geofence_pb2_grpc.py class GeofenceServiceStub (line 8) | class GeofenceServiceStub(object): method __init__ (line 12) | def __init__(self, channel): class GeofenceServiceServicer (line 30) | class GeofenceServiceServicer(object): method UploadGeofence (line 34) | def UploadGeofence(self, request, context): method ClearGeofence (line 45) | def ClearGeofence(self, request, context): function add_GeofenceServiceServicer_to_server (line 54) | def add_GeofenceServiceServicer_to_server(servicer, server): class GeofenceService (line 73) | class GeofenceService(object): method UploadGeofence (line 78) | def UploadGeofence(request, method ClearGeofence (line 95) | def ClearGeofence(request, FILE: mavsdk/gimbal.py class GimbalMode (line 9) | class GimbalMode(Enum): method translate_to_rpc (line 27) | def translate_to_rpc(self): method translate_from_rpc (line 34) | def translate_from_rpc(rpc_enum_value): method __str__ (line 41) | def __str__(self): class ControlMode (line 45) | class ControlMode(Enum): method translate_to_rpc (line 67) | def translate_to_rpc(self): method translate_from_rpc (line 76) | def translate_from_rpc(rpc_enum_value): method __str__ (line 85) | def __str__(self): class ControlStatus (line 89) | class ControlStatus: method __init__ (line 114) | def __init__( method __eq__ (line 128) | def __eq__(self, to_compare): method __str__ (line 143) | def __str__(self): method translate_from_rpc (line 156) | def translate_from_rpc(rpcControlStatus): method translate_to_rpc (line 175) | def translate_to_rpc(self, rpcControlStatus): class GimbalResult (line 211) | class GimbalResult: class Result (line 227) | class Result(Enum): method translate_to_rpc (line 261) | def translate_to_rpc(self): method translate_from_rpc (line 276) | def translate_from_rpc(rpc_enum_value): method __str__ (line 291) | def __str__(self): method __init__ (line 295) | def __init__( method __eq__ (line 303) | def __eq__(self, to_compare): method __str__ (line 315) | def __str__(self): method translate_from_rpc (line 325) | def translate_from_rpc(rpcGimbalResult): method translate_to_rpc (line 335) | def translate_to_rpc(self, rpcGimbalResult): class GimbalError (line 354) | class GimbalError(Exception): method __init__ (line 357) | def __init__(self, result, origin, *params): method __str__ (line 362) | def __str__(self): class Gimbal (line 366) | class Gimbal(AsyncBase): method _setup_stub (line 376) | def _setup_stub(self, channel): method _extract_result (line 381) | def _extract_result(self, response): method set_pitch_and_yaw (line 386) | async def set_pitch_and_yaw(self, pitch_deg, yaw_deg): method set_pitch_rate_and_yaw_rate (line 420) | async def set_pitch_rate_and_yaw_rate(self, pitch_rate_deg_s, yaw_rate... method set_mode (line 454) | async def set_mode(self, gimbal_mode): method set_roi_location (line 487) | async def set_roi_location(self, latitude_deg, longitude_deg, altitude... method take_control (line 527) | async def take_control(self, control_mode): method release_control (line 564) | async def release_control(self): method control (line 586) | async def control(self): FILE: mavsdk/gimbal_pb2_grpc.py class GimbalServiceStub (line 8) | class GimbalServiceStub(object): method __init__ (line 12) | def __init__(self, channel): class GimbalServiceServicer (line 55) | class GimbalServiceServicer(object): method SetPitchAndYaw (line 59) | def SetPitchAndYaw(self, request, context): method SetPitchRateAndYawRate (line 72) | def SetPitchRateAndYawRate(self, request, context): method SetMode (line 85) | def SetMode(self, request, context): method SetRoiLocation (line 97) | def SetRoiLocation(self, request, context): method TakeControl (line 111) | def TakeControl(self, request, context): method ReleaseControl (line 127) | def ReleaseControl(self, request, context): method SubscribeControl (line 137) | def SubscribeControl(self, request, context): function add_GimbalServiceServicer_to_server (line 150) | def add_GimbalServiceServicer_to_server(servicer, server): class GimbalService (line 194) | class GimbalService(object): method SetPitchAndYaw (line 199) | def SetPitchAndYaw(request, method SetPitchRateAndYawRate (line 216) | def SetPitchRateAndYawRate(request, method SetMode (line 233) | def SetMode(request, method SetRoiLocation (line 250) | def SetRoiLocation(request, method TakeControl (line 267) | def TakeControl(request, method ReleaseControl (line 284) | def ReleaseControl(request, method SubscribeControl (line 301) | def SubscribeControl(request, FILE: mavsdk/gripper.py class GripperAction (line 9) | class GripperAction(Enum): method translate_to_rpc (line 30) | def translate_to_rpc(self): method translate_from_rpc (line 37) | def translate_from_rpc(rpc_enum_value): method __str__ (line 44) | def __str__(self): class GripperResult (line 48) | class GripperResult: class Result (line 64) | class Result(Enum): method translate_to_rpc (line 102) | def translate_to_rpc(self): method translate_from_rpc (line 119) | def translate_from_rpc(rpc_enum_value): method __str__ (line 136) | def __str__(self): method __init__ (line 140) | def __init__( method __eq__ (line 148) | def __eq__(self, to_compare): method __str__ (line 160) | def __str__(self): method translate_from_rpc (line 170) | def translate_from_rpc(rpcGripperResult): method translate_to_rpc (line 180) | def translate_to_rpc(self, rpcGripperResult): class GripperError (line 199) | class GripperError(Exception): method __init__ (line 202) | def __init__(self, result, origin, *params): method __str__ (line 207) | def __str__(self): class Gripper (line 211) | class Gripper(AsyncBase): method _setup_stub (line 221) | def _setup_stub(self, channel): method _extract_result (line 226) | def _extract_result(self, response): method grab (line 231) | async def grab(self, instance): method release (line 256) | async def release(self, instance): FILE: mavsdk/gripper_pb2_grpc.py class GripperServiceStub (line 8) | class GripperServiceStub(object): method __init__ (line 13) | def __init__(self, channel): class GripperServiceServicer (line 31) | class GripperServiceServicer(object): method Grab (line 36) | def Grab(self, request, context): method Release (line 44) | def Release(self, request, context): function add_GripperServiceServicer_to_server (line 53) | def add_GripperServiceServicer_to_server(servicer, server): class GripperService (line 72) | class GripperService(object): method Grab (line 78) | def Grab(request, method Release (line 95) | def Release(request, FILE: mavsdk/info.py class FlightInfo (line 9) | class FlightInfo: method __init__ (line 25) | def __init__( method __eq__ (line 33) | def __eq__(self, to_compare): method __str__ (line 45) | def __str__(self): method translate_from_rpc (line 55) | def translate_from_rpc(rpcFlightInfo): method translate_to_rpc (line 65) | def translate_to_rpc(self, rpcFlightInfo): class Identification (line 83) | class Identification: method __init__ (line 99) | def __init__( method __eq__ (line 107) | def __eq__(self, to_compare): method __str__ (line 119) | def __str__(self): method translate_from_rpc (line 129) | def translate_from_rpc(rpcIdentification): method translate_to_rpc (line 139) | def translate_to_rpc(self, rpcIdentification): class Product (line 157) | class Product: method __init__ (line 179) | def __init__( method __eq__ (line 191) | def __eq__(self, to_compare): method __str__ (line 205) | def __str__(self): method translate_from_rpc (line 217) | def translate_from_rpc(rpcProduct): method translate_to_rpc (line 233) | def translate_to_rpc(self, rpcProduct): class Version (line 263) | class Version: class FlightSoftwareVersionType (line 309) | class FlightSoftwareVersionType(Enum): method translate_to_rpc (line 343) | def translate_to_rpc(self): method translate_from_rpc (line 358) | def translate_from_rpc(rpc_enum_value): method __str__ (line 373) | def __str__(self): method __init__ (line 377) | def __init__( method __eq__ (line 405) | def __eq__(self, to_compare): method __str__ (line 427) | def __str__(self): method translate_from_rpc (line 447) | def translate_from_rpc(rpcVersion): method translate_to_rpc (line 487) | def translate_to_rpc(self, rpcVersion): class InfoResult (line 565) | class InfoResult: class Result (line 581) | class Result(Enum): method translate_to_rpc (line 607) | def translate_to_rpc(self): method translate_from_rpc (line 618) | def translate_from_rpc(rpc_enum_value): method __str__ (line 629) | def __str__(self): method __init__ (line 633) | def __init__( method __eq__ (line 641) | def __eq__(self, to_compare): method __str__ (line 653) | def __str__(self): method translate_from_rpc (line 663) | def translate_from_rpc(rpcInfoResult): method translate_to_rpc (line 673) | def translate_to_rpc(self, rpcInfoResult): class InfoError (line 692) | class InfoError(Exception): method __init__ (line 695) | def __init__(self, result, origin, *params): method __str__ (line 700) | def __str__(self): class Info (line 704) | class Info(AsyncBase): method _setup_stub (line 714) | def _setup_stub(self, channel): method _extract_result (line 719) | def _extract_result(self, response): method get_flight_information (line 724) | async def get_flight_information(self): method get_identification (line 752) | async def get_identification(self): method get_product (line 780) | async def get_product(self): method get_version (line 808) | async def get_version(self): method get_speed_factor (line 836) | async def get_speed_factor(self): FILE: mavsdk/info_pb2_grpc.py class InfoServiceStub (line 8) | class InfoServiceStub(object): method __init__ (line 12) | def __init__(self, channel): class InfoServiceServicer (line 45) | class InfoServiceServicer(object): method GetFlightInformation (line 49) | def GetFlightInformation(self, request, context): method GetIdentification (line 56) | def GetIdentification(self, request, context): method GetProduct (line 63) | def GetProduct(self, request, context): method GetVersion (line 70) | def GetVersion(self, request, context): method GetSpeedFactor (line 77) | def GetSpeedFactor(self, request, context): function add_InfoServiceServicer_to_server (line 85) | def add_InfoServiceServicer_to_server(servicer, server): class InfoService (line 119) | class InfoService(object): method GetFlightInformation (line 124) | def GetFlightInformation(request, method GetIdentification (line 141) | def GetIdentification(request, method GetProduct (line 158) | def GetProduct(request, method GetVersion (line 175) | def GetVersion(request, method GetSpeedFactor (line 192) | def GetSpeedFactor(request, FILE: mavsdk/log_files.py class ProgressData (line 9) | class ProgressData: method __init__ (line 22) | def __init__( method __eq__ (line 28) | def __eq__(self, to_compare): method __str__ (line 39) | def __str__(self): method translate_from_rpc (line 48) | def translate_from_rpc(rpcProgressData): method translate_to_rpc (line 55) | def translate_to_rpc(self, rpcProgressData): class Entry (line 67) | class Entry: method __init__ (line 86) | def __init__( method __eq__ (line 96) | def __eq__(self, to_compare): method __str__ (line 109) | def __str__(self): method translate_from_rpc (line 120) | def translate_from_rpc(rpcEntry): method translate_to_rpc (line 133) | def translate_to_rpc(self, rpcEntry): class LogFilesResult (line 157) | class LogFilesResult: class Result (line 173) | class Result(Enum): method translate_to_rpc (line 215) | def translate_to_rpc(self): method translate_from_rpc (line 234) | def translate_from_rpc(rpc_enum_value): method __str__ (line 253) | def __str__(self): method __init__ (line 257) | def __init__( method __eq__ (line 265) | def __eq__(self, to_compare): method __str__ (line 277) | def __str__(self): method translate_from_rpc (line 287) | def translate_from_rpc(rpcLogFilesResult): method translate_to_rpc (line 297) | def translate_to_rpc(self, rpcLogFilesResult): class LogFilesError (line 316) | class LogFilesError(Exception): method __init__ (line 319) | def __init__(self, result, origin, *params): method __str__ (line 324) | def __str__(self): class LogFiles (line 328) | class LogFiles(AsyncBase): method _setup_stub (line 339) | def _setup_stub(self, channel): method _extract_result (line 344) | def _extract_result(self, response): method get_entries (line 349) | async def get_entries(self): method download_log_file (line 381) | async def download_log_file(self, entry, path): method erase_all_log_files (line 434) | async def erase_all_log_files(self): FILE: mavsdk/log_files_pb2_grpc.py class LogFilesServiceStub (line 8) | class LogFilesServiceStub(object): method __init__ (line 13) | def __init__(self, channel): class LogFilesServiceServicer (line 36) | class LogFilesServiceServicer(object): method GetEntries (line 41) | def GetEntries(self, request, context): method SubscribeDownloadLogFile (line 48) | def SubscribeDownloadLogFile(self, request, context): method EraseAllLogFiles (line 55) | def EraseAllLogFiles(self, request, context): function add_LogFilesServiceServicer_to_server (line 63) | def add_LogFilesServiceServicer_to_server(servicer, server): class LogFilesService (line 87) | class LogFilesService(object): method GetEntries (line 93) | def GetEntries(request, method SubscribeDownloadLogFile (line 110) | def SubscribeDownloadLogFile(request, method EraseAllLogFiles (line 127) | def EraseAllLogFiles(request, FILE: mavsdk/manual_control.py class ManualControlResult (line 9) | class ManualControlResult: class Result (line 25) | class Result(Enum): method translate_to_rpc (line 71) | def translate_to_rpc(self): method translate_from_rpc (line 92) | def translate_from_rpc(rpc_enum_value): method __str__ (line 113) | def __str__(self): method __init__ (line 117) | def __init__( method __eq__ (line 125) | def __eq__(self, to_compare): method __str__ (line 137) | def __str__(self): method translate_from_rpc (line 147) | def translate_from_rpc(rpcManualControlResult): method translate_to_rpc (line 157) | def translate_to_rpc(self, rpcManualControlResult): class ManualControlError (line 176) | class ManualControlError(Exception): method __init__ (line 179) | def __init__(self, result, origin, *params): method __str__ (line 184) | def __str__(self): class ManualControl (line 188) | class ManualControl(AsyncBase): method _setup_stub (line 198) | def _setup_stub(self, channel): method _extract_result (line 203) | def _extract_result(self, response): method start_position_control (line 208) | async def start_position_control(self): method start_altitude_control (line 231) | async def start_altitude_control(self): method set_manual_control_input (line 254) | async def set_manual_control_input(self, x, y, z, r): FILE: mavsdk/manual_control_pb2_grpc.py class ManualControlServiceStub (line 8) | class ManualControlServiceStub(object): method __init__ (line 12) | def __init__(self, channel): class ManualControlServiceServicer (line 35) | class ManualControlServiceServicer(object): method StartPositionControl (line 39) | def StartPositionControl(self, request, context): method StartAltitudeControl (line 50) | def StartAltitudeControl(self, request, context): method SetManualControlInput (line 61) | def SetManualControlInput(self, request, context): function add_ManualControlServiceServicer_to_server (line 73) | def add_ManualControlServiceServicer_to_server(servicer, server): class ManualControlService (line 97) | class ManualControlService(object): method StartPositionControl (line 102) | def StartPositionControl(request, method StartAltitudeControl (line 119) | def StartAltitudeControl(request, method SetManualControlInput (line 136) | def SetManualControlInput(request, FILE: mavsdk/mission.py class MissionItem (line 9) | class MissionItem: class CameraAction (line 66) | class CameraAction(Enum): method translate_to_rpc (line 108) | def translate_to_rpc(self): method translate_from_rpc (line 127) | def translate_from_rpc(rpc_enum_value): method __str__ (line 146) | def __str__(self): class VehicleAction (line 150) | class VehicleAction(Enum): method translate_to_rpc (line 180) | def translate_to_rpc(self): method translate_from_rpc (line 193) | def translate_from_rpc(rpc_enum_value): method __str__ (line 206) | def __str__(self): method __init__ (line 210) | def __init__( method __eq__ (line 242) | def __eq__(self, to_compare): method __str__ (line 266) | def __str__(self): method translate_from_rpc (line 288) | def translate_from_rpc(rpcMissionItem): method translate_to_rpc (line 334) | def translate_to_rpc(self, rpcMissionItem): class MissionPlan (line 424) | class MissionPlan: method __init__ (line 437) | def __init__( method __eq__ (line 443) | def __eq__(self, to_compare): method __str__ (line 454) | def __str__(self): method translate_from_rpc (line 463) | def translate_from_rpc(rpcMissionPlan): method translate_to_rpc (line 470) | def translate_to_rpc(self, rpcMissionPlan): class MissionProgress (line 489) | class MissionProgress: method __init__ (line 505) | def __init__( method __eq__ (line 513) | def __eq__(self, to_compare): method __str__ (line 525) | def __str__(self): method translate_from_rpc (line 535) | def translate_from_rpc(rpcMissionProgress): method translate_to_rpc (line 545) | def translate_to_rpc(self, rpcMissionProgress): class MissionResult (line 563) | class MissionResult: class Result (line 579) | class Result(Enum): method translate_to_rpc (line 653) | def translate_to_rpc(self): method translate_from_rpc (line 688) | def translate_from_rpc(rpc_enum_value): method __str__ (line 723) | def __str__(self): method __init__ (line 727) | def __init__( method __eq__ (line 735) | def __eq__(self, to_compare): method __str__ (line 747) | def __str__(self): method translate_from_rpc (line 757) | def translate_from_rpc(rpcMissionResult): method translate_to_rpc (line 767) | def translate_to_rpc(self, rpcMissionResult): class ProgressData (line 785) | class ProgressData: method __init__ (line 798) | def __init__( method __eq__ (line 804) | def __eq__(self, to_compare): method __str__ (line 815) | def __str__(self): method translate_from_rpc (line 824) | def translate_from_rpc(rpcProgressData): method translate_to_rpc (line 831) | def translate_to_rpc(self, rpcProgressData): class ProgressDataOrMission (line 843) | class ProgressDataOrMission: method __init__ (line 865) | def __init__( method __eq__ (line 877) | def __eq__(self, to_compare): method __str__ (line 891) | def __str__(self): method translate_from_rpc (line 903) | def translate_from_rpc(rpcProgressDataOrMission): method translate_to_rpc (line 919) | def translate_to_rpc(self, rpcProgressDataOrMission): class MissionError (line 950) | class MissionError(Exception): method __init__ (line 953) | def __init__(self, result, origin, *params): method __str__ (line 958) | def __str__(self): class Mission (line 962) | class Mission(AsyncBase): method _setup_stub (line 972) | def _setup_stub(self, channel): method _extract_result (line 977) | def _extract_result(self, response): method upload_mission (line 982) | async def upload_mission(self, mission_plan): method upload_mission_with_progress (line 1014) | async def upload_mission_with_progress(self, mission_plan): method cancel_mission_upload (line 1066) | async def cancel_mission_upload(self): method download_mission (line 1086) | async def download_mission(self): method download_mission_with_progress (line 1117) | async def download_mission_with_progress(self): method cancel_mission_download (line 1160) | async def cancel_mission_download(self): method start_mission (line 1180) | async def start_mission(self): method pause_mission (line 1202) | async def pause_mission(self): method clear_mission (line 1227) | async def clear_mission(self): method set_current_mission_item (line 1247) | async def set_current_mission_item(self, index): method is_mission_finished (line 1279) | async def is_mission_finished(self): method mission_progress (line 1307) | async def mission_progress(self): method get_return_to_launch_after_mission (line 1331) | async def get_return_to_launch_after_mission(self): method set_return_to_launch_after_mission (line 1362) | async def set_return_to_launch_after_mission(self, enable): FILE: mavsdk/mission_pb2_grpc.py class MissionServiceStub (line 8) | class MissionServiceStub(object): method __init__ (line 12) | def __init__(self, channel): class MissionServiceServicer (line 90) | class MissionServiceServicer(object): method UploadMission (line 94) | def UploadMission(self, request, context): method SubscribeUploadMissionWithProgress (line 105) | def SubscribeUploadMissionWithProgress(self, request, context): method CancelMissionUpload (line 116) | def CancelMissionUpload(self, request, context): method DownloadMission (line 124) | def DownloadMission(self, request, context): method SubscribeDownloadMissionWithProgress (line 135) | def SubscribeDownloadMissionWithProgress(self, request, context): method CancelMissionDownload (line 146) | def CancelMissionDownload(self, request, context): method StartMission (line 154) | def StartMission(self, request, context): method PauseMission (line 164) | def PauseMission(self, request, context): method ClearMission (line 177) | def ClearMission(self, request, context): method SetCurrentMissionItem (line 185) | def SetCurrentMissionItem(self, request, context): method IsMissionFinished (line 199) | def IsMissionFinished(self, request, context): method SubscribeMissionProgress (line 207) | def SubscribeMissionProgress(self, request, context): method GetReturnToLaunchAfterMission (line 215) | def GetReturnToLaunchAfterMission(self, request, context): method SetReturnToLaunchAfterMission (line 226) | def SetReturnToLaunchAfterMission(self, request, context): function add_MissionServiceServicer_to_server (line 238) | def add_MissionServiceServicer_to_server(servicer, server): class MissionService (line 317) | class MissionService(object): method UploadMission (line 322) | def UploadMission(request, method SubscribeUploadMissionWithProgress (line 339) | def SubscribeUploadMissionWithProgress(request, method CancelMissionUpload (line 356) | def CancelMissionUpload(request, method DownloadMission (line 373) | def DownloadMission(request, method SubscribeDownloadMissionWithProgress (line 390) | def SubscribeDownloadMissionWithProgress(request, method CancelMissionDownload (line 407) | def CancelMissionDownload(request, method StartMission (line 424) | def StartMission(request, method PauseMission (line 441) | def PauseMission(request, method ClearMission (line 458) | def ClearMission(request, method SetCurrentMissionItem (line 475) | def SetCurrentMissionItem(request, method IsMissionFinished (line 492) | def IsMissionFinished(request, method SubscribeMissionProgress (line 509) | def SubscribeMissionProgress(request, method GetReturnToLaunchAfterMission (line 526) | def GetReturnToLaunchAfterMission(request, method SetReturnToLaunchAfterMission (line 543) | def SetReturnToLaunchAfterMission(request, FILE: mavsdk/mission_raw.py class MissionProgress (line 9) | class MissionProgress: method __init__ (line 25) | def __init__( method __eq__ (line 33) | def __eq__(self, to_compare): method __str__ (line 45) | def __str__(self): method translate_from_rpc (line 55) | def translate_from_rpc(rpcMissionProgress): method translate_to_rpc (line 65) | def translate_to_rpc(self, rpcMissionProgress): class MissionItem (line 83) | class MissionItem: method __init__ (line 132) | def __init__( method __eq__ (line 162) | def __eq__(self, to_compare): method __str__ (line 185) | def __str__(self): method translate_from_rpc (line 206) | def translate_from_rpc(rpcMissionItem): method translate_to_rpc (line 249) | def translate_to_rpc(self, rpcMissionItem): class MissionImportData (line 333) | class MissionImportData: method __init__ (line 352) | def __init__( method __eq__ (line 362) | def __eq__(self, to_compare): method __str__ (line 375) | def __str__(self): method translate_from_rpc (line 386) | def translate_from_rpc(rpcMissionImportData): method translate_to_rpc (line 399) | def translate_to_rpc(self, rpcMissionImportData): class MissionRawResult (line 444) | class MissionRawResult: class Result (line 460) | class Result(Enum): method translate_to_rpc (line 546) | def translate_to_rpc(self): method translate_from_rpc (line 587) | def translate_from_rpc(rpc_enum_value): method __str__ (line 628) | def __str__(self): method __init__ (line 632) | def __init__( method __eq__ (line 640) | def __eq__(self, to_compare): method __str__ (line 652) | def __str__(self): method translate_from_rpc (line 662) | def translate_from_rpc(rpcMissionRawResult): method translate_to_rpc (line 672) | def translate_to_rpc(self, rpcMissionRawResult): class MissionRawError (line 691) | class MissionRawError(Exception): method __init__ (line 694) | def __init__(self, result, origin, *params): method __str__ (line 699) | def __str__(self): class MissionRaw (line 703) | class MissionRaw(AsyncBase): method _setup_stub (line 713) | def _setup_stub(self, channel): method _extract_result (line 718) | def _extract_result(self, response): method upload_mission (line 723) | async def upload_mission(self, mission_items): method upload_geofence (line 762) | async def upload_geofence(self, mission_items): method upload_rally_points (line 798) | async def upload_rally_points(self, mission_items): method cancel_mission_upload (line 834) | async def cancel_mission_upload(self): method download_mission (line 854) | async def download_mission(self): method cancel_mission_download (line 886) | async def cancel_mission_download(self): method start_mission (line 906) | async def start_mission(self): method pause_mission (line 928) | async def pause_mission(self): method clear_mission (line 953) | async def clear_mission(self): method set_current_mission_item (line 973) | async def set_current_mission_item(self, index): method mission_progress (line 1002) | async def mission_progress(self): method mission_changed (line 1026) | async def mission_changed(self): method import_qgroundcontrol_mission (line 1056) | async def import_qgroundcontrol_mission(self, qgc_plan_path): method import_qgroundcontrol_mission_from_string (line 1099) | async def import_qgroundcontrol_mission_from_string(self, qgc_plan): FILE: mavsdk/mission_raw_pb2_grpc.py class MissionRawServiceStub (line 8) | class MissionRawServiceStub(object): method __init__ (line 12) | def __init__(self, channel): class MissionRawServiceServicer (line 90) | class MissionRawServiceServicer(object): method UploadMission (line 94) | def UploadMission(self, request, context): method UploadGeofence (line 105) | def UploadGeofence(self, request, context): method UploadRallyPoints (line 113) | def UploadRallyPoints(self, request, context): method CancelMissionUpload (line 121) | def CancelMissionUpload(self, request, context): method DownloadMission (line 129) | def DownloadMission(self, request, context): method CancelMissionDownload (line 137) | def CancelMissionDownload(self, request, context): method StartMission (line 145) | def StartMission(self, request, context): method PauseMission (line 155) | def PauseMission(self, request, context): method ClearMission (line 168) | def ClearMission(self, request, context): method SetCurrentMissionItem (line 176) | def SetCurrentMissionItem(self, request, context): method SubscribeMissionProgress (line 187) | def SubscribeMissionProgress(self, request, context): method SubscribeMissionChanged (line 195) | def SubscribeMissionChanged(self, request, context): method ImportQgroundcontrolMission (line 208) | def ImportQgroundcontrolMission(self, request, context): method ImportQgroundcontrolMissionFromString (line 222) | def ImportQgroundcontrolMissionFromString(self, request, context): function add_MissionRawServiceServicer_to_server (line 237) | def add_MissionRawServiceServicer_to_server(servicer, server): class MissionRawService (line 316) | class MissionRawService(object): method UploadMission (line 321) | def UploadMission(request, method UploadGeofence (line 338) | def UploadGeofence(request, method UploadRallyPoints (line 355) | def UploadRallyPoints(request, method CancelMissionUpload (line 372) | def CancelMissionUpload(request, method DownloadMission (line 389) | def DownloadMission(request, method CancelMissionDownload (line 406) | def CancelMissionDownload(request, method StartMission (line 423) | def StartMission(request, method PauseMission (line 440) | def PauseMission(request, method ClearMission (line 457) | def ClearMission(request, method SetCurrentMissionItem (line 474) | def SetCurrentMissionItem(request, method SubscribeMissionProgress (line 491) | def SubscribeMissionProgress(request, method SubscribeMissionChanged (line 508) | def SubscribeMissionChanged(request, method ImportQgroundcontrolMission (line 525) | def ImportQgroundcontrolMission(request, method ImportQgroundcontrolMissionFromString (line 542) | def ImportQgroundcontrolMissionFromString(request, FILE: mavsdk/mission_raw_server.py class MissionItem (line 9) | class MissionItem: method __init__ (line 58) | def __init__( method __eq__ (line 88) | def __eq__(self, to_compare): method __str__ (line 111) | def __str__(self): method translate_from_rpc (line 132) | def translate_from_rpc(rpcMissionItem): method translate_to_rpc (line 175) | def translate_to_rpc(self, rpcMissionItem): class MissionPlan (line 259) | class MissionPlan: method __init__ (line 272) | def __init__( method __eq__ (line 278) | def __eq__(self, to_compare): method __str__ (line 289) | def __str__(self): method translate_from_rpc (line 298) | def translate_from_rpc(rpcMissionPlan): method translate_to_rpc (line 305) | def translate_to_rpc(self, rpcMissionPlan): class MissionProgress (line 324) | class MissionProgress: method __init__ (line 340) | def __init__( method __eq__ (line 348) | def __eq__(self, to_compare): method __str__ (line 360) | def __str__(self): method translate_from_rpc (line 370) | def translate_from_rpc(rpcMissionProgress): method translate_to_rpc (line 380) | def translate_to_rpc(self, rpcMissionProgress): class MissionRawServerResult (line 398) | class MissionRawServerResult: class Result (line 414) | class Result(Enum): method translate_to_rpc (line 476) | def translate_to_rpc(self): method translate_from_rpc (line 505) | def translate_from_rpc(rpc_enum_value): method __str__ (line 534) | def __str__(self): method __init__ (line 538) | def __init__( method __eq__ (line 546) | def __eq__(self, to_compare): method __str__ (line 558) | def __str__(self): method translate_from_rpc (line 568) | def translate_from_rpc(rpcMissionRawServerResult): method translate_to_rpc (line 578) | def translate_to_rpc(self, rpcMissionRawServerResult): class MissionRawServerError (line 597) | class MissionRawServerError(Exception): method __init__ (line 600) | def __init__(self, result, origin, *params): method __str__ (line 605) | def __str__(self): class MissionRawServer (line 609) | class MissionRawServer(AsyncBase): method _setup_stub (line 620) | def _setup_stub(self, channel): method _extract_result (line 625) | def _extract_result(self, response): method incoming_mission (line 630) | async def incoming_mission(self): method current_item_changed (line 670) | async def current_item_changed(self): method set_current_item_complete (line 693) | async def set_current_item_complete(self): method clear_all (line 705) | async def clear_all(self): FILE: mavsdk/mission_raw_server_pb2_grpc.py class MissionRawServerServiceStub (line 8) | class MissionRawServerServiceStub(object): method __init__ (line 13) | def __init__(self, channel): class MissionRawServerServiceServicer (line 41) | class MissionRawServerServiceServicer(object): method SubscribeIncomingMission (line 46) | def SubscribeIncomingMission(self, request, context): method SubscribeCurrentItemChanged (line 54) | def SubscribeCurrentItemChanged(self, request, context): method SetCurrentItemComplete (line 62) | def SetCurrentItemComplete(self, request, context): method SubscribeClearAll (line 70) | def SubscribeClearAll(self, request, context): function add_MissionRawServerServiceServicer_to_server (line 79) | def add_MissionRawServerServiceServicer_to_server(servicer, server): class MissionRawServerService (line 108) | class MissionRawServerService(object): method SubscribeIncomingMission (line 114) | def SubscribeIncomingMission(request, method SubscribeCurrentItemChanged (line 131) | def SubscribeCurrentItemChanged(request, method SetCurrentItemComplete (line 148) | def SetCurrentItemComplete(request, method SubscribeClearAll (line 165) | def SubscribeClearAll(request, FILE: mavsdk/mocap.py class PositionBody (line 9) | class PositionBody: method __init__ (line 28) | def __init__( method __eq__ (line 38) | def __eq__(self, to_compare): method __str__ (line 51) | def __str__(self): method translate_from_rpc (line 62) | def translate_from_rpc(rpcPositionBody): method translate_to_rpc (line 75) | def translate_to_rpc(self, rpcPositionBody): class AngleBody (line 99) | class AngleBody: method __init__ (line 118) | def __init__( method __eq__ (line 128) | def __eq__(self, to_compare): method __str__ (line 141) | def __str__(self): method translate_from_rpc (line 152) | def translate_from_rpc(rpcAngleBody): method translate_to_rpc (line 165) | def translate_to_rpc(self, rpcAngleBody): class SpeedBody (line 189) | class SpeedBody: method __init__ (line 208) | def __init__( method __eq__ (line 218) | def __eq__(self, to_compare): method __str__ (line 231) | def __str__(self): method translate_from_rpc (line 242) | def translate_from_rpc(rpcSpeedBody): method translate_to_rpc (line 255) | def translate_to_rpc(self, rpcSpeedBody): class AngularVelocityBody (line 279) | class AngularVelocityBody: method __init__ (line 298) | def __init__( method __eq__ (line 308) | def __eq__(self, to_compare): method __str__ (line 321) | def __str__(self): method translate_from_rpc (line 332) | def translate_from_rpc(rpcAngularVelocityBody): method translate_to_rpc (line 345) | def translate_to_rpc(self, rpcAngularVelocityBody): class Covariance (line 369) | class Covariance: method __init__ (line 385) | def __init__( method __eq__ (line 391) | def __eq__(self, to_compare): method __str__ (line 402) | def __str__(self): method translate_from_rpc (line 411) | def translate_from_rpc(rpcCovariance): method translate_to_rpc (line 418) | def translate_to_rpc(self, rpcCovariance): class Quaternion (line 431) | class Quaternion: method __init__ (line 460) | def __init__( method __eq__ (line 472) | def __eq__(self, to_compare): method __str__ (line 486) | def __str__(self): method translate_from_rpc (line 498) | def translate_from_rpc(rpcQuaternion): method translate_to_rpc (line 514) | def translate_to_rpc(self, rpcQuaternion): class VisionPositionEstimate (line 544) | class VisionPositionEstimate: method __init__ (line 566) | def __init__( method __eq__ (line 578) | def __eq__(self, to_compare): method __str__ (line 592) | def __str__(self): method translate_from_rpc (line 604) | def translate_from_rpc(rpcVisionPositionEstimate): method translate_to_rpc (line 620) | def translate_to_rpc(self, rpcVisionPositionEstimate): class AttitudePositionMocap (line 650) | class AttitudePositionMocap: method __init__ (line 672) | def __init__( method __eq__ (line 684) | def __eq__(self, to_compare): method __str__ (line 698) | def __str__(self): method translate_from_rpc (line 710) | def translate_from_rpc(rpcAttitudePositionMocap): method translate_to_rpc (line 726) | def translate_to_rpc(self, rpcAttitudePositionMocap): class Odometry (line 756) | class Odometry: class MavFrame (line 790) | class MavFrame(Enum): method translate_to_rpc (line 808) | def translate_to_rpc(self): method translate_from_rpc (line 815) | def translate_from_rpc(rpc_enum_value): method __str__ (line 822) | def __str__(self): method __init__ (line 826) | def __init__( method __eq__ (line 846) | def __eq__(self, to_compare): method __str__ (line 864) | def __str__(self): method translate_from_rpc (line 880) | def translate_from_rpc(rpcOdometry): method translate_to_rpc (line 908) | def translate_to_rpc(self, rpcOdometry): class MocapResult (line 962) | class MocapResult: class Result (line 978) | class Result(Enum): method translate_to_rpc (line 1012) | def translate_to_rpc(self): method translate_from_rpc (line 1027) | def translate_from_rpc(rpc_enum_value): method __str__ (line 1042) | def __str__(self): method __init__ (line 1046) | def __init__( method __eq__ (line 1054) | def __eq__(self, to_compare): method __str__ (line 1066) | def __str__(self): method translate_from_rpc (line 1076) | def translate_from_rpc(rpcMocapResult): method translate_to_rpc (line 1086) | def translate_to_rpc(self, rpcMocapResult): class MocapError (line 1105) | class MocapError(Exception): method __init__ (line 1108) | def __init__(self, result, origin, *params): method __str__ (line 1113) | def __str__(self): class Mocap (line 1117) | class Mocap(AsyncBase): method _setup_stub (line 1130) | def _setup_stub(self, channel): method _extract_result (line 1135) | def _extract_result(self, response): method set_vision_position_estimate (line 1140) | async def set_vision_position_estimate(self, vision_position_estimate): method set_attitude_position_mocap (line 1169) | async def set_attitude_position_mocap(self, attitude_position_mocap): method set_odometry (line 1198) | async def set_odometry(self, odometry): FILE: mavsdk/mocap_pb2_grpc.py class MocapServiceStub (line 8) | class MocapServiceStub(object): method __init__ (line 15) | def __init__(self, channel): class MocapServiceServicer (line 38) | class MocapServiceServicer(object): method SetVisionPositionEstimate (line 45) | def SetVisionPositionEstimate(self, request, context): method SetAttitudePositionMocap (line 52) | def SetAttitudePositionMocap(self, request, context): method SetOdometry (line 59) | def SetOdometry(self, request, context): function add_MocapServiceServicer_to_server (line 67) | def add_MocapServiceServicer_to_server(servicer, server): class MocapService (line 91) | class MocapService(object): method SetVisionPositionEstimate (line 99) | def SetVisionPositionEstimate(request, method SetAttitudePositionMocap (line 116) | def SetAttitudePositionMocap(request, method SetOdometry (line 133) | def SetOdometry(request, FILE: mavsdk/offboard.py class Attitude (line 9) | class Attitude: method __init__ (line 31) | def __init__( method __eq__ (line 43) | def __eq__(self, to_compare): method __str__ (line 57) | def __str__(self): method translate_from_rpc (line 69) | def translate_from_rpc(rpcAttitude): method translate_to_rpc (line 85) | def translate_to_rpc(self, rpcAttitude): class ActuatorControlGroup (line 115) | class ActuatorControlGroup: method __init__ (line 129) | def __init__( method __eq__ (line 135) | def __eq__(self, to_compare): method __str__ (line 146) | def __str__(self): method translate_from_rpc (line 155) | def translate_from_rpc(rpcActuatorControlGroup): method translate_to_rpc (line 162) | def translate_to_rpc(self, rpcActuatorControlGroup): class ActuatorControl (line 175) | class ActuatorControl: method __init__ (line 202) | def __init__( method __eq__ (line 208) | def __eq__(self, to_compare): method __str__ (line 219) | def __str__(self): method translate_from_rpc (line 228) | def translate_from_rpc(rpcActuatorControl): method translate_to_rpc (line 235) | def translate_to_rpc(self, rpcActuatorControl): class AttitudeRate (line 254) | class AttitudeRate: method __init__ (line 276) | def __init__( method __eq__ (line 288) | def __eq__(self, to_compare): method __str__ (line 302) | def __str__(self): method translate_from_rpc (line 314) | def translate_from_rpc(rpcAttitudeRate): method translate_to_rpc (line 330) | def translate_to_rpc(self, rpcAttitudeRate): class PositionNedYaw (line 360) | class PositionNedYaw: method __init__ (line 382) | def __init__( method __eq__ (line 394) | def __eq__(self, to_compare): method __str__ (line 408) | def __str__(self): method translate_from_rpc (line 420) | def translate_from_rpc(rpcPositionNedYaw): method translate_to_rpc (line 436) | def translate_to_rpc(self, rpcPositionNedYaw): class PositionGlobalYaw (line 466) | class PositionGlobalYaw: class AltitudeType (line 491) | class AltitudeType(Enum): method translate_to_rpc (line 513) | def translate_to_rpc(self): method translate_from_rpc (line 522) | def translate_from_rpc(rpc_enum_value): method __str__ (line 531) | def __str__(self): method __init__ (line 535) | def __init__( method __eq__ (line 549) | def __eq__(self, to_compare): method __str__ (line 564) | def __str__(self): method translate_from_rpc (line 577) | def translate_from_rpc(rpcPositionGlobalYaw): method translate_to_rpc (line 596) | def translate_to_rpc(self, rpcPositionGlobalYaw): class VelocityBodyYawspeed (line 632) | class VelocityBodyYawspeed: method __init__ (line 654) | def __init__( method __eq__ (line 666) | def __eq__(self, to_compare): method __str__ (line 680) | def __str__(self): method translate_from_rpc (line 692) | def translate_from_rpc(rpcVelocityBodyYawspeed): method translate_to_rpc (line 708) | def translate_to_rpc(self, rpcVelocityBodyYawspeed): class VelocityNedYaw (line 738) | class VelocityNedYaw: method __init__ (line 760) | def __init__( method __eq__ (line 772) | def __eq__(self, to_compare): method __str__ (line 786) | def __str__(self): method translate_from_rpc (line 798) | def translate_from_rpc(rpcVelocityNedYaw): method translate_to_rpc (line 814) | def translate_to_rpc(self, rpcVelocityNedYaw): class AccelerationNed (line 844) | class AccelerationNed: method __init__ (line 863) | def __init__( method __eq__ (line 873) | def __eq__(self, to_compare): method __str__ (line 886) | def __str__(self): method translate_from_rpc (line 897) | def translate_from_rpc(rpcAccelerationNed): method translate_to_rpc (line 910) | def translate_to_rpc(self, rpcAccelerationNed): class OffboardResult (line 934) | class OffboardResult: class Result (line 950) | class Result(Enum): method translate_to_rpc (line 996) | def translate_to_rpc(self): method translate_from_rpc (line 1017) | def translate_from_rpc(rpc_enum_value): method __str__ (line 1038) | def __str__(self): method __init__ (line 1042) | def __init__( method __eq__ (line 1050) | def __eq__(self, to_compare): method __str__ (line 1062) | def __str__(self): method translate_from_rpc (line 1072) | def translate_from_rpc(rpcOffboardResult): method translate_to_rpc (line 1082) | def translate_to_rpc(self, rpcOffboardResult): class OffboardError (line 1101) | class OffboardError(Exception): method __init__ (line 1104) | def __init__(self, result, origin, *params): method __str__ (line 1109) | def __str__(self): class Offboard (line 1113) | class Offboard(AsyncBase): method _setup_stub (line 1131) | def _setup_stub(self, channel): method _extract_result (line 1136) | def _extract_result(self, response): method start (line 1141) | async def start(self): method stop (line 1161) | async def stop(self): method is_active (line 1183) | async def is_active(self): method set_attitude (line 1206) | async def set_attitude(self, attitude): method set_actuator_control (line 1235) | async def set_actuator_control(self, actuator_control): method set_attitude_rate (line 1267) | async def set_attitude_rate(self, attitude_rate): method set_position_ned (line 1296) | async def set_position_ned(self, position_ned_yaw): method set_position_global (line 1325) | async def set_position_global(self, position_global_yaw): method set_velocity_body (line 1354) | async def set_velocity_body(self, velocity_body_yawspeed): method set_velocity_ned (line 1383) | async def set_velocity_ned(self, velocity_ned_yaw): method set_position_velocity_ned (line 1412) | async def set_position_velocity_ned(self, position_ned_yaw, velocity_n... method set_position_velocity_acceleration_ned (line 1448) | async def set_position_velocity_acceleration_ned(self, position_ned_ya... method set_acceleration_ned (line 1491) | async def set_acceleration_ned(self, acceleration_ned): FILE: mavsdk/offboard_pb2_grpc.py class OffboardServiceStub (line 8) | class OffboardServiceStub(object): method __init__ (line 20) | def __init__(self, channel): class OffboardServiceServicer (line 93) | class OffboardServiceServicer(object): method Start (line 105) | def Start(self, request, context): method Stop (line 113) | def Stop(self, request, context): method IsActive (line 123) | def IsActive(self, request, context): method SetAttitude (line 134) | def SetAttitude(self, request, context): method SetActuatorControl (line 142) | def SetActuatorControl(self, request, context): method SetAttitudeRate (line 153) | def SetAttitudeRate(self, request, context): method SetPositionNed (line 161) | def SetPositionNed(self, request, context): method SetPositionGlobal (line 169) | def SetPositionGlobal(self, request, context): method SetVelocityBody (line 177) | def SetVelocityBody(self, request, context): method SetVelocityNed (line 185) | def SetVelocityNed(self, request, context): method SetPositionVelocityNed (line 193) | def SetPositionVelocityNed(self, request, context): method SetPositionVelocityAccelerationNed (line 201) | def SetPositionVelocityAccelerationNed(self, request, context): method SetAccelerationNed (line 209) | def SetAccelerationNed(self, request, context): function add_OffboardServiceServicer_to_server (line 218) | def add_OffboardServiceServicer_to_server(servicer, server): class OffboardService (line 292) | class OffboardService(object): method Start (line 305) | def Start(request, method Stop (line 322) | def Stop(request, method IsActive (line 339) | def IsActive(request, method SetAttitude (line 356) | def SetAttitude(request, method SetActuatorControl (line 373) | def SetActuatorControl(request, method SetAttitudeRate (line 390) | def SetAttitudeRate(request, method SetPositionNed (line 407) | def SetPositionNed(request, method SetPositionGlobal (line 424) | def SetPositionGlobal(request, method SetVelocityBody (line 441) | def SetVelocityBody(request, method SetVelocityNed (line 458) | def SetVelocityNed(request, method SetPositionVelocityNed (line 475) | def SetPositionVelocityNed(request, method SetPositionVelocityAccelerationNed (line 492) | def SetPositionVelocityAccelerationNed(request, method SetAccelerationNed (line 509) | def SetAccelerationNed(request, FILE: mavsdk/param.py class ProtocolVersion (line 9) | class ProtocolVersion(Enum): method translate_to_rpc (line 27) | def translate_to_rpc(self): method translate_from_rpc (line 34) | def translate_from_rpc(rpc_enum_value): method __str__ (line 41) | def __str__(self): class IntParam (line 45) | class IntParam: method __init__ (line 61) | def __init__( method __eq__ (line 69) | def __eq__(self, to_compare): method __str__ (line 81) | def __str__(self): method translate_from_rpc (line 91) | def translate_from_rpc(rpcIntParam): method translate_to_rpc (line 101) | def translate_to_rpc(self, rpcIntParam): class FloatParam (line 119) | class FloatParam: method __init__ (line 135) | def __init__( method __eq__ (line 143) | def __eq__(self, to_compare): method __str__ (line 155) | def __str__(self): method translate_from_rpc (line 165) | def translate_from_rpc(rpcFloatParam): method translate_to_rpc (line 175) | def translate_to_rpc(self, rpcFloatParam): class CustomParam (line 193) | class CustomParam: method __init__ (line 209) | def __init__( method __eq__ (line 217) | def __eq__(self, to_compare): method __str__ (line 229) | def __str__(self): method translate_from_rpc (line 239) | def translate_from_rpc(rpcCustomParam): method translate_to_rpc (line 249) | def translate_to_rpc(self, rpcCustomParam): class AllParams (line 267) | class AllParams: method __init__ (line 286) | def __init__( method __eq__ (line 296) | def __eq__(self, to_compare): method __str__ (line 309) | def __str__(self): method translate_from_rpc (line 320) | def translate_from_rpc(rpcAllParams): method translate_to_rpc (line 333) | def translate_to_rpc(self, rpcAllParams): class ParamResult (line 378) | class ParamResult: class Result (line 394) | class Result(Enum): method translate_to_rpc (line 440) | def translate_to_rpc(self): method translate_from_rpc (line 461) | def translate_from_rpc(rpc_enum_value): method __str__ (line 482) | def __str__(self): method __init__ (line 486) | def __init__( method __eq__ (line 494) | def __eq__(self, to_compare): method __str__ (line 506) | def __str__(self): method translate_from_rpc (line 516) | def translate_from_rpc(rpcParamResult): method translate_to_rpc (line 526) | def translate_to_rpc(self, rpcParamResult): class ParamError (line 545) | class ParamError(Exception): method __init__ (line 548) | def __init__(self, result, origin, *params): method __str__ (line 553) | def __str__(self): class Param (line 557) | class Param(AsyncBase): method _setup_stub (line 567) | def _setup_stub(self, channel): method _extract_result (line 572) | def _extract_result(self, response): method get_param_int (line 577) | async def get_param_int(self, name): method set_param_int (line 616) | async def set_param_int(self, name, value): method get_param_float (line 648) | async def get_param_float(self, name): method set_param_float (line 687) | async def set_param_float(self, name, value): method get_param_custom (line 719) | async def get_param_custom(self, name): method set_param_custom (line 758) | async def set_param_custom(self, name, value): method get_all_params (line 790) | async def get_all_params(self): method select_component (line 810) | async def select_component(self, component_id, protocol_version): FILE: mavsdk/param_pb2_grpc.py class ParamServiceStub (line 8) | class ParamServiceStub(object): method __init__ (line 12) | def __init__(self, channel): class ParamServiceServicer (line 60) | class ParamServiceServicer(object): method GetParamInt (line 64) | def GetParamInt(self, request, context): method SetParamInt (line 74) | def SetParamInt(self, request, context): method GetParamFloat (line 84) | def GetParamFloat(self, request, context): method SetParamFloat (line 94) | def SetParamFloat(self, request, context): method GetParamCustom (line 104) | def GetParamCustom(self, request, context): method SetParamCustom (line 114) | def SetParamCustom(self, request, context): method GetAllParams (line 124) | def GetAllParams(self, request, context): method SelectComponent (line 132) | def SelectComponent(self, request, context): function add_ParamServiceServicer_to_server (line 143) | def add_ParamServiceServicer_to_server(servicer, server): class ParamService (line 192) | class ParamService(object): method GetParamInt (line 197) | def GetParamInt(request, method SetParamInt (line 214) | def SetParamInt(request, method GetParamFloat (line 231) | def GetParamFloat(request, method SetParamFloat (line 248) | def SetParamFloat(request, method GetParamCustom (line 265) | def GetParamCustom(request, method SetParamCustom (line 282) | def SetParamCustom(request, method GetAllParams (line 299) | def GetAllParams(request, method SelectComponent (line 316) | def SelectComponent(request, FILE: mavsdk/param_server.py class IntParam (line 9) | class IntParam: method __init__ (line 25) | def __init__( method __eq__ (line 33) | def __eq__(self, to_compare): method __str__ (line 45) | def __str__(self): method translate_from_rpc (line 55) | def translate_from_rpc(rpcIntParam): method translate_to_rpc (line 65) | def translate_to_rpc(self, rpcIntParam): class FloatParam (line 83) | class FloatParam: method __init__ (line 99) | def __init__( method __eq__ (line 107) | def __eq__(self, to_compare): method __str__ (line 119) | def __str__(self): method translate_from_rpc (line 129) | def translate_from_rpc(rpcFloatParam): method translate_to_rpc (line 139) | def translate_to_rpc(self, rpcFloatParam): class CustomParam (line 157) | class CustomParam: method __init__ (line 173) | def __init__( method __eq__ (line 181) | def __eq__(self, to_compare): method __str__ (line 193) | def __str__(self): method translate_from_rpc (line 203) | def translate_from_rpc(rpcCustomParam): method translate_to_rpc (line 213) | def translate_to_rpc(self, rpcCustomParam): class AllParams (line 231) | class AllParams: method __init__ (line 250) | def __init__( method __eq__ (line 260) | def __eq__(self, to_compare): method __str__ (line 273) | def __str__(self): method translate_from_rpc (line 284) | def translate_from_rpc(rpcAllParams): method translate_to_rpc (line 297) | def translate_to_rpc(self, rpcAllParams): class ParamServerResult (line 342) | class ParamServerResult: class Result (line 358) | class Result(Enum): method translate_to_rpc (line 396) | def translate_to_rpc(self): method translate_from_rpc (line 413) | def translate_from_rpc(rpc_enum_value): method __str__ (line 430) | def __str__(self): method __init__ (line 434) | def __init__( method __eq__ (line 442) | def __eq__(self, to_compare): method __str__ (line 454) | def __str__(self): method translate_from_rpc (line 464) | def translate_from_rpc(rpcParamServerResult): method translate_to_rpc (line 474) | def translate_to_rpc(self, rpcParamServerResult): class ParamServerError (line 493) | class ParamServerError(Exception): method __init__ (line 496) | def __init__(self, result, origin, *params): method __str__ (line 501) | def __str__(self): class ParamServer (line 505) | class ParamServer(AsyncBase): method _setup_stub (line 515) | def _setup_stub(self, channel): method _extract_result (line 520) | def _extract_result(self, response): method retrieve_param_int (line 525) | async def retrieve_param_int(self, name): method provide_param_int (line 564) | async def provide_param_int(self, name, value): method retrieve_param_float (line 596) | async def retrieve_param_float(self, name): method provide_param_float (line 635) | async def provide_param_float(self, name, value): method retrieve_param_custom (line 667) | async def retrieve_param_custom(self, name): method provide_param_custom (line 706) | async def provide_param_custom(self, name, value): method retrieve_all_params (line 738) | async def retrieve_all_params(self): FILE: mavsdk/param_server_pb2_grpc.py class ParamServerServiceStub (line 8) | class ParamServerServiceStub(object): method __init__ (line 12) | def __init__(self, channel): class ParamServerServiceServicer (line 55) | class ParamServerServiceServicer(object): method RetrieveParamInt (line 59) | def RetrieveParamInt(self, request, context): method ProvideParamInt (line 69) | def ProvideParamInt(self, request, context): method RetrieveParamFloat (line 79) | def RetrieveParamFloat(self, request, context): method ProvideParamFloat (line 89) | def ProvideParamFloat(self, request, context): method RetrieveParamCustom (line 99) | def RetrieveParamCustom(self, request, context): method ProvideParamCustom (line 109) | def ProvideParamCustom(self, request, context): method RetrieveAllParams (line 119) | def RetrieveAllParams(self, request, context): function add_ParamServerServiceServicer_to_server (line 128) | def add_ParamServerServiceServicer_to_server(servicer, server): class ParamServerService (line 172) | class ParamServerService(object): method RetrieveParamInt (line 177) | def RetrieveParamInt(request, method ProvideParamInt (line 194) | def ProvideParamInt(request, method RetrieveParamFloat (line 211) | def RetrieveParamFloat(request, method ProvideParamFloat (line 228) | def ProvideParamFloat(request, method RetrieveParamCustom (line 245) | def RetrieveParamCustom(request, method ProvideParamCustom (line 262) | def ProvideParamCustom(request, method RetrieveAllParams (line 279) | def RetrieveAllParams(request, FILE: mavsdk/rtk.py class RtcmData (line 9) | class RtcmData: method __init__ (line 22) | def __init__( method __eq__ (line 28) | def __eq__(self, to_compare): method __str__ (line 39) | def __str__(self): method translate_from_rpc (line 48) | def translate_from_rpc(rpcRtcmData): method translate_to_rpc (line 55) | def translate_to_rpc(self, rpcRtcmData): class RtkResult (line 67) | class RtkResult: class Result (line 83) | class Result(Enum): method translate_to_rpc (line 113) | def translate_to_rpc(self): method translate_from_rpc (line 126) | def translate_from_rpc(rpc_enum_value): method __str__ (line 139) | def __str__(self): method __init__ (line 143) | def __init__( method __eq__ (line 151) | def __eq__(self, to_compare): method __str__ (line 163) | def __str__(self): method translate_from_rpc (line 173) | def translate_from_rpc(rpcRtkResult): method translate_to_rpc (line 183) | def translate_to_rpc(self, rpcRtkResult): class RtkError (line 202) | class RtkError(Exception): method __init__ (line 205) | def __init__(self, result, origin, *params): method __str__ (line 210) | def __str__(self): class Rtk (line 214) | class Rtk(AsyncBase): method _setup_stub (line 224) | def _setup_stub(self, channel): method _extract_result (line 229) | def _extract_result(self, response): method send_rtcm_data (line 234) | async def send_rtcm_data(self, rtcm_data): FILE: mavsdk/rtk_pb2_grpc.py class RtkServiceStub (line 8) | class RtkServiceStub(object): method __init__ (line 12) | def __init__(self, channel): class RtkServiceServicer (line 25) | class RtkServiceServicer(object): method SendRtcmData (line 29) | def SendRtcmData(self, request, context): function add_RtkServiceServicer_to_server (line 37) | def add_RtkServiceServicer_to_server(servicer, server): class RtkService (line 51) | class RtkService(object): method SendRtcmData (line 56) | def SendRtcmData(request, FILE: mavsdk/server_utility.py class StatusTextType (line 9) | class StatusTextType(Enum): method translate_to_rpc (line 51) | def translate_to_rpc(self): method translate_from_rpc (line 70) | def translate_from_rpc(rpc_enum_value): method __str__ (line 89) | def __str__(self): class ServerUtilityResult (line 93) | class ServerUtilityResult: class Result (line 109) | class Result(Enum): method translate_to_rpc (line 139) | def translate_to_rpc(self): method translate_from_rpc (line 152) | def translate_from_rpc(rpc_enum_value): method __str__ (line 165) | def __str__(self): method __init__ (line 169) | def __init__( method __eq__ (line 177) | def __eq__(self, to_compare): method __str__ (line 189) | def __str__(self): method translate_from_rpc (line 199) | def translate_from_rpc(rpcServerUtilityResult): method translate_to_rpc (line 209) | def translate_to_rpc(self, rpcServerUtilityResult): class ServerUtilityError (line 228) | class ServerUtilityError(Exception): method __init__ (line 231) | def __init__(self, result, origin, *params): method __str__ (line 236) | def __str__(self): class ServerUtility (line 240) | class ServerUtility(AsyncBase): method _setup_stub (line 250) | def _setup_stub(self, channel): method _extract_result (line 255) | def _extract_result(self, response): method send_status_text (line 260) | async def send_status_text(self, type, text): FILE: mavsdk/server_utility_pb2_grpc.py class ServerUtilityServiceStub (line 8) | class ServerUtilityServiceStub(object): method __init__ (line 13) | def __init__(self, channel): class ServerUtilityServiceServicer (line 26) | class ServerUtilityServiceServicer(object): method SendStatusText (line 31) | def SendStatusText(self, request, context): function add_ServerUtilityServiceServicer_to_server (line 39) | def add_ServerUtilityServiceServicer_to_server(servicer, server): class ServerUtilityService (line 53) | class ServerUtilityService(object): method SendStatusText (line 59) | def SendStatusText(request, FILE: mavsdk/shell.py class ShellResult (line 9) | class ShellResult: class Result (line 25) | class Result(Enum): method translate_to_rpc (line 59) | def translate_to_rpc(self): method translate_from_rpc (line 74) | def translate_from_rpc(rpc_enum_value): method __str__ (line 89) | def __str__(self): method __init__ (line 93) | def __init__( method __eq__ (line 101) | def __eq__(self, to_compare): method __str__ (line 113) | def __str__(self): method translate_from_rpc (line 123) | def translate_from_rpc(rpcShellResult): method translate_to_rpc (line 133) | def translate_to_rpc(self, rpcShellResult): class ShellError (line 152) | class ShellError(Exception): method __init__ (line 155) | def __init__(self, result, origin, *params): method __str__ (line 160) | def __str__(self): class Shell (line 164) | class Shell(AsyncBase): method _setup_stub (line 175) | def _setup_stub(self, channel): method _extract_result (line 180) | def _extract_result(self, response): method send (line 185) | async def send(self, command): method receive (line 211) | async def receive(self): FILE: mavsdk/shell_pb2_grpc.py class ShellServiceStub (line 8) | class ShellServiceStub(object): method __init__ (line 13) | def __init__(self, channel): class ShellServiceServicer (line 31) | class ShellServiceServicer(object): method Send (line 36) | def Send(self, request, context): method SubscribeReceive (line 44) | def SubscribeReceive(self, request, context): function add_ShellServiceServicer_to_server (line 55) | def add_ShellServiceServicer_to_server(servicer, server): class ShellService (line 74) | class ShellService(object): method Send (line 80) | def Send(request, method SubscribeReceive (line 97) | def SubscribeReceive(request, FILE: mavsdk/system.py class _LoggingThread (line 43) | class _LoggingThread(threading.Thread): method __init__ (line 44) | def __init__(self, pipe, log_fn): method run (line 49) | def run(self): class System (line 53) | class System: method __init__ (line 76) | def __init__(self, mavsdk_server_address=None, port=50051, sysid=245, ... method __del__ (line 85) | def __del__(self): method connect (line 88) | async def connect(self, system_address=None): method _stop_mavsdk_server (line 118) | def _stop_mavsdk_server(self): method _init_plugins (line 127) | async def _init_plugins(self, host, port): method error_uninitialized (line 164) | def error_uninitialized(plugin_name: str) -> str: method action (line 169) | def action(self) -> action.Action: method action_server (line 175) | def action_server(self) -> action_server.ActionServer: method calibration (line 181) | def calibration(self) -> calibration.Calibration: method camera (line 187) | def camera(self) -> camera.Camera: method camera_server (line 193) | def camera_server(self) -> camera_server.CameraServer: method component_information (line 199) | def component_information(self) -> component_information.ComponentInfo... method component_information_server (line 205) | def component_information_server(self) -> component_information_server... method core (line 211) | def core(self) -> core.Core: method failure (line 217) | def failure(self) -> failure.Failure: method follow_me (line 223) | def follow_me(self) -> follow_me.FollowMe: method ftp (line 229) | def ftp(self) -> ftp.Ftp: method geofence (line 235) | def geofence(self) -> geofence.Geofence: method gimbal (line 241) | def gimbal(self) -> gimbal.Gimbal: method info (line 247) | def info(self) -> info.Info: method log_files (line 253) | def log_files(self) -> log_files.LogFiles: method manual_control (line 259) | def manual_control(self) -> manual_control.ManualControl: method mission (line 265) | def mission(self) -> mission.Mission: method mission_raw (line 271) | def mission_raw(self) -> mission_raw.MissionRaw: method mission_raw_server (line 277) | def mission_raw_server(self) -> mission_raw_server.MissionRawServer: method mocap (line 283) | def mocap(self) -> mocap.Mocap: method offboard (line 289) | def offboard(self) -> offboard.Offboard: method param (line 295) | def param(self) -> param.Param: method param_server (line 301) | def param_server(self) -> param_server.ParamServer: method rtk (line 307) | def rtk(self) -> rtk.Rtk: method server_utility (line 313) | def server_utility(self) -> server_utility.ServerUtility: method shell (line 319) | def shell(self) -> shell.Shell: method telemetry (line 325) | def telemetry(self) -> telemetry.Telemetry: method telemetry_server (line 331) | def telemetry_server(self) -> telemetry_server.TelemetryServer: method tracking_server (line 337) | def tracking_server(self) -> tracking_server.TrackingServer: method transponder (line 343) | def transponder(self) -> transponder.Transponder: method tune (line 349) | def tune(self) -> tune.Tune: method _start_mavsdk_server (line 355) | def _start_mavsdk_server(system_address, port, sysid, compid): FILE: mavsdk/telemetry.py class FixType (line 9) | class FixType(Enum): method translate_to_rpc (line 47) | def translate_to_rpc(self): method translate_from_rpc (line 64) | def translate_from_rpc(rpc_enum_value): method __str__ (line 81) | def __str__(self): class FlightMode (line 85) | class FlightMode(Enum): method translate_to_rpc (line 158) | def translate_to_rpc(self): method translate_from_rpc (line 191) | def translate_from_rpc(rpc_enum_value): method __str__ (line 224) | def __str__(self): class StatusTextType (line 228) | class StatusTextType(Enum): method translate_to_rpc (line 270) | def translate_to_rpc(self): method translate_from_rpc (line 289) | def translate_from_rpc(rpc_enum_value): method __str__ (line 308) | def __str__(self): class LandedState (line 312) | class LandedState(Enum): method translate_to_rpc (line 342) | def translate_to_rpc(self): method translate_from_rpc (line 355) | def translate_from_rpc(rpc_enum_value): method __str__ (line 368) | def __str__(self): class VtolState (line 372) | class VtolState(Enum): method translate_to_rpc (line 402) | def translate_to_rpc(self): method translate_from_rpc (line 415) | def translate_from_rpc(rpc_enum_value): method __str__ (line 428) | def __str__(self): class Position (line 432) | class Position: method __init__ (line 454) | def __init__( method __eq__ (line 466) | def __eq__(self, to_compare): method __str__ (line 480) | def __str__(self): method translate_from_rpc (line 492) | def translate_from_rpc(rpcPosition): method translate_to_rpc (line 508) | def translate_to_rpc(self, rpcPosition): class Heading (line 538) | class Heading: method __init__ (line 551) | def __init__( method __eq__ (line 557) | def __eq__(self, to_compare): method __str__ (line 568) | def __str__(self): method translate_from_rpc (line 577) | def translate_from_rpc(rpcHeading): method translate_to_rpc (line 584) | def translate_to_rpc(self, rpcHeading): class Quaternion (line 596) | class Quaternion: method __init__ (line 628) | def __init__( method __eq__ (line 642) | def __eq__(self, to_compare): method __str__ (line 657) | def __str__(self): method translate_from_rpc (line 670) | def translate_from_rpc(rpcQuaternion): method translate_to_rpc (line 689) | def translate_to_rpc(self, rpcQuaternion): class EulerAngle (line 725) | class EulerAngle: method __init__ (line 752) | def __init__( method __eq__ (line 764) | def __eq__(self, to_compare): method __str__ (line 778) | def __str__(self): method translate_from_rpc (line 790) | def translate_from_rpc(rpcEulerAngle): method translate_to_rpc (line 806) | def translate_to_rpc(self, rpcEulerAngle): class AngularVelocityBody (line 836) | class AngularVelocityBody: method __init__ (line 855) | def __init__( method __eq__ (line 865) | def __eq__(self, to_compare): method __str__ (line 878) | def __str__(self): method translate_from_rpc (line 889) | def translate_from_rpc(rpcAngularVelocityBody): method translate_to_rpc (line 902) | def translate_to_rpc(self, rpcAngularVelocityBody): class GpsInfo (line 926) | class GpsInfo: method __init__ (line 942) | def __init__( method __eq__ (line 950) | def __eq__(self, to_compare): method __str__ (line 962) | def __str__(self): method translate_from_rpc (line 972) | def translate_from_rpc(rpcGpsInfo): method translate_to_rpc (line 982) | def translate_to_rpc(self, rpcGpsInfo): class RawGps (line 1000) | class RawGps: method __init__ (line 1055) | def __init__( method __eq__ (line 1087) | def __eq__(self, to_compare): method __str__ (line 1111) | def __str__(self): method translate_from_rpc (line 1133) | def translate_from_rpc(rpcRawGps): method translate_to_rpc (line 1179) | def translate_to_rpc(self, rpcRawGps): class Battery (line 1269) | class Battery: method __init__ (line 1297) | def __init__( method __eq__ (line 1313) | def __eq__(self, to_compare): method __str__ (line 1329) | def __str__(self): method translate_from_rpc (line 1343) | def translate_from_rpc(rpcBattery): method translate_to_rpc (line 1365) | def translate_to_rpc(self, rpcBattery): class Health (line 1407) | class Health: method __init__ (line 1438) | def __init__( method __eq__ (line 1456) | def __eq__(self, to_compare): method __str__ (line 1473) | def __str__(self): method translate_from_rpc (line 1488) | def translate_from_rpc(rpcHealth): method translate_to_rpc (line 1513) | def translate_to_rpc(self, rpcHealth): class RcStatus (line 1561) | class RcStatus: method __init__ (line 1580) | def __init__( method __eq__ (line 1590) | def __eq__(self, to_compare): method __str__ (line 1603) | def __str__(self): method translate_from_rpc (line 1614) | def translate_from_rpc(rpcRcStatus): method translate_to_rpc (line 1627) | def translate_to_rpc(self, rpcRcStatus): class StatusText (line 1651) | class StatusText: method __init__ (line 1667) | def __init__( method __eq__ (line 1675) | def __eq__(self, to_compare): method __str__ (line 1687) | def __str__(self): method translate_from_rpc (line 1697) | def translate_from_rpc(rpcStatusText): method translate_to_rpc (line 1707) | def translate_to_rpc(self, rpcStatusText): class ActuatorControlTarget (line 1725) | class ActuatorControlTarget: method __init__ (line 1741) | def __init__( method __eq__ (line 1749) | def __eq__(self, to_compare): method __str__ (line 1761) | def __str__(self): method translate_from_rpc (line 1771) | def translate_from_rpc(rpcActuatorControlTarget): method translate_to_rpc (line 1781) | def translate_to_rpc(self, rpcActuatorControlTarget): class ActuatorOutputStatus (line 1800) | class ActuatorOutputStatus: method __init__ (line 1816) | def __init__( method __eq__ (line 1824) | def __eq__(self, to_compare): method __str__ (line 1836) | def __str__(self): method translate_from_rpc (line 1846) | def translate_from_rpc(rpcActuatorOutputStatus): method translate_to_rpc (line 1856) | def translate_to_rpc(self, rpcActuatorOutputStatus): class Covariance (line 1875) | class Covariance: method __init__ (line 1892) | def __init__( method __eq__ (line 1898) | def __eq__(self, to_compare): method __str__ (line 1909) | def __str__(self): method translate_from_rpc (line 1918) | def translate_from_rpc(rpcCovariance): method translate_to_rpc (line 1925) | def translate_to_rpc(self, rpcCovariance): class VelocityBody (line 1938) | class VelocityBody: method __init__ (line 1957) | def __init__( method __eq__ (line 1967) | def __eq__(self, to_compare): method __str__ (line 1980) | def __str__(self): method translate_from_rpc (line 1991) | def translate_from_rpc(rpcVelocityBody): method translate_to_rpc (line 2004) | def translate_to_rpc(self, rpcVelocityBody): class PositionBody (line 2028) | class PositionBody: method __init__ (line 2047) | def __init__( method __eq__ (line 2057) | def __eq__(self, to_compare): method __str__ (line 2070) | def __str__(self): method translate_from_rpc (line 2081) | def translate_from_rpc(rpcPositionBody): method translate_to_rpc (line 2094) | def translate_to_rpc(self, rpcPositionBody): class Odometry (line 2118) | class Odometry: class MavFrame (line 2155) | class MavFrame(Enum): method translate_to_rpc (line 2181) | def translate_to_rpc(self): method translate_from_rpc (line 2192) | def translate_from_rpc(rpc_enum_value): method __str__ (line 2203) | def __str__(self): method __init__ (line 2207) | def __init__( method __eq__ (line 2229) | def __eq__(self, to_compare): method __str__ (line 2248) | def __str__(self): method translate_from_rpc (line 2265) | def translate_from_rpc(rpcOdometry): method translate_to_rpc (line 2296) | def translate_to_rpc(self, rpcOdometry): class DistanceSensor (line 2356) | class DistanceSensor: method __init__ (line 2375) | def __init__( method __eq__ (line 2385) | def __eq__(self, to_compare): method __str__ (line 2398) | def __str__(self): method translate_from_rpc (line 2409) | def translate_from_rpc(rpcDistanceSensor): method translate_to_rpc (line 2422) | def translate_to_rpc(self, rpcDistanceSensor): class ScaledPressure (line 2446) | class ScaledPressure: method __init__ (line 2471) | def __init__( method __eq__ (line 2485) | def __eq__(self, to_compare): method __str__ (line 2500) | def __str__(self): method translate_from_rpc (line 2513) | def translate_from_rpc(rpcScaledPressure): method translate_to_rpc (line 2532) | def translate_to_rpc(self, rpcScaledPressure): class PositionNed (line 2568) | class PositionNed: method __init__ (line 2587) | def __init__( method __eq__ (line 2597) | def __eq__(self, to_compare): method __str__ (line 2610) | def __str__(self): method translate_from_rpc (line 2621) | def translate_from_rpc(rpcPositionNed): method translate_to_rpc (line 2634) | def translate_to_rpc(self, rpcPositionNed): class VelocityNed (line 2658) | class VelocityNed: method __init__ (line 2677) | def __init__( method __eq__ (line 2687) | def __eq__(self, to_compare): method __str__ (line 2700) | def __str__(self): method translate_from_rpc (line 2711) | def translate_from_rpc(rpcVelocityNed): method translate_to_rpc (line 2724) | def translate_to_rpc(self, rpcVelocityNed): class PositionVelocityNed (line 2748) | class PositionVelocityNed: method __init__ (line 2764) | def __init__( method __eq__ (line 2772) | def __eq__(self, to_compare): method __str__ (line 2784) | def __str__(self): method translate_from_rpc (line 2794) | def translate_from_rpc(rpcPositionVelocityNed): method translate_to_rpc (line 2804) | def translate_to_rpc(self, rpcPositionVelocityNed): class GroundTruth (line 2822) | class GroundTruth: method __init__ (line 2841) | def __init__( method __eq__ (line 2851) | def __eq__(self, to_compare): method __str__ (line 2864) | def __str__(self): method translate_from_rpc (line 2875) | def translate_from_rpc(rpcGroundTruth): method translate_to_rpc (line 2888) | def translate_to_rpc(self, rpcGroundTruth): class FixedwingMetrics (line 2912) | class FixedwingMetrics: method __init__ (line 2931) | def __init__( method __eq__ (line 2941) | def __eq__(self, to_compare): method __str__ (line 2954) | def __str__(self): method translate_from_rpc (line 2965) | def translate_from_rpc(rpcFixedwingMetrics): method translate_to_rpc (line 2978) | def translate_to_rpc(self, rpcFixedwingMetrics): class AccelerationFrd (line 3002) | class AccelerationFrd: method __init__ (line 3021) | def __init__( method __eq__ (line 3031) | def __eq__(self, to_compare): method __str__ (line 3044) | def __str__(self): method translate_from_rpc (line 3055) | def translate_from_rpc(rpcAccelerationFrd): method translate_to_rpc (line 3068) | def translate_to_rpc(self, rpcAccelerationFrd): class AngularVelocityFrd (line 3092) | class AngularVelocityFrd: method __init__ (line 3111) | def __init__( method __eq__ (line 3121) | def __eq__(self, to_compare): method __str__ (line 3134) | def __str__(self): method translate_from_rpc (line 3145) | def translate_from_rpc(rpcAngularVelocityFrd): method translate_to_rpc (line 3158) | def translate_to_rpc(self, rpcAngularVelocityFrd): class MagneticFieldFrd (line 3182) | class MagneticFieldFrd: method __init__ (line 3201) | def __init__( method __eq__ (line 3211) | def __eq__(self, to_compare): method __str__ (line 3224) | def __str__(self): method translate_from_rpc (line 3235) | def translate_from_rpc(rpcMagneticFieldFrd): method translate_to_rpc (line 3248) | def translate_to_rpc(self, rpcMagneticFieldFrd): class Imu (line 3272) | class Imu: method __init__ (line 3297) | def __init__( method __eq__ (line 3311) | def __eq__(self, to_compare): method __str__ (line 3326) | def __str__(self): method translate_from_rpc (line 3339) | def translate_from_rpc(rpcImu): method translate_to_rpc (line 3358) | def translate_to_rpc(self, rpcImu): class GpsGlobalOrigin (line 3394) | class GpsGlobalOrigin: method __init__ (line 3413) | def __init__( method __eq__ (line 3423) | def __eq__(self, to_compare): method __str__ (line 3436) | def __str__(self): method translate_from_rpc (line 3447) | def translate_from_rpc(rpcGpsGlobalOrigin): method translate_to_rpc (line 3460) | def translate_to_rpc(self, rpcGpsGlobalOrigin): class Altitude (line 3484) | class Altitude: method __init__ (line 3512) | def __init__( method __eq__ (line 3528) | def __eq__(self, to_compare): method __str__ (line 3544) | def __str__(self): method translate_from_rpc (line 3558) | def translate_from_rpc(rpcAltitude): method translate_to_rpc (line 3580) | def translate_to_rpc(self, rpcAltitude): class TelemetryResult (line 3622) | class TelemetryResult: class Result (line 3638) | class Result(Enum): method translate_to_rpc (line 3680) | def translate_to_rpc(self): method translate_from_rpc (line 3699) | def translate_from_rpc(rpc_enum_value): method __str__ (line 3718) | def __str__(self): method __init__ (line 3722) | def __init__( method __eq__ (line 3730) | def __eq__(self, to_compare): method __str__ (line 3742) | def __str__(self): method translate_from_rpc (line 3752) | def translate_from_rpc(rpcTelemetryResult): method translate_to_rpc (line 3762) | def translate_to_rpc(self, rpcTelemetryResult): class TelemetryError (line 3781) | class TelemetryError(Exception): method __init__ (line 3784) | def __init__(self, result, origin, *params): method __str__ (line 3789) | def __str__(self): class Telemetry (line 3793) | class Telemetry(AsyncBase): method _setup_stub (line 3804) | def _setup_stub(self, channel): method _extract_result (line 3809) | def _extract_result(self, response): method position (line 3814) | async def position(self): method home (line 3838) | async def home(self): method in_air (line 3862) | async def in_air(self): method landed_state (line 3886) | async def landed_state(self): method armed (line 3910) | async def armed(self): method vtol_state (line 3934) | async def vtol_state(self): method attitude_quaternion (line 3958) | async def attitude_quaternion(self): method attitude_euler (line 3982) | async def attitude_euler(self): method attitude_angular_velocity_body (line 4006) | async def attitude_angular_velocity_body(self): method camera_attitude_quaternion (line 4030) | async def camera_attitude_quaternion(self): method camera_attitude_euler (line 4054) | async def camera_attitude_euler(self): method velocity_ned (line 4078) | async def velocity_ned(self): method gps_info (line 4102) | async def gps_info(self): method raw_gps (line 4126) | async def raw_gps(self): method battery (line 4150) | async def battery(self): method flight_mode (line 4174) | async def flight_mode(self): method health (line 4198) | async def health(self): method rc_status (line 4222) | async def rc_status(self): method status_text (line 4246) | async def status_text(self): method actuator_control_target (line 4270) | async def actuator_control_target(self): method actuator_output_status (line 4294) | async def actuator_output_status(self): method odometry (line 4318) | async def odometry(self): method position_velocity_ned (line 4342) | async def position_velocity_ned(self): method ground_truth (line 4366) | async def ground_truth(self): method fixedwing_metrics (line 4390) | async def fixedwing_metrics(self): method imu (line 4414) | async def imu(self): method scaled_imu (line 4438) | async def scaled_imu(self): method raw_imu (line 4462) | async def raw_imu(self): method health_all_ok (line 4486) | async def health_all_ok(self): method unix_epoch_time (line 4510) | async def unix_epoch_time(self): method distance_sensor (line 4534) | async def distance_sensor(self): method scaled_pressure (line 4558) | async def scaled_pressure(self): method heading (line 4582) | async def heading(self): method altitude (line 4606) | async def altitude(self): method set_rate_position (line 4630) | async def set_rate_position(self, rate_hz): method set_rate_home (line 4656) | async def set_rate_home(self, rate_hz): method set_rate_in_air (line 4682) | async def set_rate_in_air(self, rate_hz): method set_rate_landed_state (line 4708) | async def set_rate_landed_state(self, rate_hz): method set_rate_vtol_state (line 4734) | async def set_rate_vtol_state(self, rate_hz): method set_rate_attitude_quaternion (line 4760) | async def set_rate_attitude_quaternion(self, rate_hz): method set_rate_attitude_euler (line 4786) | async def set_rate_attitude_euler(self, rate_hz): method set_rate_camera_attitude (line 4812) | async def set_rate_camera_attitude(self, rate_hz): method set_rate_velocity_ned (line 4838) | async def set_rate_velocity_ned(self, rate_hz): method set_rate_gps_info (line 4864) | async def set_rate_gps_info(self, rate_hz): method set_rate_battery (line 4890) | async def set_rate_battery(self, rate_hz): method set_rate_rc_status (line 4916) | async def set_rate_rc_status(self, rate_hz): method set_rate_actuator_control_target (line 4942) | async def set_rate_actuator_control_target(self, rate_hz): method set_rate_actuator_output_status (line 4968) | async def set_rate_actuator_output_status(self, rate_hz): method set_rate_odometry (line 4994) | async def set_rate_odometry(self, rate_hz): method set_rate_position_velocity_ned (line 5020) | async def set_rate_position_velocity_ned(self, rate_hz): method set_rate_ground_truth (line 5046) | async def set_rate_ground_truth(self, rate_hz): method set_rate_fixedwing_metrics (line 5072) | async def set_rate_fixedwing_metrics(self, rate_hz): method set_rate_imu (line 5098) | async def set_rate_imu(self, rate_hz): method set_rate_scaled_imu (line 5124) | async def set_rate_scaled_imu(self, rate_hz): method set_rate_raw_imu (line 5150) | async def set_rate_raw_imu(self, rate_hz): method set_rate_unix_epoch_time (line 5176) | async def set_rate_unix_epoch_time(self, rate_hz): method set_rate_distance_sensor (line 5202) | async def set_rate_distance_sensor(self, rate_hz): method set_rate_altitude (line 5228) | async def set_rate_altitude(self, rate_hz): method get_gps_global_origin (line 5254) | async def get_gps_global_origin(self): FILE: mavsdk/telemetry_pb2_grpc.py class TelemetryServiceStub (line 8) | class TelemetryServiceStub(object): method __init__ (line 14) | def __init__(self, channel): class TelemetryServiceServicer (line 317) | class TelemetryServiceServicer(object): method SubscribePosition (line 323) | def SubscribePosition(self, request, context): method SubscribeHome (line 330) | def SubscribeHome(self, request, context): method SubscribeInAir (line 337) | def SubscribeInAir(self, request, context): method SubscribeLandedState (line 344) | def SubscribeLandedState(self, request, context): method SubscribeArmed (line 351) | def SubscribeArmed(self, request, context): method SubscribeVtolState (line 358) | def SubscribeVtolState(self, request, context): method SubscribeAttitudeQuaternion (line 365) | def SubscribeAttitudeQuaternion(self, request, context): method SubscribeAttitudeEuler (line 372) | def SubscribeAttitudeEuler(self, request, context): method SubscribeAttitudeAngularVelocityBody (line 379) | def SubscribeAttitudeAngularVelocityBody(self, request, context): method SubscribeCameraAttitudeQuaternion (line 386) | def SubscribeCameraAttitudeQuaternion(self, request, context): method SubscribeCameraAttitudeEuler (line 393) | def SubscribeCameraAttitudeEuler(self, request, context): method SubscribeVelocityNed (line 400) | def SubscribeVelocityNed(self, request, context): method SubscribeGpsInfo (line 407) | def SubscribeGpsInfo(self, request, context): method SubscribeRawGps (line 414) | def SubscribeRawGps(self, request, context): method SubscribeBattery (line 421) | def SubscribeBattery(self, request, context): method SubscribeFlightMode (line 428) | def SubscribeFlightMode(self, request, context): method SubscribeHealth (line 435) | def SubscribeHealth(self, request, context): method SubscribeRcStatus (line 442) | def SubscribeRcStatus(self, request, context): method SubscribeStatusText (line 449) | def SubscribeStatusText(self, request, context): method SubscribeActuatorControlTarget (line 456) | def SubscribeActuatorControlTarget(self, request, context): method SubscribeActuatorOutputStatus (line 463) | def SubscribeActuatorOutputStatus(self, request, context): method SubscribeOdometry (line 470) | def SubscribeOdometry(self, request, context): method SubscribePositionVelocityNed (line 477) | def SubscribePositionVelocityNed(self, request, context): method SubscribeGroundTruth (line 484) | def SubscribeGroundTruth(self, request, context): method SubscribeFixedwingMetrics (line 491) | def SubscribeFixedwingMetrics(self, request, context): method SubscribeImu (line 498) | def SubscribeImu(self, request, context): method SubscribeScaledImu (line 505) | def SubscribeScaledImu(self, request, context): method SubscribeRawImu (line 512) | def SubscribeRawImu(self, request, context): method SubscribeHealthAllOk (line 519) | def SubscribeHealthAllOk(self, request, context): method SubscribeUnixEpochTime (line 526) | def SubscribeUnixEpochTime(self, request, context): method SubscribeDistanceSensor (line 533) | def SubscribeDistanceSensor(self, request, context): method SubscribeScaledPressure (line 540) | def SubscribeScaledPressure(self, request, context): method SubscribeHeading (line 547) | def SubscribeHeading(self, request, context): method SubscribeAltitude (line 554) | def SubscribeAltitude(self, request, context): method SetRatePosition (line 561) | def SetRatePosition(self, request, context): method SetRateHome (line 568) | def SetRateHome(self, request, context): method SetRateInAir (line 575) | def SetRateInAir(self, request, context): method SetRateLandedState (line 582) | def SetRateLandedState(self, request, context): method SetRateVtolState (line 589) | def SetRateVtolState(self, request, context): method SetRateAttitudeQuaternion (line 596) | def SetRateAttitudeQuaternion(self, request, context): method SetRateAttitudeEuler (line 603) | def SetRateAttitudeEuler(self, request, context): method SetRateCameraAttitude (line 610) | def SetRateCameraAttitude(self, request, context): method SetRateVelocityNed (line 617) | def SetRateVelocityNed(self, request, context): method SetRateGpsInfo (line 624) | def SetRateGpsInfo(self, request, context): method SetRateBattery (line 631) | def SetRateBattery(self, request, context): method SetRateRcStatus (line 638) | def SetRateRcStatus(self, request, context): method SetRateActuatorControlTarget (line 645) | def SetRateActuatorControlTarget(self, request, context): method SetRateActuatorOutputStatus (line 652) | def SetRateActuatorOutputStatus(self, request, context): method SetRateOdometry (line 659) | def SetRateOdometry(self, request, context): method SetRatePositionVelocityNed (line 666) | def SetRatePositionVelocityNed(self, request, context): method SetRateGroundTruth (line 673) | def SetRateGroundTruth(self, request, context): method SetRateFixedwingMetrics (line 680) | def SetRateFixedwingMetrics(self, request, context): method SetRateImu (line 687) | def SetRateImu(self, request, context): method SetRateScaledImu (line 694) | def SetRateScaledImu(self, request, context): method SetRateRawImu (line 701) | def SetRateRawImu(self, request, context): method SetRateUnixEpochTime (line 708) | def SetRateUnixEpochTime(self, request, context): method SetRateDistanceSensor (line 715) | def SetRateDistanceSensor(self, request, context): method SetRateAltitude (line 722) | def SetRateAltitude(self, request, context): method GetGpsGlobalOrigin (line 729) | def GetGpsGlobalOrigin(self, request, context): function add_TelemetryServiceServicer_to_server (line 737) | def add_TelemetryServiceServicer_to_server(servicer, server): class TelemetryService (line 1041) | class TelemetryService(object): method SubscribePosition (line 1048) | def SubscribePosition(request, method SubscribeHome (line 1065) | def SubscribeHome(request, method SubscribeInAir (line 1082) | def SubscribeInAir(request, method SubscribeLandedState (line 1099) | def SubscribeLandedState(request, method SubscribeArmed (line 1116) | def SubscribeArmed(request, method SubscribeVtolState (line 1133) | def SubscribeVtolState(request, method SubscribeAttitudeQuaternion (line 1150) | def SubscribeAttitudeQuaternion(request, method SubscribeAttitudeEuler (line 1167) | def SubscribeAttitudeEuler(request, method SubscribeAttitudeAngularVelocityBody (line 1184) | def SubscribeAttitudeAngularVelocityBody(request, method SubscribeCameraAttitudeQuaternion (line 1201) | def SubscribeCameraAttitudeQuaternion(request, method SubscribeCameraAttitudeEuler (line 1218) | def SubscribeCameraAttitudeEuler(request, method SubscribeVelocityNed (line 1235) | def SubscribeVelocityNed(request, method SubscribeGpsInfo (line 1252) | def SubscribeGpsInfo(request, method SubscribeRawGps (line 1269) | def SubscribeRawGps(request, method SubscribeBattery (line 1286) | def SubscribeBattery(request, method SubscribeFlightMode (line 1303) | def SubscribeFlightMode(request, method SubscribeHealth (line 1320) | def SubscribeHealth(request, method SubscribeRcStatus (line 1337) | def SubscribeRcStatus(request, method SubscribeStatusText (line 1354) | def SubscribeStatusText(request, method SubscribeActuatorControlTarget (line 1371) | def SubscribeActuatorControlTarget(request, method SubscribeActuatorOutputStatus (line 1388) | def SubscribeActuatorOutputStatus(request, method SubscribeOdometry (line 1405) | def SubscribeOdometry(request, method SubscribePositionVelocityNed (line 1422) | def SubscribePositionVelocityNed(request, method SubscribeGroundTruth (line 1439) | def SubscribeGroundTruth(request, method SubscribeFixedwingMetrics (line 1456) | def SubscribeFixedwingMetrics(request, method SubscribeImu (line 1473) | def SubscribeImu(request, method SubscribeScaledImu (line 1490) | def SubscribeScaledImu(request, method SubscribeRawImu (line 1507) | def SubscribeRawImu(request, method SubscribeHealthAllOk (line 1524) | def SubscribeHealthAllOk(request, method SubscribeUnixEpochTime (line 1541) | def SubscribeUnixEpochTime(request, method SubscribeDistanceSensor (line 1558) | def SubscribeDistanceSensor(request, method SubscribeScaledPressure (line 1575) | def SubscribeScaledPressure(request, method SubscribeHeading (line 1592) | def SubscribeHeading(request, method SubscribeAltitude (line 1609) | def SubscribeAltitude(request, method SetRatePosition (line 1626) | def SetRatePosition(request, method SetRateHome (line 1643) | def SetRateHome(request, method SetRateInAir (line 1660) | def SetRateInAir(request, method SetRateLandedState (line 1677) | def SetRateLandedState(request, method SetRateVtolState (line 1694) | def SetRateVtolState(request, method SetRateAttitudeQuaternion (line 1711) | def SetRateAttitudeQuaternion(request, method SetRateAttitudeEuler (line 1728) | def SetRateAttitudeEuler(request, method SetRateCameraAttitude (line 1745) | def SetRateCameraAttitude(request, method SetRateVelocityNed (line 1762) | def SetRateVelocityNed(request, method SetRateGpsInfo (line 1779) | def SetRateGpsInfo(request, method SetRateBattery (line 1796) | def SetRateBattery(request, method SetRateRcStatus (line 1813) | def SetRateRcStatus(request, method SetRateActuatorControlTarget (line 1830) | def SetRateActuatorControlTarget(request, method SetRateActuatorOutputStatus (line 1847) | def SetRateActuatorOutputStatus(request, method SetRateOdometry (line 1864) | def SetRateOdometry(request, method SetRatePositionVelocityNed (line 1881) | def SetRatePositionVelocityNed(request, method SetRateGroundTruth (line 1898) | def SetRateGroundTruth(request, method SetRateFixedwingMetrics (line 1915) | def SetRateFixedwingMetrics(request, method SetRateImu (line 1932) | def SetRateImu(request, method SetRateScaledImu (line 1949) | def SetRateScaledImu(request, method SetRateRawImu (line 1966) | def SetRateRawImu(request, method SetRateUnixEpochTime (line 1983) | def SetRateUnixEpochTime(request, method SetRateDistanceSensor (line 2000) | def SetRateDistanceSensor(request, method SetRateAltitude (line 2017) | def SetRateAltitude(request, method GetGpsGlobalOrigin (line 2034) | def GetGpsGlobalOrigin(request, FILE: mavsdk/telemetry_server.py class FixType (line 9) | class FixType(Enum): method translate_to_rpc (line 47) | def translate_to_rpc(self): method translate_from_rpc (line 64) | def translate_from_rpc(rpc_enum_value): method __str__ (line 81) | def __str__(self): class VtolState (line 85) | class VtolState(Enum): method translate_to_rpc (line 115) | def translate_to_rpc(self): method translate_from_rpc (line 128) | def translate_from_rpc(rpc_enum_value): method __str__ (line 141) | def __str__(self): class StatusTextType (line 145) | class StatusTextType(Enum): method translate_to_rpc (line 187) | def translate_to_rpc(self): method translate_from_rpc (line 206) | def translate_from_rpc(rpc_enum_value): method __str__ (line 225) | def __str__(self): class LandedState (line 229) | class LandedState(Enum): method translate_to_rpc (line 259) | def translate_to_rpc(self): method translate_from_rpc (line 272) | def translate_from_rpc(rpc_enum_value): method __str__ (line 285) | def __str__(self): class Position (line 289) | class Position: method __init__ (line 311) | def __init__( method __eq__ (line 323) | def __eq__(self, to_compare): method __str__ (line 337) | def __str__(self): method translate_from_rpc (line 349) | def translate_from_rpc(rpcPosition): method translate_to_rpc (line 365) | def translate_to_rpc(self, rpcPosition): class Heading (line 395) | class Heading: method __init__ (line 408) | def __init__( method __eq__ (line 414) | def __eq__(self, to_compare): method __str__ (line 425) | def __str__(self): method translate_from_rpc (line 434) | def translate_from_rpc(rpcHeading): method translate_to_rpc (line 441) | def translate_to_rpc(self, rpcHeading): class Quaternion (line 453) | class Quaternion: method __init__ (line 485) | def __init__( method __eq__ (line 499) | def __eq__(self, to_compare): method __str__ (line 514) | def __str__(self): method translate_from_rpc (line 527) | def translate_from_rpc(rpcQuaternion): method translate_to_rpc (line 546) | def translate_to_rpc(self, rpcQuaternion): class EulerAngle (line 582) | class EulerAngle: method __init__ (line 609) | def __init__( method __eq__ (line 621) | def __eq__(self, to_compare): method __str__ (line 635) | def __str__(self): method translate_from_rpc (line 647) | def translate_from_rpc(rpcEulerAngle): method translate_to_rpc (line 663) | def translate_to_rpc(self, rpcEulerAngle): class AngularVelocityBody (line 693) | class AngularVelocityBody: method __init__ (line 712) | def __init__( method __eq__ (line 722) | def __eq__(self, to_compare): method __str__ (line 735) | def __str__(self): method translate_from_rpc (line 746) | def translate_from_rpc(rpcAngularVelocityBody): method translate_to_rpc (line 759) | def translate_to_rpc(self, rpcAngularVelocityBody): class GpsInfo (line 783) | class GpsInfo: method __init__ (line 799) | def __init__( method __eq__ (line 807) | def __eq__(self, to_compare): method __str__ (line 819) | def __str__(self): method translate_from_rpc (line 829) | def translate_from_rpc(rpcGpsInfo): method translate_to_rpc (line 839) | def translate_to_rpc(self, rpcGpsInfo): class RawGps (line 857) | class RawGps: method __init__ (line 912) | def __init__( method __eq__ (line 944) | def __eq__(self, to_compare): method __str__ (line 968) | def __str__(self): method translate_from_rpc (line 990) | def translate_from_rpc(rpcRawGps): method translate_to_rpc (line 1036) | def translate_to_rpc(self, rpcRawGps): class Battery (line 1126) | class Battery: method __init__ (line 1142) | def __init__( method __eq__ (line 1150) | def __eq__(self, to_compare): method __str__ (line 1162) | def __str__(self): method translate_from_rpc (line 1172) | def translate_from_rpc(rpcBattery): method translate_to_rpc (line 1182) | def translate_to_rpc(self, rpcBattery): class RcStatus (line 1200) | class RcStatus: method __init__ (line 1219) | def __init__( method __eq__ (line 1229) | def __eq__(self, to_compare): method __str__ (line 1242) | def __str__(self): method translate_from_rpc (line 1253) | def translate_from_rpc(rpcRcStatus): method translate_to_rpc (line 1266) | def translate_to_rpc(self, rpcRcStatus): class StatusText (line 1290) | class StatusText: method __init__ (line 1306) | def __init__( method __eq__ (line 1314) | def __eq__(self, to_compare): method __str__ (line 1326) | def __str__(self): method translate_from_rpc (line 1336) | def translate_from_rpc(rpcStatusText): method translate_to_rpc (line 1346) | def translate_to_rpc(self, rpcStatusText): class ActuatorControlTarget (line 1364) | class ActuatorControlTarget: method __init__ (line 1380) | def __init__( method __eq__ (line 1388) | def __eq__(self, to_compare): method __str__ (line 1400) | def __str__(self): method translate_from_rpc (line 1410) | def translate_from_rpc(rpcActuatorControlTarget): method translate_to_rpc (line 1420) | def translate_to_rpc(self, rpcActuatorControlTarget): class ActuatorOutputStatus (line 1439) | class ActuatorOutputStatus: method __init__ (line 1455) | def __init__( method __eq__ (line 1463) | def __eq__(self, to_compare): method __str__ (line 1475) | def __str__(self): method translate_from_rpc (line 1485) | def translate_from_rpc(rpcActuatorOutputStatus): method translate_to_rpc (line 1495) | def translate_to_rpc(self, rpcActuatorOutputStatus): class Covariance (line 1514) | class Covariance: method __init__ (line 1531) | def __init__( method __eq__ (line 1537) | def __eq__(self, to_compare): method __str__ (line 1548) | def __str__(self): method translate_from_rpc (line 1557) | def translate_from_rpc(rpcCovariance): method translate_to_rpc (line 1564) | def translate_to_rpc(self, rpcCovariance): class VelocityBody (line 1577) | class VelocityBody: method __init__ (line 1596) | def __init__( method __eq__ (line 1606) | def __eq__(self, to_compare): method __str__ (line 1619) | def __str__(self): method translate_from_rpc (line 1630) | def translate_from_rpc(rpcVelocityBody): method translate_to_rpc (line 1643) | def translate_to_rpc(self, rpcVelocityBody): class PositionBody (line 1667) | class PositionBody: method __init__ (line 1686) | def __init__( method __eq__ (line 1696) | def __eq__(self, to_compare): method __str__ (line 1709) | def __str__(self): method translate_from_rpc (line 1720) | def translate_from_rpc(rpcPositionBody): method translate_to_rpc (line 1733) | def translate_to_rpc(self, rpcPositionBody): class Odometry (line 1757) | class Odometry: class MavFrame (line 1794) | class MavFrame(Enum): method translate_to_rpc (line 1820) | def translate_to_rpc(self): method translate_from_rpc (line 1831) | def translate_from_rpc(rpc_enum_value): method __str__ (line 1842) | def __str__(self): method __init__ (line 1846) | def __init__( method __eq__ (line 1868) | def __eq__(self, to_compare): method __str__ (line 1887) | def __str__(self): method translate_from_rpc (line 1904) | def translate_from_rpc(rpcOdometry): method translate_to_rpc (line 1935) | def translate_to_rpc(self, rpcOdometry): class DistanceSensor (line 1995) | class DistanceSensor: method __init__ (line 2014) | def __init__( method __eq__ (line 2024) | def __eq__(self, to_compare): method __str__ (line 2037) | def __str__(self): method translate_from_rpc (line 2048) | def translate_from_rpc(rpcDistanceSensor): method translate_to_rpc (line 2061) | def translate_to_rpc(self, rpcDistanceSensor): class ScaledPressure (line 2085) | class ScaledPressure: method __init__ (line 2110) | def __init__( method __eq__ (line 2124) | def __eq__(self, to_compare): method __str__ (line 2139) | def __str__(self): method translate_from_rpc (line 2152) | def translate_from_rpc(rpcScaledPressure): method translate_to_rpc (line 2171) | def translate_to_rpc(self, rpcScaledPressure): class PositionNed (line 2207) | class PositionNed: method __init__ (line 2226) | def __init__( method __eq__ (line 2236) | def __eq__(self, to_compare): method __str__ (line 2249) | def __str__(self): method translate_from_rpc (line 2260) | def translate_from_rpc(rpcPositionNed): method translate_to_rpc (line 2273) | def translate_to_rpc(self, rpcPositionNed): class VelocityNed (line 2297) | class VelocityNed: method __init__ (line 2316) | def __init__( method __eq__ (line 2326) | def __eq__(self, to_compare): method __str__ (line 2339) | def __str__(self): method translate_from_rpc (line 2350) | def translate_from_rpc(rpcVelocityNed): method translate_to_rpc (line 2363) | def translate_to_rpc(self, rpcVelocityNed): class PositionVelocityNed (line 2387) | class PositionVelocityNed: method __init__ (line 2403) | def __init__( method __eq__ (line 2411) | def __eq__(self, to_compare): method __str__ (line 2423) | def __str__(self): method translate_from_rpc (line 2433) | def translate_from_rpc(rpcPositionVelocityNed): method translate_to_rpc (line 2443) | def translate_to_rpc(self, rpcPositionVelocityNed): class GroundTruth (line 2461) | class GroundTruth: method __init__ (line 2480) | def __init__( method __eq__ (line 2490) | def __eq__(self, to_compare): method __str__ (line 2503) | def __str__(self): method translate_from_rpc (line 2514) | def translate_from_rpc(rpcGroundTruth): method translate_to_rpc (line 2527) | def translate_to_rpc(self, rpcGroundTruth): class FixedwingMetrics (line 2551) | class FixedwingMetrics: method __init__ (line 2570) | def __init__( method __eq__ (line 2580) | def __eq__(self, to_compare): method __str__ (line 2593) | def __str__(self): method translate_from_rpc (line 2604) | def translate_from_rpc(rpcFixedwingMetrics): method translate_to_rpc (line 2617) | def translate_to_rpc(self, rpcFixedwingMetrics): class AccelerationFrd (line 2641) | class AccelerationFrd: method __init__ (line 2660) | def __init__( method __eq__ (line 2670) | def __eq__(self, to_compare): method __str__ (line 2683) | def __str__(self): method translate_from_rpc (line 2694) | def translate_from_rpc(rpcAccelerationFrd): method translate_to_rpc (line 2707) | def translate_to_rpc(self, rpcAccelerationFrd): class AngularVelocityFrd (line 2731) | class AngularVelocityFrd: method __init__ (line 2750) | def __init__( method __eq__ (line 2760) | def __eq__(self, to_compare): method __str__ (line 2773) | def __str__(self): method translate_from_rpc (line 2784) | def translate_from_rpc(rpcAngularVelocityFrd): method translate_to_rpc (line 2797) | def translate_to_rpc(self, rpcAngularVelocityFrd): class MagneticFieldFrd (line 2821) | class MagneticFieldFrd: method __init__ (line 2840) | def __init__( method __eq__ (line 2850) | def __eq__(self, to_compare): method __str__ (line 2863) | def __str__(self): method translate_from_rpc (line 2874) | def translate_from_rpc(rpcMagneticFieldFrd): method translate_to_rpc (line 2887) | def translate_to_rpc(self, rpcMagneticFieldFrd): class Imu (line 2911) | class Imu: method __init__ (line 2936) | def __init__( method __eq__ (line 2950) | def __eq__(self, to_compare): method __str__ (line 2965) | def __str__(self): method translate_from_rpc (line 2978) | def translate_from_rpc(rpcImu): method translate_to_rpc (line 2997) | def translate_to_rpc(self, rpcImu): class TelemetryServerResult (line 3033) | class TelemetryServerResult: class Result (line 3049) | class Result(Enum): method translate_to_rpc (line 3091) | def translate_to_rpc(self): method translate_from_rpc (line 3110) | def translate_from_rpc(rpc_enum_value): method __str__ (line 3129) | def __str__(self): method __init__ (line 3133) | def __init__( method __eq__ (line 3141) | def __eq__(self, to_compare): method __str__ (line 3153) | def __str__(self): method translate_from_rpc (line 3163) | def translate_from_rpc(rpcTelemetryServerResult): method translate_to_rpc (line 3173) | def translate_to_rpc(self, rpcTelemetryServerResult): class TelemetryServerError (line 3192) | class TelemetryServerError(Exception): method __init__ (line 3195) | def __init__(self, result, origin, *params): method __str__ (line 3200) | def __str__(self): class TelemetryServer (line 3204) | class TelemetryServer(AsyncBase): method _setup_stub (line 3215) | def _setup_stub(self, channel): method _extract_result (line 3220) | def _extract_result(self, response): method publish_position (line 3225) | async def publish_position(self, position, velocity_ned, heading): method publish_home (line 3268) | async def publish_home(self, home): method publish_sys_status (line 3297) | async def publish_sys_status(self, battery, rc_receiver_status, gyro_s... method publish_extended_sys_state (line 3342) | async def publish_extended_sys_state(self, vtol_state, landed_state): method publish_raw_gps (line 3376) | async def publish_raw_gps(self, raw_gps, gps_info): method publish_battery (line 3412) | async def publish_battery(self, battery): method publish_status_text (line 3441) | async def publish_status_text(self, status_text): method publish_odometry (line 3470) | async def publish_odometry(self, odometry): method publish_position_velocity_ned (line 3499) | async def publish_position_velocity_ned(self, position_velocity_ned): method publish_ground_truth (line 3528) | async def publish_ground_truth(self, ground_truth): method publish_imu (line 3557) | async def publish_imu(self, imu): method publish_scaled_imu (line 3586) | async def publish_scaled_imu(self, imu): method publish_raw_imu (line 3615) | async def publish_raw_imu(self, imu): method publish_unix_epoch_time (line 3644) | async def publish_unix_epoch_time(self, time_us): method publish_distance_sensor (line 3670) | async def publish_distance_sensor(self, distance_sensor): FILE: mavsdk/telemetry_server_pb2_grpc.py class TelemetryServerServiceStub (line 8) | class TelemetryServerServiceStub(object): method __init__ (line 14) | def __init__(self, channel): class TelemetryServerServiceServicer (line 97) | class TelemetryServerServiceServicer(object): method PublishPosition (line 103) | def PublishPosition(self, request, context): method PublishHome (line 110) | def PublishHome(self, request, context): method PublishSysStatus (line 117) | def PublishSysStatus(self, request, context): method PublishExtendedSysState (line 124) | def PublishExtendedSysState(self, request, context): method PublishRawGps (line 131) | def PublishRawGps(self, request, context): method PublishBattery (line 138) | def PublishBattery(self, request, context): method PublishStatusText (line 145) | def PublishStatusText(self, request, context): method PublishOdometry (line 152) | def PublishOdometry(self, request, context): method PublishPositionVelocityNed (line 159) | def PublishPositionVelocityNed(self, request, context): method PublishGroundTruth (line 166) | def PublishGroundTruth(self, request, context): method PublishImu (line 173) | def PublishImu(self, request, context): method PublishScaledImu (line 180) | def PublishScaledImu(self, request, context): method PublishRawImu (line 187) | def PublishRawImu(self, request, context): method PublishUnixEpochTime (line 194) | def PublishUnixEpochTime(self, request, context): method PublishDistanceSensor (line 201) | def PublishDistanceSensor(self, request, context): function add_TelemetryServerServiceServicer_to_server (line 209) | def add_TelemetryServerServiceServicer_to_server(servicer, server): class TelemetryServerService (line 293) | class TelemetryServerService(object): method PublishPosition (line 300) | def PublishPosition(request, method PublishHome (line 317) | def PublishHome(request, method PublishSysStatus (line 334) | def PublishSysStatus(request, method PublishExtendedSysState (line 351) | def PublishExtendedSysState(request, method PublishRawGps (line 368) | def PublishRawGps(request, method PublishBattery (line 385) | def PublishBattery(request, method PublishStatusText (line 402) | def PublishStatusText(request, method PublishOdometry (line 419) | def PublishOdometry(request, method PublishPositionVelocityNed (line 436) | def PublishPositionVelocityNed(request, method PublishGroundTruth (line 453) | def PublishGroundTruth(request, method PublishImu (line 470) | def PublishImu(request, method PublishScaledImu (line 487) | def PublishScaledImu(request, method PublishRawImu (line 504) | def PublishRawImu(request, method PublishUnixEpochTime (line 521) | def PublishUnixEpochTime(request, method PublishDistanceSensor (line 538) | def PublishDistanceSensor(request, FILE: mavsdk/tracking_server.py class CommandAnswer (line 9) | class CommandAnswer(Enum): method translate_to_rpc (line 39) | def translate_to_rpc(self): method translate_from_rpc (line 52) | def translate_from_rpc(rpc_enum_value): method __str__ (line 65) | def __str__(self): class TrackPoint (line 69) | class TrackPoint: method __init__ (line 88) | def __init__( method __eq__ (line 98) | def __eq__(self, to_compare): method __str__ (line 111) | def __str__(self): method translate_from_rpc (line 122) | def translate_from_rpc(rpcTrackPoint): method translate_to_rpc (line 135) | def translate_to_rpc(self, rpcTrackPoint): class TrackRectangle (line 159) | class TrackRectangle: method __init__ (line 181) | def __init__( method __eq__ (line 193) | def __eq__(self, to_compare): method __str__ (line 207) | def __str__(self): method translate_from_rpc (line 219) | def translate_from_rpc(rpcTrackRectangle): method translate_to_rpc (line 235) | def translate_to_rpc(self, rpcTrackRectangle): class TrackingServerResult (line 265) | class TrackingServerResult: class Result (line 281) | class Result(Enum): method translate_to_rpc (line 307) | def translate_to_rpc(self): method translate_from_rpc (line 318) | def translate_from_rpc(rpc_enum_value): method __str__ (line 329) | def __str__(self): method __init__ (line 333) | def __init__( method __eq__ (line 341) | def __eq__(self, to_compare): method __str__ (line 353) | def __str__(self): method translate_from_rpc (line 363) | def translate_from_rpc(rpcTrackingServerResult): method translate_to_rpc (line 373) | def translate_to_rpc(self, rpcTrackingServerResult): class TrackingServerError (line 392) | class TrackingServerError(Exception): method __init__ (line 395) | def __init__(self, result, origin, *params): method __str__ (line 400) | def __str__(self): class TrackingServer (line 404) | class TrackingServer(AsyncBase): method _setup_stub (line 414) | def _setup_stub(self, channel): method _extract_result (line 419) | def _extract_result(self, response): method set_tracking_point_status (line 424) | async def set_tracking_point_status(self, tracked_point): method set_tracking_rectangle_status (line 445) | async def set_tracking_rectangle_status(self, tracked_rectangle): method set_tracking_off_status (line 466) | async def set_tracking_off_status(self): method tracking_point_command (line 478) | async def tracking_point_command(self): method tracking_rectangle_command (line 502) | async def tracking_rectangle_command(self): method tracking_off_command (line 526) | async def tracking_off_command(self): method respond_tracking_point_command (line 550) | async def respond_tracking_point_command(self, command_answer): method respond_tracking_rectangle_command (line 579) | async def respond_tracking_rectangle_command(self, command_answer): method respond_tracking_off_command (line 608) | async def respond_tracking_off_command(self, command_answer): FILE: mavsdk/tracking_server_pb2_grpc.py class TrackingServerServiceStub (line 8) | class TrackingServerServiceStub(object): method __init__ (line 12) | def __init__(self, channel): class TrackingServerServiceServicer (line 65) | class TrackingServerServiceServicer(object): method SetTrackingPointStatus (line 69) | def SetTrackingPointStatus(self, request, context): method SetTrackingRectangleStatus (line 76) | def SetTrackingRectangleStatus(self, request, context): method SetTrackingOffStatus (line 83) | def SetTrackingOffStatus(self, request, context): method SubscribeTrackingPointCommand (line 90) | def SubscribeTrackingPointCommand(self, request, context): method SubscribeTrackingRectangleCommand (line 97) | def SubscribeTrackingRectangleCommand(self, request, context): method SubscribeTrackingOffCommand (line 104) | def SubscribeTrackingOffCommand(self, request, context): method RespondTrackingPointCommand (line 111) | def RespondTrackingPointCommand(self, request, context): method RespondTrackingRectangleCommand (line 118) | def RespondTrackingRectangleCommand(self, request, context): method RespondTrackingOffCommand (line 125) | def RespondTrackingOffCommand(self, request, context): function add_TrackingServerServiceServicer_to_server (line 133) | def add_TrackingServerServiceServicer_to_server(servicer, server): class TrackingServerService (line 187) | class TrackingServerService(object): method SetTrackingPointStatus (line 192) | def SetTrackingPointStatus(request, method SetTrackingRectangleStatus (line 209) | def SetTrackingRectangleStatus(request, method SetTrackingOffStatus (line 226) | def SetTrackingOffStatus(request, method SubscribeTrackingPointCommand (line 243) | def SubscribeTrackingPointCommand(request, method SubscribeTrackingRectangleCommand (line 260) | def SubscribeTrackingRectangleCommand(request, method SubscribeTrackingOffCommand (line 277) | def SubscribeTrackingOffCommand(request, method RespondTrackingPointCommand (line 294) | def RespondTrackingPointCommand(request, method RespondTrackingRectangleCommand (line 311) | def RespondTrackingRectangleCommand(request, method RespondTrackingOffCommand (line 328) | def RespondTrackingOffCommand(request, FILE: mavsdk/transponder.py class AdsbEmitterType (line 9) | class AdsbEmitterType(Enum): method translate_to_rpc (line 99) | def translate_to_rpc(self): method translate_from_rpc (line 142) | def translate_from_rpc(rpc_enum_value): method __str__ (line 185) | def __str__(self): class AdsbAltitudeType (line 189) | class AdsbAltitudeType(Enum): method translate_to_rpc (line 207) | def translate_to_rpc(self): method translate_from_rpc (line 214) | def translate_from_rpc(rpc_enum_value): method __str__ (line 221) | def __str__(self): class AdsbVehicle (line 225) | class AdsbVehicle: method __init__ (line 271) | def __init__( method __eq__ (line 299) | def __eq__(self, to_compare): method __str__ (line 321) | def __str__(self): method translate_from_rpc (line 341) | def translate_from_rpc(rpcAdsbVehicle): method translate_to_rpc (line 381) | def translate_to_rpc(self, rpcAdsbVehicle): class TransponderResult (line 459) | class TransponderResult: class Result (line 475) | class Result(Enum): method translate_to_rpc (line 513) | def translate_to_rpc(self): method translate_from_rpc (line 530) | def translate_from_rpc(rpc_enum_value): method __str__ (line 547) | def __str__(self): method __init__ (line 551) | def __init__( method __eq__ (line 559) | def __eq__(self, to_compare): method __str__ (line 571) | def __str__(self): method translate_from_rpc (line 581) | def translate_from_rpc(rpcTransponderResult): method translate_to_rpc (line 591) | def translate_to_rpc(self, rpcTransponderResult): class TransponderError (line 610) | class TransponderError(Exception): method __init__ (line 613) | def __init__(self, result, origin, *params): method __str__ (line 618) | def __str__(self): class Transponder (line 622) | class Transponder(AsyncBase): method _setup_stub (line 633) | def _setup_stub(self, channel): method _extract_result (line 638) | def _extract_result(self, response): method transponder (line 643) | async def transponder(self): method set_rate_transponder (line 667) | async def set_rate_transponder(self, rate_hz): FILE: mavsdk/transponder_pb2_grpc.py class TransponderServiceStub (line 8) | class TransponderServiceStub(object): method __init__ (line 14) | def __init__(self, channel): class TransponderServiceServicer (line 32) | class TransponderServiceServicer(object): method SubscribeTransponder (line 38) | def SubscribeTransponder(self, request, context): method SetRateTransponder (line 45) | def SetRateTransponder(self, request, context): function add_TransponderServiceServicer_to_server (line 53) | def add_TransponderServiceServicer_to_server(servicer, server): class TransponderService (line 72) | class TransponderService(object): method SubscribeTransponder (line 79) | def SubscribeTransponder(request, method SetRateTransponder (line 96) | def SetRateTransponder(request, FILE: mavsdk/tune.py class SongElement (line 9) | class SongElement(Enum): method translate_to_rpc (line 103) | def translate_to_rpc(self): method translate_from_rpc (line 148) | def translate_from_rpc(rpc_enum_value): method __str__ (line 193) | def __str__(self): class TuneDescription (line 197) | class TuneDescription: method __init__ (line 213) | def __init__( method __eq__ (line 221) | def __eq__(self, to_compare): method __str__ (line 233) | def __str__(self): method translate_from_rpc (line 243) | def translate_from_rpc(rpcTuneDescription): method translate_to_rpc (line 253) | def translate_to_rpc(self, rpcTuneDescription): class TuneResult (line 276) | class TuneResult: class Result (line 292) | class Result(Enum): method translate_to_rpc (line 326) | def translate_to_rpc(self): method translate_from_rpc (line 341) | def translate_from_rpc(rpc_enum_value): method __str__ (line 356) | def __str__(self): method __init__ (line 360) | def __init__( method __eq__ (line 368) | def __eq__(self, to_compare): method __str__ (line 380) | def __str__(self): method translate_from_rpc (line 390) | def translate_from_rpc(rpcTuneResult): method translate_to_rpc (line 400) | def translate_to_rpc(self, rpcTuneResult): class TuneError (line 419) | class TuneError(Exception): method __init__ (line 422) | def __init__(self, result, origin, *params): method __str__ (line 427) | def __str__(self): class Tune (line 431) | class Tune(AsyncBase): method _setup_stub (line 441) | def _setup_stub(self, channel): method _extract_result (line 446) | def _extract_result(self, response): method play_tune (line 451) | async def play_tune(self, tune_description): FILE: mavsdk/tune_pb2_grpc.py class TuneServiceStub (line 8) | class TuneServiceStub(object): method __init__ (line 12) | def __init__(self, channel): class TuneServiceServicer (line 25) | class TuneServiceServicer(object): method PlayTune (line 29) | def PlayTune(self, request, context): function add_TuneServiceServicer_to_server (line 37) | def add_TuneServiceServicer_to_server(servicer, server): class TuneService (line 51) | class TuneService(object): method PlayTune (line 56) | def PlayTune(request, FILE: mavsdk/winch.py class WinchAction (line 9) | class WinchAction(Enum): method translate_to_rpc (line 59) | def translate_to_rpc(self): method translate_from_rpc (line 82) | def translate_from_rpc(rpc_enum_value): method __str__ (line 105) | def __str__(self): class StatusFlags (line 109) | class StatusFlags: method __init__ (line 167) | def __init__( method __eq__ (line 199) | def __eq__(self, to_compare): method __str__ (line 223) | def __str__(self): method translate_from_rpc (line 245) | def translate_from_rpc(rpcStatusFlags): method translate_to_rpc (line 291) | def translate_to_rpc(self, rpcStatusFlags): class Status (line 381) | class Status: method __init__ (line 415) | def __init__( method __eq__ (line 435) | def __eq__(self, to_compare): method __str__ (line 453) | def __str__(self): method translate_from_rpc (line 469) | def translate_from_rpc(rpcStatus): method translate_to_rpc (line 497) | def translate_to_rpc(self, rpcStatus): class WinchResult (line 551) | class WinchResult: class Result (line 567) | class Result(Enum): method translate_to_rpc (line 605) | def translate_to_rpc(self): method translate_from_rpc (line 622) | def translate_from_rpc(rpc_enum_value): method __str__ (line 639) | def __str__(self): method __init__ (line 643) | def __init__( method __eq__ (line 651) | def __eq__(self, to_compare): method __str__ (line 663) | def __str__(self): method translate_from_rpc (line 673) | def translate_from_rpc(rpcWinchResult): method translate_to_rpc (line 683) | def translate_to_rpc(self, rpcWinchResult): class WinchError (line 702) | class WinchError(Exception): method __init__ (line 705) | def __init__(self, result, origin, *params): method __str__ (line 710) | def __str__(self): class Winch (line 714) | class Winch(AsyncBase): method _setup_stub (line 724) | def _setup_stub(self, channel): method _extract_result (line 729) | def _extract_result(self, response): method status (line 734) | async def status(self): method relax (line 758) | async def relax(self, instance): method relative_length_control (line 783) | async def relative_length_control(self, instance, length_m, rate_m_s): method rate_control (line 817) | async def rate_control(self, instance, rate_m_s): method lock (line 846) | async def lock(self, instance): method deliver (line 871) | async def deliver(self, instance): method hold (line 896) | async def hold(self, instance): method retract (line 921) | async def retract(self, instance): method load_line (line 946) | async def load_line(self, instance): method abandon_line (line 973) | async def abandon_line(self, instance): method load_payload (line 998) | async def load_payload(self, instance): FILE: mavsdk/winch_pb2_grpc.py class WinchServiceStub (line 8) | class WinchServiceStub(object): method __init__ (line 14) | def __init__(self, channel): class WinchServiceServicer (line 77) | class WinchServiceServicer(object): method SubscribeStatus (line 83) | def SubscribeStatus(self, request, context): method Relax (line 90) | def Relax(self, request, context): method RelativeLengthControl (line 98) | def RelativeLengthControl(self, request, context): method RateControl (line 106) | def RateControl(self, request, context): method Lock (line 114) | def Lock(self, request, context): method Deliver (line 122) | def Deliver(self, request, context): method Hold (line 130) | def Hold(self, request, context): method Retract (line 138) | def Retract(self, request, context): method LoadLine (line 146) | def LoadLine(self, request, context): method AbandonLine (line 156) | def AbandonLine(self, request, context): method LoadPayload (line 164) | def LoadPayload(self, request, context): function add_WinchServiceServicer_to_server (line 173) | def add_WinchServiceServicer_to_server(servicer, server): class WinchService (line 237) | class WinchService(object): method SubscribeStatus (line 244) | def SubscribeStatus(request, method Relax (line 261) | def Relax(request, method RelativeLengthControl (line 278) | def RelativeLengthControl(request, method RateControl (line 295) | def RateControl(request, method Lock (line 312) | def Lock(request, method Deliver (line 329) | def Deliver(request, method Hold (line 346) | def Hold(request, method Retract (line 363) | def Retract(request, method LoadLine (line 380) | def LoadLine(request, method AbandonLine (line 397) | def AbandonLine(request, method LoadPayload (line 414) | def LoadPayload(request, FILE: mds_logging/__init__.py function _normalize_drone_id (line 43) | def _normalize_drone_id(drone_id: int | str | None) -> int | str | None: function get_logger (line 58) | def get_logger(component: str) -> logging.Logger: function configure_external_loggers (line 84) | def configure_external_loggers() -> None: function set_session (line 92) | def set_session(session_id: str) -> None: function set_source (line 98) | def set_source(source: str) -> None: function set_drone_id (line 104) | def set_drone_id(drone_id: int | str | None) -> None: function get_context_defaults (line 110) | def get_context_defaults() -> dict: function reset (line 119) | def reset() -> None: FILE: mds_logging/api_schemas.py class LogSessionSummary (line 10) | class LogSessionSummary(BaseModel): class LogSourcesResponse (line 16) | class LogSourcesResponse(BaseModel): class LogSessionsResponse (line 20) | class LogSessionsResponse(BaseModel): class LogSessionContentResponse (line 24) | class LogSessionContentResponse(BaseModel): class FrontendLogReportRequest (line 30) | class FrontendLogReportRequest(BaseModel): class LogExportRequest (line 37) | class LogExportRequest(BaseModel): class LogConfigUpdateRequest (line 42) | class LogConfigUpdateRequest(BaseModel): class LogStatusResponse (line 46) | class LogStatusResponse(BaseModel): class OnboardUlogPolicy (line 50) | class OnboardUlogPolicy(BaseModel): class OnboardUlogPolicyResponse (line 64) | class OnboardUlogPolicyResponse(BaseModel): class OnboardUlogEntry (line 71) | class OnboardUlogEntry(BaseModel): class OnboardUlogListResponse (line 77) | class OnboardUlogListResponse(BaseModel): class OnboardUlogDownloadRequest (line 86) | class OnboardUlogDownloadRequest(BaseModel): class OnboardUlogDownloadJob (line 90) | class OnboardUlogDownloadJob(BaseModel): class OnboardUlogDownloadJobResponse (line 107) | class OnboardUlogDownloadJobResponse(BaseModel): class OnboardUlogJobDeleteResponse (line 112) | class OnboardUlogJobDeleteResponse(BaseModel): class OnboardUlogEraseAllResponse (line 118) | class OnboardUlogEraseAllResponse(BaseModel): FILE: mds_logging/cli.py function add_log_arguments (line 13) | def add_log_arguments(parser: argparse.ArgumentParser) -> None: function apply_log_args (line 42) | def apply_log_args(args: argparse.Namespace) -> None: FILE: mds_logging/constants.py function _get_with_shim (line 28) | def _get_with_shim(new_key: str, old_key: str | None, default: str) -> str: function get_log_level (line 45) | def get_log_level() -> str: function get_file_log_level (line 49) | def get_file_log_level() -> str: function get_max_sessions (line 53) | def get_max_sessions() -> int: function get_max_size_mb (line 57) | def get_max_size_mb() -> int: function get_log_dir (line 61) | def get_log_dir() -> str: function get_console_format (line 65) | def get_console_format() -> str: function get_flush_enabled (line 69) | def get_flush_enabled() -> bool: function get_background_pull_enabled (line 75) | def get_background_pull_enabled() -> bool: function get_pull_interval_sec (line 79) | def get_pull_interval_sec() -> int: function get_pull_level (line 83) | def get_pull_level() -> str: function get_pull_max_drones (line 87) | def get_pull_max_drones() -> int: FILE: mds_logging/drone.py function init_drone_logging (line 25) | def init_drone_logging(drone_id: int | None = None, log_dir: str | None ... FILE: mds_logging/formatter.py class JSONLFormatter (line 15) | class JSONLFormatter(logging.Formatter): method format (line 18) | def format(self, record: logging.LogRecord) -> str: class ConsoleFormatter (line 52) | class ConsoleFormatter(logging.Formatter): method format (line 55) | def format(self, record: logging.LogRecord) -> str: FILE: mds_logging/handlers.py class SessionFileHandler (line 12) | class SessionFileHandler(logging.FileHandler): method __init__ (line 15) | def __init__(self, filename: str, flush_every_line: bool = True, **kwa... method emit (line 20) | def emit(self, record: logging.LogRecord) -> None: class WatcherHandler (line 26) | class WatcherHandler(logging.Handler): method __init__ (line 32) | def __init__(self, watcher, formatter): method emit (line 37) | def emit(self, record): FILE: mds_logging/registry.py function register_component (line 15) | def register_component(name: str, category: str, description: str) -> None: function get_registry (line 25) | def get_registry() -> dict[str, dict]: function clear_registry (line 30) | def clear_registry() -> None: FILE: mds_logging/schema.py function build_log_entry (line 16) | def build_log_entry( FILE: mds_logging/server.py function init_server_logging (line 29) | def init_server_logging(log_dir: str | None = None) -> str: function get_logger (line 72) | def get_logger(component: str = "gcs") -> logging.Logger: function log_system_event (line 77) | def log_system_event(message: str, level: str = "INFO", component: str =... function log_system_error (line 84) | def log_system_error(message: str, component: str = "system") -> None: function log_system_warning (line 90) | def log_system_warning(message: str, component: str = "system") -> None: function log_system_startup (line 96) | def log_system_startup(message: str, component: str = "system") -> None: function log_drone_command (line 102) | def log_drone_command(message: str, drone_id: int | None = None, compone... function log_drone_telemetry (line 108) | def log_drone_telemetry(message: str, drone_id: int | None = None, compo... function initialize_logging (line 114) | def initialize_logging(**kwargs) -> str: FILE: mds_logging/session.py function _resolve_session_filepath (line 19) | def _resolve_session_filepath(log_dir: str, session_id: str) -> Path | N... function create_session (line 32) | def create_session(log_dir: str) -> str: function get_session_id (line 46) | def get_session_id() -> str: function get_session_filepath (line 51) | def get_session_filepath(log_dir: str, session_id: str) -> str: function list_sessions (line 59) | def list_sessions(log_dir: str) -> list[dict]: function read_session_lines (line 83) | def read_session_lines( function cleanup_sessions (line 132) | def cleanup_sessions(log_dir: str, max_sessions: int, max_size_mb: int) ... FILE: mds_logging/watcher.py function _matches_filter (line 19) | def _matches_filter(entry: dict, level: str | None = None, component: st... class LogWatcher (line 33) | class LogWatcher: method __init__ (line 36) | def __init__(self, max_buffer: int = 100): method publish (line 41) | def publish(self, log_entry: dict) -> None: method subscribe (line 52) | async def subscribe(self, level: str | None = None, component: str | N... function get_watcher (line 79) | def get_watcher() -> LogWatcher: FILE: multiple_sitl/calculate_spawn_coordinates.py function build_parser (line 18) | def build_parser() -> argparse.ArgumentParser: function calculate_coordinates (line 39) | def calculate_coordinates(lat: float, lon: float, offset_north: float, o... function main (line 51) | def main() -> int: FILE: multiple_sitl/detect_px4_mavlink_port.py function parse_args (line 29) | def parse_args() -> argparse.Namespace: function _port_from_endpoint (line 45) | def _port_from_endpoint(endpoint: str) -> int | None: function _candidate_port (line 52) | def _candidate_port(port: int | None, excluded_ports: Sequence[int]) -> ... function extract_ports_from_ss_output (line 60) | def extract_ports_from_ss_output( function extract_ports_from_log (line 90) | def extract_ports_from_log( function extract_ports_from_proc_net_output (line 105) | def extract_ports_from_proc_net_output( function choose_port (line 130) | def choose_port(candidates: Iterable[int], default_port: int) -> int: function _read_sitl_log (line 139) | def _read_sitl_log(sitl_log: Path | None) -> str: function _read_proc_net_candidates (line 148) | def _read_proc_net_candidates(excluded_ports: Sequence[int]) -> List[int]: function detect_from_runtime (line 159) | def detect_from_runtime( function main (line 208) | def main() -> int: FILE: process_formation.py function get_base_folder (line 15) | def get_base_folder() -> str: function get_config_filename (line 21) | def get_config_filename() -> str: function run_formation_process (line 25) | def run_formation_process( function main (line 132) | def main(): FILE: quickscout_mission.py function check_mavsdk_server_running (line 43) | def check_mavsdk_server_running(port): function wait_for_port (line 58) | def wait_for_port(port, host="127.0.0.1", timeout=10.0): function log_mavsdk_output (line 70) | async def log_mavsdk_output(mavsdk_server): function find_mavsdk_server (line 91) | def find_mavsdk_server(): function start_mavsdk_server (line 105) | def start_mavsdk_server(grpc_port, udp_port): function stop_mavsdk_server (line 154) | def stop_mavsdk_server(mavsdk_server): function wait_for_drone_connection (line 168) | async def wait_for_drone_connection(drone, timeout_sec): function wait_for_navigation_health (line 186) | async def wait_for_navigation_health(drone, timeout_sec): function get_home_position (line 204) | async def get_home_position(drone, timeout_sec): function get_local_home_position (line 215) | def get_local_home_position(timeout: float = 1.0) -> dict: function wait_for_local_startup_ready (line 228) | async def wait_for_local_startup_ready(timeout_sec: float, poll_sec: flo... function _great_circle_distance_m (line 260) | def _great_circle_distance_m(lat1: float, lng1: float, lat2: float, lng2... function _estimate_distance_from_positions (line 270) | def _estimate_distance_from_positions(previous_position, current_positio... function _resolve_quickscout_runtime_param (line 281) | def _resolve_quickscout_runtime_param(name: str, default: float) -> float: function _wait_for_mission_airborne (line 289) | async def _wait_for_mission_airborne( function _monitor_active_mission (line 325) | async def _monitor_active_mission( function parse_args (line 437) | def parse_args(): function load_waypoints (line 449) | def load_waypoints(filepath): function coerce_optional_float (line 455) | def coerce_optional_float(value, default): function report_progress (line 462) | def report_progress(gcs_url, mission_id, hw_id, waypoint_index, total_wa... function run_mission (line 483) | async def run_mission(args): function main (line 718) | def main(): FILE: smart_swarm.py function parse_float (line 183) | def parse_float(field_value, default=0.0): function normalize_hw_id (line 195) | def normalize_hw_id(hw_id): function get_drone_config_for_hw_id (line 207) | def get_drone_config_for_hw_id(hw_id): function reset_leader_tracking (line 215) | def reset_leader_tracking(): function bump_formation_config_version (line 224) | def bump_formation_config_version(reason: str): function current_leader_stream_target (line 235) | def current_leader_stream_target(): function leader_stream_target_changed (line 240) | def leader_stream_target_changed(expected_version, expected_hw_id, expec... function publish_runtime_assignment (line 249) | def publish_runtime_assignment(entry=None, *, force_follow=None): function should_use_local_ned (line 272) | def should_use_local_ned(sample: dict) -> bool: function estimate_yaw_rate_deg_s (line 281) | def estimate_yaw_rate_deg_s(sample: dict, measurement_time: float) -> fl... function build_leader_measurement_from_sample (line 305) | def build_leader_measurement_from_sample(sample: dict): function apply_leader_state_sample (line 340) | def apply_leader_state_sample(sample: dict, source: str) -> bool: function assign_leader_target (line 408) | def assign_leader_target(new_leader_hw_id): function cancel_follower_tasks (line 436) | async def cancel_follower_tasks(logger): function _follower_task_missing (line 455) | def _follower_task_missing(task_name: str) -> bool: function ensure_offboard_active_for_follower (line 460) | async def ensure_offboard_active_for_follower(drone: System, logger, rea... function ensure_follower_runtime (line 479) | async def ensure_follower_runtime(drone: System, logger, reason: str) ->... function handle_leader_unavailability (line 493) | async def handle_leader_unavailability(drone: System, logger, reason: str): function transition_to_leader_mode (line 509) | async def transition_to_leader_mode(drone: System, logger, reason: str): function transition_to_follower_mode (line 536) | async def transition_to_follower_mode(drone: System, new_leader_hw_id, l... function read_config (line 590) | def read_config(filename: str): function read_swarm (line 656) | def read_swarm(filename: str): function parse_swarm_entries (line 678) | def parse_swarm_entries(entries): function replace_swarm_config (line 698) | def replace_swarm_config(entries, source_name: str, announce_level=loggi... function refresh_swarm_config_from_gcs (line 712) | async def refresh_swarm_config_from_gcs(logger, source_label: str, sessi... function get_mavsdk_server_path (line 750) | def get_mavsdk_server_path(): function start_mavsdk_server (line 766) | def start_mavsdk_server(udp_port: int): function check_mavsdk_server_running (line 836) | def check_mavsdk_server_running(port): function wait_for_port (line 856) | def wait_for_port(port, host='localhost', timeout=Params.PRE_FLIGHT_TIME... function log_mavsdk_output (line 878) | async def log_mavsdk_output(mavsdk_server): function stop_mavsdk_server (line 904) | def stop_mavsdk_server(mavsdk_server): function update_swarm_config_periodically (line 930) | async def update_swarm_config_periodically(drone): function update_leader_state (line 1041) | async def update_leader_state(): function elect_new_leader (line 1165) | async def elect_new_leader(): function notify_gcs_of_leader_change (line 1244) | async def notify_gcs_of_leader_change(new_leader_hw_id) -> bool: function update_own_state (line 1282) | async def update_own_state(drone: System): function control_loop (line 1311) | async def control_loop(drone: System): function execute_failsafe (line 1497) | async def execute_failsafe(drone: System, reason: str = ""): function initialize_drone (line 1527) | async def initialize_drone(start_offboard: bool = False): function run_smart_swarm (line 1599) | async def run_smart_swarm(): function main (line 1783) | def main(): FILE: smart_swarm_src/failover.py function normalize_hw_id (line 6) | def normalize_hw_id(hw_id: Any) -> str | None: function _would_create_cycle (line 18) | def _would_create_cycle( function choose_leader_loss_response (line 45) | def choose_leader_loss_response( FILE: smart_swarm_src/kalman_filter.py class LeaderKalmanFilter (line 8) | class LeaderKalmanFilter: method __init__ (line 9) | def __init__(self): method _initialize_filter (line 18) | def _initialize_filter(self): method _set_dynamics (line 43) | def _set_dynamics(self, dt): method reset (line 60) | def reset(self): method predict (line 67) | def predict(self, current_time): method update (line 87) | def update(self, measurement, measurement_time): method get_state (line 123) | def get_state(self): FILE: smart_swarm_src/low_pass_filter.py class LowPassFilter (line 5) | class LowPassFilter: method __init__ (line 6) | def __init__(self, alpha): method reset (line 16) | def reset(self): method filter (line 20) | def filter(self, value): FILE: smart_swarm_src/pd_controller.py class PDController (line 5) | class PDController: method __init__ (line 6) | def __init__(self, kp, kd, max_velocity, max_acceleration=None, max_je... method reset (line 24) | def reset(self): method compute (line 30) | def compute( FILE: smart_swarm_src/utils.py function transform_body_to_nea (line 10) | def transform_body_to_nea(offset_forward, offset_right, yaw_deg): function lla_to_ned (line 29) | def lla_to_ned(lat, lon, alt, lat_ref, lon_ref, alt_ref): function ned_to_lla (line 51) | def ned_to_lla(north, east, down, lat_ref, lon_ref, alt_ref): function is_data_fresh (line 73) | def is_data_fresh(update_time, threshold): function get_current_timestamp (line 87) | def get_current_timestamp(): function fetch_home_position (line 98) | def fetch_home_position(ip, port, endpoint): FILE: src/action_runners/base.py class ActionInvocation (line 15) | class ActionInvocation: class ActionExecutionContext (line 27) | class ActionExecutionContext: class ActionSpec (line 39) | class ActionSpec: function load_request_payload (line 48) | def load_request_payload( FILE: src/action_runners/precision_move.py class LocalMoveSnapshot (line 29) | class LocalMoveSnapshot: class PrecisionMoveTarget (line 40) | class PrecisionMoveTarget: function _normalize_heading_deg (line 47) | def _normalize_heading_deg(value: float) -> float: function _signed_heading_error_deg (line 51) | def _signed_heading_error_deg(target_deg: float, current_deg: float) -> ... function _body_to_ned_translation (line 55) | def _body_to_ned_translation(forward_m: float, right_m: float, heading_d... function normalize_heading_deg (line 62) | def normalize_heading_deg(value: float) -> float: function shortest_heading_error_deg (line 66) | def shortest_heading_error_deg(current_deg: float, target_deg: float) ->... function body_translation_to_ned (line 70) | def body_translation_to_ned(*, forward_m: float, right_m: float, up_m: f... function _local_get_json (line 75) | def _local_get_json(route: str, timeout: float = LOCAL_API_TIMEOUT_SEC) ... function _read_local_move_snapshot (line 84) | def _read_local_move_snapshot(timeout: float = LOCAL_API_TIMEOUT_SEC) ->... function _read_local_relative_altitude (line 103) | def _read_local_relative_altitude(timeout: float = LOCAL_API_TIMEOUT_SEC... function _resolve_request (line 115) | def _resolve_request(invocation: ActionInvocation) -> PrecisionMoveRequest: function _resolve_target_translation (line 121) | def _resolve_target_translation(request: PrecisionMoveRequest, heading_d... function _resolve_target_yaw_deg (line 139) | def _resolve_target_yaw_deg(request: PrecisionMoveRequest, current_yaw_d... function _build_target (line 147) | def _build_target( function _build_velocity_vector (line 165) | def _build_velocity_vector( function _load_offboard_types (line 184) | def _load_offboard_types(): function _start_offboard_with_retry (line 190) | async def _start_offboard_with_retry( function _wait_until_hold_mode (line 219) | async def _wait_until_hold_mode(drone: Any, timeout_sec: float = 10.0) -... function _safe_stop_offboard (line 229) | async def _safe_stop_offboard(drone: Any, logger: Any) -> None: function precision_move (line 236) | async def precision_move(context: ActionExecutionContext, invocation: Ac... FILE: src/command_contract.py class CommandOrigin (line 16) | class CommandOrigin(BaseModel): class PrecisionMoveFrame (line 28) | class PrecisionMoveFrame(str, Enum): class PrecisionMoveYawMode (line 33) | class PrecisionMoveYawMode(str, Enum): class PrecisionMoveHoldMode (line 39) | class PrecisionMoveHoldMode(str, Enum): class PrecisionMoveYaw (line 43) | class PrecisionMoveYaw(BaseModel): method _validate_mode (line 58) | def _validate_mode(self) -> "PrecisionMoveYaw": class PrecisionMoveRequest (line 71) | class PrecisionMoveRequest(BaseModel): method _normalize_frame (line 118) | def _normalize_frame(cls, value: Any) -> Any: method _validate_translation_payload (line 125) | def _validate_translation_payload(cls, value: Any) -> Dict[str, float]: method _validate_shape (line 142) | def _validate_shape(self) -> "PrecisionMoveRequest": method from_action_payload (line 175) | def from_action_payload(cls, payload: Dict[str, Any]) -> "PrecisionMov... class DroneCommandRequest (line 185) | class DroneCommandRequest(BaseModel): method _normalize_mission_type (line 254) | def _normalize_mission_type(cls, value: Any) -> int: method _validate_mission_payload (line 280) | def _validate_mission_payload(self) -> "DroneCommandRequest": class SubmitCommandRequest (line 292) | class SubmitCommandRequest(DroneCommandRequest): method _normalize_target_drones (line 315) | def _normalize_target_drones(cls, value: Any) -> Optional[List[str]]: method _normalize_idempotency_key (line 331) | def _normalize_idempotency_key(cls, value: Any) -> Optional[str]: method to_drone_payload (line 340) | def to_drone_payload(self, *, command_id: Optional[str] = None) -> Dic... FILE: src/connectivity_checker.py class ConnectivityChecker (line 9) | class ConnectivityChecker: method __init__ (line 18) | def __init__(self, params, led_controller): method start (line 36) | def start(self): method stop (line 49) | def stop(self): method run (line 61) | def run(self): method check_connectivity (line 86) | def check_connectivity(self, ip): FILE: src/constants.py class PacketMarkers (line 21) | class PacketMarkers: class TrajectoryState (line 36) | class TrajectoryState(IntEnum): method get_description (line 55) | def get_description(cls, code: int) -> str: method is_maneuvering (line 72) | def is_maneuvering(cls, code: int) -> bool: class NetworkDefaults (line 81) | class NetworkDefaults: class TelemetryIndex (line 98) | class TelemetryIndex: class TimeConstants (line 128) | class TimeConstants: FILE: src/coordinate_utils.py function _candidate_base_dirs (line 23) | def _candidate_base_dirs(base_dir: Optional[str] = None) -> list[Path]: function latlon_to_ne (line 48) | def latlon_to_ne( function get_expected_position_from_trajectory (line 96) | def get_expected_position_from_trajectory( FILE: src/drone.py class Drone (line 16) | class Drone: method __init__ (line 41) | def __init__(self, config): method connect (line 78) | async def connect(self): method read_trajectory (line 104) | async def read_trajectory(self, filename): method perform_trajectory (line 134) | async def perform_trajectory(self): FILE: src/drone_api_server.py class ReadinessCheckResponse (line 145) | class ReadinessCheckResponse(BaseModel): class ReadinessMessageResponse (line 152) | class ReadinessMessageResponse(BaseModel): class DroneStateResponse (line 159) | class DroneStateResponse(BaseModel): class SwarmStateResponse (line 207) | class SwarmStateResponse(BaseModel): class CommandAckResponse (line 236) | class CommandAckResponse(BaseModel): class LiveArmabilityResponse (line 257) | class LiveArmabilityResponse(BaseModel): class DroneHealthResponse (line 276) | class DroneHealthResponse(BaseModel): class DroneManagedMavlinkRuntimeResponse (line 282) | class DroneManagedMavlinkRuntimeResponse(BaseModel): class DroneManagedConnectivityRuntimeResponse (line 302) | class DroneManagedConnectivityRuntimeResponse(BaseModel): class DroneGitSyncRuntimeResponse (line 322) | class DroneGitSyncRuntimeResponse(BaseModel): class DroneEnvRuntimeResponse (line 336) | class DroneEnvRuntimeResponse(BaseModel): class DroneEnvEntryResponse (line 356) | class DroneEnvEntryResponse(BaseModel): class DroneEnvResponse (line 379) | class DroneEnvResponse(BaseModel): class DroneEnvUpdateRequest (line 391) | class DroneEnvUpdateRequest(BaseModel): class DroneEnvUpdateResponse (line 398) | class DroneEnvUpdateResponse(BaseModel): class HomePositionResponse (line 409) | class HomePositionResponse(BaseModel): class GPSGlobalOriginResponse (line 416) | class GPSGlobalOriginResponse(BaseModel): class DroneGitStatusResponse (line 424) | class DroneGitStatusResponse(BaseModel): class PositionDeviationResponse (line 447) | class PositionDeviationResponse(BaseModel): class WifiStatusResponse (line 454) | class WifiStatusResponse(BaseModel): class EthernetStatusResponse (line 459) | class EthernetStatusResponse(BaseModel): class UsbModemStatusResponse (line 464) | class UsbModemStatusResponse(BaseModel): class CellularStatusResponse (line 469) | class CellularStatusResponse(BaseModel): class NetworkLinkResponse (line 474) | class NetworkLinkResponse(BaseModel): class InternetStatusResponse (line 485) | class InternetStatusResponse(BaseModel): class NetworkStatusResponse (line 494) | class NetworkStatusResponse(BaseModel): class LocalPositionNEDResponse (line 506) | class LocalPositionNEDResponse(BaseModel): class DroneAPIServer (line 521) | class DroneAPIServer: method __init__ (line 536) | def __init__(self, params: Params, drone_config: DroneConfig): method set_drone_communicator (line 586) | def set_drone_communicator(self, drone_communicator): method _resolve_live_probe_connection (line 590) | def _resolve_live_probe_connection(self) -> Tuple[int, str]: method _port_is_open (line 601) | def _port_is_open(port: int, host: str = "127.0.0.1", timeout: float =... method _find_mavsdk_server_binary (line 607) | def _find_mavsdk_server_binary() -> str: method _ensure_live_probe_server (line 619) | async def _ensure_live_probe_server(self, grpc_port: int, udp_port: int): method _stop_live_probe_server (line 646) | def _stop_live_probe_server(process: Optional[subprocess.Popen]) -> None: method _wait_for_mavsdk_connection (line 656) | async def _wait_for_mavsdk_connection(self, drone: System) -> None: method _probe_live_armability (line 679) | async def _probe_live_armability(self, require_global_position: bool =... method _with_local_mavsdk_system (line 748) | async def _with_local_mavsdk_system(self, operation): method _with_local_ulog_system (line 773) | async def _with_local_ulog_system(self, operation): method _run_ulog_download_job (line 798) | async def _run_ulog_download_job(self, job_id: str) -> None: method _assert_px4_param_mutation_allowed (line 808) | def _assert_px4_param_mutation_allowed(self) -> None: method _assert_ulog_download_allowed (line 818) | def _assert_ulog_download_allowed(self) -> None: method _assert_ulog_erase_allowed (line 826) | def _assert_ulog_erase_allowed(self) -> None: method _serialize_drone_state_payload (line 835) | def _serialize_drone_state_payload(drone_state: Dict[str, Any]) -> Dic... method _serialize_swarm_state_payload (line 857) | def _serialize_swarm_state_payload(swarm_state: Dict[str, Any]) -> Dic... method setup_routes (line 863) | def setup_routes(self): method _validate_command (line 1734) | def _validate_command(self, command_data: Dict[str, Any]) -> Dict[str,... method _check_state_preconditions (line 1835) | def _check_state_preconditions(self, mission_type: int) -> Dict[str, A... method _allowed_override_missions (line 1893) | def _allowed_override_missions() -> Set[int]: method _find_active_command_by_id (line 1907) | def _find_active_command_by_id(self, command_id: Optional[str]) -> Opt... method _cancel_active_or_pending_command (line 1943) | async def _cancel_active_or_pending_command(self, *, had_active_comman... method _build_acceptance_message (line 1962) | def _build_acceptance_message( method _build_idempotent_acceptance_message (line 1981) | def _build_idempotent_acceptance_message(mission_name: str, phase: str... method _report_pending_command_superseded (line 1992) | async def _report_pending_command_superseded( method load_swarm (line 2048) | def load_swarm(self, file_path): method _get_origin_from_gcs (line 2052) | def _get_origin_from_gcs(self): method _execute_git_command (line 2084) | def _execute_git_command(self, command): method _get_network_info (line 2090) | def _get_network_info(self): method run (line 2123) | def run(self): FILE: src/drone_communicator.py class DroneCommunicator (line 24) | class DroneCommunicator: method __init__ (line 29) | def __init__(self, drone_config: DroneConfig, params: Params, drones: ... method set_api_server (line 58) | def set_api_server(self, api_server): method _get_live_swarm_assignment (line 62) | def _get_live_swarm_assignment(self) -> Dict[str, Any]: method _resolve_telemetry_timestamp_ms (line 91) | def _resolve_telemetry_timestamp_ms(self) -> int: method _is_valid_global_position (line 102) | def _is_valid_global_position(position: Any) -> bool: method _age_ms (line 117) | def _age_ms(now_ms: int, timestamp_ms: Any) -> Optional[int]: method _position_unavailable_reason (line 123) | def _position_unavailable_reason(self, global_position_valid: bool) ->... method _distance_to_home_m (line 134) | def _distance_to_home_m(position: Any, home_position: Any) -> Optional... method _build_swarm_state (line 164) | def _build_swarm_state(self, live_swarm: Dict[str, Any], emitted_at_ms... method _initialize_socket (line 201) | def _initialize_socket(self) -> socket.socket: method _normalize_update_time_ms (line 211) | def _normalize_update_time_ms(value: Any) -> int: method _local_mavlink_stale_threshold_ms (line 225) | def _local_mavlink_stale_threshold_ms(self) -> int: method _build_stale_telemetry_blocker (line 248) | def _build_stale_telemetry_blocker(message: str, timestamp_ms: int) ->... method send_telem (line 256) | def send_telem(self, packet: bytes, ip: str, port: int) -> None: method get_nodes (line 271) | def get_nodes(self) -> List[Dict[str, Any]]: method update_drone_config (line 287) | def update_drone_config(self, hw_id: str, **kwargs) -> None: method process_command (line 303) | def process_command(self, command_data: Dict[str, Any]) -> Dict[str, A... method _update_drone_state (line 393) | def _update_drone_state(self, state: int, trigger_time: int) -> None: method _process_mission_command (line 403) | def _process_mission_command(self, mission: int, command_data: Dict[st... method _handle_takeoff_command (line 422) | def _handle_takeoff_command(self, command_data: Dict[str, Any]) -> None: method _handle_standard_mission (line 431) | def _handle_standard_mission(self, mission: int, command_data: Dict[st... method _write_runtime_payload_file (line 446) | def _write_runtime_payload_file(self, prefix: str, payload: Any, *iden... method _handle_quickscout_command (line 455) | def _handle_quickscout_command(self, command_data: Dict[str, Any]) -> ... method _handle_precision_move_command (line 475) | def _handle_precision_move_command(self, command_data: Dict[str, Any])... method _log_updated_configuration (line 495) | def _log_updated_configuration(self) -> None: method process_packet (line 506) | def process_packet(self, data: bytes) -> None: method _update_drone_config_from_telemetry (line 527) | def _update_drone_config_from_telemetry(self, hw_id: int, telemetry_da... method get_drone_state (line 549) | def get_drone_state(self) -> Dict[str, Any]: method get_swarm_state (line 659) | def get_swarm_state(self) -> Dict[str, Any]: method send_drone_state (line 666) | def send_drone_state(self) -> None: method _create_telemetry_packet (line 680) | def _create_telemetry_packet(self, drone_state: Dict[str, Any]) -> bytes: method _broadcast_telemetry (line 703) | def _broadcast_telemetry(self, packet: bytes, sender_hw_id: int) -> None: method read_packets (line 710) | def read_packets(self) -> None: method start_communication (line 726) | def start_communication(self) -> None: method stop_communication (line 737) | def stop_communication(self) -> None: FILE: src/drone_config/__init__.py class DroneConfig (line 35) | class DroneConfig: method __init__ (line 45) | def __init__(self, drones: Optional[Dict] = None, hw_id: Optional[int]... method hw_id (line 86) | def hw_id(self) -> int: method config (line 91) | def config(self) -> Dict[str, Any]: method swarm (line 96) | def swarm(self) -> Optional[Dict[str, Any]]: method pos_id (line 101) | def pos_id(self) -> int: method takeoff_altitude (line 106) | def takeoff_altitude(self) -> float: method takeoff_altitude (line 113) | def takeoff_altitude(self, value: float): method runtime_takeoff_altitude (line 118) | def runtime_takeoff_altitude(self) -> Optional[float]: method runtime_takeoff_altitude (line 123) | def runtime_takeoff_altitude(self, value: Optional[float]): method all_configs (line 128) | def all_configs(self) -> Dict[int, Dict[str, float]]: method detected_pos_id (line 137) | def detected_pos_id(self) -> int: method detected_pos_id (line 141) | def detected_pos_id(self, value: int): method state (line 145) | def state(self) -> int: method state (line 149) | def state(self, value: int): method mission (line 153) | def mission(self) -> int: method mission (line 157) | def mission(self, value: int): method last_mission (line 161) | def last_mission(self) -> int: method last_mission (line 165) | def last_mission(self, value: int): method trigger_time (line 169) | def trigger_time(self) -> float: method trigger_time (line 173) | def trigger_time(self, value: float): method drone_setup (line 177) | def drone_setup(self) -> Any: method drone_setup (line 181) | def drone_setup(self, value: Any): method current_command_id (line 185) | def current_command_id(self) -> Optional[str]: method current_command_id (line 189) | def current_command_id(self, value: Optional[str]): method update_branch (line 193) | def update_branch(self) -> Optional[str]: method update_branch (line 197) | def update_branch(self, value: Optional[str]): method reboot_after_params (line 201) | def reboot_after_params(self) -> Optional[bool]: method reboot_after_params (line 205) | def reboot_after_params(self, value: Optional[bool]): method quickscout_mission_id (line 209) | def quickscout_mission_id(self) -> Optional[str]: method quickscout_mission_id (line 213) | def quickscout_mission_id(self, value: Optional[str]): method quickscout_waypoints_file (line 217) | def quickscout_waypoints_file(self) -> Optional[str]: method quickscout_waypoints_file (line 221) | def quickscout_waypoints_file(self, value: Optional[str]): method quickscout_return_behavior (line 225) | def quickscout_return_behavior(self) -> Optional[str]: method quickscout_return_behavior (line 229) | def quickscout_return_behavior(self, value: Optional[str]): method precision_move_request_file (line 233) | def precision_move_request_file(self) -> Optional[str]: method precision_move_request_file (line 237) | def precision_move_request_file(self, value: Optional[str]): method auto_global_origin (line 241) | def auto_global_origin(self) -> Optional[bool]: method auto_global_origin (line 245) | def auto_global_origin(self, value: Optional[bool]): method use_global_setpoints (line 249) | def use_global_setpoints(self) -> Optional[bool]: method use_global_setpoints (line 253) | def use_global_setpoints(self, value: Optional[bool]): method position (line 257) | def position(self) -> Dict[str, float]: method position (line 261) | def position(self, value: Dict[str, float]): method velocity (line 265) | def velocity(self) -> Dict[str, float]: method velocity (line 269) | def velocity(self, value: Dict[str, float]): method yaw (line 273) | def yaw(self) -> float: method yaw (line 277) | def yaw(self, value: float): method yaw_rate_deg_s (line 281) | def yaw_rate_deg_s(self) -> float: method yaw_rate_deg_s (line 285) | def yaw_rate_deg_s(self, value: float): method telemetry_timestamp_ms (line 289) | def telemetry_timestamp_ms(self) -> int: method telemetry_timestamp_ms (line 293) | def telemetry_timestamp_ms(self, value: int): method telemetry_sequence (line 297) | def telemetry_sequence(self) -> int: method telemetry_sequence (line 301) | def telemetry_sequence(self, value: int): method gps_raw_timestamp_ms (line 305) | def gps_raw_timestamp_ms(self) -> int: method gps_raw_timestamp_ms (line 309) | def gps_raw_timestamp_ms(self, value: int): method global_position_timestamp_ms (line 313) | def global_position_timestamp_ms(self) -> int: method global_position_timestamp_ms (line 317) | def global_position_timestamp_ms(self, value: int): method global_position_valid (line 321) | def global_position_valid(self) -> bool: method global_position_valid (line 325) | def global_position_valid(self, value: bool): method position_source (line 329) | def position_source(self) -> str: method position_source (line 333) | def position_source(self, value: str): method battery (line 337) | def battery(self) -> float: method battery (line 341) | def battery(self, value: float): method last_update_timestamp (line 345) | def last_update_timestamp(self) -> float: method last_update_timestamp (line 349) | def last_update_timestamp(self, value: float): method home_position (line 353) | def home_position(self) -> Any: method home_position (line 357) | def home_position(self, value: Any): method px4_home_position_set (line 361) | def px4_home_position_set(self) -> bool: method px4_home_position_set (line 365) | def px4_home_position_set(self, value: bool): method home_position_source (line 369) | def home_position_source(self) -> str: method home_position_source (line 373) | def home_position_source(self, value: str): method gps_global_origin (line 377) | def gps_global_origin(self) -> Any: method gps_global_origin (line 381) | def gps_global_origin(self, value: Any): method target_drone (line 385) | def target_drone(self) -> Any: method target_drone (line 389) | def target_drone(self, value: Any): method drones (line 393) | def drones(self) -> Optional[Dict]: method drones (line 397) | def drones(self, value: Optional[Dict]): method hdop (line 401) | def hdop(self) -> float: method hdop (line 405) | def hdop(self, value: float): method vdop (line 409) | def vdop(self) -> float: method vdop (line 413) | def vdop(self, value: float): method gps_fix_type (line 417) | def gps_fix_type(self) -> int: method gps_fix_type (line 421) | def gps_fix_type(self, value: int): method satellites_visible (line 425) | def satellites_visible(self) -> int: method satellites_visible (line 429) | def satellites_visible(self, value: int): method base_mode (line 433) | def base_mode(self) -> int: method base_mode (line 437) | def base_mode(self, value: int): method custom_mode (line 441) | def custom_mode(self) -> int: method custom_mode (line 445) | def custom_mode(self, value: int): method system_status (line 449) | def system_status(self) -> int: method system_status (line 453) | def system_status(self, value: int): method is_armed (line 457) | def is_armed(self) -> bool: method is_armed (line 461) | def is_armed(self, value: bool): method is_ready_to_arm (line 465) | def is_ready_to_arm(self) -> bool: method is_ready_to_arm (line 469) | def is_ready_to_arm(self, value: bool): method readiness_status (line 473) | def readiness_status(self) -> str: method readiness_status (line 477) | def readiness_status(self, value: str): method readiness_summary (line 481) | def readiness_summary(self) -> str: method readiness_summary (line 485) | def readiness_summary(self, value: str): method readiness_checks (line 489) | def readiness_checks(self) -> List[Dict[str, Any]]: method readiness_checks (line 493) | def readiness_checks(self, value: List[Dict[str, Any]]): method preflight_blockers (line 497) | def preflight_blockers(self) -> List[Dict[str, Any]]: method preflight_blockers (line 501) | def preflight_blockers(self, value: List[Dict[str, Any]]): method preflight_warnings (line 505) | def preflight_warnings(self) -> List[Dict[str, Any]]: method preflight_warnings (line 509) | def preflight_warnings(self, value: List[Dict[str, Any]]): method status_messages (line 513) | def status_messages(self) -> List[Dict[str, Any]]: method status_messages (line 517) | def status_messages(self, value: List[Dict[str, Any]]): method preflight_last_update (line 521) | def preflight_last_update(self) -> int: method preflight_last_update (line 525) | def preflight_last_update(self, value: int): method local_position_ned (line 529) | def local_position_ned(self) -> Dict[str, float]: method local_position_ned (line 533) | def local_position_ned(self, value: Dict[str, float]): method is_gyrometer_calibration_ok (line 537) | def is_gyrometer_calibration_ok(self) -> bool: method is_gyrometer_calibration_ok (line 541) | def is_gyrometer_calibration_ok(self, value: bool): method is_accelerometer_calibration_ok (line 545) | def is_accelerometer_calibration_ok(self) -> bool: method is_accelerometer_calibration_ok (line 549) | def is_accelerometer_calibration_ok(self, value: bool): method is_magnetometer_calibration_ok (line 553) | def is_magnetometer_calibration_ok(self) -> bool: method is_magnetometer_calibration_ok (line 557) | def is_magnetometer_calibration_ok(self, value: bool): method get_hw_id (line 564) | def get_hw_id(self, hw_id: Optional[int] = None) -> Optional[int]: method read_file (line 568) | def read_file(self, filename: str, source: str, hw_id: int) -> Optiona... method read_config (line 572) | def read_config(self) -> Optional[Dict[str, Any]]: method read_swarm (line 576) | def read_swarm(self) -> Optional[Dict[str, Any]]: method fetch_online_config (line 580) | def fetch_online_config(self, url: str, local_filename: str) -> Option... method load_all_configs (line 584) | def load_all_configs(self) -> Dict[int, Dict[str, float]]: method find_target_drone (line 588) | def find_target_drone(self) -> None: method radian_to_degrees_heading (line 592) | def radian_to_degrees_heading(self, yaw_radians: float) -> float: method get_serial_port (line 596) | def get_serial_port(self) -> str: method get_baudrate (line 600) | def get_baudrate(self) -> int: method update (line 604) | def update(self, **kwargs) -> None: FILE: src/drone_config/config_loader.py class ConfigLoader (line 27) | class ConfigLoader: method _extract_entries (line 40) | def _extract_entries(data: Any, filename: str) -> Any: method get_hw_id (line 60) | def get_hw_id(hw_id: Optional[int] = None) -> Optional[int]: method read_file (line 73) | def read_file(filename: str, source: str, hw_id: int) -> Optional[Dict... method fetch_online_config (line 105) | def fetch_online_config(url: str, local_filename: str, hw_id: int) -> ... method read_config (line 135) | def read_config(hw_id: int) -> Optional[Dict[str, Any]]: method read_swarm (line 153) | def read_swarm(hw_id: int) -> Optional[Dict[str, Any]]: method load_all_configs (line 171) | def load_all_configs() -> Dict[int, Dict[str, float]]: FILE: src/drone_config/drone_config_data.py class DroneConfigData (line 16) | class DroneConfigData: method get_serial_port (line 39) | def get_serial_port(self) -> str: method get_baudrate (line 58) | def get_baudrate(self) -> int: FILE: src/drone_config/drone_state.py class DroneState (line 18) | class DroneState: method __init__ (line 62) | def __init__(self, drones: Optional[Dict] = None): method find_target_drone (line 153) | def find_target_drone(self, hw_id: int, swarm: Optional[Dict]) -> None: method radian_to_degrees_heading (line 187) | def radian_to_degrees_heading(yaw_radians: float) -> float: FILE: src/drone_setup.py class RunningMissionProcess (line 30) | class RunningMissionProcess: class PendingCommandReport (line 41) | class PendingCommandReport: class RecentCommandRecord (line 52) | class RecentCommandRecord: class DroneSetup (line 62) | class DroneSetup: method __init__ (line 70) | def __init__(self, params, drone_config): method _validate_params (line 118) | def _validate_params(self): method _validate_drone_config (line 151) | def _validate_drone_config(self): method _get_python_exec_path (line 189) | def _get_python_exec_path(self) -> str: method _get_script_path (line 198) | def _get_script_path(self, script_name: str) -> str: method _is_asyncio_process (line 211) | def _is_asyncio_process(process: ManagedProcess) -> bool: method _wait_for_process (line 220) | async def _wait_for_process(self, process: ManagedProcess, timeout: Op... method _communicate_with_process (line 235) | async def _communicate_with_process(self, process: ManagedProcess): method terminate_all_running_processes (line 240) | async def terminate_all_running_processes(self, *, reset_state: bool =... method _detach_current_command_id (line 278) | def _detach_current_command_id(self) -> Optional[str]: method _build_process_key (line 285) | def _build_process_key(self, script_name: str, command_id: Optional[st... method _prune_recent_command_history (line 289) | def _prune_recent_command_history(self, now_monotonic: Optional[float]... method _remember_recent_command (line 306) | def _remember_recent_command( method get_recent_command_record (line 329) | def get_recent_command_record(self, command_id: Optional[str]) -> Opti... method execute_mission_script (line 346) | async def execute_mission_script(self, script_name: str, action: str) ... method _monitor_script_process (line 417) | async def _monitor_script_process(self, process_record: RunningMission... method _build_command_report_url (line 514) | def _build_command_report_url(self, endpoint: str) -> Optional[str]: method _post_command_report (line 523) | async def _post_command_report(self, endpoint: str, payload: dict) -> ... method _ensure_command_report_retry_worker (line 540) | async def _ensure_command_report_retry_worker(self): method _command_report_identity (line 547) | def _command_report_identity(endpoint: str, payload: dict) -> tuple: method _queue_command_report_retry (line 554) | async def _queue_command_report_retry(self, endpoint: str, payload: di... method _retry_pending_command_reports_once (line 586) | async def _retry_pending_command_reports_once(self, now_monotonic: Opt... method _command_report_retry_loop (line 637) | async def _command_report_retry_loop(self): method _report_execution_start_to_gcs (line 655) | async def _report_execution_start_to_gcs( method _report_execution_to_gcs (line 685) | async def _report_execution_to_gcs( method _fail_pending_command (line 728) | async def _fail_pending_command(self, error_message: str) -> tuple: method _complete_pending_command_without_process (line 741) | async def _complete_pending_command_without_process(self, message: str... method cancel_active_command (line 756) | async def cancel_active_command(self, message: str = "Cancel command c... method _reset_mission_state (line 772) | def _reset_mission_state(self, success: bool): method _check_mission_conditions (line 787) | def _check_mission_conditions(self, current_time: int, earlier_trigger... method _execute_immediate_script_mission (line 807) | async def _execute_immediate_script_mission( method _prepare_mission_start (line 839) | def _prepare_mission_start(self, mission_name: str) -> int: method _get_phase2_flags (line 860) | def _get_phase2_flags(self) -> tuple: method _build_offboard_action (line 877) | def _build_offboard_action( method check_running_processes (line 915) | def check_running_processes(self): method synchronize_time (line 932) | def synchronize_time(self): method schedule_mission (line 957) | async def schedule_mission(self): method _handle_no_mission (line 996) | async def _handle_no_mission(self, current_time: int, earlier_trigger_... method _handle_unknown_mission (line 1000) | async def _handle_unknown_mission(self, current_time: int, earlier_tri... method _execute_standard_drone_show (line 1004) | async def _execute_standard_drone_show(self, current_time: int, earlie... method _execute_custom_drone_show (line 1025) | async def _execute_custom_drone_show(self, current_time: int, earlier_... method _execute_hover_test (line 1056) | async def _execute_hover_test(self, current_time: int, earlier_trigger... method _execute_smart_swarm (line 1083) | async def _execute_smart_swarm(self, current_time: int, earlier_trigge... method _execute_swarm_trajectory (line 1104) | async def _execute_swarm_trajectory(self, current_time: int = None, ea... method _execute_quickscout (line 1115) | async def _execute_quickscout(self, current_time: int = None, earlier_... method _execute_takeoff (line 1146) | async def _execute_takeoff(self, current_time: int = 0, earlier_trigge... method _execute_land (line 1170) | async def _execute_land(self, current_time: int = None, earlier_trigge... method _execute_return_rtl (line 1181) | async def _execute_return_rtl(self, current_time: int = None, earlier_... method _execute_kill_terminate (line 1192) | async def _execute_kill_terminate(self, current_time: int = None, earl... method _execute_hold (line 1204) | async def _execute_hold(self, current_time: int = None, earlier_trigge... method _execute_test (line 1215) | async def _execute_test(self, current_time: int = None, earlier_trigge... method _execute_reboot_fc (line 1225) | async def _execute_reboot_fc(self, current_time: int = None, earlier_t... method _execute_reboot_sys (line 1236) | async def _execute_reboot_sys(self, current_time: int = None, earlier_... method _execute_test_led (line 1247) | async def _execute_test_led(self, current_time: int = None, earlier_tr... method _execute_update_code (line 1257) | async def _execute_update_code(self, current_time: int = None, earlier... method _execute_init_sysid (line 1273) | async def _execute_init_sysid(self, current_time: int = None, earlier_... method _execute_apply_common_params (line 1283) | async def _execute_apply_common_params(self, current_time: int = None,... method _execute_precision_move (line 1302) | async def _execute_precision_move(self, current_time: int = None, earl... method _log_mission_result (line 1320) | def _log_mission_result(self, success: bool, message: str): FILE: src/enums.py class Mission (line 4) | class Mission(Enum): class State (line 29) | class State(Enum): class CommandResultCategory (line 36) | class CommandResultCategory(str, Enum): class CommandStatus (line 54) | class CommandStatus(str, Enum): class CommandPhase (line 73) | class CommandPhase(str, Enum): class CommandOutcome (line 86) | class CommandOutcome(str, Enum): class CommandErrorCode (line 98) | class CommandErrorCode(str, Enum): method get_description (line 152) | def get_description(cls, code: str) -> str: FILE: src/filter.py class KalmanFilter (line 4) | class KalmanFilter: method __init__ (line 6) | def __init__(self): method initialize (line 14) | def initialize(self, initial_state, initial_covariance, process_noise,... method initialize_if_needed (line 57) | def initialize_if_needed(self, position_setpoint, velocity_setpoint): method predict (line 79) | def predict(self): method update (line 99) | def update(self, measurement): method get_current_state (line 127) | def get_current_state(self): FILE: src/flight_timeout_utils.py function _coerce_non_negative_altitude (line 16) | def _coerce_non_negative_altitude(relative_altitude_m) -> float | None: function calculate_land_disarm_timeout (line 23) | def calculate_land_disarm_timeout(relative_altitude_m, *, params=Params)... function calculate_controlled_landing_timeout (line 43) | def calculate_controlled_landing_timeout(relative_altitude_m, *, params=... function _calculate_rtl_completion_timeout (line 63) | def _calculate_rtl_completion_timeout( function calculate_rtl_completion_timeout (line 86) | def calculate_rtl_completion_timeout(relative_altitude_m, *, params=Para... function calculate_swarm_rtl_completion_timeout (line 105) | def calculate_swarm_rtl_completion_timeout(relative_altitude_m, *, param... FILE: src/gcs_auth_client.py function read_gcs_api_token (line 16) | def read_gcs_api_token() -> str | None: function gcs_auth_headers (line 40) | def gcs_auth_headers(extra: Mapping[str, str] | None = None) -> dict[str... FILE: src/heartbeat_sender.py class HeartbeatSender (line 17) | class HeartbeatSender: method __init__ (line 28) | def __init__(self, drone_config: DroneConfig): method start (line 36) | def start(self): method stop (line 53) | def stop(self): method _heartbeat_loop (line 62) | def _heartbeat_loop(self): method send_heartbeat (line 73) | def send_heartbeat(self): method _get_netbird_ip (line 129) | def _get_netbird_ip(self): method _get_network_info (line 156) | def _get_network_info(self): FILE: src/led_colors.py class LEDPattern (line 34) | class LEDPattern: class LEDState (line 45) | class LEDState(Enum): method rgb (line 85) | def rgb(self) -> Tuple[int, int, int]: method r (line 90) | def r(self) -> int: method g (line 95) | def g(self) -> int: method b (line 100) | def b(self) -> int: method pattern (line 105) | def pattern(self) -> str: method description (line 110) | def description(self) -> str: method from_name (line 115) | def from_name(cls, name: str) -> Optional['LEDState']: class LEDColors (line 124) | class LEDColors: function get_color_by_name (line 208) | def get_color_by_name(name: str) -> Tuple[int, int, int]: function get_state_by_name (line 233) | def get_state_by_name(name: str) -> Optional[LEDState]: FILE: src/led_controller.py class LEDController (line 54) | class LEDController: method __init__ (line 74) | def __init__(self): method get_instance (line 170) | def get_instance(): method set_color (line 181) | def set_color(r: int, g: int, b: int): method set_state (line 239) | def set_state(state: Union['LEDState', str]): method color_wipe (line 297) | def color_wipe(r: int, g: int, b: int, wait_ms=50): method theater_chase (line 336) | def theater_chase(r: int, g: int, b: int, wait_ms=50, iterations=10): method turn_off (line 385) | def turn_off(): FILE: src/live_armability_utils.py function calculate_live_armability_request_timeout (line 6) | def calculate_live_armability_request_timeout(*, params) -> float: FILE: src/local_mavlink_controller.py class LocalMavlinkController (line 15) | class LocalMavlinkController: method __init__ (line 26) | def __init__(self, drone_config, params, debug_enabled=False): method _open_mavlink_connection (line 59) | def _open_mavlink_connection(self): method _reset_mavlink_connection (line 65) | def _reset_mavlink_connection(self, reason: str) -> None: method log_debug (line 79) | def log_debug(self, message): method log_info (line 84) | def log_info(self, message): method log_warning (line 89) | def log_warning(self, message): method mavlink_monitor (line 94) | def mavlink_monitor(self): method process_message (line 134) | def process_message(self, msg): method _now_ms (line 165) | def _now_ms() -> int: method _mark_telemetry_update (line 168) | def _mark_telemetry_update(self, now_ms: Optional[int] = None) -> None: method _is_valid_global_position (line 175) | def _is_valid_global_position(lat_deg: float, lon_deg: float) -> bool: method _severity_name (line 181) | def _severity_name(severity: Optional[int]) -> str: method _severity_rank (line 198) | def _severity_rank(severity: str) -> int: method _trim_statustext (line 212) | def _trim_statustext(text: Any) -> str: method _expire_status_text_buffers (line 219) | def _expire_status_text_buffers(self) -> None: method _collect_status_text (line 229) | def _collect_status_text(self, msg) -> Optional[str]: method _classify_status_text (line 257) | def _classify_status_text(message: str, severity: str) -> Dict[str, Any]: method _store_status_message (line 276) | def _store_status_message(self, message: Dict[str, Any]) -> None: method _get_recent_status_messages (line 284) | def _get_recent_status_messages(self, now_ms: Optional[int] = None) ->... method _dedupe_messages (line 296) | def _dedupe_messages(messages: List[Dict[str, Any]]) -> List[Dict[str,... method _build_message (line 311) | def _build_message(source: str, severity: str, message: str, timestamp... method _get_system_status_name (line 320) | def _get_system_status_name(system_status: int) -> str: method process_status_text (line 334) | def process_status_text(self, msg): method process_heartbeat (line 356) | def process_heartbeat(self, msg): method _update_pre_arm_status (line 420) | def _update_pre_arm_status(self): method _get_flight_mode_name (line 659) | def _get_flight_mode_name(self, custom_mode): method process_sys_status (line 734) | def process_sys_status(self, msg): method process_gps_raw_int (line 746) | def process_gps_raw_int(self, msg): method process_attitude (line 763) | def process_attitude(self, msg): method set_home_position (line 774) | def set_home_position(self, msg): method process_gps_global_origin (line 793) | def process_gps_global_origin(self, msg): method process_global_position_int (line 822) | def process_global_position_int(self, msg): method process_battery_status (line 869) | def process_battery_status(self, msg): method process_local_position_ned (line 879) | def process_local_position_ned(self, msg): method __del__ (line 905) | def __del__(self): FILE: src/managed_runtime_status.py function normalize_github_repo_web_url (line 16) | def normalize_github_repo_web_url(repo_url: Optional[str], ref: Optional... function as_bool (line 31) | def as_bool(value: Optional[str], *, default: bool = False) -> bool: function parse_status_output (line 37) | def parse_status_output(stdout: str) -> Dict[str, str]: function read_reconcile_status (line 48) | def read_reconcile_status(repo_root: Path, script_relative_path: str, *,... function file_sha256 (line 74) | def file_sha256(path: Optional[Union[str, Path]]) -> Optional[str]: function optional_bool (line 90) | def optional_bool(value: Optional[str]) -> Optional[bool]: function build_mavlink_runtime_summary (line 101) | def build_mavlink_runtime_summary(repo_root: Path) -> Dict[str, Any]: function build_connectivity_runtime_summary (line 140) | def build_connectivity_runtime_summary(repo_root: Path) -> Dict[str, Any]: function resolve_dashboard_access (line 176) | def resolve_dashboard_access(ip: Optional[str], listen: Optional[str]) -... function read_git_sync_runtime_summary (line 214) | def read_git_sync_runtime_summary() -> Dict[str, Any]: FILE: src/mission_startup.py function summarize_offboard_health (line 11) | def summarize_offboard_health(health, require_global_position: bool) -> ... function probe_offboard_armability (line 41) | async def probe_offboard_armability( function wait_until_offboard_armable (line 138) | async def wait_until_offboard_armable( function arm_with_preflight_gate (line 167) | async def arm_with_preflight_gate( FILE: src/network_status.py function _now_ms (line 16) | def _now_ms() -> int: function _env_flag (line 20) | def _env_flag(name: str, default: bool) -> bool: function _env_float (line 27) | def _env_float(name: str, default: float, minimum: float | None = None) ... function _env_int (line 35) | def _env_int(name: str, default: int, minimum: int | None = None) -> int: function _split_nmcli_line (line 43) | def _split_nmcli_line(line: str) -> list[str]: function _run_text (line 49) | def _run_text(command: list[str], timeout: float = 2.0) -> str: function _is_usb_backed_interface (line 53) | def _is_usb_backed_interface(device: str) -> bool: function _default_route_interface (line 63) | def _default_route_interface() -> str: function _classify_device (line 77) | def _classify_device(device: str, nm_type: str) -> str: function _link_label (line 96) | def _link_label(link_type: str) -> str: class _WifiReport (line 107) | class _WifiReport: function _active_wifi (line 113) | def _active_wifi() -> _WifiReport | None: function _active_links (line 131) | def _active_links(wifi: _WifiReport | None) -> list[dict[str, Any]]: function _internet_status (line 159) | def _internet_status() -> dict[str, Any]: function build_network_info (line 211) | def build_network_info() -> dict[str, Any]: FILE: src/origin_cache.py function save_origin_to_cache (line 44) | def save_origin_to_cache(origin_data: Dict) -> bool: function load_origin_from_cache (line 86) | def load_origin_from_cache() -> Optional[Dict]: function get_cache_age_seconds (line 124) | def get_cache_age_seconds() -> Optional[float]: function clear_cache (line 150) | def clear_cache() -> bool: function get_cache_info (line 171) | def get_cache_info() -> Dict: FILE: src/params.py function _safe_int (line 39) | def _safe_int(value: str, default: int) -> int: function _safe_float (line 48) | def _safe_float(value: str, default: float) -> float: function _env_flag (line 57) | def _env_flag(name: str, default: bool) -> bool: class Params (line 73) | class Params: method get_swarm_trajectory_file_path (line 623) | def get_swarm_trajectory_file_path(cls, position_id): method get_trajectory_files (line 656) | def get_trajectory_files(cls, position_id, custom_csv): FILE: src/pos_id_auto_detector.py class PosIDAutoDetector (line 7) | class PosIDAutoDetector: method __init__ (line 12) | def __init__(self, drone_config, params, api_server): method start (line 31) | def start(self): method stop (line 48) | def stop(self): method _run (line 61) | def _run(self): method detect_pos_id (line 73) | def detect_pos_id(self): method _log_issue (line 199) | def _log_issue(self, issue_key, level, message): method _clear_issue (line 206) | def _clear_issue(self): method _validate_coordinates (line 210) | def _validate_coordinates(self, lat, lon): FILE: src/px4_param_models.py class Px4ParamValueType (line 11) | class Px4ParamValueType(str, Enum): class Px4ParamMetadataSource (line 17) | class Px4ParamMetadataSource(str, Enum): class Px4ParamPatchSource (line 26) | class Px4ParamPatchSource(str, Enum): class Px4ParamProfileScope (line 33) | class Px4ParamProfileScope(str, Enum): class Px4ParamProfileSource (line 40) | class Px4ParamProfileSource(str, Enum): class Px4ParamPolicyDocs (line 44) | class Px4ParamPolicyDocs(BaseModel): class Px4ParamPolicyMetadata (line 53) | class Px4ParamPolicyMetadata(BaseModel): class Px4ParamPolicyMutations (line 62) | class Px4ParamPolicyMutations(BaseModel): class Px4ParamPolicyResponse (line 72) | class Px4ParamPolicyResponse(BaseModel): class Px4ParamRow (line 81) | class Px4ParamRow(BaseModel): method _normalize_name (line 106) | def _normalize_name(cls, value: Any) -> str: class Px4ParamProfileSummary (line 115) | class Px4ParamProfileSummary(BaseModel): method _normalize_profile_id (line 129) | def _normalize_profile_id(cls, value: Any) -> str: class Px4ParamProfileResponse (line 136) | class Px4ParamProfileResponse(BaseModel): method _normalize_profile_response_id (line 150) | def _normalize_profile_response_id(cls, value: Any) -> str: class Px4ParamProfileListResponse (line 157) | class Px4ParamProfileListResponse(BaseModel): class Px4ParamSnapshotRequest (line 165) | class Px4ParamSnapshotRequest(BaseModel): class Px4ParamSnapshotSummary (line 171) | class Px4ParamSnapshotSummary(BaseModel): class Px4ParamSnapshotResponse (line 191) | class Px4ParamSnapshotResponse(BaseModel): class Px4ParamFleetSnapshotRequest (line 198) | class Px4ParamFleetSnapshotRequest(BaseModel): method _normalize_hw_ids (line 206) | def _normalize_hw_ids(cls, value: Any) -> List[str]: class Px4ParamFleetSnapshotError (line 218) | class Px4ParamFleetSnapshotError(BaseModel): class Px4ParamFleetSnapshotResponse (line 225) | class Px4ParamFleetSnapshotResponse(BaseModel): class Px4ParamSnapshotRowsResponse (line 234) | class Px4ParamSnapshotRowsResponse(BaseModel): class Px4ParamValueResponse (line 243) | class Px4ParamValueResponse(BaseModel): class Px4ParamSetRequest (line 251) | class Px4ParamSetRequest(BaseModel): method _validate_type_and_value (line 260) | def _validate_type_and_value(self) -> "Px4ParamSetRequest": class Px4ParamSetResponse (line 274) | class Px4ParamSetResponse(BaseModel): method _normalize_name (line 288) | def _normalize_name(cls, value: Any) -> str: class Px4ParamPatchEntry (line 297) | class Px4ParamPatchEntry(BaseModel): method _normalize_name (line 307) | def _normalize_name(cls, value: Any) -> str: method _validate_type_and_value (line 316) | def _validate_type_and_value(self) -> "Px4ParamPatchEntry": class Px4ParamPatchApplyRequest (line 330) | class Px4ParamPatchApplyRequest(BaseModel): class Px4ParamPatchResult (line 338) | class Px4ParamPatchResult(BaseModel): class Px4ParamPatchApplyResponse (line 350) | class Px4ParamPatchApplyResponse(BaseModel): class Px4ParamDiffEntry (line 361) | class Px4ParamDiffEntry(BaseModel): class Px4ParamDiffRequest (line 372) | class Px4ParamDiffRequest(BaseModel): class Px4ParamDiffResponse (line 380) | class Px4ParamDiffResponse(BaseModel): class Px4ParamImportWarning (line 388) | class Px4ParamImportWarning(BaseModel): class Px4ParamImportRequest (line 395) | class Px4ParamImportRequest(BaseModel): class Px4ParamImportResponse (line 401) | class Px4ParamImportResponse(BaseModel): class Px4ParamPatchJobRequest (line 412) | class Px4ParamPatchJobRequest(BaseModel): method _normalize_hw_ids (line 422) | def _normalize_hw_ids(cls, value: Any) -> List[str]: class Px4ParamPatchJobDroneResult (line 434) | class Px4ParamPatchJobDroneResult(BaseModel): class Px4ParamPatchJobResponse (line 444) | class Px4ParamPatchJobResponse(BaseModel): FILE: src/px4_params/catalog.py class Px4ParamCatalogEntry (line 23) | class Px4ParamCatalogEntry: function load_px4_param_catalog_index (line 43) | def load_px4_param_catalog_index(params: Any) -> dict[str, Px4ParamCatal... function load_px4_docs_reference_catalog_index (line 51) | def load_px4_docs_reference_catalog_index(params: Any) -> dict[str, Px4P... function resolve_px4_param_catalog_path (line 104) | def resolve_px4_param_catalog_path(params: Any) -> Path | None: function _normalize_configured_paths (line 126) | def _normalize_configured_paths(raw_value: Any) -> list[str]: function _safe_docs_version (line 136) | def _safe_docs_version(raw_value: Any) -> str: function _safe_cache_dir (line 144) | def _safe_cache_dir(raw_value: Any) -> Path: function _default_catalog_patterns (line 153) | def _default_catalog_patterns() -> list[str]: function _load_catalog_from_path (line 164) | def _load_catalog_from_path(path_str: str, mtime_ns: int) -> dict[str, P... function _fetch_and_parse_docs_reference (line 194) | def _fetch_and_parse_docs_reference(url: str, *, timeout_sec: float) -> ... function parse_px4_parameter_reference_html (line 205) | def parse_px4_parameter_reference_html(html_text: str) -> dict[str, Px4P... function _extract_parameter_name (line 252) | def _extract_parameter_name(text: str) -> str | None: function _extract_first_metadata_table (line 259) | def _extract_first_metadata_table(section_html: str) -> dict[str, str]: function _extract_paragraph_text (line 283) | def _extract_paragraph_text(section_html: str) -> list[str]: function _extract_enum_values (line 294) | def _extract_enum_values(section_html: str) -> list[dict[str, Any]]: function _clean_html_text (line 308) | def _clean_html_text(raw_value: Any) -> str: function _normalize_table_key (line 316) | def _normalize_table_key(value: str) -> str: function _coerce_reboot_required (line 320) | def _coerce_reboot_required(raw_value: Any) -> bool | None: function _docs_cache_path (line 332) | def _docs_cache_path(cache_dir: Path, version: str, url: str) -> Path: function _load_docs_cache_file (line 338) | def _load_docs_cache_file(path: Path) -> dict[str, Px4ParamCatalogEntry]: function _write_docs_cache_file (line 372) | def _write_docs_cache_file( function _prune_docs_cache (line 408) | def _prune_docs_cache(cache_dir: Path, *, max_entries: int, ttl_sec: int... function _online_fetch_backoff_active (line 429) | def _online_fetch_backoff_active() -> bool: function _record_online_fetch_failure (line 433) | def _record_online_fetch_failure() -> None: function _normalize_name (line 438) | def _normalize_name(raw_value: Any) -> str: function _clean_text (line 442) | def _clean_text(raw_value: Any) -> str | None: function _strip_invisible_text (line 449) | def _strip_invisible_text(value: str) -> str: function _coerce_int (line 459) | def _coerce_int(raw_value: Any) -> int | None: function _coerce_number (line 468) | def _coerce_number(raw_value: Any) -> int | float | None: function _coerce_scalar (line 486) | def _coerce_scalar(raw_value: Any) -> int | float | str | None: function _coerce_bool (line 493) | def _coerce_bool(raw_value: Any, default: bool | None = None) -> bool | ... function _coerce_enum_values (line 507) | def _coerce_enum_values(raw_value: Any) -> list[dict[str, Any]]: FILE: src/px4_params/service.py class Px4ParamService (line 34) | class Px4ParamService: method __init__ (line 37) | def __init__(self, params: Any, *, hw_id: str) -> None: method build_policy (line 41) | def build_policy(self) -> Px4ParamPolicyResponse: method build_snapshot (line 65) | async def build_snapshot(self, drone: Any, *, component_id: int = 1) -... method _build_snapshot_rows (line 95) | async def _build_snapshot_rows( method get_param_value (line 153) | async def get_param_value( method set_param_value (line 174) | async def set_param_value( method apply_patch (line 200) | async def apply_patch( method _read_param_auto (line 257) | async def _read_param_auto(self, drone: Any, name: str) -> tuple[int |... method _read_param_exact (line 266) | async def _read_param_exact( method _write_param (line 278) | async def _write_param( method _load_float_metadata (line 293) | async def _load_float_metadata(self, drone: Any) -> Dict[str, Any]: method _build_rows (line 309) | def _build_rows( method _build_rows_from_entries (line 335) | def _build_rows_from_entries( method _load_catalog_metadata (line 362) | def _load_catalog_metadata(self) -> Dict[str, Px4ParamCatalogEntry]: method _load_catalog_metadata_async (line 365) | async def _load_catalog_metadata_async(self) -> Dict[str, Px4ParamCata... method _compose_row (line 368) | def _compose_row( method _build_metadata_status (line 432) | def _build_metadata_status( method _catalog_attr (line 480) | def _catalog_attr(entry: Px4ParamCatalogEntry | None, attribute: str) ... method _dedupe_long_description (line 486) | def _dedupe_long_description(short_description: Any, long_description:... method _pick_metadata_value (line 509) | def _pick_metadata_value(*values: Any) -> Any: method _collect_mavlink_param_entries_blocking (line 515) | def _collect_mavlink_param_entries_blocking(self, component_id: int) -... method _normalize_param_id (line 594) | def _normalize_param_id(raw_name: Any) -> str: method _decode_mavlink_param_value (line 602) | def _decode_mavlink_param_value( method _normalize_name (line 631) | def _normalize_name(name: Any) -> str: method _build_docs_base_url (line 637) | def _build_docs_base_url(self, version: str) -> str: method _build_docs_url (line 649) | def _build_docs_url(self, name: str) -> str: method _values_match (line 653) | def _values_match( method _safe_docs_version (line 664) | def _safe_docs_version(self) -> str: method _safe_float (line 672) | def _safe_float(self, attribute: str, default: float) -> float: method _safe_int (line 679) | def _safe_int(self, attribute: str, default: int) -> int: method _safe_bool (line 686) | def _safe_bool(self, attribute: str, default: bool) -> bool: FILE: src/security/auth.py function utc_now_iso (line 45) | def utc_now_iso() -> str: function parse_bool (line 49) | def parse_bool(value: Any, default: bool = False) -> bool: function _normalize_username (line 60) | def _normalize_username(username: str) -> str: function _normalize_role (line 71) | def _normalize_role(role: str) -> str: function _atomic_write_json (line 78) | def _atomic_write_json(path: Path, payload: dict[str, Any], mode: int = ... function _read_json_file (line 100) | def _read_json_file(path: Path, default: dict[str, Any]) -> dict[str, Any]: function _ensure_secret_file (line 111) | def _ensure_secret_file(path: Path) -> str: function hash_password (line 132) | def hash_password(password: str) -> str: function _verify_pbkdf2 (line 148) | def _verify_pbkdf2(password: str, stored_hash: str) -> bool: function verify_password (line 163) | def verify_password(password: str, stored_hash: str) -> bool: function hash_api_token (line 176) | def hash_api_token(token: str) -> str: function verify_api_token (line 181) | def verify_api_token(token: str, stored_hash: str) -> bool: class AuthSettings (line 188) | class AuthSettings: method from_env (line 202) | def from_env(cls) -> "AuthSettings": method any_auth_enabled (line 228) | def any_auth_enabled(self) -> bool: method session_ttl_seconds (line 232) | def session_ttl_seconds(self) -> int: class AuthStore (line 236) | class AuthStore: method __init__ (line 239) | def __init__(self, settings: AuthSettings): method load_users (line 242) | def load_users(self) -> dict[str, Any]: method save_users (line 245) | def save_users(self, payload: dict[str, Any]) -> None: method load_tokens (line 248) | def load_tokens(self) -> dict[str, Any]: method save_tokens (line 251) | def save_tokens(self, payload: dict[str, Any]) -> None: method list_users (line 254) | def list_users(self) -> list[dict[str, Any]]: method find_user (line 258) | def find_user(self, username: str) -> dict[str, Any] | None: method has_users (line 265) | def has_users(self) -> bool: method upsert_user (line 268) | def upsert_user( method set_password (line 307) | def set_password(self, username: str, password: str, force_password_ch... method set_user_state (line 319) | def set_user_state(self, username: str, *, role: str | None = None, di... method authenticate_user (line 331) | def authenticate_user(self, username: str, password: str) -> dict[str,... method sanitize_user (line 340) | def sanitize_user(user: dict[str, Any]) -> dict[str, Any]: method create_token (line 351) | def create_token( method list_tokens (line 398) | def list_tokens(self) -> list[dict[str, Any]]: method revoke_token (line 402) | def revoke_token(self, token_id: str) -> dict[str, Any]: method verify_token (line 416) | def verify_token(self, token_plaintext: str, source_ip: str | None = N... method sanitize_token (line 441) | def sanitize_token(token: dict[str, Any]) -> dict[str, Any]: class AuthService (line 457) | class AuthService: method __init__ (line 460) | def __init__(self, settings: AuthSettings | None = None): method _get_session_serializer (line 466) | def _get_session_serializer(self) -> URLSafeTimedSerializer: method _get_csrf_serializer (line 474) | def _get_csrf_serializer(self) -> URLSafeTimedSerializer: method setup_required (line 482) | def setup_required(self) -> bool: method create_session (line 485) | def create_session(self, user: dict[str, Any]) -> tuple[str, str]: method verify_session (line 498) | def verify_session(self, session_token: str | None) -> dict[str, Any] ... method verify_csrf (line 519) | def verify_csrf(self, auth_context: dict[str, Any], csrf_header: str |... method csrf_token_for_context (line 535) | def csrf_token_for_context(self, auth_context: dict[str, Any]) -> str ... method authenticate_bearer (line 544) | def authenticate_bearer(self, bearer_token: str | None, source_ip: str... function build_auth_service (line 565) | def build_auth_service() -> AuthService: FILE: src/settings/deployment_profile.py class DeploymentProfile (line 21) | class DeploymentProfile: method repo_owner (line 50) | def repo_owner(self) -> str: method gcs_ip_for_mode (line 55) | def gcs_ip_for_mode(self, mode: str) -> str: function get_deployment_profile_path (line 62) | def get_deployment_profile_path() -> Path: function _parse_env_profile (line 66) | def _parse_env_profile(path: Path) -> dict[str, str]: function _parse_int (line 70) | def _parse_int(data: dict[str, str], key: str, default: int, path: Path)... function _build_profile (line 78) | def _build_profile(path: Path) -> DeploymentProfile: function load_deployment_profile (line 159) | def load_deployment_profile() -> DeploymentProfile: function reset_deployment_profile_cache (line 170) | def reset_deployment_profile_cache() -> None: FILE: src/settings/env_files.py class EnvFileUpdateResult (line 14) | class EnvFileUpdateResult: method changed (line 22) | def changed(self) -> bool: function parse_env_assignment_line (line 26) | def parse_env_assignment_line(raw_line: str) -> tuple[str, str] | None: function read_env_assignments (line 43) | def read_env_assignments(path: str | Path) -> dict[str, str]: function format_env_value (line 63) | def format_env_value(value: Any) -> str: function persist_env_updates (line 69) | def persist_env_updates(path: str | Path, updates: dict[str, Any], *, fi... FILE: src/settings/env_registry.py class EnvRegistryError (line 36) | class EnvRegistryError(ValueError): class EnvRegistryEntry (line 41) | class EnvRegistryEntry: method from_dict (line 66) | def from_dict(cls, payload: dict[str, Any]) -> "EnvRegistryEntry": method validate (line 110) | def validate(self) -> None: method to_public_dict (line 132) | def to_public_dict(self) -> dict[str, Any]: class EnvRegistry (line 158) | class EnvRegistry: method get (line 166) | def get(self, name: str) -> EnvRegistryEntry | None: method require (line 169) | def require(self, name: str) -> EnvRegistryEntry: method list_entries (line 175) | def list_entries( method public_payload (line 194) | def public_payload(self) -> dict[str, Any]: method classify_keys (line 202) | def classify_keys(self, values: dict[str, Any]) -> dict[str, list[str]]: function get_env_registry_path (line 217) | def get_env_registry_path() -> Path: function redact_value (line 221) | def redact_value(entry: EnvRegistryEntry, value: Any) -> Any: function coerce_value (line 229) | def coerce_value(entry: EnvRegistryEntry, value: Any) -> str: function _build_registry_from_payload (line 272) | def _build_registry_from_payload(path: Path, payload: dict[str, Any], co... function _load_env_registry_cached (line 313) | def _load_env_registry_cached(path_value: str) -> EnvRegistry: function load_env_registry (line 329) | def load_env_registry(path: str | Path | None = None) -> EnvRegistry: function reset_env_registry_cache (line 334) | def reset_env_registry_cache() -> None: FILE: src/settings/env_status.py function build_node_env_summary (line 13) | def build_node_env_summary() -> dict[str, Any]: function build_env_value_payload (line 54) | def build_env_value_payload(entry: EnvRegistryEntry, values: dict[str, s... function build_node_env_response (line 82) | def build_node_env_response(*, include_hidden: bool = False) -> dict[str... function validate_node_env_updates (line 107) | def validate_node_env_updates(updates: dict[str, Any]) -> tuple[dict[str... function build_node_env_summary_safe (line 137) | def build_node_env_summary_safe() -> dict[str, Any]: FILE: src/settings/identity.py class NodeIdentityInfo (line 18) | class NodeIdentityInfo: function _coerce_hw_id (line 27) | def _coerce_hw_id(value: Any) -> Optional[int]: function load_node_identity (line 36) | def load_node_identity(path: str | Path | None = None) -> dict[str, Any]... function resolve_hw_id_info (line 57) | def resolve_hw_id_info(hw_id: Optional[int] = None) -> NodeIdentityInfo: function resolve_hw_id (line 104) | def resolve_hw_id(hw_id: Optional[int] = None) -> Optional[int]: FILE: src/settings/runtime.py function get_local_env_path (line 22) | def get_local_env_path() -> Path: function get_node_identity_path (line 26) | def get_node_identity_path() -> Path: function preload_local_env (line 30) | def preload_local_env(log: logging.Logger | None = None) -> Path: function reset_preloaded_local_env_state (line 61) | def reset_preloaded_local_env_state() -> None: class RuntimeModeInfo (line 80) | class RuntimeModeInfo: function _normalize_runtime_mode (line 88) | def _normalize_runtime_mode(value: str | None) -> str | None: function resolve_runtime_mode (line 100) | def resolve_runtime_mode() -> RuntimeModeInfo: FILE: src/sitl_control_models.py class SitlControlDockerState (line 10) | class SitlControlDockerState(BaseModel): class SitlControlFeatureFlags (line 22) | class SitlControlFeatureFlags(BaseModel): class SitlControlPolicyDefaults (line 37) | class SitlControlPolicyDefaults(BaseModel): class SitlControlPolicyResponse (line 49) | class SitlControlPolicyResponse(BaseModel): class SitlControlHostSummary (line 62) | class SitlControlHostSummary(BaseModel): class SitlControlHostResponse (line 86) | class SitlControlHostResponse(BaseModel): class SitlControlImageSummary (line 93) | class SitlControlImageSummary(BaseModel): class SitlControlImageListResponse (line 110) | class SitlControlImageListResponse(BaseModel): class SitlControlInstanceSummary (line 119) | class SitlControlInstanceSummary(BaseModel): class SitlControlInstanceListResponse (line 143) | class SitlControlInstanceListResponse(BaseModel): class SitlControlInstanceLogResponse (line 152) | class SitlControlInstanceLogResponse(BaseModel): class SitlControlReconcileRequest (line 163) | class SitlControlReconcileRequest(BaseModel): method _normalize_optional_strings (line 177) | def _normalize_optional_strings(cls, value: Any) -> Optional[str]: class SitlControlCreateInstanceRequest (line 184) | class SitlControlCreateInstanceRequest(BaseModel): method _normalize_optional_create_strings (line 197) | def _normalize_optional_create_strings(cls, value: Any) -> Optional[str]: class SitlControlInstanceActionRequest (line 204) | class SitlControlInstanceActionRequest(BaseModel): method _normalize_instance_names (line 212) | def _normalize_instance_names(cls, value: Any) -> List[str]: class SitlControlImageReleaseRequest (line 228) | class SitlControlImageReleaseRequest(BaseModel): method _normalize_release_strings (line 254) | def _normalize_release_strings(cls, value: Any) -> Optional[str]: class SitlControlOperationResponse (line 261) | class SitlControlOperationResponse(BaseModel): class SitlControlOperationListResponse (line 277) | class SitlControlOperationListResponse(BaseModel): FILE: src/sitl_control_service.py class DockerException (line 50) | class DockerException(Exception): class NotFound (line 53) | class NotFound(Exception): function _default_sitl_image (line 63) | def _default_sitl_image() -> str: function _now_ms (line 73) | def _now_ms() -> int: function _env_flag (line 77) | def _env_flag(value: str | None, default: bool) -> bool: function _resolve_host_startup_script_mode (line 83) | def _resolve_host_startup_script_mode(env: dict[str, str] | None = None)... function _env_map (line 96) | def _env_map(env_list: list[str] | None) -> dict[str, str]: class SitlControlService (line 106) | class SitlControlService: method __init__ (line 109) | def __init__( method build_policy (line 124) | def build_policy(self) -> SitlControlPolicyResponse: method build_host_summary (line 153) | def build_host_summary(self) -> SitlControlHostResponse: method list_images (line 195) | def list_images(self) -> SitlControlImageListResponse: method list_instances (line 245) | def list_instances(self) -> SitlControlInstanceListResponse: method get_instance_logs (line 268) | def get_instance_logs(self, instance_name: str, *, tail_lines: int = _... method list_operations (line 312) | def list_operations(self, *, limit: int = _DEFAULT_HISTORY_LIMIT) -> S... method get_operation (line 327) | def get_operation(self, operation_id: str) -> SitlControlOperationResp... method start_reconcile (line 331) | def start_reconcile(self, request: SitlControlReconcileRequest) -> Sit... method restart_instance (line 347) | def restart_instance(self, instance_name: str) -> SitlControlOperation... method create_instance (line 362) | def create_instance(self, request: SitlControlCreateInstanceRequest) -... method instance_action (line 385) | def instance_action(self, request: SitlControlInstanceActionRequest) -... method release_image (line 402) | def release_image(self, request: SitlControlImageReleaseRequest) -> Si... method remove_instance (line 418) | def remove_instance(self, instance_name: str) -> SitlControlOperationR... method _default_client_factory (line 433) | def _default_client_factory(self): method _cpu_count (line 439) | def _cpu_count() -> int: method _memory_snapshot (line 445) | def _memory_snapshot() -> tuple[int, int]: method _get_docker_state (line 451) | def _get_docker_state(self) -> SitlControlDockerState: method _get_client (line 491) | def _get_client(self) -> tuple[Any | None, SitlControlDockerState]: method _list_relevant_containers (line 528) | def _list_relevant_containers(self, client: Any) -> list[Any]: method _detect_portainer (line 531) | def _detect_portainer(self, client: Any) -> dict[str, Any]: method _list_relevant_images (line 556) | def _list_relevant_images(self, client: Any, containers: list[Any]) ->... method _is_relevant_image (line 569) | def _is_relevant_image(self, image: Any) -> bool: method _is_relevant_container (line 578) | def _is_relevant_container(self, container: Any) -> bool: method _summarize_container (line 593) | def _summarize_container(self, container: Any) -> SitlControlInstanceS... method _derive_hw_id (line 645) | def _derive_hw_id(container_name: str, env: dict[str, str]) -> str | N... method _ensure_mutation_allowed (line 654) | def _ensure_mutation_allowed(self, *, allow_cleanup_when_runtime_disab... method _desired_drone_ids (line 664) | def _desired_drone_ids(self, request: SitlControlReconcileRequest) -> ... method _read_fallback_instance_logs (line 667) | def _read_fallback_instance_logs( method _read_container_file_tail (line 688) | def _read_container_file_tail(container: Any, path: str, *, tail_lines... method _desired_container_names (line 706) | def _desired_container_names(self, request: SitlControlReconcileReques... method _current_instance_ids (line 709) | def _current_instance_ids(self) -> list[int]: method _current_ip_octets (line 724) | def _current_ip_octets(self) -> list[int]: method _resolve_create_instance_id (line 741) | def _resolve_create_instance_id(self, request: SitlControlCreateInstan... method _resolve_create_instance_ip (line 747) | def _resolve_create_instance_ip(self, request: SitlControlCreateInstan... method _build_reconcile_command (line 754) | def _build_reconcile_command(self, request: SitlControlReconcileReques... method _build_create_instance_command (line 768) | def _build_create_instance_command(self, instance_id: int, ip_last_oct... method _build_reconcile_env (line 782) | def _build_reconcile_env(self, request: SitlControlReconcileRequest) -... method _build_create_instance_env (line 794) | def _build_create_instance_env(self, request: SitlControlCreateInstanc... method _default_release_output_dir (line 806) | def _default_release_output_dir(self) -> str: method _build_image_release_command (line 809) | def _build_image_release_command(self, request: SitlControlImageReleas... method _launch_background_operation (line 837) | def _launch_background_operation(self, *, target: Callable[..., None],... method _create_operation (line 841) | def _create_operation( method _update_operation (line 869) | def _update_operation(self, operation_id: str, **updates: Any) -> Sitl... method _append_operation_log (line 881) | def _append_operation_log(self, operation_id: str, line: str) -> None: method _mark_operation_running (line 897) | def _mark_operation_running(self, operation_id: str, *, detail: str | ... method _mark_operation_succeeded (line 903) | def _mark_operation_succeeded(self, operation_id: str, *, summary: str... method _mark_operation_failed (line 912) | def _mark_operation_failed(self, operation_id: str, *, summary: str, d... method _prune_operation_history_locked (line 922) | def _prune_operation_history_locked(self) -> None: method _run_reconcile_operation (line 927) | def _run_reconcile_operation(self, operation_id: str, request: SitlCon... method _run_create_instance_operation (line 1010) | def _run_create_instance_operation( method _run_instance_action (line 1074) | def _run_instance_action(self, operation_id: str, instance_name: str, ... method _run_instance_batch_action (line 1140) | def _run_instance_batch_action(self, operation_id: str, action: str, i... method _run_image_release_operation (line 1200) | def _run_image_release_operation(self, operation_id: str, request: Sit... method _remove_unmanaged_instances (line 1264) | def _remove_unmanaged_instances(self, desired_names: set[str], *, oper... method _close_client (line 1284) | def _close_client(client: Any) -> None: FILE: src/swarm_runtime_state.py function get_runtime_assignment_path (line 16) | def get_runtime_assignment_path() -> Path: function build_runtime_swarm_assignment (line 25) | def build_runtime_swarm_assignment( function write_runtime_swarm_assignment (line 46) | def write_runtime_swarm_assignment(assignment: Optional[Dict[str, Any]])... function read_runtime_swarm_assignment (line 62) | def read_runtime_swarm_assignment() -> Optional[Dict[str, Any]]: FILE: src/synchronized_start.py class SynchronizedStartDecision (line 12) | class SynchronizedStartDecision: function resolve_requested_start_time (line 21) | def resolve_requested_start_time( function evaluate_synchronized_start (line 55) | def evaluate_synchronized_start( FILE: src/telemetry_subscription_manager.py class TelemetrySubscriptionManager (line 9) | class TelemetrySubscriptionManager: method __init__ (line 10) | def __init__(self, drones): method add_subscription (line 17) | def add_subscription(self, hw_id, rate=None): method remove_subscription (line 29) | def remove_subscription(self, hw_id): method _start_polling_thread (line 35) | def _start_polling_thread(self, hw_id, rate): method _stop_polling_thread (line 43) | def _stop_polling_thread(self, hw_id): method _poll_drone_state (line 49) | def _poll_drone_state(self, hw_id, rate): method stop_all (line 71) | def stop_all(self): method subscribe_to_all (line 75) | def subscribe_to_all(self, rate=None): method unsubscribe_from_all (line 80) | def unsubscribe_from_all(self): FILE: src/ulog_service.py class OnboardUlogService (line 31) | class OnboardUlogService: method __init__ (line 34) | def __init__(self, params: Any, *, hw_id: str, pos_id: int | None = No... method build_policy (line 43) | def build_policy(self) -> OnboardUlogPolicyResponse: method list_entries (line 51) | async def list_entries(self, drone: Any, *, pos_id: int | None = None)... method create_download_job (line 62) | async def create_download_job( method get_job (line 104) | async def get_job(self, job_id: str) -> Optional[OnboardUlogDownloadJo... method delete_job (line 113) | async def delete_job(self, job_id: str) -> bool: method mark_job_failed (line 117) | async def mark_job_failed(self, job_id: str, error: str) -> Optional[O... method perform_download (line 131) | async def perform_download(self, drone: Any, job_id: str) -> OnboardUl... method get_ready_file (line 188) | async def get_ready_file(self, job_id: str) -> tuple[Path, OnboardUlog... method erase_all (line 199) | async def erase_all(self, drone: Any, *, pos_id: int | None = None) ->... method _fetch_entries (line 214) | async def _fetch_entries(self, drone: Any) -> list[OnboardUlogEntry]: method _list_filesystem_entries (line 250) | def _list_filesystem_entries(self) -> list[OnboardUlogEntry] | None: method _erase_filesystem_logs (line 285) | def _erase_filesystem_logs(self) -> bool: method _filesystem_fallback_dirs (line 297) | def _filesystem_fallback_dirs(self) -> list[Path]: method _filesystem_timestamp (line 311) | def _filesystem_timestamp(path: Path, mtime: float) -> str: method _build_policy_payload (line 318) | def _build_policy_payload(self) -> OnboardUlogPolicy: method _stage_dir (line 338) | def _stage_dir(self) -> Path: method _build_download_filename (line 350) | def _build_download_filename(self, entry: OnboardUlogEntry, *, pos_id:... method _sanitize_timestamp_token (line 361) | def _sanitize_timestamp_token(value: str) -> str: method _resolve_pos_id (line 373) | def _resolve_pos_id(self, override: int | None) -> int | None: method _cleanup_expired_jobs_locked (line 378) | def _cleanup_expired_jobs_locked(self, now_ms: int) -> None: method _trim_job_count_locked (line 390) | def _trim_job_count_locked(self) -> None: method _delete_job_locked (line 401) | def _delete_job_locked(self, job_id: str) -> bool: method _now_ms (line 408) | def _now_ms() -> int: method _safe_bool (line 411) | def _safe_bool(self, attr: str, default: bool) -> bool: method _safe_float (line 417) | def _safe_float(self, attr: str, default: float) -> float: FILE: swarm_trajectory_mission.py function str2bool (line 159) | def str2bool(v): function read_config (line 182) | def read_config(filename: str) -> Drone: function pad_trajectory_for_time_gap (line 257) | def pad_trajectory_for_time_gap(waypoints: list) -> list: function read_swarm_trajectory_file (line 316) | def read_swarm_trajectory_file(position_id: int) -> list: function perform_swarm_trajectory (line 412) | async def perform_swarm_trajectory( function controlled_landing (line 730) | async def controlled_landing(drone: System): function wait_for_rtl_completion (line 832) | async def wait_for_rtl_completion( function wait_for_flight_mode (line 961) | async def wait_for_flight_mode(drone: System, expected_mode: FlightMode,... function wait_for_landed_state_transition (line 978) | async def wait_for_landed_state_transition( function invoke_action_with_timeout (line 996) | async def invoke_action_with_timeout(action_awaitable, description: str,... function _describe_local_flight_mode (line 1004) | def _describe_local_flight_mode(local_state: dict | None) -> str: function engage_rtl (line 1020) | async def engage_rtl(drone: System) -> bool: function execute_end_behavior (line 1053) | async def execute_end_behavior(drone: System, behavior: str, launch_lat:... function emergency_rtl_sequence (line 1161) | async def emergency_rtl_sequence(drone: System): function emergency_land_sequence (line 1175) | async def emergency_land_sequence(drone: System): function initial_setup_and_connection (line 1194) | async def initial_setup_and_connection(): function pre_flight_checks (line 1266) | async def pre_flight_checks(drone: System): function arming_and_starting_offboard_mode (line 1356) | async def arming_and_starting_offboard_mode(drone: System, global_refere... function compute_position_drift (line 1446) | async def compute_position_drift(): function perform_landing (line 1485) | async def perform_landing(drone: System): function wait_for_landing (line 1570) | async def wait_for_landing(drone: System): function stop_offboard_mode (line 1582) | async def stop_offboard_mode(drone: System): function disarm_drone (line 1597) | async def disarm_drone(drone: System): function _get_current_relative_altitude (line 1617) | async def _get_current_relative_altitude(drone: System, timeout: float =... function _format_altitude_value (line 1633) | def _format_altitude_value(value) -> str: function _climb_altitude_gate_satisfied (line 1643) | def _climb_altitude_gate_satisfied(sample: dict, minimum_relative_altitu... function _get_initial_climb_altitude_sample (line 1657) | async def _get_initial_climb_altitude_sample( function _has_reached_initial_climb_altitude (line 1684) | async def _has_reached_initial_climb_altitude( function _get_local_drone_state_snapshot (line 1702) | def _get_local_drone_state_snapshot(timeout: float = 1.0): function _horizontal_distance_m (line 1716) | def _horizontal_distance_m(lat1, lon1, lat2, lon2) -> float | None: function _update_rtl_stall_timer (line 1731) | def _update_rtl_stall_timer( function _update_rtl_near_ground_timer (line 1780) | def _update_rtl_near_ground_timer( function _get_current_landed_state (line 1844) | async def _get_current_landed_state(drone: System, timeout: float = 3.0): function _get_current_armed_state (line 1862) | async def _get_current_armed_state(drone: System, timeout: float = 3.0): function _wait_until_disarmed (line 1880) | async def _wait_until_disarmed(drone: System, timeout: float, poll_inter... function _wait_for_touchdown_and_disarm (line 1894) | async def _wait_for_touchdown_and_disarm(drone: System, timeout: float): function get_mavsdk_server_path (line 1939) | def get_mavsdk_server_path(): function start_mavsdk_server (line 1950) | def start_mavsdk_server(udp_port: int): function check_mavsdk_server_running (line 2057) | def check_mavsdk_server_running(port): function wait_for_port (line 2073) | def wait_for_port(port, host="localhost", timeout=Params.PRE_FLIGHT_TIME... function log_mavsdk_output (line 2089) | async def log_mavsdk_output(mavsdk_server): function stop_mavsdk_server (line 2114) | def stop_mavsdk_server(mavsdk_server): function run_swarm_trajectory_mission (line 2142) | async def run_swarm_trajectory_mission( function main (line 2290) | def main(): FILE: tests/conftest.py class SyncASGITestClient (line 125) | class SyncASGITestClient: method __init__ (line 132) | def __init__(self, app): method _request (line 136) | async def _request(self, method: str, url: str, **kwargs): method request (line 141) | def request(self, method: str, url: str, **kwargs): method get (line 144) | def get(self, url: str, **kwargs): method post (line 147) | def post(self, url: str, **kwargs): method websocket_connect (line 150) | def websocket_connect(self, url: str, **kwargs): class _WebSocketConnectContext (line 162) | class _WebSocketConnectContext: method __init__ (line 165) | def __init__(self, app, url: str, **kwargs): method __enter__ (line 173) | def __enter__(self): method __exit__ (line 180) | def __exit__(self, exc_type, exc, tb): function mock_params (line 189) | def mock_params(): function mock_drone_config (line 212) | def mock_drone_config(): function mock_drone_communicator (line 276) | def mock_drone_communicator(): function api_server (line 318) | def api_server(mock_params, mock_drone_config, mock_drone_communicator): function test_client (line 326) | def test_client(api_server): function sample_command (line 332) | def sample_command(): function event_loop (line 342) | def event_loop(): function single_drone (line 354) | def single_drone(): function single_drone_config_armed (line 360) | def single_drone_config_armed(): function single_drone_config_flying (line 366) | def single_drone_config_flying(): function five_drones (line 372) | def five_drones(): function ten_drones (line 378) | def ten_drones(): function fifty_drones (line 384) | def fifty_drones(): function hundred_drones (line 390) | def hundred_drones(): function telemetry_single_idle (line 400) | def telemetry_single_idle(): function telemetry_single_armed (line 406) | def telemetry_single_armed(): function telemetry_single_flying (line 412) | def telemetry_single_flying(): function telemetry_five_drones (line 418) | def telemetry_five_drones(): function telemetry_fifty_drones (line 424) | def telemetry_fifty_drones(): function heartbeat_five_drones (line 430) | def heartbeat_five_drones(): function cmd_takeoff_10m (line 440) | def cmd_takeoff_10m(): function cmd_drone_show_zurich (line 446) | def cmd_drone_show_zurich(): function valid_commands (line 452) | def valid_commands(): function invalid_commands (line 458) | def invalid_commands(): function mission_config_takeoff (line 468) | def mission_config_takeoff(): function mission_config_drone_show (line 478) | def mission_config_drone_show(): function trajectory_csv (line 489) | def trajectory_csv(): function swarm_config (line 495) | def swarm_config(): function origin_data (line 501) | def origin_data(): function mock_mavlink_connection (line 511) | def mock_mavlink_connection(): function mock_mavlink_connection_armed (line 519) | def mock_mavlink_connection_armed(): function mock_mavsdk_system (line 527) | def mock_mavsdk_system(): function mock_mavlink_router (line 533) | def mock_mavlink_router(): function mock_local_mavlink_controller (line 546) | def mock_local_mavlink_controller(): function mock_heartbeat_sender (line 557) | def mock_heartbeat_sender(): function mock_connectivity_checker (line 567) | def mock_connectivity_checker(): function mock_led_controller (line 577) | def mock_led_controller(): function mock_drone_setup (line 586) | def mock_drone_setup(): function mock_gcs_telemetry_data (line 601) | def mock_gcs_telemetry_data(fifty_drones): function mock_gcs_config_json (line 607) | def mock_gcs_config_json(fifty_drones): function mock_gcs_swarm_json (line 613) | def mock_gcs_swarm_json(fifty_drones): function integration_timeout (line 623) | def integration_timeout(): function sitl_docker_image (line 629) | def sitl_docker_image(): function assert_drone_state (line 639) | def assert_drone_state(): function assert_command_success (line 658) | def assert_command_success(): function disable_git_operations (line 672) | def disable_git_operations(): function cleanup_async_tasks (line 683) | def cleanup_async_tasks(): function reset_runtime_env_preload_state (line 698) | def reset_runtime_env_preload_state(): function pytest_configure (line 711) | def pytest_configure(config): FILE: tests/fixtures/command_samples.py class MissionType (line 21) | class MissionType: class CommandBuilder (line 49) | class CommandBuilder: method __post_init__ (line 59) | def __post_init__(self): method build (line 64) | def build(self) -> Dict[str, Any]: function cmd_takeoff (line 93) | def cmd_takeoff(altitude: float = 10.0, trigger_time: int = None) -> Dic... function cmd_land (line 102) | def cmd_land(trigger_time: int = None) -> Dict[str, Any]: function cmd_hold (line 110) | def cmd_hold(trigger_time: int = None) -> Dict[str, Any]: function cmd_rtl (line 118) | def cmd_rtl(trigger_time: int = None) -> Dict[str, Any]: function cmd_kill_terminate (line 126) | def cmd_kill_terminate(trigger_time: int = None) -> Dict[str, Any]: function cmd_drone_show (line 134) | def cmd_drone_show( function cmd_smart_swarm (line 148) | def cmd_smart_swarm(trigger_time: int = None) -> Dict[str, Any]: function cmd_swarm_trajectory (line 156) | def cmd_swarm_trajectory( function cmd_hover_test (line 169) | def cmd_hover_test(trigger_time: int = None) -> Dict[str, Any]: function cmd_reboot_fc (line 177) | def cmd_reboot_fc(trigger_time: int = None) -> Dict[str, Any]: function cmd_reboot_sys (line 185) | def cmd_reboot_sys(trigger_time: int = None) -> Dict[str, Any]: function cmd_update_code (line 193) | def cmd_update_code(trigger_time: int = None) -> Dict[str, Any]: function cmd_test_led (line 201) | def cmd_test_led(trigger_time: int = None) -> Dict[str, Any]: function cmd_init_sysid (line 209) | def cmd_init_sysid(trigger_time: int = None) -> Dict[str, Any]: function cmd_apply_common_params (line 217) | def cmd_apply_common_params(trigger_time: int = None) -> Dict[str, Any]: function cmd_precision_move (line 225) | def cmd_precision_move(trigger_time: int = 0) -> Dict[str, Any]: function cmd_takeoff_single_drone (line 256) | def cmd_takeoff_single_drone( function cmd_land_multiple_drones (line 270) | def cmd_land_multiple_drones( function cmd_invalid_mission_type (line 286) | def cmd_invalid_mission_type() -> Dict[str, Any]: function cmd_missing_mission_type (line 294) | def cmd_missing_mission_type() -> Dict[str, Any]: function cmd_missing_trigger_time (line 301) | def cmd_missing_trigger_time() -> Dict[str, Any]: function cmd_empty (line 308) | def cmd_empty() -> Dict[str, Any]: function cmd_invalid_trigger_time (line 313) | def cmd_invalid_trigger_time() -> Dict[str, Any]: function cmd_past_trigger_time (line 321) | def cmd_past_trigger_time() -> Dict[str, Any]: function cmd_invalid_origin (line 329) | def cmd_invalid_origin() -> Dict[str, Any]: function cmd_invalid_target_drones (line 342) | def cmd_invalid_target_drones() -> Dict[str, Any]: function cmd_invalid_altitude (line 351) | def cmd_invalid_altitude() -> Dict[str, Any]: function cmd_excessive_altitude (line 360) | def cmd_excessive_altitude() -> Dict[str, Any]: function cmd_immediate_trigger (line 373) | def cmd_immediate_trigger() -> Dict[str, Any]: function cmd_far_future_trigger (line 381) | def cmd_far_future_trigger() -> Dict[str, Any]: function cmd_with_extra_fields (line 389) | def cmd_with_extra_fields() -> Dict[str, Any]: function all_valid_commands (line 403) | def all_valid_commands() -> List[Dict[str, Any]]: function all_invalid_commands (line 425) | def all_invalid_commands() -> List[Dict[str, Any]]: FILE: tests/fixtures/drone_configs.py class DroneConfigData (line 42) | class DroneConfigData: method to_config_row (line 88) | def to_config_row(self) -> Dict[str, Any]: method to_swarm_row (line 99) | def to_swarm_row(self) -> Dict[str, Any]: method to_drone_state (line 110) | def to_drone_state(self) -> Dict[str, Any]: function single_drone_sitl (line 153) | def single_drone_sitl() -> DroneConfigData: function single_drone_real (line 163) | def single_drone_real() -> DroneConfigData: function single_drone_armed (line 175) | def single_drone_armed() -> DroneConfigData: function single_drone_flying (line 184) | def single_drone_flying() -> DroneConfigData: function single_drone_low_battery (line 195) | def single_drone_low_battery() -> DroneConfigData: function single_drone_no_gps (line 203) | def single_drone_no_gps() -> DroneConfigData: function generate_drone_configs (line 218) | def generate_drone_configs( function five_drone_swarm (line 292) | def five_drone_swarm() -> List[DroneConfigData]: function ten_drone_line (line 317) | def ten_drone_line() -> List[DroneConfigData]: function fifty_drone_grid (line 322) | def fifty_drone_grid() -> List[DroneConfigData]: function hundred_drone_grid (line 327) | def hundred_drone_grid() -> List[DroneConfigData]: function drone_with_timeout (line 336) | def drone_with_timeout() -> DroneConfigData: function drone_with_invalid_data (line 346) | def drone_with_invalid_data() -> DroneConfigData: function drone_disconnected (line 355) | def drone_disconnected() -> DroneConfigData: function drones_to_config_csv (line 369) | def drones_to_config_csv(drones: List[DroneConfigData]) -> str: function drones_to_swarm_csv (line 379) | def drones_to_swarm_csv(drones: List[DroneConfigData]) -> str: function drones_to_config_json (line 389) | def drones_to_config_json(drones: List[DroneConfigData]) -> dict: function drones_to_swarm_json (line 397) | def drones_to_swarm_json(drones: List[DroneConfigData]) -> dict: function drones_to_telemetry_response (line 405) | def drones_to_telemetry_response(drones: List[DroneConfigData]) -> Dict[... FILE: tests/fixtures/mission_samples.py class MissionState (line 20) | class MissionState: class Mission (line 28) | class Mission: class MissionConfig (line 55) | class MissionConfig: method to_drone_setup_params (line 65) | def to_drone_setup_params(self) -> Dict[str, Any]: function sample_trajectory_csv (line 85) | def sample_trajectory_csv() -> str: function hover_test_trajectory_csv (line 105) | def hover_test_trajectory_csv() -> str: function swarm_leader_trajectory_csv (line 117) | def swarm_leader_trajectory_csv() -> str: function mission_idle (line 135) | def mission_idle() -> MissionConfig: function mission_takeoff (line 143) | def mission_takeoff(altitude: float = 10.0, delay_seconds: int = 5) -> M... function mission_land (line 152) | def mission_land(delay_seconds: int = 5) -> MissionConfig: function mission_hold (line 160) | def mission_hold(delay_seconds: int = 5) -> MissionConfig: function mission_rtl (line 168) | def mission_rtl(delay_seconds: int = 5) -> MissionConfig: function mission_drone_show (line 176) | def mission_drone_show(delay_seconds: int = 10) -> MissionConfig: function mission_smart_swarm (line 191) | def mission_smart_swarm(delay_seconds: int = 10) -> MissionConfig: function mission_swarm_trajectory (line 199) | def mission_swarm_trajectory(delay_seconds: int = 10) -> MissionConfig: function mission_hover_test (line 213) | def mission_hover_test(delay_seconds: int = 10) -> MissionConfig: function mission_emergency_kill (line 222) | def mission_emergency_kill() -> MissionConfig: function mission_sequence_basic (line 234) | def mission_sequence_basic() -> List[MissionConfig]: function mission_sequence_show (line 244) | def mission_sequence_show() -> List[MissionConfig]: function mission_sequence_swarm (line 258) | def mission_sequence_swarm() -> List[MissionConfig]: function origin_zurich (line 272) | def origin_zurich() -> Dict[str, Any]: function origin_sf (line 284) | def origin_sf() -> Dict[str, Any]: function origin_invalid (line 296) | def origin_invalid() -> Dict[str, Any]: function swarm_config_single_leader (line 309) | def swarm_config_single_leader() -> List[Dict[str, Any]]: function swarm_config_multi_leader (line 320) | def swarm_config_multi_leader() -> List[Dict[str, Any]]: function swarm_config_chain (line 332) | def swarm_config_chain() -> List[Dict[str, Any]]: FILE: tests/fixtures/telemetry_samples.py class MAVLinkMsgId (line 18) | class MAVLinkMsgId: class PX4FlightMode (line 35) | class PX4FlightMode: class MAVState (line 57) | class MAVState: function drone_state_idle (line 74) | def drone_state_idle(hw_id: str = '1', pos_id: int = 1) -> Dict[str, Any]: function drone_state_armed (line 121) | def drone_state_armed(hw_id: str = '1', pos_id: int = 1) -> Dict[str, Any]: function drone_state_taking_off (line 132) | def drone_state_taking_off(hw_id: str = '1', pos_id: int = 1) -> Dict[st... function drone_state_hovering (line 145) | def drone_state_hovering(hw_id: str = '1', pos_id: int = 1) -> Dict[str,... function drone_state_flying_mission (line 158) | def drone_state_flying_mission(hw_id: str = '1', pos_id: int = 1) -> Dic... function drone_state_returning (line 173) | def drone_state_returning(hw_id: str = '1', pos_id: int = 1) -> Dict[str... function drone_state_landing (line 188) | def drone_state_landing(hw_id: str = '1', pos_id: int = 1) -> Dict[str, ... function drone_state_low_battery (line 201) | def drone_state_low_battery(hw_id: str = '1', pos_id: int = 1) -> Dict[s... function drone_state_no_gps (line 219) | def drone_state_no_gps(hw_id: str = '1', pos_id: int = 1) -> Dict[str, A... function drone_state_emergency (line 240) | def drone_state_emergency(hw_id: str = '1', pos_id: int = 1) -> Dict[str... function drone_state_disconnected (line 252) | def drone_state_disconnected(hw_id: str = '1', pos_id: int = 1) -> Dict[... function multi_drone_telemetry (line 267) | def multi_drone_telemetry(count: int = 5) -> Dict[str, Dict[str, Any]]: function swarm_telemetry_flying (line 277) | def swarm_telemetry_flying(count: int = 5) -> Dict[str, Dict[str, Any]]: function fifty_drone_telemetry (line 290) | def fifty_drone_telemetry() -> Dict[str, Dict[str, Any]]: function mavlink_heartbeat (line 299) | def mavlink_heartbeat( function mavlink_global_position_int (line 317) | def mavlink_global_position_int( function mavlink_battery_status (line 338) | def mavlink_battery_status( function mavlink_gps_raw_int (line 359) | def mavlink_gps_raw_int( function telemetry_response_success (line 386) | def telemetry_response_success(drone_states: Dict[str, Dict]) -> Dict[st... function telemetry_response_partial (line 391) | def telemetry_response_partial( function telemetry_response_empty (line 403) | def telemetry_response_empty() -> Dict[str, Any]: function heartbeat_data (line 412) | def heartbeat_data( function heartbeat_response (line 432) | def heartbeat_response(count: int = 5) -> Dict[str, Any]: function heartbeat_response_partial_offline (line 450) | def heartbeat_response_partial_offline( FILE: tests/mocks/mavlink_simulator.py class MAVLinkConstants (line 20) | class MAVLinkConstants: class MockMAVLinkConnection (line 52) | class MockMAVLinkConnection: method __init__ (line 55) | def __init__( method connect (line 79) | def connect(self) -> bool: method disconnect (line 84) | def disconnect(self): method recv_msg (line 88) | def recv_msg(self) -> Optional[Dict[str, Any]]: method send_message (line 94) | def send_message(self, msg_type: int, **kwargs): method add_message_handler (line 103) | def add_message_handler(self, msg_type: str, handler: Callable): method generate_heartbeat (line 113) | def generate_heartbeat(self) -> Dict[str, Any]: method generate_global_position (line 128) | def generate_global_position(self) -> Dict[str, Any]: method generate_gps_raw (line 143) | def generate_gps_raw(self) -> Dict[str, Any]: method generate_battery_status (line 157) | def generate_battery_status(self) -> Dict[str, Any]: method generate_all_telemetry (line 167) | def generate_all_telemetry(self) -> List[Dict[str, Any]]: method process_command (line 180) | def process_command(self, command: int, params: List[float]) -> int: class MockMAVSDKSystem (line 210) | class MockMAVSDKSystem: method __init__ (line 213) | def __init__(self, system_id: int = 1): method connect (line 223) | async def connect(self, system_address: str = "udp://:14540"): method disconnect (line 229) | async def disconnect(self): class MockTelemetryPlugin (line 234) | class MockTelemetryPlugin: method __init__ (line 237) | def __init__(self, connection: MockMAVLinkConnection): method position (line 240) | async def position(self): method armed (line 249) | async def armed(self) -> bool: method flight_mode (line 253) | async def flight_mode(self): method battery (line 257) | async def battery(self): method gps_info (line 264) | async def gps_info(self): class MockActionPlugin (line 272) | class MockActionPlugin: method __init__ (line 275) | def __init__(self, connection: MockMAVLinkConnection): method arm (line 278) | async def arm(self): method disarm (line 284) | async def disarm(self): method takeoff (line 290) | async def takeoff(self): method land (line 296) | async def land(self): method return_to_launch (line 300) | async def return_to_launch(self): method kill (line 304) | async def kill(self): class MockOffboardPlugin (line 309) | class MockOffboardPlugin: method __init__ (line 312) | def __init__(self, connection: MockMAVLinkConnection): method start (line 316) | async def start(self): method stop (line 321) | async def stop(self): method set_position_ned (line 325) | async def set_position_ned(self, position_ned): method set_velocity_ned (line 329) | async def set_velocity_ned(self, velocity_ned): class MockParamPlugin (line 334) | class MockParamPlugin: method __init__ (line 337) | def __init__(self): method get_param_int (line 340) | async def get_param_int(self, name: str) -> int: method set_param_int (line 344) | async def set_param_int(self, name: str, value: int): method get_param_float (line 348) | async def get_param_float(self, name: str) -> float: method set_param_float (line 352) | async def set_param_float(self, name: str, value: float): class MockMAVLinkRouter (line 361) | class MockMAVLinkRouter: method __init__ (line 364) | def __init__(self): method start (line 369) | def start(self, config: Dict[str, Any] = None): method stop (line 373) | def stop(self): method add_endpoint (line 377) | def add_endpoint(self, endpoint: str): function create_mock_mavsdk_system (line 386) | def create_mock_mavsdk_system(system_id: int = 1) -> MockMAVSDKSystem: function create_mock_mavlink_connection (line 391) | def create_mock_mavlink_connection( function create_mock_mavlink_router (line 405) | def create_mock_mavlink_router() -> MockMAVLinkRouter: function mock_mavsdk_system_fixture (line 414) | def mock_mavsdk_system_fixture(): function mock_mavlink_connection_fixture (line 420) | def mock_mavlink_connection_fixture(): FILE: tests/test_action_runner_runtime.py function test_load_request_payload_from_inline_json (line 37) | def test_load_request_payload_from_inline_json(): function test_load_request_payload_from_file (line 43) | def test_load_request_payload_from_file(tmp_path): function test_load_request_payload_rejects_non_object_json (line 52) | def test_load_request_payload_rejects_non_object_json(): function test_load_request_payload_rejects_dual_sources (line 57) | def test_load_request_payload_rejects_dual_sources(tmp_path): function test_get_action_spec_returns_expected_connection_policy (line 65) | def test_get_action_spec_returns_expected_connection_policy(): function test_perform_action_skips_mavsdk_for_non_connection_runner (line 79) | async def test_perform_action_skips_mavsdk_for_non_connection_runner(moc... FILE: tests/test_actions_common_params.py function test_apply_common_params_reads_configured_common_params_file (line 39) | async def test_apply_common_params_reads_configured_common_params_file(t... FILE: tests/test_actions_preflight.py class _DummyTelemetry (line 41) | class _DummyTelemetry: method __init__ (line 42) | def __init__(self, samples): method health (line 45) | async def health(self): class _DummyDrone (line 50) | class _DummyDrone: method __init__ (line 51) | def __init__(self, samples): function test_ensure_ready_for_flight_uses_local_home_fallback (line 56) | async def test_ensure_ready_for_flight_uses_local_home_fallback(mocker): function test_wait_until_relative_altitude_uses_local_fallback_after_mavsdk_timeout (line 70) | async def test_wait_until_relative_altitude_uses_local_fallback_after_ma... function test_wait_until_relative_altitude_raises_when_fallback_is_still_below_target (line 85) | async def test_wait_until_relative_altitude_raises_when_fallback_is_stil... function test_takeoff_uses_shared_armability_gate_after_preflight (line 98) | async def test_takeoff_uses_shared_armability_gate_after_preflight(mocker): function test_calculate_land_disarm_timeout_defaults_to_minimum_when_altitude_unknown (line 134) | def test_calculate_land_disarm_timeout_defaults_to_minimum_when_altitude... function test_calculate_land_disarm_timeout_scales_with_altitude_and_respects_cap (line 138) | def test_calculate_land_disarm_timeout_scales_with_altitude_and_respects... function test_return_rtl_waits_for_full_disarm_confirmation (line 146) | async def test_return_rtl_waits_for_full_disarm_confirmation(mocker): FILE: tests/test_analyze_smart_swarm_tracking.py function test_build_demo_swarm_assignments_creates_single_leader_body_followers (line 13) | def test_build_demo_swarm_assignments_creates_single_leader_body_followe... function test_build_precision_move_payload_supports_ned_and_body_frames (line 28) | def test_build_precision_move_payload_supports_ned_and_body_frames(): function test_build_live_jog_sequence_uses_small_precision_move_steps (line 36) | def test_build_live_jog_sequence_uses_small_precision_move_steps(): function test_assignment_payload_snapshot_preserves_missing_optional_fields (line 50) | def test_assignment_payload_snapshot_preserves_missing_optional_fields(): function test_assignment_patch_payload_only_includes_present_optional_fields (line 72) | def test_assignment_patch_payload_only_includes_present_optional_fields(): function test_restore_swarm_resource_uses_full_resource_shape (line 85) | def test_restore_swarm_resource_uses_full_resource_shape(): function test_compute_tracking_sample_reports_zero_error_when_follower_matches_body_offset (line 123) | def test_compute_tracking_sample_reports_zero_error_when_follower_matche... FILE: tests/test_api_route_inventory.py function _safe_signal (line 29) | def _safe_signal(sig, handler): function _collect_http_routes (line 259) | def _collect_http_routes(app): function _collect_ws_routes (line 273) | def _collect_ws_routes(app): function _find_duplicate_http_method_paths (line 281) | def _find_duplicate_http_method_paths(app): function gcs_app (line 298) | def gcs_app(): function drone_app (line 309) | def drone_app(): function test_gcs_business_route_inventory (line 329) | def test_gcs_business_route_inventory(gcs_app): function test_gcs_business_route_inventory_has_no_duplicate_method_paths (line 337) | def test_gcs_business_route_inventory_has_no_duplicate_method_paths(gcs_... function test_gcs_legacy_alias_routes_and_deprecations (line 341) | def test_gcs_legacy_alias_routes_and_deprecations(gcs_app): function test_drone_business_route_inventory (line 413) | def test_drone_business_route_inventory(drone_app): function test_drone_legacy_alias_routes_retired (line 422) | def test_drone_legacy_alias_routes_retired(drone_app): FILE: tests/test_bootstrap_installers.py function run_bash (line 22) | def run_bash(script: str) -> subprocess.CompletedProcess[str]: function test_node_bootstrap_wrapper_can_be_sourced_and_resolves_repo_urls (line 32) | def test_node_bootstrap_wrapper_can_be_sourced_and_resolves_repo_urls(): function test_gcs_bootstrap_wrapper_can_be_sourced_and_resolves_repo_urls (line 45) | def test_gcs_bootstrap_wrapper_can_be_sourced_and_resolves_repo_urls(): function test_node_bootstrap_wrapper_uses_local_deployment_profile_defaults_when_available (line 58) | def test_node_bootstrap_wrapper_uses_local_deployment_profile_defaults_w... function test_gcs_bootstrap_wrapper_uses_local_deployment_profile_defaults_when_available (line 79) | def test_gcs_bootstrap_wrapper_uses_local_deployment_profile_defaults_wh... function test_node_bootstrap_wrapper_respects_runtime_user_and_install_dir_env_overrides (line 100) | def test_node_bootstrap_wrapper_respects_runtime_user_and_install_dir_en... function test_node_bootstrap_wrapper_supports_piped_help_execution (line 123) | def test_node_bootstrap_wrapper_supports_piped_help_execution(): function test_gcs_bootstrap_wrapper_supports_piped_help_execution (line 134) | def test_gcs_bootstrap_wrapper_supports_piped_help_execution(): function test_gcs_bootstrap_wrapper_help_mentions_private_https_token_file (line 145) | def test_gcs_bootstrap_wrapper_help_mentions_private_https_token_file(): function test_gcs_bootstrap_wrapper_help_mentions_private_ssh_key_file (line 156) | def test_gcs_bootstrap_wrapper_help_mentions_private_ssh_key_file(): function test_node_bootstrap_wrapper_help_mentions_private_https_token_file (line 167) | def test_node_bootstrap_wrapper_help_mentions_private_https_token_file(): function test_node_bootstrap_wrapper_help_mentions_private_ssh_key_file (line 178) | def test_node_bootstrap_wrapper_help_mentions_private_ssh_key_file(): function test_git_sync_uses_configured_ssh_key_for_private_repo_fetches (line 189) | def test_git_sync_uses_configured_ssh_key_for_private_repo_fetches(): function test_identity_setup_local_env_persists_node_git_auth_file_paths (line 221) | def test_identity_setup_local_env_persists_node_git_auth_file_paths(): function test_node_bootstrap_help_mentions_connectivity_backend_options (line 249) | def test_node_bootstrap_help_mentions_connectivity_backend_options(): function test_gcs_wrapper_private_https_auth_uses_askpass_token_file (line 262) | def test_gcs_wrapper_private_https_auth_uses_askpass_token_file(): function test_gcs_wrapper_private_ssh_auth_uses_configured_key_file (line 285) | def test_gcs_wrapper_private_ssh_auth_uses_configured_key_file(): function test_gcs_repo_phase_prefers_https_for_noninteractive_private_https_repo_with_token_file (line 306) | def test_gcs_repo_phase_prefers_https_for_noninteractive_private_https_r... function test_gcs_repo_phase_keeps_ssh_for_noninteractive_explicit_ssh_repo (line 323) | def test_gcs_repo_phase_keeps_ssh_for_noninteractive_explicit_ssh_repo(): function test_gcs_repo_phase_uses_configured_ssh_key_file_for_runtime_git_commands (line 340) | def test_gcs_repo_phase_uses_configured_ssh_key_file_for_runtime_git_com... function test_node_wrapper_private_https_auth_uses_askpass_token_file (line 361) | def test_node_wrapper_private_https_auth_uses_askpass_token_file(): function test_node_wrapper_private_ssh_auth_uses_configured_key_file (line 390) | def test_node_wrapper_private_ssh_auth_uses_configured_key_file(): function test_runtime_git_sync_prefers_explicit_https_repo_when_token_file_is_present (line 417) | def test_runtime_git_sync_prefers_explicit_https_repo_when_token_file_is... function test_runtime_git_sync_https_auth_uses_askpass_token_file (line 431) | def test_runtime_git_sync_https_auth_uses_askpass_token_file(): function test_dashboard_start_uses_canonical_runtime_mode_and_health_path (line 454) | def test_dashboard_start_uses_canonical_runtime_mode_and_health_path(): function test_dashboard_start_build_check_skips_rebuild_when_marker_is_newer_than_sources (line 496) | def test_dashboard_start_build_check_skips_rebuild_when_marker_is_newer_... function test_dashboard_start_syncs_runtime_env_into_tmux_session (line 553) | def test_dashboard_start_syncs_runtime_env_into_tmux_session(): function test_dashboard_start_tmux_launch_waits_for_panes_before_sending_commands (line 601) | def test_dashboard_start_tmux_launch_waits_for_panes_before_sending_comm... function test_dashboard_start_build_check_detects_newer_source_than_marker (line 647) | def test_dashboard_start_build_check_detects_newer_source_than_marker(): function test_gcs_server_launcher_exports_sitl_runtime_env_from_system_config (line 701) | def test_gcs_server_launcher_exports_sitl_runtime_env_from_system_config(): function test_netbird_detail_parsers_extract_primary_identity_fields (line 713) | def test_netbird_detail_parsers_extract_primary_identity_fields(): function test_repo_structure_validation_accepts_current_led_indicator_layout (line 734) | def test_repo_structure_validation_accepts_current_led_indicator_layout(): function test_mavlink_setup_phase_returns_auto_config_status_in_non_interactive_mode (line 750) | def test_mavlink_setup_phase_returns_auto_config_status_in_non_interacti... function test_mavlink_auto_config_applies_serial_fix_on_raspberry_pi (line 775) | def test_mavlink_auto_config_applies_serial_fix_on_raspberry_pi(): function test_mavsdk_binary_name_resolution_supports_arm64_without_array_errors (line 800) | def test_mavsdk_binary_name_resolution_supports_arm64_without_array_erro... function test_fetch_latest_mavsdk_version_keeps_stdout_machine_readable (line 813) | def test_fetch_latest_mavsdk_version_keeps_stdout_machine_readable(): function test_service_source_path_maps_known_units_without_associative_array_lookup (line 830) | def test_service_source_path_maps_known_units_without_associative_array_... function test_common_lib_respects_runtime_user_and_install_dir_overrides (line 843) | def test_common_lib_respects_runtime_user_and_install_dir_overrides(): function test_common_lib_loads_git_tracked_deployment_profile_defaults (line 859) | def test_common_lib_loads_git_tracked_deployment_profile_defaults(): function test_node_repo_reconcile_updates_remote_to_requested_runtime_repo (line 876) | def test_node_repo_reconcile_updates_remote_to_requested_runtime_repo(): function test_node_repo_runtime_uses_configured_ssh_key_file (line 908) | def test_node_repo_runtime_uses_configured_ssh_key_file(): function test_gcs_repo_reconcile_updates_remote_to_requested_runtime_repo (line 942) | def test_gcs_repo_reconcile_updates_remote_to_requested_runtime_repo(): function test_install_service_renders_runtime_user_and_install_dir (line 969) | def test_install_service_renders_runtime_user_and_install_dir(): function test_repo_verification_uses_deployment_profile_defaults_not_params_file (line 999) | def test_repo_verification_uses_deployment_profile_defaults_not_params_f... function test_run_services_phase_reconciles_runtime_services_after_enable (line 1009) | def test_run_services_phase_reconciles_runtime_services_after_enable(): function test_git_sync_service_updates_reenable_previously_enabled_units (line 1044) | def test_git_sync_service_updates_reenable_previously_enabled_units(): function test_git_sync_service_updates_skip_systemd_reconcile_for_sitl_runtime (line 1104) | def test_git_sync_service_updates_skip_systemd_reconcile_for_sitl_runtim... function test_git_sync_service_updates_restore_previous_units_when_daemon_reload_fails (line 1135) | def test_git_sync_service_updates_restore_previous_units_when_daemon_rel... function test_git_sync_service_update_permission_failure_is_reported_as_deferred_action (line 1207) | def test_git_sync_service_update_permission_failure_is_reported_as_defer... function test_git_sync_service_unit_updates_do_not_restart_running_sync (line 1257) | def test_git_sync_service_unit_updates_do_not_restart_running_sync(): function test_post_sync_runtime_restart_schedules_coordinator_when_active (line 1316) | def test_post_sync_runtime_restart_schedules_coordinator_when_active(): function test_post_sync_runtime_restart_falls_back_to_main_pid_signal_when_sudo_restart_fails (line 1373) | def test_post_sync_runtime_restart_falls_back_to_main_pid_signal_when_su... function test_post_sync_runtime_restart_keeps_inactive_coordinator_stopped (line 1431) | def test_post_sync_runtime_restart_keeps_inactive_coordinator_stopped(): function test_post_sync_service_actions_record_deferred_unit_apply_paths (line 1478) | def test_post_sync_service_actions_record_deferred_unit_apply_paths(): function test_git_sync_repo_revision_change_marks_coordinator_restart_by_default (line 1515) | def test_git_sync_repo_revision_change_marks_coordinator_restart_by_defa... function test_git_sync_runtime_state_persists_post_sync_summary (line 1547) | def test_git_sync_runtime_state_persists_post_sync_summary(): function test_git_sync_runtime_state_defaults_to_user_home_state_dir (line 1582) | def test_git_sync_runtime_state_defaults_to_user_home_state_dir(): function test_git_sync_service_template_omits_no_new_privileges (line 1599) | def test_git_sync_service_template_omits_no_new_privileges(): function test_git_sync_service_template_sources_gcs_env_before_local_env (line 1605) | def test_git_sync_service_template_sources_gcs_env_before_local_env(): function test_git_sync_service_template_validation_uses_service_suffix (line 1612) | def test_git_sync_service_template_validation_uses_service_suffix(): function test_git_sync_runtime_env_prefers_local_over_gcs_and_user_env (line 1645) | def test_git_sync_runtime_env_prefers_local_over_gcs_and_user_env(): function test_python_env_prefers_node_requirements_when_present (line 1684) | def test_python_env_prefers_node_requirements_when_present(): function test_setup_local_env_writes_clean_override_lines (line 1702) | def test_setup_local_env_writes_clean_override_lines(): function test_reconcile_connectivity_uses_repo_profile_when_backend_is_smart_wifi_manager (line 1735) | def test_reconcile_connectivity_uses_repo_profile_when_backend_is_smart_... function test_reconcile_connectivity_updates_existing_runtime_with_safe_directory (line 1799) | def test_reconcile_connectivity_updates_existing_runtime_with_safe_direc... function test_connectivity_persistence_keeps_repo_ref_in_defaults_layer_unless_explicit (line 1852) | def test_connectivity_persistence_keeps_repo_ref_in_defaults_layer_unles... function test_mavlink_persistence_keeps_repo_ref_in_defaults_layer_unless_explicit (line 1878) | def test_mavlink_persistence_keeps_repo_ref_in_defaults_layer_unless_exp... function test_reconcile_mavlink_runtime_uses_repo_ref_when_managed (line 1910) | def test_reconcile_mavlink_runtime_uses_repo_ref_when_managed(): function test_reconcile_mavlink_runtime_updates_existing_runtime_with_safe_directory (line 1985) | def test_reconcile_mavlink_runtime_updates_existing_runtime_with_safe_di... function test_reconcile_mavlink_runtime_warns_but_succeeds_without_router_config (line 2041) | def test_reconcile_mavlink_runtime_warns_but_succeeds_without_router_con... function test_runtime_git_sync_reconciles_optional_connectivity_backend (line 2099) | def test_runtime_git_sync_reconciles_optional_connectivity_backend(): function test_runtime_git_sync_reconciles_managed_mavlink_runtime (line 2107) | def test_runtime_git_sync_reconciles_managed_mavlink_runtime(): function test_git_sync_accepts_healthy_mavlink_runtime_after_reconcile_warning (line 2116) | def test_git_sync_accepts_healthy_mavlink_runtime_after_reconcile_warnin... function test_git_sync_status_health_falls_back_to_unprivileged_status (line 2142) | def test_git_sync_status_health_falls_back_to_unprivileged_status(): function test_git_sync_rejects_unhealthy_mavlink_runtime_after_reconcile_warning (line 2173) | def test_git_sync_rejects_unhealthy_mavlink_runtime_after_reconcile_warn... function test_git_sync_reexecs_updated_sync_script_once_to_apply_new_logic (line 2201) | def test_git_sync_reexecs_updated_sync_script_once_to_apply_new_logic(): function test_git_sync_self_reexec_records_next_invocation_after_max_attempt (line 2238) | def test_git_sync_self_reexec_records_next_invocation_after_max_attempt(): function test_post_sync_validation_rejects_invalid_shell_helper_and_rolls_back (line 2276) | def test_post_sync_validation_rejects_invalid_shell_helper_and_rolls_bac... function test_post_sync_validation_rejects_invalid_runtime_python_file (line 2314) | def test_post_sync_validation_rejects_invalid_runtime_python_file(): function test_post_sync_python_validation_does_not_write_bytecode (line 2347) | def test_post_sync_python_validation_does_not_write_bytecode(): function test_post_sync_validation_rejects_invalid_rendered_service_template (line 2367) | def test_post_sync_validation_rejects_invalid_rendered_service_template(): function test_exit_with_failure_result_can_preserve_noncritical_led_state (line 2408) | def test_exit_with_failure_result_can_preserve_noncritical_led_state(): function test_services_lib_core_service_order_excludes_embedded_wifi_manager (line 2438) | def test_services_lib_core_service_order_excludes_embedded_wifi_manager(): function test_configure_gcs_env_persists_private_https_token_file (line 2454) | def test_configure_gcs_env_persists_private_https_token_file(): function test_configure_gcs_env_persists_private_ssh_key_file (line 2490) | def test_configure_gcs_env_persists_private_ssh_key_file(): function test_configure_gcs_env_rewrites_stale_ports (line 2526) | def test_configure_gcs_env_rewrites_stale_ports(): function test_configure_gcs_env_persists_optional_auth_and_first_admin (line 2578) | def test_configure_gcs_env_persists_optional_auth_and_first_admin(): function test_dashboard_launcher_rewrites_stale_react_env_ports (line 2630) | def test_dashboard_launcher_rewrites_stale_react_env_ports(): function test_gcs_env_config_migrates_obsolete_dashboard_server_url (line 2669) | def test_gcs_env_config_migrates_obsolete_dashboard_server_url(): function test_gcs_common_phase_list_includes_services_before_verify (line 2696) | def test_gcs_common_phase_list_includes_services_before_verify(): function test_gcs_init_help_mentions_services_phase_and_skip_flag (line 2705) | def test_gcs_init_help_mentions_services_phase_and_skip_flag(): function test_run_gcs_services_phase_installs_git_sync_service_with_runtime_paths (line 2717) | def test_run_gcs_services_phase_installs_git_sync_service_with_runtime_p... function test_verify_gcs_git_sync_service_reports_enabled_and_active (line 2756) | def test_verify_gcs_git_sync_service_reports_enabled_and_active(): function test_install_git_sync_service_restarts_active_oneshot_unit (line 2790) | def test_install_git_sync_service_restarts_active_oneshot_unit(): function test_identity_manifest_uses_live_netbird_probe_when_state_is_empty (line 2832) | def test_identity_manifest_uses_live_netbird_probe_when_state_is_empty(): function test_verify_hw_id_stays_safe_under_nounset (line 2862) | def test_verify_hw_id_stays_safe_under_nounset(): function test_sitl_launchers_use_canonical_mds_hw_id_without_runtime_hwid_files (line 2881) | def test_sitl_launchers_use_canonical_mds_hw_id_without_runtime_hwid_fil... function test_verify_netbird_parses_detail_output_and_extracts_primary_ip (line 2902) | def test_verify_netbird_parses_detail_output_and_extracts_primary_ip(): function test_generate_summary_report_lists_component_rows (line 2922) | def test_generate_summary_report_lists_component_rows(): function test_join_ntp_servers_is_stable_when_ifs_is_newline_tab (line 2938) | def test_join_ntp_servers_is_stable_when_ifs_is_newline_tab(): function test_update_service_renders_coordinator_template_for_custom_runtime_paths (line 2950) | def test_update_service_renders_coordinator_template_for_custom_runtime_... function test_check_and_update_service_wraps_safe_renderer (line 2993) | def test_check_and_update_service_wraps_safe_renderer(): FILE: tests/test_calculate_spawn_coordinates.py function test_calculate_coordinates_handles_scientific_notation_offsets (line 6) | def test_calculate_coordinates_handles_scientific_notation_offsets(): function test_calculate_coordinates_preserves_position_for_zero_offsets (line 18) | def test_calculate_coordinates_preserves_position_for_zero_offsets(): FILE: tests/test_check_runtime_venv.py function _create_venv (line 11) | def _create_venv(tmp_path: Path) -> Path: function test_check_runtime_venv_accepts_healthy_venv (line 17) | def test_check_runtime_venv_accepts_healthy_venv(tmp_path): function test_check_runtime_venv_rejects_version_mismatch (line 31) | def test_check_runtime_venv_rejects_version_mismatch(tmp_path): function test_check_runtime_venv_rejects_missing_module (line 54) | def test_check_runtime_venv_rejects_missing_module(tmp_path): FILE: tests/test_command_processing.py function create_mock_drone_config (line 20) | def create_mock_drone_config(): class TestCommandValidation (line 69) | class TestCommandValidation: method test_validate_valid_command (line 72) | def test_validate_valid_command(self): method test_validate_command_requires_mission_type (line 87) | def test_validate_command_requires_mission_type(self): method test_validate_command_accepts_string_mission_type (line 96) | def test_validate_command_accepts_string_mission_type(self): method test_validate_command_accepts_int_mission_type (line 105) | def test_validate_command_accepts_int_mission_type(self): method test_validate_empty_command_fails (line 114) | def test_validate_empty_command_fails(self): method test_validate_command_not_dict_fails (line 122) | def test_validate_command_not_dict_fails(self): class TestCommandPayloadConstruction (line 136) | class TestCommandPayloadConstruction: method test_takeoff_command_has_altitude (line 139) | def test_takeoff_command_has_altitude(self): method test_drone_show_command_has_origin (line 146) | def test_drone_show_command_has_origin(self): method test_command_has_trigger_time (line 155) | def test_command_has_trigger_time(self): method test_mission_type_is_string (line 160) | def test_mission_type_is_string(self): method test_target_drones_optional (line 167) | def test_target_drones_optional(self): class TestCommandRouting (line 183) | class TestCommandRouting: method test_send_to_all_drones (line 186) | def test_send_to_all_drones(self): method test_send_to_selected_drones (line 200) | def test_send_to_selected_drones(self): method test_missing_target_drones_warning (line 216) | def test_missing_target_drones_warning(self): method test_empty_drone_list_handling (line 231) | def test_empty_drone_list_handling(self): method test_empty_target_list_handling (line 239) | def test_empty_target_list_handling(self): class TestCommandExecution (line 253) | class TestCommandExecution: method test_successful_command_returns_true (line 256) | def test_successful_command_returns_true(self): method test_failed_command_returns_false (line 265) | def test_failed_command_returns_false(self): method test_retry_on_timeout (line 273) | def test_retry_on_timeout(self): method test_exponential_backoff (line 296) | def test_exponential_backoff(self): method test_command_statistics_tracking (line 305) | def test_command_statistics_tracking(self): method test_success_rate_calculation (line 322) | def test_success_rate_calculation(self): class TestConcurrentCommandExecution (line 338) | class TestConcurrentCommandExecution: method test_thread_pool_max_workers (line 341) | def test_thread_pool_max_workers(self): method test_thread_pool_scales_with_drones (line 348) | def test_thread_pool_scales_with_drones(self): method test_results_collected_from_all_threads (line 355) | def test_results_collected_from_all_threads(self): method test_execution_time_tracked (line 367) | def test_execution_time_tracked(self): class TestCommandErrorHandling (line 385) | class TestCommandErrorHandling: method test_connection_error_caught (line 388) | def test_connection_error_caught(self): method test_timeout_error_caught (line 400) | def test_timeout_error_caught(self): method test_http_error_response_handled (line 412) | def test_http_error_response_handled(self): method test_unexpected_error_not_retried (line 422) | def test_unexpected_error_not_retried(self): method test_error_grouping_by_type (line 433) | def test_error_grouping_by_type(self): class TestCommandResults (line 461) | class TestCommandResults: method test_result_contains_success_count (line 464) | def test_result_contains_success_count(self): method test_result_contains_failure_details (line 475) | def test_result_contains_failure_details(self): method test_status_success_when_all_succeed (line 489) | def test_status_success_when_all_succeed(self): method test_status_partial_when_some_fail (line 497) | def test_status_partial_when_some_fail(self): method test_status_failed_when_all_fail (line 511) | def test_status_failed_when_all_fail(self): class TestDroneCommandReception (line 532) | class TestDroneCommandReception: method test_command_endpoint_exists (line 535) | def test_command_endpoint_exists(self, test_client): method test_command_updates_drone_state (line 542) | def test_command_updates_drone_state(self, mock_drone_communicator): method test_trigger_time_parsed_correctly (line 556) | def test_trigger_time_parsed_correctly(self): method test_mission_type_converted_from_string (line 565) | def test_mission_type_converted_from_string(self): method test_update_code_command_preserves_runtime_branch (line 574) | def test_update_code_command_preserves_runtime_branch(self): method test_process_command_accepts_canonical_snake_case_fields (line 599) | def test_process_command_accepts_canonical_snake_case_fields(self): method test_apply_common_params_command_preserves_reboot_flag (line 624) | def test_apply_common_params_command_preserves_reboot_flag(self): method test_precision_move_command_writes_runtime_payload_file (line 649) | def test_precision_move_command_writes_runtime_payload_file(self): method test_get_drone_state_reports_px4_home_truth_not_fallback_cache (line 670) | def test_get_drone_state_reports_px4_home_truth_not_fallback_cache(self): method test_get_drone_state_marks_stale_local_mavlink_as_unavailable (line 711) | def test_get_drone_state_marks_stale_local_mavlink_as_unavailable(self): class TestCommandDroneConfigIntegration (line 763) | class TestCommandDroneConfigIntegration: method test_command_sets_mission (line 766) | def test_command_sets_mission(self): method test_command_sets_state_to_ready (line 776) | def test_command_sets_state_to_ready(self): method test_origin_stored_in_config (line 785) | def test_origin_stored_in_config(self): class TestLargeSwarmCommands (line 804) | class TestLargeSwarmCommands: method test_50_drone_config_generation (line 807) | def test_50_drone_config_generation(self, fifty_drones): method test_command_payload_for_50_drones (line 811) | def test_command_payload_for_50_drones(self, fifty_drones): method test_result_aggregation_for_50_drones (line 822) | def test_result_aggregation_for_50_drones(self, fifty_drones): method test_thread_pool_limit_for_50_drones (line 833) | def test_thread_pool_limit_for_50_drones(self, fifty_drones): method test_success_rate_for_partial_failure (line 839) | def test_success_rate_for_partial_failure(self, fifty_drones): class TestMissionTypeCommands (line 856) | class TestMissionTypeCommands: method test_takeoff_command_type (line 859) | def test_takeoff_command_type(self): method test_land_command_type (line 865) | def test_land_command_type(self): method test_hold_command_type (line 871) | def test_hold_command_type(self): method test_rtl_command_type (line 877) | def test_rtl_command_type(self): method test_kill_command_type (line 883) | def test_kill_command_type(self): method test_drone_show_command_type (line 889) | def test_drone_show_command_type(self): class TestInvalidCommands (line 904) | class TestInvalidCommands: method test_invalid_mission_type_rejected (line 907) | def test_invalid_mission_type_rejected(self): method test_missing_mission_type_rejected (line 920) | def test_missing_mission_type_rejected(self): method test_empty_command_rejected (line 928) | def test_empty_command_rejected(self): method test_all_invalid_commands_detected (line 936) | def test_all_invalid_commands_detected(self): FILE: tests/test_command_system.py class TestCommandErrorCode (line 36) | class TestCommandErrorCode: method test_error_code_values (line 39) | def test_error_code_values(self): method test_error_descriptions (line 65) | def test_error_descriptions(self): class TestGcsLoggingImports (line 83) | class TestGcsLoggingImports: method test_command_module_uses_server_logging_wrapper (line 86) | def test_command_module_uses_server_logging_wrapper(self): method test_launch_missions_require_live_armability_probe (line 91) | def test_launch_missions_require_live_armability_probe(self): class TestCommandTracker (line 104) | class TestCommandTracker: method tracker (line 108) | def tracker(self): method test_create_command (line 114) | async def test_create_command(self, tracker): method test_create_or_replay_command_reuses_existing_command_for_same_idempotency_key (line 136) | async def test_create_or_replay_command_reuses_existing_command_for_sa... method test_create_or_replay_command_rejects_conflicting_payload_for_same_idempotency_key (line 169) | async def test_create_or_replay_command_rejects_conflicting_payload_fo... method test_record_ack_accepted (line 194) | async def test_record_ack_accepted(self, tracker): method test_record_ack_rejected (line 224) | async def test_record_ack_rejected(self, tracker): method test_record_execution (line 251) | async def test_record_execution(self, tracker): method test_progress_stage_marks_future_trigger_as_scheduled (line 277) | async def test_progress_stage_marks_future_trigger_as_scheduled(self, ... method test_progress_stage_marks_finishing_when_some_drones_complete (line 295) | async def test_progress_stage_marks_finishing_when_some_drones_complet... method test_execution_start_promotes_missing_ack_to_accepted (line 315) | async def test_execution_start_promotes_missing_ack_to_accepted(self, ... method test_execution_result_upgrades_offline_ack_to_accepted (line 333) | async def test_execution_result_upgrades_offline_ack_to_accepted(self,... method test_partial_success (line 357) | async def test_partial_success(self, tracker): method test_partial_success_when_some_targets_never_accept (line 384) | async def test_partial_success_when_some_targets_never_accept(self, tr... method test_superseded_execution_results_surface_superseded_outcome (line 406) | async def test_superseded_execution_results_surface_superseded_outcome... method test_late_execution_after_timeout_does_not_mutate_terminal_outcome (line 431) | async def test_late_execution_after_timeout_does_not_mutate_terminal_o... method test_late_ack_after_timeout_does_not_change_terminal_counts (line 463) | async def test_late_ack_after_timeout_does_not_change_terminal_counts(... method test_cancel_command (line 495) | async def test_cancel_command(self, tracker): method test_get_recent_commands (line 511) | async def test_get_recent_commands(self, tracker): method test_statistics (line 530) | async def test_statistics(self, tracker): method test_statistics_count_partial_target_shortfall (line 547) | async def test_statistics_count_partial_target_shortfall(self, tracker): method test_command_eviction (line 565) | async def test_command_eviction(self): class TestGcsCommandDistribution (line 593) | class TestGcsCommandDistribution: method test_validate_command_data_accepts_supported_legacy_mission_names (line 596) | def test_validate_command_data_accepts_supported_legacy_mission_names(... method test_send_command_to_drone_respects_rejected_ack_body (line 605) | def test_send_command_to_drone_respects_rejected_ack_body(self): method test_send_command_to_drone_normalizes_legacy_mission_names_to_numeric_payload (line 627) | def test_send_command_to_drone_normalizes_legacy_mission_names_to_nume... method test_send_command_to_drone_aborts_after_sync_dispatch_window_expires (line 648) | def test_send_command_to_drone_aborts_after_sync_dispatch_window_expir... method test_send_command_to_drone_applies_sync_window_to_hover_test (line 668) | def test_send_command_to_drone_applies_sync_window_to_hover_test(self): method test_send_command_to_drone_does_not_apply_sync_window_to_takeoff (line 688) | def test_send_command_to_drone_does_not_apply_sync_window_to_takeoff(s... method test_send_command_to_drone_caps_timeout_to_remaining_sync_window (line 713) | def test_send_command_to_drone_caps_timeout_to_remaining_sync_window(s... method test_send_commands_to_all_normalizes_rejected_drone_ids (line 737) | def test_send_commands_to_all_normalizes_rejected_drone_ids(self): method test_send_commands_to_selected_matches_string_targets_to_integer_hwids (line 752) | def test_send_commands_to_selected_matches_string_targets_to_integer_h... method test_send_commands_to_all_short_circuits_targets_without_recent_heartbeat (line 769) | def test_send_commands_to_all_short_circuits_targets_without_recent_he... method test_send_commands_to_all_keeps_targets_when_no_recent_heartbeat_baseline_exists (line 793) | def test_send_commands_to_all_keeps_targets_when_no_recent_heartbeat_b... method test_send_commands_to_all_keeps_target_when_recent_telemetry_exists_without_heartbeat (line 814) | def test_send_commands_to_all_keeps_target_when_recent_telemetry_exist... method test_probe_live_armability_for_drones_collects_blocked_and_unavailable (line 837) | def test_probe_live_armability_for_drones_collects_blocked_and_unavail... method test_probe_live_armability_for_drone_uses_total_request_budget (line 857) | def test_probe_live_armability_for_drone_uses_total_request_budget(self): class TestCommandValidation (line 888) | class TestCommandValidation: method mock_drone_config (line 892) | def mock_drone_config(self): method mock_params (line 904) | def mock_params(self): method api_server (line 912) | def api_server(self, mock_params, mock_drone_config): method test_validate_missing_mission_type (line 918) | def test_validate_missing_mission_type(self, api_server): method test_validate_missing_trigger_time (line 926) | def test_validate_missing_trigger_time(self, api_server): method test_validate_invalid_mission_type (line 934) | def test_validate_invalid_mission_type(self, api_server): method test_validate_invalid_mission_type_format (line 943) | def test_validate_invalid_mission_type_format(self, api_server): method test_validate_negative_trigger_time (line 952) | def test_validate_negative_trigger_time(self, api_server): method test_validate_invalid_altitude (line 961) | def test_validate_invalid_altitude(self, api_server): method test_validate_altitude_exceeds_max (line 971) | def test_validate_altitude_exceeds_max(self, api_server): method test_validate_success (line 981) | def test_validate_success(self, api_server): method test_validate_precision_move_requires_payload (line 990) | def test_validate_precision_move_requires_payload(self, api_server): method test_validate_precision_move_requires_immediate_trigger (line 1000) | def test_validate_precision_move_requires_immediate_trigger(self, api_... method test_check_state_executing (line 1011) | def test_check_state_executing(self, api_server): method test_check_state_emergency_allowed (line 1019) | def test_check_state_emergency_allowed(self, api_server): method test_check_state_precision_move_allowed_as_override (line 1026) | def test_check_state_precision_move_allowed_as_override(self, api_serv... method test_check_state_swarm_trajectory_allowed_as_override (line 1033) | def test_check_state_swarm_trajectory_allowed_as_override(self, api_se... method test_custom_show_allowed_to_replace_smart_swarm_leader (line 1040) | def test_custom_show_allowed_to_replace_smart_swarm_leader(self, api_s... method test_standard_show_allowed_to_replace_smart_swarm_leader (line 1050) | def test_standard_show_allowed_to_replace_smart_swarm_leader(self, api... method test_check_state_not_ready_to_arm (line 1060) | def test_check_state_not_ready_to_arm(self, api_server): class TestSchemas (line 1073) | class TestSchemas: method test_submit_command_request (line 1076) | def test_submit_command_request(self): method test_submit_command_response (line 1130) | def test_submit_command_response(self): method test_command_status_response (line 1151) | def test_command_status_response(self): method test_execution_report_request (line 1194) | def test_execution_report_request(self): class TestCommandEndpointIntegration (line 1214) | class TestCommandEndpointIntegration: method mock_config_data (line 1218) | def mock_config_data(self): method test_submit_and_track_command (line 1227) | async def test_submit_and_track_command(self, mock_config_data): FILE: tests/test_command_timeout_policy.py class _MockParams (line 11) | class _MockParams: function test_estimate_command_tracking_timeout_for_takeoff_uses_prefight_and_climb_budget (line 33) | def test_estimate_command_tracking_timeout_for_takeoff_uses_prefight_and... function test_estimate_command_tracking_timeout_for_land_scales_with_relative_altitude (line 39) | def test_estimate_command_tracking_timeout_for_land_scales_with_relative... function test_estimate_command_tracking_timeout_for_precision_move_uses_requested_budget (line 49) | def test_estimate_command_tracking_timeout_for_precision_move_uses_reque... function test_estimate_command_tracking_timeout_for_smart_swarm_uses_long_lived_budget (line 59) | def test_estimate_command_tracking_timeout_for_smart_swarm_uses_long_liv... function test_estimate_command_tracking_timeout_for_rtl_scales_with_relative_altitude (line 68) | def test_estimate_command_tracking_timeout_for_rtl_scales_with_relative_... function test_estimate_command_tracking_timeout_includes_future_trigger_delay (line 78) | def test_estimate_command_tracking_timeout_includes_future_trigger_delay... function test_estimate_command_tracking_timeout_for_drone_show_uses_show_duration (line 91) | def test_estimate_command_tracking_timeout_for_drone_show_uses_show_dura... function test_estimate_command_tracking_timeout_for_swarm_trajectory_adds_end_behavior_budget (line 105) | def test_estimate_command_tracking_timeout_for_swarm_trajectory_adds_end... function test_estimate_command_tracking_timeout_accepts_foreign_enum_like_objects (line 121) | def test_estimate_command_tracking_timeout_accepts_foreign_enum_like_obj... function test_estimate_command_tracking_timeout_for_swarm_trajectory_filters_target_drones (line 140) | def test_estimate_command_tracking_timeout_for_swarm_trajectory_filters_... function test_estimate_command_tracking_timeout_for_custom_show_uses_active_csv_duration (line 158) | def test_estimate_command_tracking_timeout_for_custom_show_uses_active_c... FILE: tests/test_config_validation.py function test_validate_and_process_config_reports_duplicate_hw_and_pos_ids (line 6) | def test_validate_and_process_config_reports_duplicate_hw_and_pos_ids(): FILE: tests/test_connectivity_checker.py class TestConnectivityCheckerInit (line 16) | class TestConnectivityCheckerInit: method test_init_with_default_endpoint (line 19) | def test_init_with_default_endpoint(self): method test_init_with_custom_endpoint (line 35) | def test_init_with_custom_endpoint(self): method test_init_default_port (line 48) | def test_init_default_port(self): class TestConnectivityCheckerStartStop (line 58) | class TestConnectivityCheckerStartStop: method test_start_creates_thread (line 61) | def test_start_creates_thread(self): method test_start_when_already_running (line 81) | def test_start_when_already_running(self): method test_stop_when_running (line 98) | def test_stop_when_running(self): method test_stop_when_not_running (line 117) | def test_stop_when_not_running(self): class TestConnectivityCheck (line 131) | class TestConnectivityCheck: method test_check_connectivity_sim_mode (line 134) | def test_check_connectivity_sim_mode(self): method test_check_connectivity_success (line 146) | def test_check_connectivity_success(self): method test_check_connectivity_failure_status (line 165) | def test_check_connectivity_failure_status(self): method test_check_connectivity_exception (line 183) | def test_check_connectivity_exception(self): method test_check_connectivity_timeout (line 199) | def test_check_connectivity_timeout(self): class TestConnectivityCheckerRun (line 217) | class TestConnectivityCheckerRun: method test_run_sets_green_on_success (line 220) | def test_run_sets_green_on_success(self): method test_run_sets_purple_on_failure (line 238) | def test_run_sets_purple_on_failure(self): class TestConnectivityCheckerIntegration (line 260) | class TestConnectivityCheckerIntegration: method test_full_lifecycle (line 263) | def test_full_lifecycle(self): FILE: tests/test_constants.py class TestPacketMarkers (line 11) | class TestPacketMarkers: method test_header_value (line 14) | def test_header_value(self): method test_terminator_value (line 20) | def test_terminator_value(self): class TestTrajectoryState (line 27) | class TestTrajectoryState: method test_state_values (line 30) | def test_state_values(self): method test_get_description_known_state (line 38) | def test_get_description_known_state(self): method test_get_description_unknown_state (line 45) | def test_get_description_unknown_state(self): method test_is_maneuvering_true (line 53) | def test_is_maneuvering_true(self): method test_is_maneuvering_false (line 60) | def test_is_maneuvering_false(self): class TestNetworkDefaults (line 69) | class TestNetworkDefaults: method test_mavlink_port (line 72) | def test_mavlink_port(self): method test_grpc_base_port (line 78) | def test_grpc_base_port(self): method test_socket_buffer_size (line 84) | def test_socket_buffer_size(self): method test_thread_pool_workers (line 90) | def test_thread_pool_workers(self): class TestTelemetryIndex (line 97) | class TestTelemetryIndex: method test_header_index (line 100) | def test_header_index(self): method test_battery_voltage_index (line 106) | def test_battery_voltage_index(self): method test_terminator_index (line 112) | def test_terminator_index(self): class TestTimeConstants (line 119) | class TestTimeConstants: method test_ms_per_second (line 122) | def test_ms_per_second(self): method test_seconds_per_minute (line 128) | def test_seconds_per_minute(self): FILE: tests/test_coordinate_utils.py class TestLatlonToNe (line 13) | class TestLatlonToNe: method test_origin_returns_zero (line 16) | def test_origin_returns_zero(self): method test_north_of_origin (line 26) | def test_north_of_origin(self): method test_east_of_origin (line 41) | def test_east_of_origin(self): method test_south_of_origin (line 56) | def test_south_of_origin(self): method test_west_of_origin (line 69) | def test_west_of_origin(self): class TestGetExpectedPositionFromTrajectory (line 83) | class TestGetExpectedPositionFromTrajectory: method test_reads_first_waypoint (line 86) | def test_reads_first_waypoint(self, tmp_path): method test_sim_mode_uses_shapes_sitl (line 103) | def test_sim_mode_uses_shapes_sitl(self, tmp_path): method test_missing_file_returns_none (line 120) | def test_missing_file_returns_none(self, tmp_path): method test_empty_file_returns_none (line 129) | def test_empty_file_returns_none(self, tmp_path): method test_default_base_dir_is_cwd (line 146) | def test_default_base_dir_is_cwd(self, tmp_path, monkeypatch): method test_env_base_dir_fallback_is_used_when_cwd_differs (line 166) | def test_env_base_dir_fallback_is_used_when_cwd_differs(self, tmp_path... FILE: tests/test_coordinator.py function create_mock_drone_config (line 22) | def create_mock_drone_config(): class TestCoordinatorImports (line 43) | class TestCoordinatorImports: method test_import_coordinator_module (line 46) | def test_import_coordinator_module(self): method test_import_drone_config (line 62) | def test_import_drone_config(self): method test_import_params (line 67) | def test_import_params(self): method test_import_enums (line 72) | def test_import_enums(self): method test_import_drone_api_server (line 79) | def test_import_drone_api_server(self): method test_import_drone_communicator (line 84) | def test_import_drone_communicator(self): method test_import_drone_setup (line 89) | def test_import_drone_setup(self): class TestComponentInitialization (line 101) | class TestComponentInitialization: method test_drone_config_initialization (line 104) | def test_drone_config_initialization(self): method test_params_initialization (line 112) | def test_params_initialization(self): method test_params_sim_mode_detection (line 123) | def test_params_sim_mode_detection(self): method test_drone_api_server_initialization (line 131) | def test_drone_api_server_initialization(self, mock_params, mock_drone... method test_drone_api_server_has_endpoints (line 141) | def test_drone_api_server_has_endpoints(self, mock_params, mock_drone_... class TestCoordinatorStartupSequence (line 160) | class TestCoordinatorStartupSequence: method test_startup_initializes_components (line 168) | def test_startup_initializes_components( method test_api_server_communicator_linking (line 203) | def test_api_server_communicator_linking( method test_heartbeat_sender_starts (line 235) | def test_heartbeat_sender_starts(self, mock_heartbeat_class): class TestCoordinatorStateMachine (line 257) | class TestCoordinatorStateMachine: method test_state_enum_values (line 260) | def test_state_enum_values(self): method test_state_transitions_idle_to_ready (line 268) | def test_state_transitions_idle_to_ready(self): method test_state_transitions_ready_to_executing (line 280) | def test_state_transitions_ready_to_executing(self): method test_state_transitions_executing_to_idle (line 290) | def test_state_transitions_executing_to_idle(self): method test_mission_tracking (line 301) | def test_mission_tracking(self): class TestMissionScheduling (line 323) | class TestMissionScheduling: method test_schedule_mission_async_calls_drone_setup (line 327) | async def test_schedule_mission_async_calls_drone_setup(self): method test_scheduling_thread_is_daemon (line 341) | def test_scheduling_thread_is_daemon(self): method test_schedule_mission_loop_frequency (line 355) | async def test_schedule_mission_loop_frequency(self): class TestConnectivityCheckerIntegration (line 386) | class TestConnectivityCheckerIntegration: method test_connectivity_checker_starts_in_idle (line 389) | def test_connectivity_checker_starts_in_idle(self): method test_connectivity_checker_stops_when_armed (line 408) | def test_connectivity_checker_stops_when_armed(self): method test_connectivity_checker_stops_during_mission (line 424) | def test_connectivity_checker_stops_during_mission(self): class TestLEDControllerIntegration (line 446) | class TestLEDControllerIntegration: method test_led_cyan_on_startup (line 449) | def test_led_cyan_on_startup(self): method test_led_orange_when_armed (line 458) | def test_led_orange_when_armed(self): method test_led_red_on_error (line 470) | def test_led_red_on_error(self): method test_led_controller_none_in_sim_mode (line 482) | def test_led_controller_none_in_sim_mode(self): class TestGracefulShutdown (line 498) | class TestGracefulShutdown: method test_shutdown_stops_connectivity_checker (line 501) | def test_shutdown_stops_connectivity_checker(self): method test_shutdown_stops_drone_communication (line 515) | def test_shutdown_stops_drone_communication(self): method test_shutdown_stops_heartbeat_sender (line 525) | def test_shutdown_stops_heartbeat_sender(self): method test_shutdown_stops_pos_id_detector (line 535) | def test_shutdown_stops_pos_id_detector(self): method test_full_shutdown_sequence (line 545) | def test_full_shutdown_sequence(self): class TestCoordinatorErrorHandling (line 593) | class TestCoordinatorErrorHandling: method test_led_controller_init_failure_handled (line 596) | def test_led_controller_init_failure_handled(self): method test_main_loop_exception_sets_led_red (line 607) | def test_main_loop_exception_sets_led_red(self): method test_unknown_state_handled (line 619) | def test_unknown_state_handled(self): class TestWatchdogNotifications (line 647) | class TestWatchdogNotifications: method test_watchdog_notify_called (line 650) | def test_watchdog_notify_called(self): method test_watchdog_notify_in_scheduling (line 659) | def test_watchdog_notify_in_scheduling(self): class TestPosIDAutoDetectorIntegration (line 676) | class TestPosIDAutoDetectorIntegration: method test_auto_detector_starts_when_enabled (line 679) | def test_auto_detector_starts_when_enabled(self): method test_auto_detector_not_started_when_disabled (line 689) | def test_auto_detector_not_started_when_disabled(self): class TestThreadSafety (line 706) | class TestThreadSafety: method test_drone_config_state_atomic (line 709) | def test_drone_config_state_atomic(self): method test_scheduling_thread_daemon (line 739) | def test_scheduling_thread_daemon(self): FILE: tests/test_data_utils.py class TestSafeInt (line 11) | class TestSafeInt: method test_valid_int (line 14) | def test_valid_int(self): method test_valid_string_int (line 22) | def test_valid_string_int(self): method test_valid_float_to_int (line 29) | def test_valid_float_to_int(self): method test_none_returns_default (line 36) | def test_none_returns_default(self): method test_invalid_string_returns_default (line 43) | def test_invalid_string_returns_default(self): method test_invalid_type_returns_default (line 50) | def test_invalid_type_returns_default(self): class TestSafeFloat (line 58) | class TestSafeFloat: method test_valid_float (line 61) | def test_valid_float(self): method test_valid_int_to_float (line 69) | def test_valid_int_to_float(self): method test_valid_string_float (line 76) | def test_valid_string_float(self): method test_none_returns_default (line 83) | def test_none_returns_default(self): method test_invalid_string_returns_default (line 90) | def test_invalid_string_returns_default(self): method test_invalid_type_returns_default (line 97) | def test_invalid_type_returns_default(self): class TestSafeGet (line 105) | class TestSafeGet: method test_existing_key (line 108) | def test_existing_key(self): method test_missing_key_returns_default (line 116) | def test_missing_key_returns_default(self): method test_none_dict_returns_default (line 124) | def test_none_dict_returns_default(self): method test_empty_dict_returns_default (line 131) | def test_empty_dict_returns_default(self): method test_non_dict_returns_default (line 138) | def test_non_dict_returns_default(self): method test_nested_value (line 146) | def test_nested_value(self): FILE: tests/test_detect_px4_mavlink_port.py class TestDetectPx4MavlinkPort (line 19) | class TestDetectPx4MavlinkPort: method test_extract_ports_from_ss_output (line 22) | def test_extract_ports_from_ss_output(self): method test_extract_ports_from_log (line 31) | def test_extract_ports_from_log(self): method test_extract_ports_from_proc_net_output (line 39) | def test_extract_ports_from_proc_net_output(self): method test_choose_port_prefers_modern_port_when_available (line 48) | def test_choose_port_prefers_modern_port_when_available(self): method test_choose_port_uses_legacy_candidate_when_needed (line 51) | def test_choose_port_uses_legacy_candidate_when_needed(self): method test_detect_from_runtime_returns_detected_default_port (line 54) | def test_detect_from_runtime_returns_detected_default_port(self): method test_detect_from_runtime_falls_back_to_proc_net_when_ss_missing (line 68) | def test_detect_from_runtime_falls_back_to_proc_net_when_ss_missing(se... FILE: tests/test_drone_api_http.py class TestHealthCheck (line 17) | class TestHealthCheck: method test_ping_success (line 20) | def test_ping_success(self, test_client): class TestNodeEnvironment (line 28) | class TestNodeEnvironment: method test_get_node_env_uses_registry_metadata (line 31) | def test_get_node_env_uses_registry_metadata(self, test_client, monkey... method test_update_node_env_persists_registry_approved_value (line 51) | def test_update_node_env_persists_registry_approved_value(self, test_c... method test_update_node_env_rejects_wrong_scope (line 68) | def test_update_node_env_rejects_wrong_scope(self, test_client, monkey... class TestDroneState (line 82) | class TestDroneState: method test_get_drone_state_success (line 85) | def test_get_drone_state_success(self, test_client, mock_drone_communi... method test_get_live_armability_success (line 107) | def test_get_live_armability_success(self, test_client, monkeypatch): method test_resolve_live_probe_connection_uses_runtime_ports (line 140) | def test_resolve_live_probe_connection_uses_runtime_ports( method test_probe_live_armability_starts_temporary_server (line 156) | async def test_probe_live_armability_starts_temporary_server(self, api... method test_probe_live_armability_bounds_connect_wait (line 218) | async def test_probe_live_armability_bounds_connect_wait(self, api_ser... method test_get_drone_state_no_data (line 250) | def test_get_drone_state_no_data(self, test_client, mock_drone_communi... method test_get_swarm_state_success (line 259) | def test_get_swarm_state_success(self, test_client): method test_get_swarm_state_no_data (line 269) | def test_get_swarm_state_no_data(self, test_client, mock_drone_communi... method test_get_px4_param_policy (line 277) | def test_get_px4_param_policy(self, test_client): method test_refresh_px4_param_snapshot_success (line 285) | def test_refresh_px4_param_snapshot_success(self, test_client, api_ser... method test_set_px4_param_value_rejected_while_armed (line 325) | def test_set_px4_param_value_rejected_while_armed(self, test_client, m... method test_apply_px4_param_patch_success (line 342) | def test_apply_px4_param_patch_success(self, test_client, api_server, ... method test_get_onboard_ulog_policy (line 395) | def test_get_onboard_ulog_policy(self, test_client): method test_list_onboard_ulog_files_success (line 404) | def test_list_onboard_ulog_files_success(self, test_client, api_server... method test_create_onboard_ulog_download_job_success (line 431) | def test_create_onboard_ulog_download_job_success(self, test_client, a... method test_erase_all_onboard_ulogs_rejected_while_armed (line 477) | def test_erase_all_onboard_ulogs_rejected_while_armed(self, test_clien... class TestCommands (line 486) | class TestCommands: method test_send_command_success (line 489) | def test_send_command_success(self, test_client, sample_command, mock_... method test_send_command_accepts_snake_case_aliases (line 510) | def test_send_command_accepts_snake_case_aliases(self, test_client, mo... method test_send_precision_move_command_success (line 527) | def test_send_precision_move_command_success(self, test_client, mock_d... method test_send_precision_move_requires_zero_trigger (line 552) | def test_send_precision_move_requires_zero_trigger(self, test_client, ... method test_report_pending_command_superseded_uses_canonical_execution_result_route (line 569) | async def test_report_pending_command_superseded_uses_canonical_execut... method test_get_origin_from_gcs_uses_canonical_bootstrap_route (line 593) | def test_get_origin_from_gcs_uses_canonical_bootstrap_route(self, api_... method test_send_command_different_mission_types (line 618) | def test_send_command_different_mission_types(self, test_client, mock_... method test_send_command_duplicate_delivery_returns_idempotent_ack (line 634) | def test_send_command_duplicate_delivery_returns_idempotent_ack( method test_send_command_duplicate_delivery_after_completion_returns_idempotent_ack (line 656) | def test_send_command_duplicate_delivery_after_completion_returns_idem... method test_send_command_does_not_supersede_pending_command_when_install_fails (line 687) | def test_send_command_does_not_supersede_pending_command_when_install_... method test_send_command_stages_command_id_before_install_to_avoid_scheduler_race (line 715) | def test_send_command_stages_command_id_before_install_to_avoid_schedu... method test_send_command_clears_staged_command_id_when_install_fails_without_previous_pending_command (line 741) | def test_send_command_clears_staged_command_id_when_install_fails_with... method test_cancel_command_clears_active_mission_without_process_launch (line 762) | def test_cancel_command_clears_active_mission_without_process_launch( class TestPositionData (line 787) | class TestPositionData: method test_get_home_position (line 790) | def test_get_home_position(self, test_client, mock_drone_config): method test_get_gps_global_origin (line 805) | def test_get_gps_global_origin(self, test_client, mock_drone_config): method test_get_local_position_ned (line 818) | def test_get_local_position_ned(self, test_client, mock_drone_config): method test_get_local_position_ned_no_data (line 839) | def test_get_local_position_ned_no_data(self, test_client, mock_drone_... class TestGitStatus (line 850) | class TestGitStatus: method test_get_git_status (line 853) | def test_get_git_status(self, test_client, monkeypatch): method test_get_git_status_resolves_detached_head (line 976) | def test_get_git_status_resolves_detached_head(self, test_client, monk... method test_get_git_status_without_tracking_branch (line 1008) | def test_get_git_status_without_tracking_branch(self, test_client, mon... class TestNetworkStatus (line 1044) | class TestNetworkStatus: method test_get_network_status (line 1047) | def test_get_network_status(self, test_client, monkeypatch): class TestErrorHandling (line 1077) | class TestErrorHandling: method test_404_not_found (line 1080) | def test_404_not_found(self, test_client): method test_invalid_command_data (line 1086) | def test_invalid_command_data(self, test_client): class TestDroneRouteSurface (line 1093) | class TestDroneRouteSurface: method test_route_inventory_includes_canonical_core_surfaces (line 1096) | def test_route_inventory_includes_canonical_core_surfaces(self, test_c... method test_v1_health_success (line 1130) | def test_v1_health_success(self, test_client): method test_v1_get_drone_state_success (line 1139) | def test_v1_get_drone_state_success(self, test_client): method test_v1_send_command_alias (line 1148) | def test_v1_send_command_alias(self, test_client, sample_command): method test_v1_live_armability (line 1156) | def test_v1_live_armability(self, test_client, monkeypatch): method test_v1_navigation_home (line 1186) | def test_v1_navigation_home(self, test_client): method test_v1_navigation_global_origin (line 1194) | def test_v1_navigation_global_origin(self, test_client): method test_v1_network_status (line 1202) | def test_v1_network_status(self, test_client, monkeypatch): FILE: tests/test_drone_api_websocket.py class TestWebSocketConnection (line 15) | class TestWebSocketConnection: method test_websocket_connect (line 18) | def test_websocket_connect(self, test_client): method test_websocket_receive_data (line 24) | def test_websocket_receive_data(self, test_client, mock_drone_communic... method test_swarm_websocket_receive_data (line 40) | def test_swarm_websocket_receive_data(self, test_client): method test_websocket_multiple_messages (line 49) | def test_websocket_multiple_messages(self, test_client, mock_drone_com... class TestWebSocketDataStreaming (line 59) | class TestWebSocketDataStreaming: method test_websocket_state_updates (line 62) | def test_websocket_state_updates(self, test_client, mock_drone_communi... class TestWebSocketErrorHandling (line 93) | class TestWebSocketErrorHandling: method test_websocket_no_data_available (line 96) | def test_websocket_no_data_available(self, test_client, mock_drone_com... class TestWebSocketConcurrency (line 110) | class TestWebSocketConcurrency: method test_multiple_clients (line 113) | def test_multiple_clients(self, test_client, mock_drone_communicator): class TestWebSocketDataFormat (line 129) | class TestWebSocketDataFormat: method test_data_is_valid_json (line 132) | def test_data_is_valid_json(self, test_client): method test_timestamp_format (line 142) | def test_timestamp_format(self, test_client): method test_data_schema_matches_http (line 151) | def test_data_schema_matches_http(self, test_client, mock_drone_commun... FILE: tests/test_drone_communicator.py function build_drone_config (line 6) | def build_drone_config(follow_value=1): function test_get_drone_state_prefers_live_swarm_assignment (line 58) | def test_get_drone_state_prefers_live_swarm_assignment(): function test_get_drone_state_reports_distance_to_home (line 70) | def test_get_drone_state_reports_distance_to_home(): function test_get_drone_state_falls_back_to_cached_swarm_assignment (line 81) | def test_get_drone_state_falls_back_to_cached_swarm_assignment(): function test_get_swarm_state_exposes_realtime_fields (line 96) | def test_get_swarm_state_exposes_realtime_fields(): FILE: tests/test_drone_communicator_runtime_swarm.py class DummyDroneConfig (line 5) | class DummyDroneConfig: method __init__ (line 6) | def __init__(self): method swarm (line 19) | def swarm(self): method read_swarm (line 22) | def read_swarm(self): class DummyParams (line 26) | class DummyParams: function test_drone_communicator_prefers_runtime_swarm_assignment (line 31) | def test_drone_communicator_prefers_runtime_swarm_assignment(monkeypatch... FILE: tests/test_drone_config_components.py class TestConfigLoader (line 20) | class TestConfigLoader: method test_get_hw_id_with_provided_id (line 23) | def test_get_hw_id_with_provided_id(self): method test_get_hw_id_with_invalid_value (line 28) | def test_get_hw_id_with_invalid_value(self): method test_get_hw_id_with_none_and_no_file (line 33) | def test_get_hw_id_with_none_and_no_file(self): method test_get_hw_id_from_mds_hw_id_env (line 47) | def test_get_hw_id_from_mds_hw_id_env(self): method test_get_hw_id_from_node_identity_manifest (line 53) | def test_get_hw_id_from_node_identity_manifest(self, tmp_path): method test_read_file_success (line 69) | def test_read_file_success(self, tmp_path): method test_read_file_supports_swarm_assignments_wrapper (line 85) | def test_read_file_supports_swarm_assignments_wrapper(self, tmp_path): method test_read_file_hw_id_not_found (line 105) | def test_read_file_hw_id_not_found(self, tmp_path): method test_read_file_not_found (line 115) | def test_read_file_not_found(self): method test_read_config_offline_mode (line 120) | def test_read_config_offline_mode(self): method test_read_config_online_mode (line 130) | def test_read_config_online_mode(self): method test_read_config_without_online_url_falls_back_to_local_file (line 140) | def test_read_config_without_online_url_falls_back_to_local_file(self): method test_read_swarm_offline_mode (line 154) | def test_read_swarm_offline_mode(self): method test_read_swarm_without_online_url_falls_back_to_local_file (line 164) | def test_read_swarm_without_online_url_falls_back_to_local_file(self): method test_fetch_online_config_success (line 178) | def test_fetch_online_config_success(self, tmp_path): method test_fetch_online_config_http_error (line 198) | def test_fetch_online_config_http_error(self): method test_load_all_configs_success (line 213) | def test_load_all_configs_success(self, tmp_path): class TestDroneConfigData (line 238) | class TestDroneConfigData: method test_create_config_data (line 241) | def test_create_config_data(self): method test_get_serial_port_from_config (line 257) | def test_get_serial_port_from_config(self): method test_get_serial_port_fallback (line 270) | def test_get_serial_port_fallback(self): method test_get_baudrate_from_config (line 284) | def test_get_baudrate_from_config(self): method test_get_baudrate_fallback (line 297) | def test_get_baudrate_fallback(self): class TestDroneState (line 312) | class TestDroneState: method test_create_default_state (line 315) | def test_create_default_state(self): method test_create_state_with_drones (line 326) | def test_create_state_with_drones(self): method test_state_mutation (line 333) | def test_state_mutation(self): method test_find_target_drone_master (line 345) | def test_find_target_drone_master(self): method test_find_target_drone_follower (line 353) | def test_find_target_drone_follower(self): method test_find_target_drone_self_follow_error (line 365) | def test_find_target_drone_self_follow_error(self): method test_radian_to_degrees_heading_positive (line 374) | def test_radian_to_degrees_heading_positive(self): method test_radian_to_degrees_heading_negative (line 380) | def test_radian_to_degrees_heading_negative(self): class TestDroneConfigFacade (line 387) | class TestDroneConfigFacade: method test_facade_initialization (line 390) | def test_facade_initialization(self): method test_facade_config_properties (line 404) | def test_facade_config_properties(self): method test_facade_state_properties (line 419) | def test_facade_state_properties(self): method test_facade_methods (line 443) | def test_facade_methods(self): class TestBackwardCompatibility (line 468) | class TestBackwardCompatibility: method test_mock_spec_compatibility (line 471) | def test_mock_spec_compatibility(self): method test_attribute_access_pattern (line 486) | def test_attribute_access_pattern(self): class TestTakeoffAltitudeSetter (line 513) | class TestTakeoffAltitudeSetter: method test_setter_updates_runtime_altitude (line 516) | def test_setter_updates_runtime_altitude(self): method test_runtime_altitude_cleared_restores_default (line 534) | def test_runtime_altitude_cleared_restores_default(self): class TestDroneConfigUpdate (line 553) | class TestDroneConfigUpdate: method test_update_mutable_fields (line 556) | def test_update_mutable_fields(self): method test_update_ignores_unknown_fields (line 579) | def test_update_ignores_unknown_fields(self): FILE: tests/test_drone_setup.py class TestDroneSetupInitialization (line 28) | class TestDroneSetupInitialization: method test_drone_setup_import (line 31) | def test_drone_setup_import(self): method test_drone_setup_requires_params (line 36) | def test_drone_setup_requires_params(self): method test_drone_setup_validates_trigger_sooner_seconds (line 50) | def test_drone_setup_validates_trigger_sooner_seconds(self): method test_drone_setup_has_mission_handlers (line 64) | def test_drone_setup_has_mission_handlers(self): method test_mission_handlers_cover_all_missions (line 79) | def test_mission_handlers_cover_all_missions(self): function create_mock_drone_config (line 106) | def create_mock_drone_config(): class TestMissionStateMachine (line 125) | class TestMissionStateMachine: method test_initial_state_is_idle (line 128) | def test_initial_state_is_idle(self): method test_state_transitions_to_ready (line 134) | def test_state_transitions_to_ready(self): method test_state_transitions_to_executing (line 142) | def test_state_transitions_to_executing(self): method test_state_transitions_back_to_idle (line 150) | def test_state_transitions_back_to_idle(self): method test_mission_value_tracking (line 160) | def test_mission_value_tracking(self): class TestScheduleMission (line 175) | class TestScheduleMission: method test_schedule_mission_skips_when_executing (line 179) | async def test_schedule_mission_skips_when_executing(self): method test_schedule_mission_calls_handler (line 199) | async def test_schedule_mission_calls_handler(self): method test_schedule_mission_calculates_earlier_trigger (line 221) | async def test_schedule_mission_calculates_earlier_trigger(self): class TestMissionHandlers (line 237) | class TestMissionHandlers: method test_no_mission_handler (line 241) | async def test_no_mission_handler(self): method test_unknown_mission_handler (line 260) | async def test_unknown_mission_handler(self): method test_takeoff_handler_checks_state (line 279) | async def test_takeoff_handler_checks_state(self): method test_drone_show_handler_checks_conditions (line 298) | async def test_drone_show_handler_checks_conditions(self): method test_custom_csv_action_forces_local_mode (line 315) | def test_custom_csv_action_forces_local_mode(self): class TestProcessManagement (line 348) | class TestProcessManagement: method test_running_processes_initialized (line 351) | def test_running_processes_initialized(self): method test_process_lock_initialized (line 366) | def test_process_lock_initialized(self): method test_terminate_all_clears_processes (line 381) | async def test_terminate_all_clears_processes(self): method test_monitor_reports_superseded_process_without_reset (line 412) | async def test_monitor_reports_superseded_process_without_reset(self): class TestMissionStateReset (line 461) | class TestMissionStateReset: method test_reset_sets_mission_none (line 464) | def test_reset_sets_mission_none(self): method test_reset_sets_state_idle (line 481) | def test_reset_sets_state_idle(self): class TestScriptExecution (line 505) | class TestScriptExecution: method test_get_script_path (line 508) | def test_get_script_path(self): method test_execute_mission_script_checks_file_exists (line 525) | async def test_execute_mission_script_checks_file_exists(self): method test_execute_mission_script_falls_back_to_popen (line 544) | async def test_execute_mission_script_falls_back_to_popen(self): method test_execute_mission_script_captures_command_id_in_process_record (line 581) | async def test_execute_mission_script_captures_command_id_in_process_r... method test_execute_mission_script_coerces_list_args_to_strings (line 612) | async def test_execute_mission_script_coerces_list_args_to_strings(self): class TestActionMissionHandlerRouting (line 643) | class TestActionMissionHandlerRouting: method test_handlers_use_execute_immediate_launcher (line 663) | async def test_handlers_use_execute_immediate_launcher( method test_update_code_handler_uses_execute_mission_script (line 690) | async def test_update_code_handler_uses_execute_mission_script(self): method test_smart_swarm_handler_always_launches_runtime (line 714) | async def test_smart_swarm_handler_always_launches_runtime(self, follo... method test_apply_common_params_handler_uses_execute_mission_script (line 743) | async def test_apply_common_params_handler_uses_execute_mission_script... method test_precision_move_handler_requires_payload_file (line 767) | async def test_precision_move_handler_requires_payload_file(self): method test_immediate_handlers_transition_to_executing_once (line 798) | async def test_immediate_handlers_transition_to_executing_once(self, h... method test_override_actions_interrupt_running_processes (line 823) | async def test_override_actions_interrupt_running_processes(self): method test_standard_show_interrupts_smart_swarm_leader_runtime (line 842) | async def test_standard_show_interrupts_smart_swarm_leader_runtime(self): method test_custom_show_interrupts_smart_swarm_leader_runtime (line 864) | async def test_custom_show_interrupts_smart_swarm_leader_runtime(self): method test_terminate_all_running_processes_can_preserve_staged_mission (line 887) | async def test_terminate_all_running_processes_can_preserve_staged_mis... class TestTriggerTimeCalculation (line 931) | class TestTriggerTimeCalculation: method test_trigger_time_from_string (line 934) | def test_trigger_time_from_string(self): method test_earlier_trigger_calculation (line 941) | def test_earlier_trigger_calculation(self): method test_current_time_vs_earlier_trigger (line 950) | def test_current_time_vs_earlier_trigger(self): method test_not_yet_time_to_execute (line 963) | def test_not_yet_time_to_execute(self): class TestMissionTypeSpecific (line 981) | class TestMissionTypeSpecific: method test_mission_enum_values (line 984) | def test_mission_enum_values(self): method test_state_enum_values (line 998) | def test_state_enum_values(self): class TestTimeSynchronization (line 1011) | class TestTimeSynchronization: method test_synchronize_time_method_exists (line 1014) | def test_synchronize_time_method_exists(self): method test_synchronize_time_skips_in_sim_mode (line 1031) | def test_synchronize_time_skips_in_sim_mode(self, mock_logger, mock_run): class TestDroneConfigIntegration (line 1055) | class TestDroneConfigIntegration: method test_drone_config_has_required_attributes (line 1058) | def test_drone_config_has_required_attributes(self): method test_drone_config_default_values (line 1066) | def test_drone_config_default_values(self): method test_drone_config_tracks_last_mission (line 1073) | def test_drone_config_tracks_last_mission(self): class TestMissionErrorHandling (line 1090) | class TestMissionErrorHandling: method test_drone_setup_validates_trigger_time_on_init (line 1093) | def test_drone_setup_validates_trigger_time_on_init(self): method test_missing_script_handled (line 1108) | def test_missing_script_handled(self): class TestMissionLogging (line 1133) | class TestMissionLogging: method test_last_logged_mission_tracking (line 1136) | def test_last_logged_mission_tracking(self): method test_last_logged_state_tracking (line 1151) | def test_last_logged_state_tracking(self): class TestMissionProcessMonitoring (line 1169) | class TestMissionProcessMonitoring: method test_monitor_script_process_uses_stdout_when_stderr_empty (line 1173) | async def test_monitor_script_process_uses_stdout_when_stderr_empty(se... class TestCommandReportRetry (line 1212) | class TestCommandReportRetry: method _build_params (line 1215) | def _build_params(self): method test_report_execution_to_gcs_queues_retry_when_initial_post_fails (line 1228) | async def test_report_execution_to_gcs_queues_retry_when_initial_post_... method test_retry_pending_command_reports_once_clears_successful_report (line 1250) | async def test_retry_pending_command_reports_once_clears_successful_re... method test_retry_pending_command_reports_once_reschedules_failed_report (line 1271) | async def test_retry_pending_command_reports_once_reschedules_failed_r... method test_queue_command_report_retry_coalesces_duplicate_callback (line 1295) | async def test_queue_command_report_retry_coalesces_duplicate_callback... FILE: tests/test_drone_show_controlled_landing.py function test_controlled_landing_uses_dedicated_timeout_constant (line 5) | def test_controlled_landing_uses_dedicated_timeout_constant(): FILE: tests/test_env_files.py function test_env_files_read_simple_assignments (line 4) | def test_env_files_read_simple_assignments(tmp_path): function test_env_files_persist_updates_preserves_comments_and_appends (line 18) | def test_env_files_persist_updates_preserves_comments_and_appends(tmp_pa... function test_env_files_persist_noop_does_not_rewrite (line 47) | def test_env_files_persist_noop_does_not_rewrite(tmp_path): FILE: tests/test_env_registry.py function _extract_mds_keys (line 14) | def _extract_mds_keys(path: Path) -> set[str]: function test_env_registry_loads_without_raw_secret_entries (line 19) | def test_env_registry_loads_without_raw_secret_entries(): function test_env_registry_covers_active_templates (line 28) | def test_env_registry_covers_active_templates(): function test_env_registry_docs_links_exist (line 39) | def test_env_registry_docs_links_exist(): function test_active_mds_env_references_are_registered_or_classified (line 49) | def test_active_mds_env_references_are_registered_or_classified(): function test_generated_env_registry_reference_is_current (line 55) | def test_generated_env_registry_reference_is_current(): function test_env_registry_classifies_unknown_keys (line 61) | def test_env_registry_classifies_unknown_keys(): function test_env_registry_coerces_and_validates_values (line 77) | def test_env_registry_coerces_and_validates_values(): FILE: tests/test_env_status.py function test_build_node_env_summary_reports_safe_registry_posture (line 7) | def test_build_node_env_summary_reports_safe_registry_posture(monkeypatc... FILE: tests/test_file_management.py class TestEnsureDirectoryExists (line 13) | class TestEnsureDirectoryExists: method test_creates_new_directory (line 16) | def test_creates_new_directory(self, tmp_path): method test_existing_directory_unchanged (line 28) | def test_existing_directory_unchanged(self, tmp_path): method test_creates_nested_directories (line 42) | def test_creates_nested_directories(self, tmp_path): class TestClearDirectory (line 54) | class TestClearDirectory: method test_clears_files (line 57) | def test_clears_files(self, tmp_path): method test_clears_subdirectories (line 71) | def test_clears_subdirectories(self, tmp_path): method test_empty_directory_no_error (line 84) | def test_empty_directory_no_error(self, tmp_path): class TestCopyFiles (line 94) | class TestCopyFiles: method test_copies_files (line 97) | def test_copies_files(self, tmp_path): method test_skips_directories (line 117) | def test_skips_directories(self, tmp_path): method test_empty_source_no_error (line 135) | def test_empty_source_no_error(self, tmp_path): class TestSetupLogging (line 149) | class TestSetupLogging: method test_setup_logging_runs (line 152) | def test_setup_logging_runs(self): FILE: tests/test_file_utils.py class TestLoadCSV (line 22) | class TestLoadCSV: method test_load_csv_success (line 25) | def test_load_csv_success(self, tmp_path): method test_load_csv_file_not_found (line 41) | def test_load_csv_file_not_found(self): method test_load_csv_empty_file (line 49) | def test_load_csv_empty_file(self, tmp_path): method test_load_csv_with_unicode (line 60) | def test_load_csv_with_unicode(self, tmp_path): class TestSaveCSV (line 73) | class TestSaveCSV: method test_save_csv_success (line 76) | def test_save_csv_success(self, tmp_path): method test_save_csv_with_fieldnames (line 96) | def test_save_csv_with_fieldnames(self, tmp_path): method test_save_csv_empty_data (line 111) | def test_save_csv_empty_data(self, tmp_path): method test_save_csv_creates_directory (line 122) | def test_save_csv_creates_directory(self, tmp_path): class TestValidateCSVSchema (line 136) | class TestValidateCSVSchema: method test_validate_schema_success (line 139) | def test_validate_schema_success(self): method test_validate_schema_missing_columns (line 151) | def test_validate_schema_missing_columns(self): method test_validate_schema_empty_data (line 165) | def test_validate_schema_empty_data(self): class TestTrajectoryOperations (line 175) | class TestTrajectoryOperations: method test_load_trajectory_csv (line 178) | def test_load_trajectory_csv(self, tmp_path): method test_load_trajectory_csv_alternate_format (line 201) | def test_load_trajectory_csv_alternate_format(self, tmp_path): method test_get_trajectory_duration (line 219) | def test_get_trajectory_duration(self): method test_get_trajectory_duration_empty (line 233) | def test_get_trajectory_duration_empty(self): method test_get_trajectory_first_position (line 241) | def test_get_trajectory_first_position(self, tmp_path): method test_get_trajectory_first_position_empty_file (line 259) | def test_get_trajectory_first_position_empty_file(self, tmp_path): class TestLoadJson (line 271) | class TestLoadJson: method test_load_valid_json (line 274) | def test_load_valid_json(self, tmp_path): method test_load_missing_file (line 281) | def test_load_missing_file(self, tmp_path): method test_load_invalid_json (line 285) | def test_load_invalid_json(self, tmp_path): method test_load_empty_file (line 291) | def test_load_empty_file(self, tmp_path): class TestSaveJson (line 298) | class TestSaveJson: method test_save_and_load (line 301) | def test_save_and_load(self, tmp_path): method test_trailing_newline (line 310) | def test_trailing_newline(self, tmp_path): method test_creates_parent_dirs (line 315) | def test_creates_parent_dirs(self, tmp_path): method test_unicode_preserved (line 321) | def test_unicode_preserved(self, tmp_path): FILE: tests/test_filter.py class TestKalmanFilterInitialization (line 12) | class TestKalmanFilterInitialization: method test_create_uninitialized (line 15) | def test_create_uninitialized(self): method test_initialize_filter (line 24) | def test_initialize_filter(self): method test_initialize_if_needed_uninit (line 41) | def test_initialize_if_needed_uninit(self): method test_initialize_if_needed_already_init (line 56) | def test_initialize_if_needed_already_init(self): class TestKalmanFilterPredict (line 78) | class TestKalmanFilterPredict: method test_predict_updates_state (line 81) | def test_predict_updates_state(self): method test_predict_without_init (line 97) | def test_predict_without_init(self): class TestKalmanFilterUpdate (line 110) | class TestKalmanFilterUpdate: method test_update_with_measurement (line 113) | def test_update_with_measurement(self): method test_update_without_init (line 134) | def test_update_without_init(self): class TestKalmanFilterGetState (line 148) | class TestKalmanFilterGetState: method test_get_current_state_structure (line 151) | def test_get_current_state_structure(self): method test_get_current_state_values (line 170) | def test_get_current_state_values(self): class TestKalmanFilterIntegration (line 189) | class TestKalmanFilterIntegration: method test_predict_update_cycle (line 192) | def test_predict_update_cycle(self): FILE: tests/test_fleet_candidate_registry.py function _validate_stub (line 13) | def _validate_stub(config_rows, sim_mode=None): function test_observe_heartbeat_creates_pending_candidate_for_unknown_hw_id (line 33) | def test_observe_heartbeat_creates_pending_candidate_for_unknown_hw_id(t... function test_registry_creates_empty_state_file_on_first_boot (line 59) | def test_registry_creates_empty_state_file_on_first_boot(tmp_path: Path): function test_registry_keeps_sitl_and_real_candidates_in_separate_domains (line 73) | def test_registry_keeps_sitl_and_real_candidates_in_separate_domains(tmp... function test_announce_marks_conflict_when_hw_id_matches_existing_fleet_member (line 96) | def test_announce_marks_conflict_when_hw_id_matches_existing_fleet_membe... function test_accept_candidate_appends_new_fleet_member (line 119) | def test_accept_candidate_appends_new_fleet_member(tmp_path: Path): function test_replace_candidate_rewrites_config_and_swarm_follow_references (line 164) | def test_replace_candidate_rewrites_config_and_swarm_follow_references(t... function test_recover_candidate_updates_existing_config_for_same_hw_id (line 205) | def test_recover_candidate_updates_existing_config_for_same_hw_id(tmp_pa... FILE: tests/test_flight_timeout_utils.py function test_calculate_land_disarm_timeout_defaults_to_minimum_when_altitude_unknown (line 4) | def test_calculate_land_disarm_timeout_defaults_to_minimum_when_altitude... function test_calculate_land_disarm_timeout_scales_with_altitude_and_respects_cap (line 8) | def test_calculate_land_disarm_timeout_scales_with_altitude_and_respects... function test_calculate_controlled_landing_timeout_scales_with_precision_descent_rate (line 15) | def test_calculate_controlled_landing_timeout_scales_with_precision_desc... function test_calculate_swarm_rtl_completion_timeout_wraps_landing_timeout_with_rtl_buffer (line 22) | def test_calculate_swarm_rtl_completion_timeout_wraps_landing_timeout_wi... FILE: tests/test_gcs_api_http.py function _safe_signal (line 37) | def _safe_signal(sig, handler): function mock_background_services (line 54) | def mock_background_services(): function mock_config (line 65) | def mock_config(): function mock_telemetry_data (line 84) | def mock_telemetry_data(): function mock_origin (line 192) | def mock_origin(): function test_client (line 204) | def test_client(mock_config, mock_telemetry_data): class TestHealthEndpoints (line 217) | class TestHealthEndpoints: method test_ping_endpoint (line 220) | def test_ping_endpoint(self, test_client): method test_health_endpoint (line 228) | def test_health_endpoint(self, test_client): class TestSwarmTrajectoryPolicyEndpoint (line 239) | class TestSwarmTrajectoryPolicyEndpoint: method test_returns_runtime_policy_from_params (line 242) | def test_returns_runtime_policy_from_params(self, test_client): class TestBackgroundTelemetryHelpers (line 253) | class TestBackgroundTelemetryHelpers: method test_build_background_telemetry_record_merges_heartbeat_metadata (line 256) | def test_build_background_telemetry_record_merges_heartbeat_metadata(s... method test_build_background_telemetry_record_marks_stale_local_feed_unavailable (line 284) | def test_build_background_telemetry_record_marks_stale_local_feed_unav... method test_build_background_unavailable_record_preserves_identity (line 319) | def test_build_background_unavailable_record_preserves_identity(self): method test_build_background_unavailable_record_does_not_treat_zero_zero_as_map_position (line 362) | def test_build_background_unavailable_record_does_not_treat_zero_zero_... method test_background_services_apply_drone_targets_seeds_placeholders_and_prunes_removed (line 385) | def test_background_services_apply_drone_targets_seeds_placeholders_an... class TestConfigurationEndpoints (line 421) | class TestConfigurationEndpoints: method test_get_config (line 424) | def test_get_config(self, test_client, mock_config): method test_save_config (line 436) | def test_save_config(self, mock_validate, mock_save, test_client, mock... method test_save_config_reconciles_background_services (line 449) | def test_save_config_reconciles_background_services(self, mock_validat... method test_validate_config (line 459) | def test_validate_config(self, mock_validate, test_client, mock_config): method test_save_config_rejects_invalid_format (line 475) | def test_save_config_rejects_invalid_format(self, test_client): method test_connectivity_profile_status_is_secret_safe (line 482) | def test_connectivity_profile_status_is_secret_safe(self, test_client): method test_connectivity_profile_import_writes_repo_owned_profile_without_echoing_secrets (line 496) | def test_connectivity_profile_import_writes_repo_owned_profile_without... method test_connectivity_profile_import_rejects_invalid_profiles (line 531) | def test_connectivity_profile_import_rejects_invalid_profiles(self, te... class TestTelemetryEndpoints (line 548) | class TestTelemetryEndpoints: method test_get_telemetry_typed (line 551) | def test_get_telemetry_typed(self, test_client): class TestHeartbeatEndpoints (line 568) | class TestHeartbeatEndpoints: method test_post_heartbeat (line 572) | def test_post_heartbeat(self, mock_handle, test_client): method test_post_heartbeat_ignores_mode_mismatch_without_observing_candidate (line 598) | def test_post_heartbeat_ignores_mode_mismatch_without_observing_candid... method test_get_heartbeats (line 620) | def test_get_heartbeats(self, mock_get_heartbeats, test_client): class TestOriginEndpoints (line 645) | class TestOriginEndpoints: method test_get_origin (line 649) | def test_get_origin(self, mock_load, test_client, mock_origin): method test_get_origin_v1 (line 660) | def test_get_origin_v1(self, mock_load, test_client, mock_origin): method test_set_origin (line 672) | def test_set_origin(self, mock_save, test_client): method test_put_origin_v1 (line 687) | def test_put_origin_v1(self, mock_save, test_client): method test_put_origin_v1_defaults_optional_altitude_to_zero (line 702) | def test_put_origin_v1_defaults_optional_altitude_to_zero(self, mock_s... method test_get_gps_global_origin (line 718) | def test_get_gps_global_origin(self, mock_load, test_client, mock_orig... method test_get_gps_global_origin_v1 (line 728) | def test_get_gps_global_origin_v1(self, mock_load, test_client, mock_o... method test_get_origin_for_drone (line 738) | def test_get_origin_for_drone(self, mock_load, test_client, mock_origin): method test_get_origin_bootstrap_v1 (line 749) | def test_get_origin_bootstrap_v1(self, mock_load, test_client, mock_or... method test_compute_origin (line 763) | def test_compute_origin( method test_compute_origin_v1 (line 792) | def test_compute_origin_v1( class TestShowManagementEndpoints (line 823) | class TestShowManagementEndpoints: method test_import_show_rejects_non_zip (line 826) | def test_import_show_rejects_non_zip(self, test_client): method test_import_show_accepts_nested_zip_and_returns_summary (line 835) | def test_import_show_accepts_nested_zip_and_returns_summary(self, test... method test_get_show_info (line 901) | def test_get_show_info(self, mock_exists, mock_listdir, test_client): method test_get_show_info_v1 (line 923) | def test_get_show_info_v1(self, mock_exists, mock_listdir, test_client): method test_get_custom_show_info (line 943) | def test_get_custom_show_info(self, test_client, monkeypatch, tmp_path): method test_get_custom_show_info_v1 (line 972) | def test_get_custom_show_info_v1(self, test_client, monkeypatch, tmp_p... method test_import_custom_show_accepts_valid_protocol_csv (line 996) | def test_import_custom_show_accepts_valid_protocol_csv(self, test_clie... method test_import_custom_show_rejects_missing_protocol_columns (line 1034) | def test_import_custom_show_rejects_missing_protocol_columns(self, tes... method test_get_position_deviations_supports_string_hw_id_telemetry_keys (line 1053) | def test_get_position_deviations_supports_string_hw_id_telemetry_keys( method test_get_comprehensive_metrics_recalculates_stale_cache (line 1090) | def test_get_comprehensive_metrics_recalculates_stale_cache(self, test... method test_get_comprehensive_metrics_v1_recalculates_stale_cache (line 1137) | def test_get_comprehensive_metrics_v1_recalculates_stale_cache(self, t... method test_validate_trajectory_preserves_fail_status_when_warnings_also_exist (line 1184) | def test_validate_trajectory_preserves_fail_status_when_warnings_also_... method test_validate_trajectory_v1_preserves_fail_status_when_warnings_also_exist (line 1222) | def test_validate_trajectory_v1_preserves_fail_status_when_warnings_al... method test_deploy_show_accepts_json_content_type_with_charset (line 1261) | def test_deploy_show_accepts_json_content_type_with_charset(self, mock... method test_deploy_show_v1_accepts_json_content_type_with_charset (line 1281) | def test_deploy_show_v1_accepts_json_content_type_with_charset(self, m... class TestGCSManagementEndpoints (line 1305) | class TestGCSManagementEndpoints: method test_get_gcs_config (line 1308) | def test_get_gcs_config(self, test_client, monkeypatch, tmp_path): method test_get_runtime_status (line 1343) | def test_get_runtime_status(self, test_client, monkeypatch, tmp_path): method test_save_gcs_config_persists_safe_host_local_settings (line 1465) | def test_save_gcs_config_persists_safe_host_local_settings(self, test_... method test_apply_gcs_config_schedules_restart (line 1499) | def test_apply_gcs_config_schedules_restart(self, test_client, monkeyp... method test_runtime_update_schedules_safe_fast_forward (line 1526) | def test_runtime_update_schedules_safe_fast_forward(self, test_client,... method test_runtime_update_blocks_when_pending_changes_require_manual_path (line 1575) | def test_runtime_update_blocks_when_pending_changes_require_manual_pat... method test_get_network_info (line 1628) | def test_get_network_info(self, mock_network_info, test_client): method test_static_plot_serving (line 1640) | def test_static_plot_serving(self, test_client, monkeypatch, tmp_path): class TestGitStatusEndpoints (line 1664) | class TestGitStatusEndpoints: method test_get_git_status (line 1720) | def test_get_git_status(self, mock_load_config, mock_gcs_git_report, t... method test_get_git_status_v1 (line 1751) | def test_get_git_status_v1(self, mock_load_config, mock_gcs_git_report... method test_get_git_status_counts_out_of_sync_with_gcs (line 1772) | def test_get_git_status_counts_out_of_sync_with_gcs( method test_get_git_status_counts_same_commit_ahead_drones_as_synced_with_gcs (line 1820) | def test_get_git_status_counts_same_commit_ahead_drones_as_synced_with... method test_get_git_status_keeps_offline_records_out_of_actionable_counts (line 1854) | def test_get_git_status_keeps_offline_records_out_of_actionable_counts( method test_sync_repos_verifies_actual_convergence (line 1881) | def test_sync_repos_verifies_actual_convergence( method test_sync_repos_v1_verifies_actual_convergence (line 1919) | def test_sync_repos_v1_verifies_actual_convergence( class TestSwarmEndpoints (line 1958) | class TestSwarmEndpoints: method test_get_swarm_data (line 1962) | def test_get_swarm_data(self, mock_load, test_client): method test_get_swarm_config_v1_returns_envelope (line 1981) | def test_get_swarm_config_v1_returns_envelope(self, mock_load, test_cl... method test_save_swarm_data (line 2001) | def test_save_swarm_data(self, mock_save, test_client): method test_put_swarm_config_v1 (line 2009) | def test_put_swarm_config_v1(self, mock_save, test_client): method test_save_swarm_data_rejects_cycles (line 2030) | def test_save_swarm_data_rejects_cycles(self, mock_save, test_client): method test_request_new_leader_updates_swarm_assignment (line 2048) | def test_request_new_leader_updates_swarm_assignment(self, mock_load, ... method test_patch_swarm_assignment_v1_updates_swarm_assignment (line 2073) | def test_patch_swarm_assignment_v1_updates_swarm_assignment(self, mock... method test_request_new_leader_partial_update_preserves_offsets (line 2098) | def test_request_new_leader_partial_update_preserves_offsets(self, moc... method test_request_new_leader_rejects_self_follow (line 2121) | def test_request_new_leader_rejects_self_follow(self, mock_load, test_... method test_request_new_leader_rejects_cycle_creation (line 2137) | def test_request_new_leader_rejects_cycle_creation(self, mock_load, te... method test_request_new_leader_rejects_cycle (line 2155) | def test_request_new_leader_rejects_cycle(self, mock_load, test_client): class TestSwarmTrajectoryEndpoints (line 2176) | class TestSwarmTrajectoryEndpoints: method test_swarm_trajectory_routes_registered (line 2179) | def test_swarm_trajectory_routes_registered(self): method test_swarm_trajectory_process_rejects_malformed_json_with_shared_error_envelope (line 2205) | def test_swarm_trajectory_process_rejects_malformed_json_with_shared_e... method test_swarm_trajectory_commit_surfaces_shared_operation_error (line 2220) | def test_swarm_trajectory_commit_surfaces_shared_operation_error(self,... class TestCommandEndpoints (line 2242) | class TestCommandEndpoints: method test_submit_command_rejects_malformed_json (line 2245) | def test_submit_command_rejects_malformed_json(self, test_client): method test_submit_command (line 2259) | def test_submit_command(self, mock_load, mock_get_tracker, mock_send, ... method test_submit_command_accepts_snake_case_aliases (line 2305) | def test_submit_command_accepts_snake_case_aliases( method test_submit_command_replays_existing_idempotent_submission (line 2347) | def test_submit_command_replays_existing_idempotent_submission( method test_submit_command_rejects_conflicting_idempotency_key_reuse (line 2398) | def test_submit_command_rejects_conflicting_idempotency_key_reuse( method test_submit_command_preserves_valid_zero_origin_coordinates (line 2451) | def test_submit_command_preserves_valid_zero_origin_coordinates( method test_submit_command_swarm_trajectory_uses_selected_processed_timeout_budget (line 2499) | def test_submit_command_swarm_trajectory_uses_selected_processed_timeo... method test_submit_command_rejects_takeoff_when_live_probe_fails (line 2558) | def test_submit_command_rejects_takeoff_when_live_probe_fails( method test_submit_command_rejects_invalid_swarm_trajectory_subset (line 2591) | def test_submit_command_rejects_invalid_swarm_trajectory_subset( method test_submit_command_rejects_unmatched_target_drones (line 2621) | def test_submit_command_rejects_unmatched_target_drones( class TestErrorHandling (line 2646) | class TestErrorHandling: method test_404_not_found (line 2649) | def test_404_not_found(self, test_client): method test_invalid_json (line 2656) | def test_invalid_json(self, test_client): class TestAPIV1Aliases (line 2669) | class TestAPIV1Aliases: method test_route_inventory_includes_current_core_surfaces (line 2672) | def test_route_inventory_includes_current_core_surfaces(self, test_cli... method test_v1_health_alias (line 2776) | def test_v1_health_alias(self, test_client): method test_v1_fleet_telemetry_alias (line 2787) | def test_v1_fleet_telemetry_alias(self, test_client): method test_v1_fleet_heartbeat_post_alias (line 2796) | def test_v1_fleet_heartbeat_post_alias(self, test_client): method test_v1_fleet_heartbeats_alias (line 2814) | def test_v1_fleet_heartbeats_alias(self, test_client): method test_v1_fleet_network_status_alias (line 2823) | def test_v1_fleet_network_status_alias(self, test_client): FILE: tests/test_gcs_api_websocket.py function _make_core_deps (line 17) | def _make_core_deps(): function _make_git_deps (line 72) | def _make_git_deps(): function test_telemetry_websocket_streams_typed_message (line 98) | def test_telemetry_websocket_streams_typed_message(): function test_telemetry_websocket_accepts_bounded_interval_query (line 113) | def test_telemetry_websocket_accepts_bounded_interval_query(): function test_heartbeat_websocket_streams_normalized_heartbeat_list (line 125) | def test_heartbeat_websocket_streams_normalized_heartbeat_list(): function test_git_status_websocket_streams_snapshot_shape (line 143) | def test_git_status_websocket_streams_snapshot_shape(): function test_websocket_invalid_endpoint (line 160) | def test_websocket_invalid_endpoint(): FILE: tests/test_gcs_auth_client.py function test_gcs_auth_headers_prefers_token_file (line 4) | def test_gcs_auth_headers_prefers_token_file(monkeypatch, tmp_path): function test_gcs_auth_headers_allows_no_token (line 16) | def test_gcs_auth_headers_allows_no_token(monkeypatch): FILE: tests/test_gcs_command_routes.py class _DummyTracker (line 11) | class _DummyTracker: method __init__ (line 12) | def __init__(self, *, statistics=None, replay_command=None, replay_con... method get_statistics (line 28) | async def get_statistics(self): method get_status (line 31) | async def get_status(self, command_id): method get_recent (line 37) | async def get_recent(self, **kwargs): method get_active_commands (line 41) | async def get_active_commands(self): method lookup_command_by_idempotency_key (line 44) | async def lookup_command_by_idempotency_key(self, idempotency_key, *, ... method create_or_replay_command (line 54) | async def create_or_replay_command(self, **kwargs): method create_command (line 60) | async def create_command(self, **kwargs): method mark_submitted (line 64) | async def mark_submitted(self, command_id): method record_ack (line 68) | async def record_ack(self, *args, **kwargs): method record_execution (line 72) | async def record_execution(self, **kwargs): method record_execution_start (line 76) | async def record_execution_start(self, **kwargs): class _MissionMember (line 81) | class _MissionMember: method __init__ (line 82) | def __init__(self, value, name): method __eq__ (line 86) | def __eq__(self, other): method __hash__ (line 91) | def __hash__(self): class _MissionShim (line 95) | class _MissionShim: method __call__ (line 114) | def __call__(self, value): function _make_deps (line 118) | def _make_deps(): function test_command_router_registers_expected_routes (line 168) | def test_command_router_registers_expected_routes(): function test_command_router_statistics_uses_live_tracker_after_router_creation (line 193) | def test_command_router_statistics_uses_live_tracker_after_router_creati... function test_command_router_precision_move_policy_uses_runtime_params (line 220) | def test_command_router_precision_move_policy_uses_runtime_params(): function test_command_router_submit_rejects_malformed_json (line 254) | def test_command_router_submit_rejects_malformed_json(): function test_command_router_submit_rejects_non_object_json (line 270) | def test_command_router_submit_rejects_non_object_json(): function test_command_router_submit_rejects_invalid_target_drones_shape (line 281) | def test_command_router_submit_rejects_invalid_target_drones_shape(): function test_command_router_submit_accepts_snake_case_aliases (line 296) | def test_command_router_submit_accepts_snake_case_aliases(): function test_command_router_submit_rejects_unmatched_target_drones (line 313) | def test_command_router_submit_rejects_unmatched_target_drones(): function test_command_router_submit_replays_existing_idempotent_command_without_redispatch (line 328) | def test_command_router_submit_replays_existing_idempotent_command_witho... function test_command_router_submit_rejects_conflicting_idempotency_key_reuse (line 406) | def test_command_router_submit_rejects_conflicting_idempotency_key_reuse(): function test_estimate_max_target_relative_altitude_uses_home_altitude_field (line 426) | def test_estimate_max_target_relative_altitude_uses_home_altitude_field(... FILE: tests/test_gcs_configuration_routes.py function _make_deps (line 10) | def _make_deps(): function test_configuration_router_registers_expected_routes (line 25) | def test_configuration_router_registers_expected_routes(): function test_configuration_router_uses_live_dependency_attributes_after_router_creation (line 43) | def test_configuration_router_uses_live_dependency_attributes_after_rout... function test_configuration_router_returns_validation_error_for_invalid_payload_shape (line 61) | def test_configuration_router_returns_validation_error_for_invalid_paylo... function test_configuration_router_commit_false_skips_git_operations_even_when_auto_push_is_enabled (line 73) | def test_configuration_router_commit_false_skips_git_operations_even_whe... function test_configuration_router_get_drone_positions_uses_live_dependency_after_router_creation (line 86) | def test_configuration_router_get_drone_positions_uses_live_dependency_a... function test_configuration_router_get_trajectory_first_row_returns_404_when_missing (line 101) | def test_configuration_router_get_trajectory_first_row_returns_404_when_... function test_configuration_router_canonical_trajectory_start_position_uses_xy_fields (line 115) | def test_configuration_router_canonical_trajectory_start_position_uses_x... FILE: tests/test_gcs_core_routes.py function _make_deps (line 10) | def _make_deps(): function test_core_router_registers_expected_routes (line 64) | def test_core_router_registers_expected_routes(): function test_core_router_uses_live_dependency_attributes_after_router_creation (line 79) | def test_core_router_uses_live_dependency_attributes_after_router_creati... function test_core_router_typed_telemetry_sets_server_time_header (line 107) | def test_core_router_typed_telemetry_sets_server_time_header(): function test_core_router_heartbeats_include_configured_never_seen_nodes (line 120) | def test_core_router_heartbeats_include_configured_never_seen_nodes(): FILE: tests/test_gcs_fleet_candidates_routes.py function _candidate_record (line 11) | def _candidate_record(**overrides): function _make_deps (line 51) | def _make_deps(): function test_fleet_candidates_router_registers_expected_routes (line 77) | def test_fleet_candidates_router_registers_expected_routes(): function test_fleet_candidates_router_lists_candidates (line 94) | def test_fleet_candidates_router_lists_candidates(): function test_fleet_candidates_router_accepts_candidate (line 111) | def test_fleet_candidates_router_accepts_candidate(): function test_fleet_candidates_router_replaces_candidate (line 137) | def test_fleet_candidates_router_replaces_candidate(): function test_fleet_candidates_router_recovers_candidate (line 156) | def test_fleet_candidates_router_recovers_candidate(): function test_fleet_candidates_router_surfaces_git_push_failure_as_warning (line 175) | def test_fleet_candidates_router_surfaces_git_push_failure_as_warning(): FILE: tests/test_gcs_git_routes.py function _make_deps (line 13) | def _make_deps(): function test_git_router_registers_expected_routes (line 34) | def test_git_router_registers_expected_routes(): function test_git_router_uses_live_verify_dependency_after_router_creation (line 46) | def test_git_router_uses_live_verify_dependency_after_router_creation(): function test_selected_git_sync_keeps_routing_ids_out_of_drone_command_payload (line 64) | def test_selected_git_sync_keeps_routing_ids_out_of_drone_command_payloa... function test_git_router_get_gcs_status_uses_live_dependency_after_router_creation (line 81) | def test_git_router_get_gcs_status_uses_live_dependency_after_router_cre... function test_git_status_exposes_read_only_node_env_posture (line 97) | def test_git_status_exposes_read_only_node_env_posture(): function test_git_status_keeps_stale_offline_drift_out_of_global_sync_warning (line 140) | def test_git_status_keeps_stale_offline_drift_out_of_global_sync_warning(): function test_git_status_empty_heartbeat_set_suppresses_global_sync_warning (line 172) | def test_git_status_empty_heartbeat_set_suppresses_global_sync_warning(): FILE: tests/test_gcs_management_routes.py function _make_deps (line 12) | def _make_deps(): function test_management_router_registers_expected_routes (line 32) | def test_management_router_registers_expected_routes(): function test_management_router_proxies_single_node_env (line 51) | def test_management_router_proxies_single_node_env(monkeypatch): function test_management_router_proxies_single_node_env_update (line 86) | def test_management_router_proxies_single_node_env_update(monkeypatch): function test_management_node_env_resolver_keeps_config_ip_when_raw_status_lacks_host (line 122) | def test_management_node_env_resolver_keeps_config_ip_when_raw_status_la... function test_management_router_get_gcs_config_uses_live_params_after_router_creation (line 147) | def test_management_router_get_gcs_config_uses_live_params_after_router_... function test_management_router_save_gcs_config_persists_safe_subset (line 183) | def test_management_router_save_gcs_config_persists_safe_subset(monkeypa... function test_management_router_save_gcs_config_warns_for_unsupported_fields (line 214) | def test_management_router_save_gcs_config_warns_for_unsupported_fields(... function test_management_router_apply_gcs_config_reports_no_restart_when_running_matches (line 240) | def test_management_router_apply_gcs_config_reports_no_restart_when_runn... function test_management_router_apply_gcs_config_schedules_restart (line 263) | def test_management_router_apply_gcs_config_schedules_restart(monkeypatc... function test_management_router_runtime_update_schedules_safe_fast_forward (line 292) | def test_management_router_runtime_update_schedules_safe_fast_forward(mo... function test_management_router_runtime_update_blocks_manual_paths (line 347) | def test_management_router_runtime_update_blocks_manual_paths(monkeypatch): function test_management_router_save_gcs_config_rejects_conflicting_mode_inputs (line 404) | def test_management_router_save_gcs_config_rejects_conflicting_mode_inpu... function test_management_router_env_registry_and_gcs_env (line 417) | def test_management_router_env_registry_and_gcs_env(monkeypatch, tmp_path): function test_management_router_gcs_env_update_validates_and_persists (line 445) | def test_management_router_gcs_env_update_validates_and_persists(monkeyp... function test_management_router_gcs_env_update_rejects_unknown_or_unsafe (line 475) | def test_management_router_gcs_env_update_rejects_unknown_or_unsafe(monk... function test_management_router_fleet_env_plan_validates_node_keys_without_mutation (line 495) | def test_management_router_fleet_env_plan_validates_node_keys_without_mu... function test_management_router_fleet_env_plan_rejects_gcs_or_unknown_keys (line 534) | def test_management_router_fleet_env_plan_rejects_gcs_or_unknown_keys(): function test_management_router_runtime_status_uses_live_runtime_and_profile (line 549) | def test_management_router_runtime_status_uses_live_runtime_and_profile(... function test_management_router_save_gcs_config_rejects_non_object_payload (line 671) | def test_management_router_save_gcs_config_rejects_non_object_payload(): function test_management_router_get_network_info_uses_live_dependency_after_router_creation (line 683) | def test_management_router_get_network_info_uses_live_dependency_after_r... FILE: tests/test_gcs_origin_routes.py function _make_deps (line 13) | def _make_deps(): function test_origin_router_registers_expected_routes (line 72) | def test_origin_router_registers_expected_routes(): function test_origin_router_uses_live_load_origin_dependency_after_router_creation (line 96) | def test_origin_router_uses_live_load_origin_dependency_after_router_cre... function test_origin_router_compute_origin_uses_live_dependency_after_router_creation (line 121) | def test_origin_router_compute_origin_uses_live_dependency_after_router_... function test_origin_router_bootstrap_origin_returns_canonical_payload (line 145) | def test_origin_router_bootstrap_origin_returns_canonical_payload(): function test_origin_router_desired_launch_positions_applies_heading_rotation (line 162) | def test_origin_router_desired_launch_positions_applies_heading_rotation(): function test_origin_router_desired_launch_positions_supports_csv_and_kml_formats (line 183) | def test_origin_router_desired_launch_positions_supports_csv_and_kml_for... FILE: tests/test_gcs_px4_params_routes.py function _make_deps (line 9) | def _make_deps(): function test_px4_params_router_registers_expected_routes (line 27) | def test_px4_params_router_registers_expected_routes(): function test_px4_params_router_policy_uses_runtime_params (line 47) | def test_px4_params_router_policy_uses_runtime_params(): function test_px4_params_router_profile_routes_use_repo_store (line 64) | def test_px4_params_router_profile_routes_use_repo_store(monkeypatch): function test_px4_params_router_snapshot_routes_use_live_store (line 119) | def test_px4_params_router_snapshot_routes_use_live_store(monkeypatch): function test_px4_params_router_patch_job_routes_use_live_store (line 190) | def test_px4_params_router_patch_job_routes_use_live_store(monkeypatch): function test_px4_params_router_import_and_diff_routes (line 267) | def test_px4_params_router_import_and_diff_routes(monkeypatch): function test_px4_params_router_import_and_diff_routes_use_store_helpers (line 340) | def test_px4_params_router_import_and_diff_routes_use_store_helpers(monk... FILE: tests/test_gcs_sar_routes.py function reset_quickscout_state (line 18) | def reset_quickscout_state(tmp_path, monkeypatch): function _make_deps (line 30) | def _make_deps(): function _plan_request (line 98) | def _plan_request(): function test_sar_router_registers_expected_routes (line 122) | def test_sar_router_registers_expected_routes(): function test_sar_router_uses_live_dependency_attributes_after_router_creation (line 144) | def test_sar_router_uses_live_dependency_attributes_after_router_creatio... function test_sar_launch_uses_tracked_command_response (line 168) | def test_sar_launch_uses_tracked_command_response(): function test_sar_lists_persisted_missions_for_recovery (line 186) | def test_sar_lists_persisted_missions_for_recovery(): function test_sar_workspace_returns_persisted_operation_and_status (line 203) | def test_sar_workspace_returns_persisted_operation_and_status(): function test_sar_handoff_returns_compact_operator_bundle (line 221) | def test_sar_handoff_returns_compact_operator_bundle(): function test_sar_abort_respects_hold_position_behavior (line 258) | def test_sar_abort_respects_hold_position_behavior(): function test_sar_resume_returns_replan_guidance (line 279) | def test_sar_resume_returns_replan_guidance(): function test_sar_plan_accepts_last_known_point_template (line 298) | def test_sar_plan_accepts_last_known_point_template(): function test_sar_plan_accepts_corridor_search_template (line 329) | def test_sar_plan_accepts_corridor_search_template(): function test_sar_plan_accepts_corridor_search_template (line 364) | def test_sar_plan_accepts_corridor_search_template(): FILE: tests/test_gcs_show_management_routes.py class _DummyMetricsEngine (line 12) | class _DummyMetricsEngine: method __init__ (line 13) | def __init__(self, processed_dir): method calculate_comprehensive_metrics (line 16) | def calculate_comprehensive_metrics(self): method save_metrics_to_file (line 19) | def save_metrics_to_file(self, *args, **kwargs): method load_drone_data (line 22) | def load_drone_data(self): method calculate_safety_metrics (line 25) | def calculate_safety_metrics(self): function _make_deps (line 29) | def _make_deps(): function test_show_management_router_registers_expected_routes (line 55) | def test_show_management_router_registers_expected_routes(): function test_show_management_router_get_show_info_uses_live_directory_after_router_creation (line 90) | def test_show_management_router_get_show_info_uses_live_directory_after_... function test_show_management_router_get_custom_show_info_uses_live_directory_after_router_creation (line 111) | def test_show_management_router_get_custom_show_info_uses_live_directory... function test_show_management_router_get_show_plot_uses_live_directory_after_router_creation (line 133) | def test_show_management_router_get_show_plot_uses_live_directory_after_... function test_resolve_show_plot_path_rejects_path_traversal (line 150) | def test_resolve_show_plot_path_rejects_path_traversal(tmp_path): FILE: tests/test_gcs_sitl_control_routes.py class _FakeSitlControlService (line 32) | class _FakeSitlControlService: method build_policy (line 33) | def build_policy(self): method build_host_summary (line 57) | def build_host_summary(self): method list_images (line 86) | def list_images(self): method list_instances (line 112) | def list_instances(self): method get_instance_logs (line 140) | def get_instance_logs(self, instance_name: str, *, tail_lines: int = 2... method list_operations (line 157) | def list_operations(self, *, limit: int = 20): method get_operation (line 179) | def get_operation(self, operation_id: str): method start_reconcile (line 196) | def start_reconcile(self, request: SitlControlReconcileRequest): method create_instance (line 210) | def create_instance(self, request: SitlControlCreateInstanceRequest): method instance_action (line 225) | def instance_action(self, request: SitlControlInstanceActionRequest): method release_image (line 239) | def release_image(self, request: SitlControlImageReleaseRequest): method restart_instance (line 253) | def restart_instance(self, instance_name: str): method remove_instance (line 267) | def remove_instance(self, instance_name: str): function _make_deps (line 282) | def _make_deps(): function _resolve_route_endpoint (line 290) | def _resolve_route_endpoint(app: FastAPI, path: str, method: str): function test_sitl_control_router_registers_expected_routes (line 298) | def test_sitl_control_router_registers_expected_routes(): function test_sitl_control_router_returns_read_only_inventory_payloads (line 319) | def test_sitl_control_router_returns_read_only_inventory_payloads(): function test_sitl_control_router_maps_missing_instance_logs_to_404 (line 408) | def test_sitl_control_router_maps_missing_instance_logs_to_404(): function test_sitl_control_router_maps_missing_operation_to_404 (line 422) | def test_sitl_control_router_maps_missing_operation_to_404(): FILE: tests/test_gcs_static_assets_routes.py function _make_deps (line 12) | def _make_deps(plots_dir: str): function test_static_assets_router_registers_expected_routes (line 18) | def test_static_assets_router_registers_expected_routes(): function test_static_assets_router_serves_existing_plot (line 29) | def test_static_assets_router_serves_existing_plot(): function test_static_assets_router_uses_live_dependency_after_router_creation (line 45) | def test_static_assets_router_uses_live_dependency_after_router_creation(): function test_static_assets_router_returns_404_when_missing (line 63) | def test_static_assets_router_returns_404_when_missing(): function test_resolve_static_plot_path_rejects_path_traversal (line 76) | def test_resolve_static_plot_path_rejects_path_traversal(): FILE: tests/test_gcs_swarm_routes.py function _make_deps (line 10) | def _make_deps(): function test_swarm_router_registers_expected_routes (line 24) | def test_swarm_router_registers_expected_routes(): function test_swarm_router_uses_live_dependency_attributes_after_router_creation (line 38) | def test_swarm_router_uses_live_dependency_attributes_after_router_creat... function test_swarm_router_save_swarm_commit_false_skips_git_operations (line 60) | def test_swarm_router_save_swarm_commit_false_skips_git_operations(): function test_swarm_router_canonical_get_returns_enveloped_assignments (line 77) | def test_swarm_router_canonical_get_returns_enveloped_assignments(): FILE: tests/test_gcs_swarm_trajectory_routes.py class _DummySwarmTrajectoryError (line 10) | class _DummySwarmTrajectoryError(Exception): method __init__ (line 11) | def __init__(self, message: str, status_code: int): function _recommendation_payload (line 17) | def _recommendation_payload(): function _package_stats_payload (line 42) | def _package_stats_payload(*, available=True, drone_ids=None): function _status_payload (line 57) | def _status_payload(processed_trajectories=2): function _make_service (line 169) | def _make_service(tmp_path: Path): function _make_deps (line 246) | def _make_deps(tmp_path: Path): function test_swarm_trajectory_router_registers_expected_routes (line 269) | def test_swarm_trajectory_router_registers_expected_routes(tmp_path): function test_swarm_trajectory_router_policy_uses_live_params_after_router_creation (line 293) | def test_swarm_trajectory_router_policy_uses_live_params_after_router_cr... function test_swarm_trajectory_router_status_uses_live_service_after_router_creation (line 310) | def test_swarm_trajectory_router_status_uses_live_service_after_router_c... function test_swarm_trajectory_router_process_rejects_malformed_json (line 326) | def test_swarm_trajectory_router_process_rejects_malformed_json(tmp_path): function test_swarm_trajectory_router_commit_rejects_non_object_json (line 344) | def test_swarm_trajectory_router_commit_rejects_non_object_json(tmp_path): function test_swarm_trajectory_router_service_error_uses_shared_problem_envelope (line 358) | def test_swarm_trajectory_router_service_error_uses_shared_problem_envel... function test_swarm_trajectory_router_commit_git_failure_maps_to_operation_error (line 379) | def test_swarm_trajectory_router_commit_git_failure_maps_to_operation_er... function test_swarm_trajectory_router_openapi_exposes_typed_contracts (line 400) | def test_swarm_trajectory_router_openapi_exposes_typed_contracts(tmp_path): FILE: tests/test_gcs_telemetry.py function test_build_telemetry_unavailable_record_marks_link_loss (line 4) | def test_build_telemetry_unavailable_record_marks_link_loss(): FILE: tests/test_git_manager.py class TestExecuteGitCommand (line 13) | class TestExecuteGitCommand: method test_execute_git_command_success (line 17) | def test_execute_git_command_success(self, mock_output): method test_execute_git_command_failure (line 29) | def test_execute_git_command_failure(self, mock_output): method test_execute_git_command_with_cwd (line 40) | def test_execute_git_command_with_cwd(self, mock_output): class TestGetLocalGitReport (line 56) | class TestGetLocalGitReport: method test_get_local_git_report_success (line 60) | def test_get_local_git_report_success(self, mock_exec): method test_get_local_git_report_dirty (line 100) | def test_get_local_git_report_dirty(self, mock_exec): method test_get_local_git_report_ignores_generated_sitl_metadata (line 123) | def test_get_local_git_report_ignores_generated_sitl_metadata(self, mo... method test_get_local_git_report_no_branch (line 160) | def test_get_local_git_report_no_branch(self, mock_exec): method test_get_local_git_report_resolves_detached_head_from_remote_ref (line 171) | def test_get_local_git_report_resolves_detached_head_from_remote_ref(s... method test_get_local_git_report_without_tracking_branch_is_not_an_error (line 205) | def test_get_local_git_report_without_tracking_branch_is_not_an_error(... method test_get_local_git_report_reports_healthy_https_token_file_access (line 242) | def test_get_local_git_report_reports_healthy_https_token_file_access(... method test_get_local_git_report_reports_broken_ssh_key_access (line 290) | def test_get_local_git_report_reports_broken_ssh_key_access(self, mock... class TestGetLocalGitShortStatus (line 338) | class TestGetLocalGitShortStatus: method test_get_short_status_clean (line 342) | def test_get_short_status_clean(self, mock_exec): method test_get_short_status_dirty (line 364) | def test_get_short_status_dirty(self, mock_exec): method test_get_short_status_ignores_generated_sitl_metadata (line 384) | def test_get_short_status_ignores_generated_sitl_metadata(self, mock_e... method test_get_short_status_resolves_detached_head_from_tracking_branch (line 404) | def test_get_short_status_resolves_detached_head_from_tracking_branch(... class TestGetRemoteGitStatus (line 426) | class TestGetRemoteGitStatus: method test_get_remote_git_status_success (line 430) | def test_get_remote_git_status_success(self, mock_get): method test_get_remote_git_status_http_error (line 453) | def test_get_remote_git_status_http_error(self, mock_get): method test_get_remote_git_status_timeout (line 467) | def test_get_remote_git_status_timeout(self, mock_get): method test_get_remote_git_status_connection_error (line 480) | def test_get_remote_git_status_connection_error(self, mock_get): class TestCompareGitStatus (line 493) | class TestCompareGitStatus: method test_compare_git_status_synced (line 496) | def test_compare_git_status_synced(self): method test_compare_git_status_not_synced (line 510) | def test_compare_git_status_not_synced(self): method test_compare_git_status_different_branches (line 522) | def test_compare_git_status_different_branches(self): method test_compare_git_status_empty_commits (line 534) | def test_compare_git_status_empty_commits(self): FILE: tests/test_git_sync.py function load_gcs_utils_module (line 17) | def load_gcs_utils_module(): class TestGitOperationsTimeout (line 27) | class TestGitOperationsTimeout: method test_git_operations_success_format (line 30) | def test_git_operations_success_format(self): method test_git_operations_failure_format (line 37) | def test_git_operations_failure_format(self): method test_git_operations_timeout_result_format (line 43) | def test_git_operations_timeout_result_format(self): class TestGitOperationsNonInteractiveAuth (line 50) | class TestGitOperationsNonInteractiveAuth: method test_git_operations_sets_noninteractive_environment (line 53) | def test_git_operations_sets_noninteractive_environment(self, monkeypa... method test_git_operations_reports_noninteractive_auth_failure (line 73) | def test_git_operations_reports_noninteractive_auth_failure(self, monk... method test_git_operations_skips_pull_and_push_when_auto_push_disabled (line 100) | def test_git_operations_skips_pull_and_push_when_auto_push_disabled(se... method test_git_operations_reports_clean_local_state_when_auto_push_disabled (line 126) | def test_git_operations_reports_clean_local_state_when_auto_push_disab... class TestGitStatusSchemas (line 147) | class TestGitStatusSchemas: method test_git_status_response_has_gcs_status (line 150) | def test_git_status_response_has_gcs_status(self): method test_git_status_response_gcs_status_optional (line 166) | def test_git_status_response_gcs_status_optional(self): method test_config_update_response_has_git_result (line 179) | def test_config_update_response_has_git_result(self): method test_config_update_response_git_result_optional (line 191) | def test_config_update_response_git_result_optional(self): method test_sync_repos_request (line 201) | def test_sync_repos_request(self): method test_sync_repos_request_defaults (line 208) | def test_sync_repos_request_defaults(self): method test_sync_repos_response (line 215) | def test_sync_repos_response(self): method test_git_status_stream_message (line 229) | def test_git_status_stream_message(self): class TestCheckGitSyncStatus (line 241) | class TestCheckGitSyncStatus: method test_check_sync_status_result_format (line 244) | def test_check_sync_status_result_format(self): method test_git_status_enum_values (line 256) | def test_git_status_enum_values(self): class TestGitSyncResultParsing (line 267) | class TestGitSyncResultParsing: method test_valid_json_result (line 270) | def test_valid_json_result(self): method test_escaped_quotes_in_message (line 281) | def test_escaped_quotes_in_message(self): method test_failure_result (line 288) | def test_failure_result(self): FILE: tests/test_heartbeat_runtime_mode.py function _reset_heartbeat_state (line 6) | def _reset_heartbeat_state(): function test_handle_heartbeat_post_accepts_matching_runtime_mode (line 13) | def test_handle_heartbeat_post_accepts_matching_runtime_mode(monkeypatch): function test_handle_heartbeat_post_ignores_mismatched_runtime_mode (line 35) | def test_handle_heartbeat_post_ignores_mismatched_runtime_mode(monkeypat... function test_handle_heartbeat_post_rejects_missing_runtime_mode (line 56) | def test_handle_heartbeat_post_rejects_missing_runtime_mode(monkeypatch): FILE: tests/test_heartbeat_sender.py class TestHeartbeatSenderInit (line 17) | class TestHeartbeatSenderInit: method test_init_with_drone_config (line 20) | def test_init_with_drone_config(self): method test_init_with_missing_gcs_ip (line 41) | def test_init_with_missing_gcs_ip(self): class TestHeartbeatSenderStartStop (line 55) | class TestHeartbeatSenderStartStop: method test_start_without_gcs_ip (line 58) | def test_start_without_gcs_ip(self): method test_start_creates_thread (line 73) | def test_start_creates_thread(self): method test_start_when_already_running (line 95) | def test_start_when_already_running(self): method test_stop_sets_running_false (line 111) | def test_stop_sets_running_false(self): class TestHeartbeatSending (line 133) | class TestHeartbeatSending: method test_send_heartbeat_success (line 136) | def test_send_heartbeat_success(self): method test_send_heartbeat_failure (line 169) | def test_send_heartbeat_failure(self): method test_send_heartbeat_uses_fallback_ip (line 197) | def test_send_heartbeat_uses_fallback_ip(self): class TestNetworkInfoGathering (line 227) | class TestNetworkInfoGathering: method test_get_netbird_ip_found (line 230) | def test_get_netbird_ip_found(self): method test_get_netbird_ip_not_found (line 251) | def test_get_netbird_ip_not_found(self): FILE: tests/test_led_controller.py function run_tests (line 7) | def run_tests(): FILE: tests/test_link_presence.py function test_recent_link_presence_accepts_recent_telemetry_without_recent_heartbeat (line 5) | def test_recent_link_presence_accepts_recent_telemetry_without_recent_he... function test_recent_link_presence_reports_stale_heartbeat_without_telemetry (line 27) | def test_recent_link_presence_reports_stale_heartbeat_without_telemetry(): FILE: tests/test_local_mavlink_controller.py function build_controller (line 8) | def build_controller(mock_drone_config): function test_update_pre_arm_status_reports_ready (line 54) | def test_update_pre_arm_status_reports_ready(mock_drone_config): function test_update_pre_arm_status_requires_home_position_before_takeoff (line 65) | def test_update_pre_arm_status_requires_home_position_before_takeoff(moc... function test_update_pre_arm_status_allows_missing_home_when_already_airborne (line 81) | def test_update_pre_arm_status_allows_missing_home_when_already_airborne... function test_update_pre_arm_status_treats_uninit_system_state_as_advisory_when_px4_health_is_good (line 96) | def test_update_pre_arm_status_treats_uninit_system_state_as_advisory_wh... function test_process_status_text_surfaces_px4_blocker (line 119) | def test_process_status_text_surfaces_px4_blocker(mock_drone_config): function test_open_mavlink_connection_uses_explicit_udpin (line 137) | def test_open_mavlink_connection_uses_explicit_udpin(mock_drone_config, ... function test_reset_mavlink_connection_reopens_listener (line 154) | def test_reset_mavlink_connection_reopens_listener(mock_drone_config, mo... function test_process_global_position_int_sets_fallback_home_without_px4_truth (line 173) | def test_process_global_position_int_sets_fallback_home_without_px4_trut... function test_process_global_position_int_ignores_zero_zero_without_marking_live (line 203) | def test_process_global_position_int_ignores_zero_zero_without_marking_l... function test_set_home_position_marks_px4_home_truth (line 225) | def test_set_home_position_marks_px4_home_truth(mock_drone_config): function test_process_local_position_ned_marks_high_res_telemetry_update (line 246) | def test_process_local_position_ned_marks_high_res_telemetry_update(mock... function test_process_attitude_tracks_yaw_rate (line 265) | def test_process_attitude_tracks_yaw_rate(mock_drone_config): FILE: tests/test_managed_runtime_status.py function test_read_git_sync_runtime_summary_defaults_to_home_state_path (line 8) | def test_read_git_sync_runtime_summary_defaults_to_home_state_path(monke... function test_resolve_dashboard_access_for_wildcard_listener_uses_node_ip (line 22) | def test_resolve_dashboard_access_for_wildcard_listener_uses_node_ip(): function test_resolve_dashboard_access_for_loopback_listener_stays_local_only (line 31) | def test_resolve_dashboard_access_for_loopback_listener_stays_local_only(): function test_resolve_dashboard_access_for_explicit_remote_host_keeps_host (line 40) | def test_resolve_dashboard_access_for_explicit_remote_host_keeps_host(): function test_build_connectivity_runtime_summary_prefers_reconcile_dashboard_listen (line 49) | def test_build_connectivity_runtime_summary_prefers_reconcile_dashboard_... function test_read_git_sync_runtime_summary_reads_local_state (line 66) | def test_read_git_sync_runtime_summary_reads_local_state(monkeypatch, tm... FILE: tests/test_mds_auth.py function _set_auth_env (line 17) | def _set_auth_env(monkeypatch, tmp_path, *, dashboard=True, api=False): function _make_app (line 29) | def _make_app(): function test_password_hash_round_trip (line 53) | def test_password_hash_round_trip(): function test_auth_store_user_and_token_lifecycle (line 61) | def test_auth_store_user_and_token_lifecycle(monkeypatch, tmp_path): function test_auth_admin_status_redacts_password_hashes (line 83) | def test_auth_admin_status_redacts_password_hashes(monkeypatch, tmp_path): function test_auth_disabled_keeps_existing_api_open (line 102) | def test_auth_disabled_keeps_existing_api_open(monkeypatch, tmp_path): function test_dashboard_auth_requires_login_and_csrf (line 110) | def test_dashboard_auth_requires_login_and_csrf(monkeypatch, tmp_path): function test_logout_remains_available_to_clear_stale_sessions (line 127) | def test_logout_remains_available_to_clear_stale_sessions(monkeypatch, t... function test_viewer_role_is_read_only (line 137) | def test_viewer_role_is_read_only(monkeypatch, tmp_path): function test_signed_in_user_can_change_own_password (line 151) | def test_signed_in_user_can_change_own_password(monkeypatch, tmp_path): function test_machine_endpoint_open_until_api_auth_enabled (line 170) | def test_machine_endpoint_open_until_api_auth_enabled(monkeypatch, tmp_p... function test_machine_endpoint_requires_bearer_when_api_auth_enabled (line 178) | def test_machine_endpoint_requires_bearer_when_api_auth_enabled(monkeypa... FILE: tests/test_mds_git_access_check.py function _run (line 10) | def _run(command, *, cwd=None, env=None): function _make_repo (line 22) | def _make_repo(tmp_path: Path) -> Path: function test_git_access_check_accepts_reachable_branch (line 34) | def test_git_access_check_accepts_reachable_branch(tmp_path): function test_git_access_check_fails_when_branch_is_missing (line 50) | def test_git_access_check_fails_when_branch_is_missing(tmp_path): function test_git_access_check_rejects_credentials_embedded_in_repo_url (line 73) | def test_git_access_check_rejects_credentials_embedded_in_repo_url(tmp_p... FILE: tests/test_mds_logging/test_cli.py class TestCLIArgs (line 6) | class TestCLIArgs: method test_adds_verbose_flag (line 7) | def test_adds_verbose_flag(self): method test_adds_quiet_flag (line 13) | def test_adds_quiet_flag(self): method test_default_no_flags (line 19) | def test_default_no_flags(self): method test_debug_is_alias_for_verbose (line 26) | def test_debug_is_alias_for_verbose(self): method test_log_json_flag (line 32) | def test_log_json_flag(self): FILE: tests/test_mds_logging/test_constants.py class TestDefaults (line 14) | class TestDefaults: method test_default_log_level (line 15) | def test_default_log_level(self): method test_default_file_log_level (line 19) | def test_default_file_log_level(self): method test_default_max_sessions (line 23) | def test_default_max_sessions(self): method test_default_max_size_mb (line 27) | def test_default_max_size_mb(self): method test_default_log_dir (line 31) | def test_default_log_dir(self): method test_default_console_format (line 35) | def test_default_console_format(self): method test_default_flush (line 39) | def test_default_flush(self): class TestEnvOverrides (line 44) | class TestEnvOverrides: method test_mds_log_level_override (line 45) | def test_mds_log_level_override(self): method test_mds_log_max_sessions_override (line 49) | def test_mds_log_max_sessions_override(self): method test_mds_log_dir_override (line 53) | def test_mds_log_dir_override(self): class TestDeprecationShims (line 58) | class TestDeprecationShims: method test_drone_log_level_fallback (line 59) | def test_drone_log_level_fallback(self): method test_mds_takes_precedence_over_drone (line 64) | def test_mds_takes_precedence_over_drone(self): class TestBackgroundPullDefaults (line 73) | class TestBackgroundPullDefaults: method test_default_background_pull_disabled (line 74) | def test_default_background_pull_disabled(self): method test_default_pull_interval (line 78) | def test_default_pull_interval(self): method test_default_pull_level (line 82) | def test_default_pull_level(self): method test_default_pull_max_drones (line 86) | def test_default_pull_max_drones(self): method test_enable_background_pull (line 90) | def test_enable_background_pull(self): method test_custom_pull_interval (line 94) | def test_custom_pull_interval(self): FILE: tests/test_mds_logging/test_formatter.py function clean_logging_context (line 10) | def clean_logging_context(): class TestJSONLFormatter (line 16) | class TestJSONLFormatter: method _make_record (line 17) | def _make_record(self, msg="test message", level=logging.INFO): method test_output_is_valid_jsonl (line 29) | def test_output_is_valid_jsonl(self): method test_output_ends_without_newline (line 37) | def test_output_ends_without_newline(self): method test_level_name_is_string (line 44) | def test_level_name_is_string(self): method test_missing_mds_fields_use_defaults (line 50) | def test_missing_mds_fields_use_defaults(self): method test_missing_mds_fields_fall_back_to_process_context (line 61) | def test_missing_mds_fields_fall_back_to_process_context(self): class TestConsoleFormatter (line 79) | class TestConsoleFormatter: method _make_record (line 80) | def _make_record(self, msg="hello", level=logging.INFO): method test_output_contains_component_in_brackets (line 89) | def test_output_contains_component_in_brackets(self): method test_output_contains_level (line 95) | def test_output_contains_level(self): method test_output_contains_message (line 101) | def test_output_contains_message(self): method test_extra_fields_appended (line 107) | def test_extra_fields_appended(self): FILE: tests/test_mds_logging/test_handlers.py function tmp_log_file (line 11) | def tmp_log_file(tmp_path): class TestSessionFileHandler (line 15) | class TestSessionFileHandler: method test_writes_jsonl_lines (line 16) | def test_writes_jsonl_lines(self, tmp_log_file): method test_flush_on_every_line (line 36) | def test_flush_on_every_line(self, tmp_log_file): method test_handler_creates_parent_dirs (line 53) | def test_handler_creates_parent_dirs(self, tmp_path): FILE: tests/test_mds_logging/test_integration.py function clean_logging_state (line 10) | def clean_logging_state(): function tmp_log_env (line 18) | def tmp_log_env(tmp_path): class TestEndToEnd (line 23) | class TestEndToEnd: method test_drone_init_creates_session_and_logs (line 24) | def test_drone_init_creates_session_and_logs(self, tmp_log_env): FILE: tests/test_mds_logging/test_log_background.py class TestBackgroundPull (line 12) | class TestBackgroundPull: method test_pull_disabled_by_default (line 14) | async def test_pull_disabled_by_default(self): method test_pull_stores_entries (line 20) | async def test_pull_stores_entries(self, tmp_path): method test_pull_skips_unreachable_drones (line 57) | async def test_pull_skips_unreachable_drones(self, tmp_path): method test_enable_disable_runtime (line 70) | async def test_enable_disable_runtime(self): FILE: tests/test_mds_logging/test_log_proxy.py class TestResolveDroneIp (line 14) | class TestResolveDroneIp: method test_resolve_known_drone (line 15) | def test_resolve_known_drone(self): method test_resolve_unknown_drone_returns_none (line 25) | def test_resolve_unknown_drone_returns_none(self): method test_resolve_handles_string_hw_id (line 32) | def test_resolve_handles_string_hw_id(self): class TestFetchDroneSessions (line 40) | class TestFetchDroneSessions: method test_fetch_sessions_success (line 42) | async def test_fetch_sessions_success(self): method test_fetch_sessions_unreachable (line 62) | async def test_fetch_sessions_unreachable(self): class TestFetchDroneSessionContent (line 76) | class TestFetchDroneSessionContent: method test_fetch_content_with_filters (line 78) | async def test_fetch_content_with_filters(self): class TestStreamDroneLogs (line 105) | class TestStreamDroneLogs: method test_stream_error_emits_structured_warning_entry (line 106) | def test_stream_error_emits_structured_warning_entry(self): method test_stream_cancellation_exits_quietly (line 127) | def test_stream_cancellation_exits_quietly(self): FILE: tests/test_mds_logging/test_log_routes_drone.py function _make_drone_app (line 13) | def _make_drone_app(log_dir, watcher=None): class TestDroneLogSessions (line 42) | class TestDroneLogSessions: method test_list_sessions_empty (line 43) | def test_list_sessions_empty(self, tmp_path): method test_list_sessions_returns_sessions (line 51) | def test_list_sessions_returns_sessions(self, tmp_path): method test_get_session_content (line 63) | def test_get_session_content(self, tmp_path): method test_get_session_with_level_filter (line 76) | def test_get_session_with_level_filter(self, tmp_path): method test_get_session_not_found (line 87) | def test_get_session_not_found(self, tmp_path): method test_get_session_with_pagination (line 94) | def test_get_session_with_pagination(self, tmp_path): class TestDroneLogStream (line 108) | class TestDroneLogStream: method test_stream_endpoint_exists (line 109) | def test_stream_endpoint_exists(self, tmp_path): FILE: tests/test_mds_logging/test_log_routes_gcs.py function clean_registry (line 18) | def clean_registry(): function _make_gcs_app (line 24) | def _make_gcs_app(log_dir, watcher=None): class TestGetSources (line 33) | class TestGetSources: method test_returns_empty_registry (line 34) | def test_returns_empty_registry(self, tmp_path): method test_returns_registered_components (line 41) | def test_returns_registered_components(self, tmp_path): class TestGCSSessions (line 53) | class TestGCSSessions: method test_list_sessions_empty (line 54) | def test_list_sessions_empty(self, tmp_path): method test_list_sessions (line 62) | def test_list_sessions(self, tmp_path): method test_get_session_content (line 72) | def test_get_session_content(self, tmp_path): method test_get_session_not_found (line 82) | def test_get_session_not_found(self, tmp_path): class TestGCSStream (line 90) | class TestGCSStream: method test_stream_endpoint_registered (line 91) | def test_stream_endpoint_registered(self, tmp_path): class TestFrontendReport (line 98) | class TestFrontendReport: method test_post_frontend_error (line 99) | def test_post_frontend_error(self, tmp_path): method test_rejects_invalid_level (line 113) | def test_rejects_invalid_level(self, tmp_path): class TestExport (line 125) | class TestExport: method test_export_single_session_jsonl (line 126) | def test_export_single_session_jsonl(self, tmp_path): method test_export_multiple_sessions_zip (line 140) | def test_export_multiple_sessions_zip(self, tmp_path): method test_export_session_not_found (line 158) | def test_export_session_not_found(self, tmp_path): method test_export_rejects_path_traversal_session_id (line 168) | def test_export_rejects_path_traversal_session_id(self, tmp_path): method test_export_empty_session_ids (line 178) | def test_export_empty_session_ids(self, tmp_path): method test_export_rejects_invalid_format (line 188) | def test_export_rejects_invalid_format(self, tmp_path): method test_export_drone_session_jsonl (line 198) | def test_export_drone_session_jsonl(self, tmp_path, monkeypatch): method test_export_drone_sessions_zip (line 225) | def test_export_drone_sessions_zip(self, tmp_path, monkeypatch): class TestDroneOnboardUlogProxy (line 255) | class TestDroneOnboardUlogProxy: method test_get_drone_ulog_policy (line 256) | def test_get_drone_ulog_policy(self, tmp_path, monkeypatch): method test_create_drone_ulog_download_job (line 291) | def test_create_drone_ulog_download_job(self, tmp_path, monkeypatch): method test_download_drone_ulog_content_stream (line 328) | def test_download_drone_ulog_content_stream(self, tmp_path, monkeypatch): method test_erase_all_drone_ulogs_maps_unavailable_to_502 (line 366) | def test_erase_all_drone_ulogs_maps_unavailable_to_502(self, tmp_path,... FILE: tests/test_mds_logging/test_noise_control.py function test_configure_external_loggers_suppresses_http_client_debug_noise (line 10) | def test_configure_external_loggers_suppresses_http_client_debug_noise(): function test_configure_external_loggers_does_not_lower_existing_stricter_level (line 21) | def test_configure_external_loggers_does_not_lower_existing_stricter_lev... FILE: tests/test_mds_logging/test_registry.py class TestRegistry (line 5) | class TestRegistry: method setup_method (line 6) | def setup_method(self): method test_register_and_retrieve (line 9) | def test_register_and_retrieve(self): method test_register_multiple (line 15) | def test_register_multiple(self): method test_overwrite_existing (line 20) | def test_overwrite_existing(self): FILE: tests/test_mds_logging/test_schema.py class TestBuildLogEntry (line 7) | class TestBuildLogEntry: method test_minimal_entry_has_all_required_fields (line 8) | def test_minimal_entry_has_all_required_fields(self): method test_timestamp_is_iso8601_utc (line 19) | def test_timestamp_is_iso8601_utc(self): method test_entry_serializes_to_valid_json (line 28) | def test_entry_serializes_to_valid_json(self): method test_drone_id_defaults_to_none (line 40) | def test_drone_id_defaults_to_none(self): method test_extra_defaults_to_none (line 47) | def test_extra_defaults_to_none(self): method test_invalid_level_raises (line 54) | def test_invalid_level_raises(self): method test_invalid_source_raises (line 61) | def test_invalid_source_raises(self): method test_valid_levels (line 68) | def test_valid_levels(self): method test_valid_sources (line 71) | def test_valid_sources(self): FILE: tests/test_mds_logging/test_session.py function tmp_log_dir (line 13) | def tmp_log_dir(tmp_path): class TestCreateSession (line 19) | class TestCreateSession: method test_returns_session_id_with_correct_format (line 20) | def test_returns_session_id_with_correct_format(self, tmp_log_dir): method test_creates_jsonl_file (line 25) | def test_creates_jsonl_file(self, tmp_log_dir): method test_duplicate_second_gets_suffix (line 30) | def test_duplicate_second_gets_suffix(self, tmp_log_dir): class TestListSessions (line 38) | class TestListSessions: method test_lists_sessions_newest_first (line 39) | def test_lists_sessions_newest_first(self, tmp_log_dir): method test_empty_dir_returns_empty_list (line 48) | def test_empty_dir_returns_empty_list(self, tmp_log_dir): class TestCleanupSessions (line 52) | class TestCleanupSessions: method test_cleanup_by_count (line 53) | def test_cleanup_by_count(self, tmp_log_dir): method test_cleanup_by_size (line 63) | def test_cleanup_by_size(self, tmp_log_dir): method test_keeps_newest_files (line 74) | def test_keeps_newest_files(self, tmp_log_dir): class TestReadSessionLines (line 84) | class TestReadSessionLines: method test_reads_all_lines (line 85) | def test_reads_all_lines(self, tmp_log_dir): method test_filter_by_level (line 94) | def test_filter_by_level(self, tmp_log_dir): method test_filter_by_component (line 104) | def test_filter_by_component(self, tmp_log_dir): method test_limit_and_offset (line 113) | def test_limit_and_offset(self, tmp_log_dir): method test_missing_session_returns_none (line 122) | def test_missing_session_returns_none(self, tmp_log_dir): method test_skips_malformed_lines (line 126) | def test_skips_malformed_lines(self, tmp_log_dir): method test_since_filter (line 135) | def test_since_filter(self, tmp_log_dir): method test_get_session_filepath_rejects_invalid_session_id (line 146) | def test_get_session_filepath_rejects_invalid_session_id(self, tmp_log... method test_read_session_lines_rejects_path_traversal_session_id (line 150) | def test_read_session_lines_rejects_path_traversal_session_id(self, tm... FILE: tests/test_mds_logging/test_sse_stream.py class TestSSEPipeline (line 17) | class TestSSEPipeline: method test_logger_to_watcher_pipeline (line 18) | def test_logger_to_watcher_pipeline(self): method test_subscribe_receives_buffered_entries (line 37) | async def test_subscribe_receives_buffered_entries(self): method test_subscribe_level_filter (line 53) | async def test_subscribe_level_filter(self): method test_subscribe_component_filter (line 71) | async def test_subscribe_component_filter(self): method test_live_publish_reaches_subscriber (line 85) | async def test_live_publish_reaches_subscriber(self): method test_handler_formats_and_publishes (line 106) | def test_handler_formats_and_publishes(self): FILE: tests/test_mds_logging/test_watcher.py class TestLogWatcher (line 7) | class TestLogWatcher: method test_publish_to_empty_watcher (line 8) | def test_publish_to_empty_watcher(self): method test_buffer_stores_recent_entries (line 13) | def test_buffer_stores_recent_entries(self): method test_subscribe_receives_published (line 21) | async def test_subscribe_receives_published(self): method test_subscribe_with_level_filter (line 39) | async def test_subscribe_with_level_filter(self): FILE: tests/test_mds_node_announce_script.py function write_identity_file (line 13) | def write_identity_file(path: Path) -> None: function write_local_env (line 37) | def write_local_env(path: Path, *, gcs_api_url: str | None = None, gcs_i... class AnnounceRequestHandler (line 46) | class AnnounceRequestHandler(BaseHTTPRequestHandler): method do_POST (line 47) | def do_POST(self): method log_message (line 66) | def log_message(self, format, *args): # pragma: no cover - test serve... class AnnounceTestServer (line 70) | class AnnounceTestServer(socketserver.TCPServer): function run_server (line 74) | def run_server(): function run_server_with_handler (line 82) | def run_server_with_handler(handler_cls): function run_script (line 90) | def run_script(*args): function test_node_announce_dry_run_writes_report_and_derives_payload (line 100) | def test_node_announce_dry_run_writes_report_and_derives_payload(tmp_path): function test_node_announce_posts_to_gcs_and_records_response (line 126) | def test_node_announce_posts_to_gcs_and_records_response(tmp_path): function test_node_announce_uses_local_env_api_url_when_not_passed (line 158) | def test_node_announce_uses_local_env_api_url_when_not_passed(tmp_path): class DirectCandidateResponseHandler (line 181) | class DirectCandidateResponseHandler(BaseHTTPRequestHandler): method do_POST (line 182) | def do_POST(self): method log_message (line 198) | def log_message(self, format, *args): # pragma: no cover - test serve... function test_node_announce_parses_direct_candidate_response_shape (line 202) | def test_node_announce_parses_direct_candidate_response_shape(tmp_path): FILE: tests/test_mission_startup.py class _DummyOffboardError (line 17) | class _DummyOffboardError(Exception): class _DummyActionError (line 37) | class _DummyActionError(Exception): function _health (line 45) | def _health(**overrides): function _health_stream (line 59) | def _health_stream(samples): function test_wait_until_offboard_armable_returns_when_armable (line 67) | async def test_wait_until_offboard_armable_returns_when_armable(): function test_wait_until_offboard_armable_times_out_when_armability_never_clears (line 81) | async def test_wait_until_offboard_armable_times_out_when_armability_nev... function test_wait_until_offboard_armable_resubscribes_after_stream_end (line 99) | async def test_wait_until_offboard_armable_resubscribes_after_stream_end(): function test_probe_offboard_armability_returns_last_state_on_timeout (line 120) | async def test_probe_offboard_armability_returns_last_state_on_timeout(m... function test_arm_with_preflight_gate_retries_command_denied (line 141) | async def test_arm_with_preflight_gate_retries_command_denied(monkeypatch): function test_arm_with_preflight_gate_retries_timed_out_arm_rpc (line 167) | async def test_arm_with_preflight_gate_retries_timed_out_arm_rpc(monkeyp... FILE: tests/test_network_status.py function test_build_network_info_classifies_usb_modem_default_route (line 6) | def test_build_network_info_classifies_usb_modem_default_route(monkeypat... function test_build_network_info_classifies_enx_usb_ethernet_as_usb_modem (line 41) | def test_build_network_info_classifies_enx_usb_ethernet_as_usb_modem(mon... function test_build_network_info_reports_wifi_and_cached_internet (line 80) | def test_build_network_info_reports_wifi_and_cached_internet(monkeypatch): function test_build_network_info_handles_missing_nmcli (line 112) | def test_build_network_info_handles_missing_nmcli(monkeypatch): FILE: tests/test_origin_compute.py function test_compute_origin_from_drone_accepts_low_residual_non_success (line 8) | def test_compute_origin_from_drone_accepts_low_residual_non_success(monk... function test_compute_origin_from_drone_rejects_non_success_high_residual (line 31) | def test_compute_origin_from_drone_rejects_non_success_high_residual(mon... FILE: tests/test_origin_defaults.py function test_load_origin_uses_packaged_sitl_default_when_runtime_missing (line 6) | def test_load_origin_uses_packaged_sitl_default_when_runtime_missing(tmp... function test_load_origin_prefers_runtime_origin_over_packaged_default (line 35) | def test_load_origin_prefers_runtime_origin_over_packaged_default(tmp_pa... FILE: tests/test_pos_id_auto_detector.py function _build_detector (line 8) | def _build_detector(*, detected_pos_id=0, pos_id=1, max_deviation=1.5): function test_detect_pos_id_suppresses_startup_warning_until_detection_stabilizes (line 29) | def test_detect_pos_id_suppresses_startup_warning_until_detection_stabil... function test_detect_pos_id_warns_when_confident_detection_is_lost (line 42) | def test_detect_pos_id_warns_when_confident_detection_is_lost(caplog): function test_detect_pos_id_warns_on_confident_mismatch (line 53) | def test_detect_pos_id_warns_on_confident_mismatch(caplog): function test_detect_pos_id_does_not_repeat_waiting_message_every_cycle (line 65) | def test_detect_pos_id_does_not_repeat_waiting_message_every_cycle(caplog): function test_detect_pos_id_does_not_repeat_mismatch_warning_for_same_slot (line 76) | def test_detect_pos_id_does_not_repeat_mismatch_warning_for_same_slot(ca... FILE: tests/test_precision_move_runner.py class _DummyPositionNedYaw (line 31) | class _DummyPositionNedYaw: method __init__ (line 32) | def __init__(self, north_m, east_m, down_m, yaw_deg): class _DummyVelocityNedYaw (line 39) | class _DummyVelocityNedYaw: method __init__ (line 40) | def __init__(self, north_m_s, east_m_s, down_m_s, yaw_deg): class _DummyOffboardError (line 47) | class _DummyOffboardError(Exception): class _DummyOffboard (line 51) | class _DummyOffboard: method __init__ (line 52) | def __init__(self): method set_position_velocity_ned (line 57) | async def set_position_velocity_ned(self, position, velocity): method start (line 60) | async def start(self): method stop (line 63) | async def stop(self): class _DummyTelemetry (line 67) | class _DummyTelemetry: method flight_mode (line 68) | async def flight_mode(self): class _DummyDrone (line 72) | class _DummyDrone: method __init__ (line 73) | def __init__(self): function test_body_to_ned_translation_respects_heading (line 78) | def test_body_to_ned_translation_respects_heading(): function test_precision_move_converges_and_hands_off_to_hold (line 86) | async def test_precision_move_converges_and_hands_off_to_hold(monkeypatch): function test_precision_move_requires_payload (line 140) | async def test_precision_move_requires_payload(): FILE: tests/test_presence.py function test_presence_snapshot_separates_live_recent_stale_and_offline (line 1) | def test_presence_snapshot_separates_live_recent_stale_and_offline(): function test_presence_snapshot_uses_recent_telemetry_as_fresh_source (line 40) | def test_presence_snapshot_uses_recent_telemetry_as_fresh_source(): FILE: tests/test_process_drone_files.py function _write_skybrush_csv (line 7) | def _write_skybrush_csv(path): function test_process_drone_files_short_trajectory_includes_final_timestamp (line 22) | def test_process_drone_files_short_trajectory_includes_final_timestamp(t... function test_process_drone_files_reads_nested_csvs (line 39) | def test_process_drone_files_reads_nested_csvs(tmp_path): FILE: tests/test_px4_param_catalog.py function test_parse_px4_parameter_reference_html_extracts_reference_metadata (line 13) | def test_parse_px4_parameter_reference_html_extracts_reference_metadata(): function test_load_px4_docs_reference_catalog_index_uses_fresh_cache (line 68) | def test_load_px4_docs_reference_catalog_index_uses_fresh_cache(tmp_path): FILE: tests/test_px4_param_service.py class FakeParamPlugin (line 20) | class FakeParamPlugin: method __init__ (line 21) | def __init__(self): method get_all_params (line 26) | async def get_all_params(self): method get_param_int (line 33) | async def get_param_int(self, name): method set_param_int (line 38) | async def set_param_int(self, name, value): method get_param_float (line 43) | async def get_param_float(self, name): method set_param_float (line 48) | async def set_param_float(self, name, value): method get_param_custom (line 53) | async def get_param_custom(self, name): method set_param_custom (line 58) | async def set_param_custom(self, name, value): class FakeComponentInformation (line 64) | class FakeComponentInformation: method access_float_params (line 65) | async def access_float_params(self): class BrokenComponentInformation (line 81) | class BrokenComponentInformation: method access_float_params (line 82) | async def access_float_params(self): function _build_service (line 86) | def _build_service(): function _build_drone (line 103) | def _build_drone(): function test_build_snapshot_returns_sorted_rows_with_docs_and_float_metadata (line 110) | async def test_build_snapshot_returns_sorted_rows_with_docs_and_float_me... function test_build_snapshot_uses_catalog_metadata_for_non_float_rows (line 128) | async def test_build_snapshot_uses_catalog_metadata_for_non_float_rows(t... function test_build_snapshot_labels_docs_cache_metadata (line 164) | async def test_build_snapshot_labels_docs_cache_metadata(monkeypatch): function test_build_snapshot_falls_back_to_mavlink_listing_when_bulk_rpc_is_unavailable (line 190) | async def test_build_snapshot_falls_back_to_mavlink_listing_when_bulk_rp... function test_build_snapshot_treats_component_information_failures_as_best_effort (line 222) | async def test_build_snapshot_treats_component_information_failures_as_b... function test_get_param_value_auto_detects_type (line 250) | async def test_get_param_value_auto_detects_type(): function test_set_param_value_verifies_readback (line 261) | async def test_set_param_value_verifies_readback(): function test_apply_patch_reports_partial_failures (line 282) | async def test_apply_patch_reports_partial_failures(): function test_decode_mavlink_param_value_handles_integer_and_float_payloads (line 313) | def test_decode_mavlink_param_value_handles_integer_and_float_payloads(): FILE: tests/test_px4_param_store_profiles.py function test_list_repo_profiles_reads_repo_backed_profiles (line 8) | def test_list_repo_profiles_reads_repo_backed_profiles(tmp_path): function test_get_repo_profile_returns_typed_profile_entries (line 36) | def test_get_repo_profile_returns_typed_profile_entries(tmp_path): function test_get_repo_profile_rejects_profile_id_filename_mismatch (line 65) | def test_get_repo_profile_rejects_profile_id_filename_mismatch(tmp_path): FILE: tests/test_quickscout_mission.py function _stream_once (line 11) | def _stream_once(item): function _stream_many (line 18) | def _stream_many(items): function _never_stream (line 26) | def _never_stream(): class _FakeMissionItem (line 35) | class _FakeMissionItem: class CameraAction (line 36) | class CameraAction: class VehicleAction (line 41) | class VehicleAction: method __init__ (line 45) | def __init__(self, **kwargs): class _FakeMissionPlan (line 49) | class _FakeMissionPlan: method __init__ (line 50) | def __init__(self, items): class _FakeDrone (line 54) | class _FakeDrone: method __init__ (line 55) | def __init__(self): function test_run_mission_bootstraps_canonical_mavsdk_server_and_stops_it (line 117) | async def test_run_mission_bootstraps_canonical_mavsdk_server_and_stops_... function test_run_mission_fails_fast_when_connection_confirmation_times_out (line 174) | async def test_run_mission_fails_fast_when_connection_confirmation_times... function test_monitor_active_mission_finishes_without_progress_callbacks (line 216) | async def test_monitor_active_mission_finishes_without_progress_callback... FILE: tests/test_request_logging.py function test_routine_success_paths_are_classified_as_debug (line 12) | def test_routine_success_paths_are_classified_as_debug(): function test_non_routine_success_paths_remain_info (line 28) | def test_non_routine_success_paths_remain_info(): function test_failures_override_routine_classification (line 34) | def test_failures_override_routine_classification(): FILE: tests/test_run_sitl_validation_suite.py function _load_module (line 7) | def _load_module(): function _build_args (line 17) | def _build_args(suite, tmp_path, **overrides): function test_build_suite_steps_uses_operator_template_and_actions_validator (line 109) | def test_build_suite_steps_uses_operator_template_and_actions_validator(... function test_build_suite_steps_inserts_reset_before_late_drone_show_from_modes (line 161) | def test_build_suite_steps_inserts_reset_before_late_drone_show_from_mod... function test_build_suite_steps_reads_plan_file_with_step_overrides (line 203) | def test_build_suite_steps_reads_plan_file_with_step_overrides(tmp_path): function test_list_templates_mentions_operator_and_actions_templates (line 266) | def test_list_templates_mentions_operator_and_actions_templates(): function test_write_suite_summary_skips_side_effects_in_dry_run (line 284) | def test_write_suite_summary_skips_side_effects_in_dry_run(tmp_path): function test_parse_modes_rejects_unknown_values (line 293) | def test_parse_modes_rejects_unknown_values(): function test_git_metadata_tolerates_non_git_paths (line 304) | def test_git_metadata_tolerates_non_git_paths(tmp_path): function test_list_bundled_plans_reports_curated_entries (line 317) | def test_list_bundled_plans_reports_curated_entries(tmp_path): function test_parse_args_resolves_plan_name_to_bundled_plan (line 340) | def test_parse_args_resolves_plan_name_to_bundled_plan(tmp_path, monkeyp... function test_build_suite_steps_uses_bundled_plan_name (line 371) | def test_build_suite_steps_uses_bundled_plan_name(tmp_path): function test_build_suite_steps_supports_integrated_runtime_mode (line 408) | def test_build_suite_steps_supports_integrated_runtime_mode(tmp_path): function test_build_suite_steps_supports_quickscout_mode (line 430) | def test_build_suite_steps_supports_quickscout_mode(tmp_path): function test_build_suite_steps_supports_px4_params_mode (line 459) | def test_build_suite_steps_supports_px4_params_mode(tmp_path): FILE: tests/test_run_with_log_policy.py function run_helper (line 12) | def run_helper(tmp_path: Path, *args: str) -> subprocess.CompletedProces... function test_bounded_mode_rotates_logs (line 22) | def test_bounded_mode_rotates_logs(tmp_path: Path) -> None: function test_discard_mode_keeps_no_log_file (line 48) | def test_discard_mode_keeps_no_log_file(tmp_path: Path) -> None: FILE: tests/test_runtime_settings.py function test_resolve_runtime_mode_prefers_mds_mode (line 12) | def test_resolve_runtime_mode_prefers_mds_mode(monkeypatch, tmp_path): function test_resolve_runtime_mode_defaults_to_sitl_when_env_missing (line 23) | def test_resolve_runtime_mode_defaults_to_sitl_when_env_missing(monkeypa... function test_resolve_runtime_mode_ignores_legacy_marker_when_env_missing (line 34) | def test_resolve_runtime_mode_ignores_legacy_marker_when_env_missing(mon... function test_resolve_runtime_mode_reads_canonical_mode_from_local_env (line 46) | def test_resolve_runtime_mode_reads_canonical_mode_from_local_env(monkey... function test_resolve_hw_id_info_prefers_node_identity_manifest (line 59) | def test_resolve_hw_id_info_prefers_node_identity_manifest(monkeypatch, ... function test_resolve_hw_id_info_reads_mds_hw_id_from_local_env (line 73) | def test_resolve_hw_id_info_reads_mds_hw_id_from_local_env(monkeypatch, ... function test_preloaded_local_env_does_not_leak_injected_values_across_paths (line 86) | def test_preloaded_local_env_does_not_leak_injected_values_across_paths(... function test_resolve_runtime_mode_invalid_env_defaults_to_sitl (line 106) | def test_resolve_runtime_mode_invalid_env_defaults_to_sitl(monkeypatch, ... function test_load_deployment_profile_reads_git_tracked_defaults (line 116) | def test_load_deployment_profile_reads_git_tracked_defaults(monkeypatch,... function test_params_use_deployment_profile_defaults_when_runtime_env_is_absent (line 182) | def test_params_use_deployment_profile_defaults_when_runtime_env_is_abse... FILE: tests/test_sar_api.py function _safe_signal (line 14) | def _safe_signal(sig, handler): function mock_background_services (line 50) | def mock_background_services(): function client (line 60) | def client(): function reset_managers (line 69) | def reset_managers(tmp_path, monkeypatch): function make_plan_request (line 84) | def make_plan_request(pos_ids=None): class TestPlanMission (line 114) | class TestPlanMission: method test_plan_success (line 115) | def test_plan_success(self, client): method test_plan_two_drones (line 126) | def test_plan_two_drones(self, client): method test_plan_invalid_polygon (line 133) | def test_plan_invalid_polygon(self, client): method test_plan_waypoints_structure (line 147) | def test_plan_waypoints_structure(self, client): method test_plan_persists_operator_metadata_for_recovery (line 159) | def test_plan_persists_operator_metadata_for_recovery(self, client): method test_plan_last_known_point_template (line 170) | def test_plan_last_known_point_template(self, client): method test_plan_corridor_search_template (line 203) | def test_plan_corridor_search_template(self, client): method test_plan_corridor_search_template (line 240) | def test_plan_corridor_search_template(self, client): class TestMissionStatus (line 278) | class TestMissionStatus: method test_status_after_plan (line 279) | def test_status_after_plan(self, client): method test_status_not_found (line 292) | def test_status_not_found(self, client): class TestMissionLifecycle (line 301) | class TestMissionLifecycle: method _plan_and_get_id (line 302) | def _plan_and_get_id(self, client): method test_pause_mission (line 306) | def test_pause_mission(self, client): method test_resume_mission (line 319) | def test_resume_mission(self, client): method test_abort_mission (line 337) | def test_abort_mission(self, client): method test_pause_not_found (line 346) | def test_pause_not_found(self, client): method test_progress_report (line 354) | def test_progress_report(self, client): class TestFindingEndpoints (line 377) | class TestFindingEndpoints: method _plan_and_get_id (line 378) | def _plan_and_get_id(self, client): method test_create_and_list_findings (line 383) | def test_create_and_list_findings(self, client): method test_update_finding (line 406) | def test_update_finding(self, client): method test_update_finding_rejects_unknown_fields (line 417) | def test_update_finding_rejects_unknown_fields(self, client): method test_delete_finding (line 426) | def test_delete_finding(self, client): method test_delete_finding_not_found (line 440) | def test_delete_finding_not_found(self, client): method test_list_findings_empty (line 445) | def test_list_findings_empty(self, client): method test_get_mission_handoff (line 451) | def test_get_mission_handoff(self, client): method test_get_mission_handoff_not_found (line 502) | def test_get_mission_handoff_not_found(self, client): class TestElevationBatch (line 506) | class TestElevationBatch: method test_batch_elevation (line 507) | def test_batch_elevation(self, client): FILE: tests/test_sar_coverage_planner.py function planner (line 21) | def planner(): function default_config (line 26) | def default_config(): function make_rectangle (line 37) | def make_rectangle(lat, lng, width_m, height_m): class TestBoustrophedonPlanner (line 51) | class TestBoustrophedonPlanner: method test_simple_rectangle_single_drone (line 52) | def test_simple_rectangle_single_drone(self, planner, default_config): method test_rectangle_four_drones (line 64) | def test_rectangle_four_drones(self, planner, default_config): method test_triangle (line 82) | def test_triangle(self, planner, default_config): method test_minimum_polygon (line 96) | def test_minimum_polygon(self, planner, default_config): method test_too_few_points_raises (line 110) | def test_too_few_points_raises(self, planner, default_config): method test_no_drones_raises (line 119) | def test_no_drones_raises(self, planner, default_config): method test_waypoints_have_coordinates (line 125) | def test_waypoints_have_coordinates(self, planner, default_config): method test_coordinate_conversion_roundtrip (line 139) | def test_coordinate_conversion_roundtrip(self): method test_sweep_angle_optimization (line 152) | def test_sweep_angle_optimization(self, planner): method test_more_drones_than_lines (line 162) | def test_more_drones_than_lines(self, planner): FILE: tests/test_sar_schemas.py class TestSearchAreaPoint (line 24) | class TestSearchAreaPoint: method test_valid_point (line 25) | def test_valid_point(self): method test_invalid_lat (line 30) | def test_invalid_lat(self): method test_invalid_lng (line 34) | def test_invalid_lng(self): class TestSearchArea (line 39) | class TestSearchArea: method test_valid_polygon (line 40) | def test_valid_polygon(self): method test_too_few_points (line 50) | def test_too_few_points(self): method test_valid_point_search_area (line 57) | def test_valid_point_search_area(self): method test_valid_line_search_area (line 68) | def test_valid_line_search_area(self): method test_valid_line_search_area (line 82) | def test_valid_line_search_area(self): class TestSurveyConfig (line 97) | class TestSurveyConfig: method test_defaults (line 98) | def test_defaults(self): method test_invalid_sweep_width (line 106) | def test_invalid_sweep_width(self): method test_invalid_overlap (line 110) | def test_invalid_overlap(self): method test_invalid_speed (line 114) | def test_invalid_speed(self): method test_accepts_high_field_elevation_cruise_altitude_msl (line 118) | def test_accepts_high_field_elevation_cruise_altitude_msl(self): class TestQuickScoutMissionRequest (line 124) | class TestQuickScoutMissionRequest: method test_valid_request (line 125) | def test_valid_request(self): method test_default_config (line 141) | def test_default_config(self): method test_last_known_point_template (line 151) | def test_last_known_point_template(self): method test_corridor_search_template (line 162) | def test_corridor_search_template(self): method test_corridor_search_template (line 176) | def test_corridor_search_template(self): class TestCoverageWaypoint (line 191) | class TestCoverageWaypoint: method test_valid_waypoint (line 192) | def test_valid_waypoint(self): method test_invalid_speed (line 200) | def test_invalid_speed(self): class TestDroneCoveragePlan (line 208) | class TestDroneCoveragePlan: method test_valid_plan (line 209) | def test_valid_plan(self): class TestFinding (line 222) | class TestFinding: method test_valid_finding (line 223) | def test_valid_finding(self): method test_default_values (line 230) | def test_default_values(self): method test_valid_finding_create (line 236) | def test_valid_finding_create(self): method test_valid_finding_update (line 247) | def test_valid_finding_update(self): method test_finding_update_rejects_unknown_fields (line 253) | def test_finding_update_rejects_unknown_fields(self): class TestMissionHandoff (line 258) | class TestMissionHandoff: method test_valid_handoff (line 259) | def test_valid_handoff(self): class TestDroneSurveyState (line 303) | class TestDroneSurveyState: method test_valid_state (line 304) | def test_valid_state(self): method test_invalid_coverage (line 309) | def test_invalid_coverage(self): class TestMissionStatus (line 314) | class TestMissionStatus: method test_empty_mission (line 315) | def test_empty_mission(self): class TestDroneProgressReport (line 323) | class TestDroneProgressReport: method test_valid_report (line 324) | def test_valid_report(self): class TestEnums (line 331) | class TestEnums: method test_return_behavior (line 332) | def test_return_behavior(self): method test_survey_state (line 335) | def test_survey_state(self): method test_finding_type (line 338) | def test_finding_type(self): FILE: tests/test_sar_store.py function _build_operation (line 21) | def _build_operation() -> QuickScoutOperationRecord: function test_quickscout_store_persists_operations (line 67) | def test_quickscout_store_persists_operations(tmp_path, monkeypatch): function test_quickscout_store_persists_findings (line 87) | def test_quickscout_store_persists_findings(tmp_path, monkeypatch): function test_quickscout_store_migrates_legacy_poi_rows (line 115) | def test_quickscout_store_migrates_legacy_poi_rows(tmp_path, monkeypatch): FILE: tests/test_schema_validation.py class TestDroneConfigValidation (line 12) | class TestDroneConfigValidation: method test_valid_config (line 15) | def test_valid_config(self): method test_minimal_config (line 24) | def test_minimal_config(self): method test_invalid_ip_format (line 33) | def test_invalid_ip_format(self): method test_negative_pos_id (line 39) | def test_negative_pos_id(self): method test_invalid_hw_id_zero (line 44) | def test_invalid_hw_id_zero(self): method test_extra_fields_preserved (line 50) | def test_extra_fields_preserved(self): method test_color_valid (line 59) | def test_color_valid(self): method test_color_invalid (line 66) | def test_color_invalid(self): class TestFleetConfigValidation (line 72) | class TestFleetConfigValidation: method test_fleet_config (line 75) | def test_fleet_config(self): method test_fleet_config_empty_drones (line 83) | def test_fleet_config_empty_drones(self): class TestSwarmConfigValidation (line 89) | class TestSwarmConfigValidation: method test_swarm_assignment_defaults (line 92) | def test_swarm_assignment_defaults(self): method test_swarm_assignment_full (line 101) | def test_swarm_assignment_full(self): method test_swarm_assignment_invalid_frame (line 107) | def test_swarm_assignment_invalid_frame(self): method test_swarm_config (line 113) | def test_swarm_config(self): class TestPositionGPSValidation (line 123) | class TestPositionGPSValidation: method test_valid_gps_position (line 126) | def test_valid_gps_position(self): method test_latitude_out_of_range (line 139) | def test_latitude_out_of_range(self): method test_latitude_negative_out_of_range (line 150) | def test_latitude_negative_out_of_range(self): method test_longitude_out_of_range (line 161) | def test_longitude_out_of_range(self): class TestBatteryStatusValidation (line 173) | class TestBatteryStatusValidation: method test_valid_battery (line 176) | def test_valid_battery(self): method test_negative_voltage (line 189) | def test_negative_voltage(self): method test_remaining_over_100 (line 199) | def test_remaining_over_100(self): method test_remaining_negative (line 209) | def test_remaining_negative(self): class TestHeartbeatValidation (line 220) | class TestHeartbeatValidation: method test_valid_heartbeat_request (line 223) | def test_valid_heartbeat_request(self): method test_integer_hw_id_is_normalized (line 240) | def test_integer_hw_id_is_normalized(self): method test_placeholder_heartbeat_ip_is_normalized_to_none (line 251) | def test_placeholder_heartbeat_ip_is_normalized_to_none(self): method test_negative_pos_id_heartbeat (line 263) | def test_negative_pos_id_heartbeat(self): class TestTrajectoryPointValidation (line 274) | class TestTrajectoryPointValidation: method test_valid_trajectory_point (line 277) | def test_valid_trajectory_point(self): method test_negative_time (line 292) | def test_negative_time(self): method test_negative_altitude (line 304) | def test_negative_altitude(self): class TestGPSFixValidation (line 317) | class TestGPSFixValidation: method _telemetry_payload (line 321) | def _telemetry_payload(gps_fix_type): method test_valid_gps_fix_range (line 353) | def test_valid_gps_fix_range(self): method test_invalid_gps_fix_high (line 362) | def test_invalid_gps_fix_high(self): function setup_imports (line 373) | def setup_imports(): FILE: tests/test_show_package_integrity.py function test_packaged_drone_show_assets_match_config (line 17) | def test_packaged_drone_show_assets_match_config(config_name, show_dir): FILE: tests/test_sitl_control_client.py function _load_module (line 6) | def _load_module(): function test_build_reconcile_request_uses_contiguous_drone_ids_and_env (line 16) | def test_build_reconcile_request_uses_contiguous_drone_ids_and_env(monke... function test_run_reconcile_auto_falls_back_to_shell (line 36) | def test_run_reconcile_auto_falls_back_to_shell(tmp_path, monkeypatch): function test_wait_for_operation_returns_final_success (line 64) | def test_wait_for_operation_returns_final_success(monkeypatch): FILE: tests/test_sitl_control_service.py class _FakeImage (line 17) | class _FakeImage: method __init__ (line 18) | def __init__(self, image_id: str, tags: list[str], *, size: int = 0, l... class _FakeContainerCollection (line 28) | class _FakeContainerCollection: method __init__ (line 29) | def __init__(self, containers): method list (line 32) | def list(self, all=False): # noqa: A002 - docker SDK signature method get (line 35) | def get(self, name: str): class _FakeImageCollection (line 42) | class _FakeImageCollection: method __init__ (line 43) | def __init__(self, images): method list (line 46) | def list(self): class _FakeClient (line 50) | class _FakeClient: method __init__ (line 51) | def __init__(self, containers, images): method ping (line 56) | def ping(self): method version (line 59) | def version(self): method close (line 62) | def close(self): class _FakeContainer (line 66) | class _FakeContainer: method __init__ (line 67) | def __init__( method logs (line 110) | def logs(self, stdout=True, stderr=True, timestamps=True, tail=200): method exec_run (line 114) | def exec_run(self, command): method restart (line 121) | def restart(self): method remove (line 126) | def remove(self, force=True): method reload (line 130) | def reload(self): function _make_service (line 134) | def _make_service(tmp_path: Path, containers=None, images=None, *, sim_m... class _ImmediateOperationService (line 147) | class _ImmediateOperationService(SitlControlService): method _launch_background_operation (line 148) | def _launch_background_operation(self, *, target, name, args): function test_build_policy_and_host_summary_report_live_environment (line 153) | def test_build_policy_and_host_summary_report_live_environment(tmp_path,... function test_build_policy_exposes_cleanup_only_capability_when_runtime_is_real (line 175) | def test_build_policy_exposes_cleanup_only_capability_when_runtime_is_re... function test_build_policy_uses_deployment_default_image (line 187) | def test_build_policy_uses_deployment_default_image(tmp_path, monkeypatch): function test_list_images_and_instances_filter_to_mds_sitl_runtime (line 200) | def test_list_images_and_instances_filter_to_mds_sitl_runtime(tmp_path): function test_build_policy_uses_baked_startup_script_when_git_sync_is_disabled (line 249) | def test_build_policy_uses_baked_startup_script_when_git_sync_is_disable... function test_build_reconcile_env_defaults_host_startup_script_when_git_sync_enabled (line 261) | def test_build_reconcile_env_defaults_host_startup_script_when_git_sync_... function test_build_create_env_keeps_explicit_baked_startup_override (line 278) | def test_build_create_env_keeps_explicit_baked_startup_override(tmp_path... function test_build_host_summary_detects_running_portainer_panel (line 294) | def test_build_host_summary_detects_running_portainer_panel(tmp_path): function test_get_instance_logs_returns_tailed_content_for_relevant_container (line 309) | def test_get_instance_logs_returns_tailed_content_for_relevant_container... function test_get_instance_logs_falls_back_to_startup_file_when_docker_logs_are_empty (line 331) | def test_get_instance_logs_falls_back_to_startup_file_when_docker_logs_a... function test_get_instance_logs_rejects_unknown_container (line 355) | def test_get_instance_logs_rejects_unknown_container(tmp_path): function test_restart_instance_operation_completes_immediately_with_test_runner (line 362) | def test_restart_instance_operation_completes_immediately_with_test_runn... function test_remove_instance_operation_completes_immediately_with_test_runner (line 386) | def test_remove_instance_operation_completes_immediately_with_test_runne... function test_remove_instance_operation_is_allowed_when_runtime_is_real (line 409) | def test_remove_instance_operation_is_allowed_when_runtime_is_real(tmp_p... function test_batch_remove_operation_is_allowed_when_runtime_is_real (line 433) | def test_batch_remove_operation_is_allowed_when_runtime_is_real(tmp_path): function test_restart_instance_is_rejected_when_runtime_is_real (line 461) | def test_restart_instance_is_rejected_when_runtime_is_real(tmp_path): function test_create_instance_operation_uses_next_available_id_and_ip (line 474) | def test_create_instance_operation_uses_next_available_id_and_ip(tmp_path): function test_instance_batch_action_restarts_requested_visible_containers (line 488) | def test_instance_batch_action_restarts_requested_visible_containers(tmp... function test_build_image_release_command_includes_selected_flags (line 516) | def test_build_image_release_command_includes_selected_flags(tmp_path): FILE: tests/test_smart_swarm_active_routes.py function test_smart_swarm_uses_canonical_gcs_swarm_routes (line 4) | def test_smart_swarm_uses_canonical_gcs_swarm_routes(): FILE: tests/test_smart_swarm_failover.py function test_upstream_or_hold_promotes_to_upstream_leader (line 4) | def test_upstream_or_hold_promotes_to_upstream_leader(): function test_upstream_or_hold_self_holds_when_top_leader_is_lost (line 23) | def test_upstream_or_hold_self_holds_when_top_leader_is_lost(): function test_next_hw_id_strategy_remains_available_for_legacy_behavior (line 40) | def test_next_hw_id_strategy_remains_available_for_legacy_behavior(): function test_hold_strategy_self_holds_immediately (line 58) | def test_hold_strategy_self_holds_immediately(): function test_upstream_or_hold_rejects_cycle_candidate_and_self_holds (line 75) | def test_upstream_or_hold_rejects_cycle_candidate_and_self_holds(): FILE: tests/test_smart_swarm_kalman.py function _measurement (line 9) | def _measurement(**overrides): function test_predict_advances_only_incremental_elapsed_time (line 22) | def test_predict_advances_only_incremental_elapsed_time(): function test_process_noise_matches_grouped_position_velocity_state_layout (line 33) | def test_process_noise_matches_grouped_position_velocity_state_layout(): FILE: tests/test_smart_swarm_pd_controller.py function test_pd_controller_applies_velocity_feedforward (line 7) | def test_pd_controller_applies_velocity_feedforward(): function test_pd_controller_saturates_combined_pd_and_feedforward (line 19) | def test_pd_controller_saturates_combined_pd_and_feedforward(): FILE: tests/test_smart_swarm_runtime_math.py function test_transform_body_to_nea_rotates_right_offset_at_90_deg_yaw (line 7) | def test_transform_body_to_nea_rotates_right_offset_at_90_deg_yaw(): function test_lla_to_ned_preserves_down_positive_convention (line 13) | def test_lla_to_ned_preserves_down_positive_convention(): function test_pd_controller_applies_feedforward_and_velocity_error (line 29) | def test_pd_controller_applies_feedforward_and_velocity_error(): function test_pd_controller_limits_acceleration_between_steps (line 45) | def test_pd_controller_limits_acceleration_between_steps(): function test_pd_controller_reset_clears_history (line 68) | def test_pd_controller_reset_clears_history(): FILE: tests/test_smart_swarm_target_switch.py function test_smart_swarm_versions_leader_stream_target_changes (line 4) | def test_smart_swarm_versions_leader_stream_target_changes(): FILE: tests/test_spa_static_server.py function run_spa_server (line 13) | def run_spa_server(build_dir: Path): function request (line 28) | def request(port: int, path: str, headers: dict | None = None): function test_spa_server_serves_gzipped_static_assets_with_immutable_cache (line 38) | def test_spa_server_serves_gzipped_static_assets_with_immutable_cache(tm... function test_spa_server_falls_back_to_index_with_no_cache (line 61) | def test_spa_server_falls_back_to_index_with_no_cache(tmp_path): FILE: tests/test_swarm_global_calculator.py function _leader_relative_ned (line 10) | def _leader_relative_ned(follower_lla, leader_lla): function test_ned_offsets_use_leader_local_reference_and_up_positive_altitude (line 24) | def test_ned_offsets_use_leader_local_reference_and_up_positive_altitude(): function test_body_offsets_follow_leader_heading_with_up_positive_altitude (line 41) | def test_body_offsets_follow_leader_heading_with_up_positive_altitude(): function test_follower_yaw_defaults_to_leader_yaw (line 62) | def test_follower_yaw_defaults_to_leader_yaw(): FILE: tests/test_swarm_runtime_state.py function test_runtime_swarm_assignment_round_trip (line 8) | def test_runtime_swarm_assignment_round_trip(monkeypatch, tmp_path): function test_runtime_swarm_assignment_empty_payload_returns_none (line 26) | def test_runtime_swarm_assignment_empty_payload_returns_none(monkeypatch... function test_build_runtime_swarm_assignment_canonicalizes_types (line 35) | def test_build_runtime_swarm_assignment_canonicalizes_types(): function test_build_runtime_swarm_assignment_force_follow_overrides_source (line 57) | def test_build_runtime_swarm_assignment_force_follow_overrides_source(): FILE: tests/test_swarm_trajectory_mission.py function _stream_once (line 23) | async def _stream_once(value): function _stream_once_position (line 27) | async def _stream_once_position(relative_altitude_m): function _stream_once_position_full (line 31) | async def _stream_once_position_full(relative_altitude_m, absolute_altit... function _stream_side_effect (line 38) | def _stream_side_effect(values): function test_pre_flight_checks_prefers_px4_global_origin_reference (line 51) | async def test_pre_flight_checks_prefers_px4_global_origin_reference(mon... function test_pre_flight_checks_falls_back_to_current_position_reference (line 82) | async def test_pre_flight_checks_falls_back_to_current_position_referenc... function test_read_config_uses_swarm_trajectory_processed_folder (line 118) | def test_read_config_uses_swarm_trajectory_processed_folder(monkeypatch): function test_wait_for_rtl_completion_returns_after_touchdown_and_disarm (line 153) | async def test_wait_for_rtl_completion_returns_after_touchdown_and_disar... function test_has_reached_initial_climb_altitude_requires_real_height_when_available (line 162) | async def test_has_reached_initial_climb_altitude_requires_real_height_w... function test_has_reached_initial_climb_altitude_accepts_launch_referenced_absolute_gain (line 170) | async def test_has_reached_initial_climb_altitude_accepts_launch_referen... function test_has_reached_initial_climb_altitude_accepts_missing_telemetry (line 182) | async def test_has_reached_initial_climb_altitude_accepts_missing_teleme... function test_perform_swarm_trajectory_raises_when_initial_climb_stalls (line 195) | async def test_perform_swarm_trajectory_raises_when_initial_climb_stalls... function test_execute_end_behavior_return_home_waits_for_rtl_completion (line 247) | async def test_execute_end_behavior_return_home_waits_for_rtl_completion(): function test_execute_end_behavior_return_home_falls_back_to_land_when_rtl_never_engages (line 268) | async def test_execute_end_behavior_return_home_falls_back_to_land_when_... function test_execute_end_behavior_raises_when_all_recoveries_fail (line 292) | async def test_execute_end_behavior_raises_when_all_recoveries_fail(): function test_arming_and_starting_offboard_mode_uses_shared_prearm_gate (line 317) | async def test_arming_and_starting_offboard_mode_uses_shared_prearm_gate... function test_arming_and_starting_offboard_mode_skips_drift_for_fallback_reference (line 337) | async def test_arming_and_starting_offboard_mode_skips_drift_for_fallbac... function test_compute_position_drift_uses_threaded_http (line 361) | async def test_compute_position_drift_uses_threaded_http(monkeypatch): function test_run_swarm_trajectory_mission_exits_failure_when_mission_runtime_raises (line 383) | async def test_run_swarm_trajectory_mission_exits_failure_when_mission_r... function test_main_defers_immediate_start_until_local_startup_gate (line 427) | def test_main_defers_immediate_start_until_local_startup_gate(monkeypatch): function test_engage_rtl_confirms_return_mode_after_action_ack (line 456) | async def test_engage_rtl_confirms_return_mode_after_action_ack(): function test_engage_rtl_returns_false_when_mode_never_changes (line 473) | async def test_engage_rtl_returns_false_when_mode_never_changes(): function test_wait_for_rtl_completion_issues_explicit_disarm_after_touchdown_grace (line 485) | async def test_wait_for_rtl_completion_issues_explicit_disarm_after_touc... function test_wait_for_rtl_completion_forces_land_when_stalled_over_home (line 502) | async def test_wait_for_rtl_completion_forces_land_when_stalled_over_hom... function test_wait_for_rtl_completion_forces_land_when_near_ground_without_touchdown (line 527) | async def test_wait_for_rtl_completion_forces_land_when_near_ground_with... function test_update_rtl_near_ground_timer_keeps_timer_during_small_ground_motion (line 555) | def test_update_rtl_near_ground_timer_keeps_timer_during_small_ground_mo... function test_controlled_landing_delegates_to_native_land_when_above_precision_window (line 597) | async def test_controlled_landing_delegates_to_native_land_when_above_pr... function test_perform_landing_requires_disarm_before_returning (line 611) | async def test_perform_landing_requires_disarm_before_returning(monkeypa... function test_perform_landing_continues_when_land_ack_times_out_but_landing_starts (line 629) | async def test_perform_landing_continues_when_land_ack_times_out_but_lan... function test_perform_landing_requires_landing_transition (line 648) | async def test_perform_landing_requires_landing_transition(): function test_wait_for_flight_mode_raises_when_expected_mode_missing (line 659) | async def test_wait_for_flight_mode_raises_when_expected_mode_missing(): FILE: tests/test_swarm_trajectory_processor.py function _leader_relative_ned (line 8) | def _leader_relative_ned(follower_trajectory, leader_trajectory): function test_execute_processing_compounds_nested_follow_offsets (line 24) | def test_execute_processing_compounds_nested_follow_offsets(monkeypatch,... function test_analyze_swarm_structure_rejects_circular_follow_chains (line 103) | def test_analyze_swarm_structure_rejects_circular_follow_chains(): FILE: tests/test_swarm_trajectory_service.py function test_get_swarm_trajectory_folders_is_cwd_independent (line 27) | def test_get_swarm_trajectory_folders_is_cwd_independent(monkeypatch, tm... function test_get_swarm_trajectory_folders_prefers_shared_sitl_workspace (line 38) | def test_get_swarm_trajectory_folders_prefers_shared_sitl_workspace(monk... function test_fetch_swarm_data_prefers_local_config (line 53) | def test_fetch_swarm_data_prefers_local_config(): function test_fetch_swarm_data_falls_back_to_canonical_swarm_config_api (line 65) | def test_fetch_swarm_data_falls_back_to_canonical_swarm_config_api(): function test_clear_individual_drone_rejects_cluster_leader (line 82) | def test_clear_individual_drone_rejects_cluster_leader(): function test_session_manager_detects_raw_csv_content_changes (line 99) | def test_session_manager_detects_raw_csv_content_changes(monkeypatch, tm... function test_save_uploaded_trajectory_rejects_non_top_leader (line 131) | def test_save_uploaded_trajectory_rejects_non_top_leader(): function test_processing_status_reports_truthful_cluster_readiness (line 154) | def test_processing_status_reports_truthful_cluster_readiness(monkeypatc... function test_validate_target_scope_for_swarm_trajectory_requires_processed_outputs_and_leader_chain (line 256) | def test_validate_target_scope_for_swarm_trajectory_requires_processed_o... function test_validate_target_scope_for_swarm_trajectory_accepts_complete_selected_chain (line 277) | def test_validate_target_scope_for_swarm_trajectory_accepts_complete_sel... function test_get_swarm_trajectory_file_path_prefers_shared_sitl_workspace (line 295) | def test_get_swarm_trajectory_file_path_prefers_shared_sitl_workspace(mo... function test_get_swarm_trajectory_file_path_falls_back_when_shared_file_missing (line 308) | def test_get_swarm_trajectory_file_path_falls_back_when_shared_file_miss... function test_session_manager_recommendation_includes_expected_and_missing_leader_truth (line 315) | def test_session_manager_recommendation_includes_expected_and_missing_le... function test_process_swarm_trajectories_reports_auto_reloaded_leaders (line 348) | def test_process_swarm_trajectories_reports_auto_reloaded_leaders(monkey... function test_execute_trajectory_processing_marks_partial_when_swarm_outputs_are_incomplete (line 377) | def test_execute_trajectory_processing_marks_partial_when_swarm_outputs_... function test_process_trajectories_payload_raises_typed_error_for_failed_processing (line 458) | def test_process_trajectories_payload_raises_typed_error_for_failed_proc... function test_clear_processed_payload_raises_typed_error_for_failed_clear (line 474) | def test_clear_processed_payload_raises_typed_error_for_failed_clear(mon... FILE: tests/test_swarm_trajectory_smoother.py function _meters_to_lon_delta (line 9) | def _meters_to_lon_delta(meters, latitude_deg): function test_smooth_trajectory_with_waypoints_outputs_ned_metric_velocities (line 13) | def test_smooth_trajectory_with_waypoints_outputs_ned_metric_velocities(): FILE: tests/test_synchronized_start.py function test_evaluate_synchronized_start_uses_now_when_missing (line 6) | def test_evaluate_synchronized_start_uses_now_when_missing(): function test_evaluate_synchronized_start_waits_for_future_time (line 15) | def test_evaluate_synchronized_start_waits_for_future_time(): function test_evaluate_synchronized_start_allows_small_lateness_within_tolerance (line 23) | def test_evaluate_synchronized_start_allows_small_lateness_within_tolera... function test_evaluate_synchronized_start_rejects_excessive_lateness (line 32) | def test_evaluate_synchronized_start_rejects_excessive_lateness(): function test_resolve_requested_start_time_defers_immediate_launch_until_start_gate (line 41) | def test_resolve_requested_start_time_defers_immediate_launch_until_star... function test_resolve_requested_start_time_preserves_future_timestamp (line 47) | def test_resolve_requested_start_time_preserves_future_timestamp(): FILE: tests/test_telemetry_logging.py class TestTelemetryLoggingCompatibility (line 15) | class TestTelemetryLoggingCompatibility: method test_initialize_telemetry_tracking_uses_standard_logger_interface (line 18) | def test_initialize_telemetry_tracking_uses_standard_logger_interface(... method test_log_drone_telemetry_event_adds_drone_id_metadata (line 29) | def test_log_drone_telemetry_event_adds_drone_id_metadata(self): FILE: tests/test_ulog_service.py class _FakeProgress (line 10) | class _FakeProgress: method __init__ (line 11) | def __init__(self, progress): class _FakeLogFiles (line 15) | class _FakeLogFiles: method __init__ (line 16) | def __init__(self, entries=None): method get_entries (line 20) | async def get_entries(self): method download_log_file (line 23) | async def download_log_file(self, entry, path): method erase_all_log_files (line 30) | async def erase_all_log_files(self): class _BrokenLogFiles (line 34) | class _BrokenLogFiles(_FakeLogFiles): method get_entries (line 35) | async def get_entries(self): method download_log_file (line 38) | async def download_log_file(self, entry, path): class _FakeDrone (line 42) | class _FakeDrone: method __init__ (line 43) | def __init__(self, entries=None): class _BrokenDrone (line 47) | class _BrokenDrone: method __init__ (line 48) | def __init__(self): function _make_params (line 52) | def _make_params(tmp_path): function test_list_entries_sorts_newest_first_and_builds_policy (line 64) | async def test_list_entries_sorts_newest_first_and_builds_policy(tmp_path): function test_create_and_complete_download_job_stages_named_file (line 85) | async def test_create_and_complete_download_job_stages_named_file(tmp_pa... function test_mark_failed_and_delete_cleanup (line 111) | async def test_mark_failed_and_delete_cleanup(tmp_path): function test_erase_all_reports_acceptance (line 134) | async def test_erase_all_reports_acceptance(tmp_path): function test_filesystem_fallback_lists_downloads_and_erases_when_mavsdk_is_unavailable (line 148) | async def test_filesystem_fallback_lists_downloads_and_erases_when_mavsd... FILE: tests/test_validate_actions_runtime.py function test_telemetry_has_ids_requires_full_selected_fleet (line 15) | def test_telemetry_has_ids_requires_full_selected_fleet(): function test_idle_baseline_requires_recent_heartbeat_ready_idle_and_disarmed (line 20) | def test_idle_baseline_requires_recent_heartbeat_ready_idle_and_disarmed(): function test_idle_reset_requires_disarmed_mission_and_state_clear (line 39) | def test_idle_reset_requires_disarmed_mission_and_state_clear(): function test_hold_ready_depends_on_airborne_outcome_not_transient_mission_code (line 44) | def test_hold_ready_depends_on_airborne_outcome_not_transient_mission_co... function test_choose_override_targets_prefers_single_rtl_target_when_possible (line 55) | def test_choose_override_targets_prefers_single_rtl_target_when_possible(): function test_resolve_selected_ids_prefers_space_separated_drone_ids (line 60) | def test_resolve_selected_ids_prefers_space_separated_drone_ids(): function test_resolve_selected_ids_falls_back_to_csv_argument_and_default (line 65) | def test_resolve_selected_ids_falls_back_to_csv_argument_and_default(): function test_interrupted_terminal_status_accepts_superseded_outcome_even_if_status_is_cancelled (line 73) | def test_interrupted_terminal_status_accepts_superseded_outcome_even_if_... FILE: tests/test_validate_configuration_runtime.py function test_build_collision_validation_payload_duplicates_second_selected_pos_id (line 12) | def test_build_collision_validation_payload_duplicates_second_selected_p... function test_build_fleet_metadata_update_preserves_original_and_tracks_expected_fields (line 27) | def test_build_fleet_metadata_update_preserves_original_and_tracks_expec... function test_select_swarm_target_prefers_followers_in_selected_set (line 43) | def test_select_swarm_target_prefers_followers_in_selected_set(): function test_build_slot_reassignment_update_swaps_selected_slots_without_mutating_source (line 54) | def test_build_slot_reassignment_update_swaps_selected_slots_without_mut... function test_swarm_put_and_patch_updates_return_expected_assignment_shapes (line 70) | def test_swarm_put_and_patch_updates_return_expected_assignment_shapes(): function test_select_origin_compute_source_uses_selected_fleet_and_live_telemetry (line 89) | def test_select_origin_compute_source_uses_selected_fleet_and_live_telem... FILE: tests/test_validate_drone_show_runtime.py function _load_validator (line 8) | def _load_validator(): function test_check_deviation_signal_allows_subset_when_unselected_drones_have_no_telemetry (line 18) | def test_check_deviation_signal_allows_subset_when_unselected_drones_hav... function test_check_deviation_signal_rejects_selected_drone_without_live_telemetry (line 38) | def test_check_deviation_signal_rejects_selected_drone_without_live_tele... function test_check_deviation_signal_rejects_selected_launch_blockers (line 57) | def test_check_deviation_signal_rejects_selected_launch_blockers(): function test_wait_for_show_launch_ready_checks_deviation_after_idle (line 77) | def test_wait_for_show_launch_ready_checks_deviation_after_idle(monkeypa... function test_wait_for_show_launch_ready_retries_transient_deviation_failure (line 98) | def test_wait_for_show_launch_ready_retries_transient_deviation_failure(... function test_wait_for_live_launch_probe_ready_polls_selected_drone_ips (line 129) | def test_wait_for_live_launch_probe_ready_polls_selected_drone_ips(monke... function test_wait_for_dispatch_readiness_checks_geometry_then_live_probe (line 161) | def test_wait_for_dispatch_readiness_checks_geometry_then_live_probe(mon... function test_run_show_mode_requires_launch_ready_before_dispatch (line 186) | def test_run_show_mode_requires_launch_ready_before_dispatch(monkeypatch): function test_api_client_get_json_retries_after_connection_reset (line 224) | def test_api_client_get_json_retries_after_connection_reset(monkeypatch): function test_reset_sitl_fleet_recreates_selected_contiguous_fleet (line 264) | def test_reset_sitl_fleet_recreates_selected_contiguous_fleet(monkeypatc... function test_reset_sitl_fleet_rejects_non_contiguous_selection (line 296) | def test_reset_sitl_fleet_rejects_non_contiguous_selection(): function test_submit_show_command_with_retry_rechecks_launch_ready_after_http_400 (line 303) | def test_submit_show_command_with_retry_rechecks_launch_ready_after_http... function test_submit_show_command_with_retry_does_not_retry_unrelated_http_400 (line 361) | def test_submit_show_command_with_retry_does_not_retry_unrelated_http_40... FILE: tests/test_validate_integrated_runtime.py function test_build_demo_swarm_assignments_uses_first_drone_as_leader (line 10) | def test_build_demo_swarm_assignments_uses_first_drone_as_leader(): function test_build_demo_swarm_assignments_spreads_followers_across_unique_offsets (line 24) | def test_build_demo_swarm_assignments_spreads_followers_across_unique_of... function test_build_reassignment_patch_targets_last_follower_with_ned_offset (line 37) | def test_build_reassignment_patch_targets_last_follower_with_ned_offset(): function test_resolve_selected_ids_prefers_space_separated_drone_ids (line 50) | def test_resolve_selected_ids_prefers_space_separated_drone_ids(): function test_resolve_selected_ids_falls_back_to_csv_argument_and_default (line 55) | def test_resolve_selected_ids_falls_back_to_csv_argument_and_default(): FILE: tests/test_validate_px4_params_runtime.py function test_choose_param_value_advances_float_within_bounds (line 11) | def test_choose_param_value_advances_float_within_bounds(): function test_choose_param_value_flips_direction_when_upper_bound_would_be_exceeded (line 23) | def test_choose_param_value_flips_direction_when_upper_bound_would_be_ex... function test_build_qgc_file_uses_qgroundcontrol_header_and_types (line 35) | def test_build_qgc_file_uses_qgroundcontrol_header_and_types(): function test_selected_drone_api_health_snapshot_returns_telemetry_when_all_targets_are_ready (line 48) | def test_selected_drone_api_health_snapshot_returns_telemetry_when_all_t... function test_selected_drone_api_health_snapshot_returns_false_when_probe_is_unreachable (line 74) | def test_selected_drone_api_health_snapshot_returns_false_when_probe_is_... function test_select_baseline_rows_normalizes_selected_ids_to_string_keys (line 87) | def test_select_baseline_rows_normalizes_selected_ids_to_string_keys(): FILE: tests/test_validate_quickscout_runtime.py function test_telemetry_has_ids_requires_full_selected_fleet (line 17) | def test_telemetry_has_ids_requires_full_selected_fleet(): function test_idle_baseline_requires_recent_heartbeat_ready_idle_and_disarmed (line 22) | def test_idle_baseline_requires_recent_heartbeat_ready_idle_and_disarmed(): function test_idle_reset_requires_disarmed_with_no_mission_state (line 39) | def test_idle_reset_requires_disarmed_with_no_mission_state(): function test_resolve_selected_ids_prefers_space_separated_drone_ids (line 44) | def test_resolve_selected_ids_prefers_space_separated_drone_ids(): function test_resolve_selected_ids_falls_back_to_csv_and_default (line 49) | def test_resolve_selected_ids_falls_back_to_csv_and_default(): function test_select_target_drones_uses_first_selected_drones_with_gps_and_pos_id (line 57) | def test_select_target_drones_uses_first_selected_drones_with_gps_and_po... function test_build_last_known_point_request_tracks_multi_drone_center_pos_ids_and_altitude (line 70) | def test_build_last_known_point_request_tracks_multi_drone_center_pos_id... function test_build_area_sweep_request_tracks_polygon_dimensions_and_template (line 106) | def test_build_area_sweep_request_tracks_polygon_dimensions_and_template(): function test_build_corridor_search_request_tracks_path_width_and_template (line 134) | def test_build_corridor_search_request_tracks_path_width_and_template(): function test_detect_foreign_active_commands_ignores_allowed_ids_and_unwatched_targets (line 163) | def test_detect_foreign_active_commands_ignores_allowed_ids_and_unwatche... function test_detect_foreign_active_commands_reports_overlap_with_watched_drones (line 192) | def test_detect_foreign_active_commands_reports_overlap_with_watched_dro... FILE: tests/test_validate_smart_swarm_runtime.py function test_telemetry_has_ids_requires_full_selected_fleet (line 17) | def test_telemetry_has_ids_requires_full_selected_fleet(): function test_idle_baseline_requires_ready_disarmed_idle_and_home (line 22) | def test_idle_baseline_requires_ready_disarmed_idle_and_home(): function test_idle_baseline_rejects_airborne_or_missing_home (line 37) | def test_idle_baseline_rejects_airborne_or_missing_home(): function test_idle_reset_requires_disarmed_mission_and_state_clear (line 83) | def test_idle_reset_requires_disarmed_mission_and_state_clear(): function test_assignment_snapshot_normalizes_selected_assignments (line 97) | def test_assignment_snapshot_normalizes_selected_assignments(): class _FakeSwarmClient (line 122) | class _FakeSwarmClient: method __init__ (line 123) | def __init__(self, assignments): method get_swarm (line 127) | def get_swarm(self): method update_assignment (line 130) | def update_assignment(self, hw_id, **kwargs): function test_restore_assignments_updates_only_changed_rows (line 142) | def test_restore_assignments_updates_only_changed_rows(): function test_resolve_selected_ids_prefers_space_separated_drone_ids (line 166) | def test_resolve_selected_ids_prefers_space_separated_drone_ids(): function test_resolve_selected_ids_falls_back_to_csv_argument (line 171) | def test_resolve_selected_ids_falls_back_to_csv_argument(): function test_sitl_container_name_maps_hw_id_to_runtime_name (line 176) | def test_sitl_container_name_maps_hw_id_to_runtime_name(): function test_resolve_leader_dropout_targets_returns_none_when_disabled (line 180) | def test_resolve_leader_dropout_targets_returns_none_when_disabled(): function test_resolve_leader_dropout_targets_requires_reassign_phase (line 191) | def test_resolve_leader_dropout_targets_requires_reassign_phase(): function test_resolve_leader_dropout_targets_requires_expected_ids (line 207) | def test_resolve_leader_dropout_targets_requires_expected_ids(): FILE: tests/test_validate_swarm_trajectory_runtime.py function _load_validator_module (line 12) | def _load_validator_module(): function test_validator_uses_repo_timeout_model (line 21) | def test_validator_uses_repo_timeout_model(): function test_estimate_command_completion_timeout_includes_rtl_window (line 40) | def test_estimate_command_completion_timeout_includes_rtl_window(): function test_estimate_command_completion_timeout_for_land_current_is_shorter_than_rtl (line 52) | def test_estimate_command_completion_timeout_for_land_current_is_shorter... function test_max_processed_duration_seconds_filters_to_selected_drones (line 69) | def test_max_processed_duration_seconds_filters_to_selected_drones(tmp_p... function test_max_processed_relative_altitude_uses_processed_peak_over_baseline (line 84) | def test_max_processed_relative_altitude_uses_processed_peak_over_baseli... function test_snapshot_and_restore_raw_profiles_restore_original_files (line 106) | def test_snapshot_and_restore_raw_profiles_restore_original_files(tmp_pa... function test_snapshot_and_restore_raw_profiles_remove_generated_files_without_original (line 125) | def test_snapshot_and_restore_raw_profiles_remove_generated_files_withou... function test_follower_expectations_filter_to_selected_active_set (line 143) | def test_follower_expectations_filter_to_selected_active_set(): function test_follower_scope_issues_flags_selected_followers_without_selected_leader (line 160) | def test_follower_scope_issues_flags_selected_followers_without_selected... function test_selected_top_leaders_filters_to_active_top_leaders (line 184) | def test_selected_top_leaders_filters_to_active_top_leaders(): function test_max_selected_horizontal_offset_uses_active_followers_of_selected_leaders (line 199) | def test_max_selected_horizontal_offset_uses_active_followers_of_selecte... function test_recommend_short_profile_entry_delay_scales_with_offset_and_altitude (line 218) | def test_recommend_short_profile_entry_delay_scales_with_offset_and_alti... function test_build_short_validation_profile_rows_uses_route_entry_and_leg_defaults (line 234) | def test_build_short_validation_profile_rows_uses_route_entry_and_leg_de... function test_command_summary_includes_normalized_progress_snapshot (line 260) | def test_command_summary_includes_normalized_progress_snapshot(): function test_write_short_validation_profiles_creates_raw_csvs (line 302) | def test_write_short_validation_profiles_creates_raw_csvs(tmp_path): function test_processed_formation_expectations_use_processed_tracks (line 340) | def test_processed_formation_expectations_use_processed_tracks(tmp_path): function test_evaluate_formation_snapshot_uses_processed_package_truth (line 365) | def test_evaluate_formation_snapshot_uses_processed_package_truth(tmp_pa... function test_wait_for_formation_reports_inactive_mission_state_when_geometry_window_is_missed (line 405) | def test_wait_for_formation_reports_inactive_mission_state_when_geometry... function test_wait_for_altitude_gain_tracks_per_drone_peak_over_time (line 466) | def test_wait_for_altitude_gain_tracks_per_drone_peak_over_time(monkeypa... function test_wait_for_altitude_gain_reports_peak_gains_on_timeout (line 507) | def test_wait_for_altitude_gain_reports_peak_gains_on_timeout(monkeypatch): function test_format_http_error_prefers_json_detail_message (line 525) | def test_format_http_error_prefers_json_detail_message(): function test_collect_live_armability_results_uses_selected_telemetry_rows (line 543) | def test_collect_live_armability_results_uses_selected_telemetry_rows(mo... function test_wait_for_live_launch_readiness_reports_last_probe (line 576) | def test_wait_for_live_launch_readiness_reports_last_probe(monkeypatch): function test_probe_live_armability_for_drone_retries_transient_timeout (line 608) | def test_probe_live_armability_for_drone_retries_transient_timeout(monke... function test_wait_for_live_launch_readiness_requires_stable_ready_samples (line 652) | def test_wait_for_live_launch_readiness_requires_stable_ready_samples(mo... FILE: tools/analyze_smart_swarm_tracking.py class TrackingSample (line 62) | class TrackingSample: function log (line 90) | def log(message: str) -> None: function require (line 94) | def require(condition: bool, message: str) -> None: function latlon_to_ne (line 99) | def latlon_to_ne(lat_deg: float, lon_deg: float, ref_lat_deg: float, ref... function body_to_ne (line 107) | def body_to_ne(offset_forward: float, offset_right: float, yaw_deg: floa... function formation_error (line 114) | def formation_error(leader: dict, follower: dict, entry: dict) -> dict: function parse_args (line 142) | def parse_args() -> argparse.Namespace: function build_demo_swarm_assignments (line 162) | def build_demo_swarm_assignments(ids: list[int], spacing_m: float) -> di... function canonical_assignment (line 180) | def canonical_assignment(entry: dict[str, Any]) -> dict[str, Any]: function assignment_patch_payload (line 190) | def assignment_patch_payload(entry: dict[str, Any]) -> dict[str, Any]: function assignment_semantic_snapshot (line 207) | def assignment_semantic_snapshot(assignments: list[dict[str, Any]], ids)... function assignment_payload_snapshot (line 216) | def assignment_payload_snapshot(assignments: list[dict[str, Any]], ids) ... function apply_assignments (line 225) | def apply_assignments(client: Any, expected_assignments: dict[int, dict[... function build_precision_move_payload (line 254) | def build_precision_move_payload(frame: str, *, north: float = 0.0, east... function build_live_jog_sequence (line 272) | def build_live_jog_sequence(step_m: float) -> list[tuple[str, dict[str, ... function compute_tracking_sample (line 283) | def compute_tracking_sample( function stream_swarm_state (line 345) | async def stream_swarm_state(ip: str, sink: dict[str, Any], key: str, st... function collect_tracking_samples (line 363) | async def collect_tracking_samples( function write_tracking_csv (line 393) | def write_tracking_csv(path: Path, records: list[TrackingSample]) -> None: function plot_tracking (line 403) | def plot_tracking(records: list[TrackingSample], output_dir: Path) -> di... function restore_swarm_resource (line 578) | def restore_swarm_resource(client: Any, original_swarm_resource: dict[st... function main_async (line 589) | async def main_async() -> int: function main (line 830) | def main() -> int: FILE: tools/audit_frontend_ui.py class Finding (line 56) | class Finding: function iter_source_files (line 64) | def iter_source_files() -> Iterable[Path]: function rel (line 70) | def rel(path: Path) -> str: function read_text (line 74) | def read_text(path: Path) -> str: function line_number (line 78) | def line_number(text: str, index: int) -> int: function is_test_file (line 82) | def is_test_file(path: Path) -> bool: function is_allowed_hardcoded_color (line 86) | def is_allowed_hardcoded_color(path: Path, literal: str) -> bool: function audit_hardcoded_colors (line 92) | def audit_hardcoded_colors() -> list[Finding]: function audit_hardcoded_z_index (line 119) | def audit_hardcoded_z_index() -> list[Finding]: function audit_title_attributes (line 138) | def audit_title_attributes() -> list[Finding]: function parse_app_routes (line 159) | def parse_app_routes() -> set[str]: function parse_route_docs (line 164) | def parse_route_docs() -> dict[str, dict[str, str]]: function audit_route_docs (line 175) | def audit_route_docs() -> list[Finding]: function audit_duplicate_primitives (line 210) | def audit_duplicate_primitives() -> list[Finding]: function audit_icon_stack (line 234) | def audit_icon_stack() -> list[Finding]: function audit_dependency_mismatch (line 262) | def audit_dependency_mismatch() -> list[Finding]: function run_audit (line 295) | def run_audit() -> dict[str, object]: function format_text_report (line 321) | def format_text_report(report: dict[str, object], max_items: int) -> str: function main (line 353) | def main() -> int: FILE: tools/audit_mds_env_registry.py class EnvReference (line 60) | class EnvReference: method display (line 66) | def display(self) -> str: class InternalAllowlist (line 71) | class InternalAllowlist: method matches (line 77) | def matches(self, key: str) -> bool: class EnvAuditResult (line 82) | class EnvAuditResult: method passed (line 90) | def passed(self) -> bool: method reference_count (line 94) | def reference_count(self) -> int: function _load_registry_keys (line 102) | def _load_registry_keys(registry_path: Path | None = None) -> set[str]: function load_internal_allowlist (line 116) | def load_internal_allowlist(path: Path = DEFAULT_ALLOWLIST_PATH) -> Inte... function _is_ignored_path (line 139) | def _is_ignored_path(path: str | Path) -> bool: function _iter_scan_files (line 151) | def _iter_scan_files(scan_roots: Iterable[str | Path]) -> Iterable[Path]: function collect_mds_env_references (line 173) | def collect_mds_env_references(scan_roots: Iterable[str | Path] = DEFAUL... function audit_mds_env_references (line 195) | def audit_mds_env_references( function _format_result (line 217) | def _format_result(result: EnvAuditResult) -> str: function main (line 235) | def main(argv: list[str] | None = None) -> int: FILE: tools/bump_version.py function get_git_commits_since_last_tag (line 21) | def get_git_commits_since_last_tag(): function analyze_commits (line 61) | def analyze_commits(commits): function read_current_version (line 104) | def read_current_version(): function bump_version (line 119) | def bump_version(current_version, bump_type): function write_version (line 144) | def write_version(new_version): function update_changelog (line 150) | def update_changelog(new_version, bump_type): function run_version_sync (line 195) | def run_version_sync(): function main (line 219) | def main(): FILE: tools/check_runtime_venv.py function _read_cfg_version (line 13) | def _read_cfg_version(pyvenv_cfg: Path) -> str | None: function _runtime_metadata (line 25) | def _runtime_metadata(venv_python: Path, modules: list[str]) -> dict: function validate_venv (line 66) | def validate_venv(venv_dir: Path, modules: list[str]) -> tuple[bool, str]: function main (line 126) | def main() -> int: FILE: tools/generate_hover_test.py function calculate_phase_durations (line 46) | def calculate_phase_durations(): function get_hover_light_show (line 57) | def get_hover_light_show(t_hover): function generate_trajectory (line 72) | def generate_trajectory(): function main (line 115) | def main(): FILE: tools/generate_mds_env_reference.py function _escape_cell (line 20) | def _escape_cell(value: Any) -> str: function _code_cell (line 26) | def _code_cell(value: Any) -> str: function _docs_link (line 33) | def _docs_link(entry: EnvRegistryEntry) -> str: function _entry_anchor (line 43) | def _entry_anchor(entry: EnvRegistryEntry) -> str: function _entry_detail_lines (line 47) | def _entry_detail_lines(entry: EnvRegistryEntry) -> list[str]: function build_env_reference_markdown (line 75) | def build_env_reference_markdown(registry: EnvRegistry | None = None) ->... function main (line 118) | def main(argv: list[str] | None = None) -> int: FILE: tools/generate_release_notes.py function get_git_commits_since_last_tag (line 17) | def get_git_commits_since_last_tag(): function parse_conventional_commit (line 67) | def parse_conventional_commit(commit): function categorize_commits (line 94) | def categorize_commits(commits): function generate_release_notes (line 135) | def generate_release_notes(): FILE: tools/mavlink_forward.py function forward_mavlink (line 3) | def forward_mavlink(src_ip, src_port, dest_ip, dest_port): FILE: tools/mds_auth_admin.py function _load_gcs_env (line 21) | def _load_gcs_env(path: Path) -> dict[str, str]: function _write_gcs_env (line 35) | def _write_gcs_env(path: Path, updates: dict[str, str]) -> None: function _settings (line 58) | def _settings() -> AuthSettings: function _service (line 65) | def _service() -> AuthService: function _read_password (line 69) | def _read_password(args) -> str: function cmd_status (line 81) | def cmd_status(args) -> int: function cmd_enable_disable (line 96) | def cmd_enable_disable(args) -> int: function cmd_add_user (line 108) | def cmd_add_user(args) -> int: function cmd_set_password (line 122) | def cmd_set_password(args) -> int: function cmd_create_token (line 130) | def cmd_create_token(args) -> int: function cmd_revoke_token (line 144) | def cmd_revoke_token(args) -> int: function cmd_rotate_session_secret (line 151) | def cmd_rotate_session_secret(args) -> int: function build_parser (line 164) | def build_parser() -> argparse.ArgumentParser: function main (line 208) | def main(argv: list[str] | None = None) -> int: FILE: tools/migrate_csv_to_json.py function csv_to_config_json (line 5) | def csv_to_config_json(csv_path): function csv_to_swarm_json (line 20) | def csv_to_swarm_json(csv_path): function convert (line 43) | def convert(csv_path, converter): FILE: tools/package_runtime_evidence_report.py function read_json (line 25) | def read_json(path: Path) -> dict[str, Any]: function write_text (line 33) | def write_text(path: Path, text: str) -> None: function safe_slug (line 38) | def safe_slug(value: str) -> str: function repo_commit (line 43) | def repo_commit(repo_root: Path | None) -> str: function command_status (line 56) | def command_status(value: Any) -> str: function find_command_rows (line 62) | def find_command_rows(summary: dict[str, Any]) -> list[tuple[str, str, s... function markdown_table (line 86) | def markdown_table(headers: list[str], rows: list[list[str]]) -> str: function timing_rows (line 97) | def timing_rows(metrics: dict[str, Any]) -> list[list[str]]: function tracking_rows (line 110) | def tracking_rows(metrics: dict[str, Any]) -> list[list[str]]: function event_rows (line 134) | def event_rows(summary: dict[str, Any]) -> list[list[str]]: function copy_visuals (line 153) | def copy_visuals(visuals_dir: Path | None, output_visuals_dir: Path, pre... function copy_evidence (line 168) | def copy_evidence( function render_assets (line 191) | def render_assets(visual_files: list[str]) -> str: function build_report (line 201) | def build_report( function css_text (line 277) | def css_text() -> str: function render_pdf (line 310) | def render_pdf(markdown_path: Path, html_path: Path, pdf_path: Path, css... function parse_args (line 334) | def parse_args() -> argparse.Namespace: function main (line 352) | def main() -> int: FILE: tools/rtk_streamer_gui/main.py class SerialReader (line 79) | class SerialReader(threading.Thread): method __init__ (line 85) | def __init__(self, port, baud, rtcm_queue, stop_event, gui): method run (line 93) | def run(self): class RTKDistributor (line 132) | class RTKDistributor(threading.Thread): method __init__ (line 137) | def __init__(self, drone_list, port, rtcm_queue, stop_event, gui): method _setup_sockets (line 148) | def _setup_sockets(self): method run (line 158) | def run(self): method _send_packet (line 170) | def _send_packet(self, data: bytes): class DroneConfig (line 188) | class DroneConfig: method __init__ (line 189) | def __init__(self, path=CONFIG_JSON): method load (line 191) | def load(self): class RTKStreamerGUI (line 209) | class RTKStreamerGUI: method __init__ (line 210) | def __init__(self, master): method record_input (line 223) | def record_input(self): method _build_ui (line 227) | def _build_ui(self): method _populate_table (line 289) | def _populate_table(self): method set_base_status (line 293) | def set_base_status(self, ok): method set_rtcm_status (line 297) | def set_rtcm_status(self, ok): method _toggle_stream (line 301) | def _toggle_stream(self): method _schedule_poll (line 323) | def _schedule_poll(self): method _log (line 349) | def _log(self, msg, level='info'): FILE: tools/run_sitl_validation_suite.py class SuitePlanStep (line 130) | class SuitePlanStep: class SuiteStep (line 139) | class SuiteStep: function log (line 151) | def log(message: str) -> None: function parse_modes (line 155) | def parse_modes(raw: str) -> list[str]: function default_artifact_dir (line 170) | def default_artifact_dir(validator_root: Path) -> Path: function sanitize_step_name (line 175) | def sanitize_step_name(raw: str) -> str: function option_value (line 180) | def option_value(args: argparse.Namespace, options: dict[str, Any], key:... function normalize_step_drone_ids (line 184) | def normalize_step_drone_ids(drone_ids: list[int] | tuple[int, ...] | No... function build_drone_show_command (line 189) | def build_drone_show_command( function build_configuration_command (line 218) | def build_configuration_command( function build_actions_command (line 247) | def build_actions_command( function build_smart_swarm_command (line 270) | def build_smart_swarm_command( function build_swarm_trajectory_command (line 304) | def build_swarm_trajectory_command( function build_integrated_runtime_command (line 348) | def build_integrated_runtime_command( function build_quickscout_command (line 403) | def build_quickscout_command( function build_px4_params_command (line 452) | def build_px4_params_command( function build_ulog_command (line 475) | def build_ulog_command( function list_templates (line 514) | def list_templates() -> str: function canonical_plan_payload (line 522) | def canonical_plan_payload(plan_steps: list[SuitePlanStep]) -> list[dict... function compute_plan_hash (line 535) | def compute_plan_hash(plan_steps: list[SuitePlanStep]) -> str: function load_json_object_file (line 540) | def load_json_object_file(path: Path, *, label: str) -> dict[str, Any]: function bundled_plan_catalog (line 553) | def bundled_plan_catalog() -> dict[str, dict[str, Any]]: function list_bundled_plans (line 569) | def list_bundled_plans() -> str: function resolve_bundled_plan_path (line 582) | def resolve_bundled_plan_path(plan_name: str) -> Path: function git_metadata (line 591) | def git_metadata(repo_root: Path) -> dict[str, Any]: function collect_provenance (line 620) | def collect_provenance(args: argparse.Namespace, plan_steps: list[SuiteP... function build_template_plan (line 647) | def build_template_plan(template_name: str, default_ids: list[int]) -> l... function build_modes_plan (line 669) | def build_modes_plan(modes: list[str], default_ids: list[int]) -> list[S... function load_plan_file (line 681) | def load_plan_file(plan_file: Path, default_ids: list[int]) -> list[Suit... function insert_automatic_resets (line 735) | def insert_automatic_resets(args: argparse.Namespace, plan_steps: list[S... function resolve_plan_steps (line 784) | def resolve_plan_steps(args: argparse.Namespace) -> list[SuitePlanStep]: function build_suite_steps (line 794) | def build_suite_steps(args: argparse.Namespace, artifact_dir: Path) -> l... function run_step (line 860) | def run_step(step: SuiteStep, *, dry_run: bool = False) -> dict[str, Any]: function write_suite_summary (line 914) | def write_suite_summary(summary_path: Path, summary: dict[str, Any], *, ... function run_failure_cleanup (line 920) | def run_failure_cleanup(args: argparse.Namespace, artifact_dir: Path) ->... function parse_args (line 955) | def parse_args() -> argparse.Namespace: function main (line 1087) | def main() -> int: FILE: tools/run_with_log_policy.py function positive_int (line 27) | def positive_int(value: str) -> int: function build_parser (line 34) | def build_parser() -> argparse.ArgumentParser: class LogWriter (line 77) | class LogWriter: method __init__ (line 78) | def __init__( method close (line 98) | def close(self) -> None: method _rotate (line 103) | def _rotate(self) -> None: method write (line 126) | def write(self, data: bytes) -> None: function run_child (line 144) | def run_child(args: argparse.Namespace) -> int: function main (line 196) | def main() -> int: FILE: tools/runtime_validation_support.py function require (line 10) | def require(condition: bool, message: str) -> None: function normalize_drone_ids (line 15) | def normalize_drone_ids(ids: Iterable[int]) -> list[int]: function contiguous_fleet_reset_parameters (line 22) | def contiguous_fleet_reset_parameters(drone_ids: Iterable[int]) -> dict[... function parse_csv_drone_ids (line 37) | def parse_csv_drone_ids(raw: str) -> list[int]: function build_sitl_reset_command (line 42) | def build_sitl_reset_command(drone_ids: Iterable[int]) -> list[str]: function write_json_report (line 52) | def write_json_report(path: Path | str | None, payload: dict[str, Any]) ... FILE: tools/sitl_control_client.py class SitlControlClientError (line 34) | class SitlControlClientError(RuntimeError): function log (line 38) | def log(message: str) -> None: function _normalize_base_url (line 42) | def _normalize_base_url(base_url: str) -> str: function _env_flag (line 46) | def _env_flag(name: str, default: bool) -> bool: function _optional_env (line 58) | def _optional_env(name: str) -> str | None: function _request_json (line 66) | def _request_json( function build_reconcile_request (line 92) | def build_reconcile_request(drone_ids: list[int]) -> dict[str, Any]: function get_policy (line 111) | def get_policy(base_url: str, *, timeout_sec: float = 5.0) -> dict[str, ... function start_reconcile (line 115) | def start_reconcile(base_url: str, drone_ids: list[int], *, timeout_sec:... function get_operation (line 125) | def get_operation(base_url: str, operation_id: str, *, timeout_sec: floa... function is_api_usable (line 130) | def is_api_usable(base_url: str, *, timeout_sec: float = 5.0) -> tuple[b... function wait_for_operation (line 146) | def wait_for_operation( function run_api_reconcile (line 174) | def run_api_reconcile( function run_shell_reconcile (line 201) | def run_shell_reconcile( function run_reconcile (line 233) | def run_reconcile( function parse_args (line 270) | def parse_args() -> argparse.Namespace: function main (line 291) | def main() -> int: FILE: tools/sitl_stop_all.py function _request_json (line 13) | def _request_json(method: str, url: str, payload: dict | None = None, ti... function main (line 27) | def main() -> int: FILE: tools/spa_static_server.py function build_parser (line 35) | def build_parser() -> argparse.ArgumentParser: class SPARequestHandler (line 43) | class SPARequestHandler(SimpleHTTPRequestHandler): method __init__ (line 44) | def __init__(self, *args, directory: str, **kwargs): method send_head (line 49) | def send_head(self): method end_headers (line 61) | def end_headers(self): method _send_head_with_optional_gzip (line 67) | def _send_head_with_optional_gzip(self): method _should_fallback_to_index (line 98) | def _should_fallback_to_index(self) -> bool: method _should_serve_gzip (line 114) | def _should_serve_gzip(self, translated_path: Path, size_bytes: int) -... method _cache_control_for_request (line 122) | def _cache_control_for_request(self) -> str: method _gzip_bytes (line 132) | def _gzip_bytes(path_str: str, mtime_ns: int, size_bytes: int) -> bytes: function main (line 137) | def main() -> int: FILE: tools/validate_actions_runtime.py class _FallbackParams (line 61) | class _FallbackParams: function normalize_drone_ids (line 84) | def normalize_drone_ids(ids): function parse_csv_drone_ids (line 90) | def parse_csv_drone_ids(raw): function write_json_report (line 94) | def write_json_report(path, payload): function calculate_land_disarm_timeout (line 101) | def calculate_land_disarm_timeout(relative_altitude_m, *, params=Params): function calculate_rtl_completion_timeout (line 111) | def calculate_rtl_completion_timeout(relative_altitude_m, *, params=Para... function calculate_live_armability_request_timeout (line 119) | def calculate_live_armability_request_timeout(*, params=Params): function log (line 138) | def log(message: str) -> None: function require (line 142) | def require(condition: bool, message: str) -> None: function decode_http_error_detail (line 147) | def decode_http_error_detail(exc: urllib.error.HTTPError) -> str: function format_http_error (line 172) | def format_http_error(exc: urllib.error.HTTPError) -> str: class ApiClient (line 176) | class ApiClient: method __init__ (line 177) | def __init__(self, base_url: str) -> None: method get_json (line 180) | def get_json(self, path: str) -> dict: method post_json (line 187) | def post_json(self, path: str, payload: dict) -> dict: method get_drone_json (line 201) | def get_drone_json(self, drone_ip: str, path: str, *, timeout: float =... method get_telemetry (line 209) | def get_telemetry(self) -> dict[str, dict]: method submit_command (line 214) | def submit_command( method probe_live_armability (line 234) | def probe_live_armability(self, drone_ip: str, *, require_global_posit... function wait_for (line 248) | def wait_for(predicate, *, label: str, timeout: int = 90, interval: floa... function command_summary (line 260) | def command_summary(status: dict) -> dict: function _is_safe_interrupted_terminal_status (line 293) | def _is_safe_interrupted_terminal_status(status: dict[str, Any]) -> bool: function require_full_acceptance (line 299) | def require_full_acceptance(status: dict, expected_count: int, label: st... function require_full_execution (line 308) | def require_full_execution(status: dict, expected_count: int, label: str... function _telemetry_has_ids (line 317) | def _telemetry_has_ids(telemetry: dict[str, dict], ids: list[int]) -> bool: function _is_idle_baseline_row (line 321) | def _is_idle_baseline_row(row: dict) -> bool: function _is_idle_reset_row (line 346) | def _is_idle_reset_row(row: dict) -> bool: function _is_airborne_row (line 352) | def _is_airborne_row(row: dict, baseline_altitude: float, *, min_gain: f... function _is_hold_ready_row (line 360) | def _is_hold_ready_row(row: dict, baseline_altitude: float, *, min_gain:... function _local_position_from_snapshot (line 367) | def _local_position_from_snapshot(snapshot: dict) -> tuple[float, float,... function choose_override_targets (line 375) | def choose_override_targets(ids: list[int]) -> tuple[list[int], list[int]]: function wait_api_ready (line 382) | def wait_api_ready(client: ApiClient, timeout: int = 60): function wait_for_command (line 392) | def wait_for_command( function wait_fleet_ready (line 417) | def wait_fleet_ready(client: ApiClient, ids: list[int], timeout: int = 1... function wait_idle_subset (line 430) | def wait_idle_subset(client: ApiClient, ids: list[int], timeout: int = 2... function wait_altitude_gain (line 443) | def wait_altitude_gain(client: ApiClient, ids: list[int], baseline_altit... function wait_hold_ready (line 456) | def wait_hold_ready(client: ApiClient, ids: list[int], baseline_altitude... function wait_remaining_airborne (line 471) | def wait_remaining_airborne( function wait_for_live_launch_readiness (line 491) | def wait_for_live_launch_readiness(client: ApiClient, ids: list[int], ti... function get_local_snapshots (line 512) | def get_local_snapshots(client: ApiClient, telemetry: dict[str, dict], i... function wait_precision_move_settle (line 531) | def wait_precision_move_settle( function wait_local_position_offset_at_least (line 570) | def wait_local_position_offset_at_least( function parse_args (line 604) | def parse_args() -> argparse.Namespace: function resolve_selected_ids (line 623) | def resolve_selected_ids(args: argparse.Namespace) -> list[int]: function main (line 631) | def main() -> int: FILE: tools/validate_commits.py function get_pr_commits (line 16) | def get_pr_commits(): function is_conventional_commit (line 54) | def is_conventional_commit(message): function validate_commits (line 81) | def validate_commits(): FILE: tools/validate_configuration_runtime.py function log (line 75) | def log(message: str) -> None: function require (line 79) | def require(condition: bool, message: str) -> None: function decode_http_error_detail (line 84) | def decode_http_error_detail(exc: urllib.error.HTTPError) -> str: function format_http_error (line 109) | def format_http_error(exc: urllib.error.HTTPError) -> str: class ApiClient (line 113) | class ApiClient: method __init__ (line 114) | def __init__(self, base_url: str) -> None: method get_json (line 117) | def get_json(self, path: str) -> dict[str, Any]: method post_json (line 124) | def post_json(self, path: str, payload: dict[str, Any] | list[dict[str... method put_json (line 138) | def put_json(self, path: str, payload: dict[str, Any] | list[dict[str,... method patch_json (line 152) | def patch_json(self, path: str, payload: dict[str, Any]) -> dict[str, ... method get_fleet_config (line 166) | def get_fleet_config(self) -> list[dict[str, Any]]: method validate_fleet_config (line 171) | def validate_fleet_config(self, payload: list[dict[str, Any]]) -> dict... method put_fleet_config (line 174) | def put_fleet_config(self, payload: list[dict[str, Any]], *, commit: b... method get_swarm_config (line 178) | def get_swarm_config(self) -> dict[str, Any]: method put_swarm_config (line 183) | def put_swarm_config(self, payload: dict[str, Any], *, commit: bool = ... method patch_swarm_assignment (line 187) | def patch_swarm_assignment(self, hw_id: int, payload: dict[str, Any]) ... method get_telemetry (line 190) | def get_telemetry(self) -> dict[str, dict[str, Any]]: method get_origin (line 195) | def get_origin(self) -> dict[str, Any]: method put_origin (line 198) | def put_origin(self, payload: dict[str, Any]) -> dict[str, Any]: method get_origin_bootstrap (line 201) | def get_origin_bootstrap(self) -> dict[str, Any]: method get_global_origin (line 204) | def get_global_origin(self) -> dict[str, Any]: method compute_origin (line 207) | def compute_origin(self, payload: dict[str, Any]) -> dict[str, Any]: method get_origin_deviations (line 210) | def get_origin_deviations(self) -> dict[str, Any]: method get_gcs_config (line 213) | def get_gcs_config(self) -> dict[str, Any]: function wait_for (line 217) | def wait_for(predicate, *, label: str, timeout: int = 60, interval: floa... function wait_api_ready (line 229) | def wait_api_ready(client: ApiClient, timeout: int = 60): function fleet_by_hw_id (line 239) | def fleet_by_hw_id(entries: list[dict[str, Any]]) -> dict[int, dict[str,... function swarm_assignments_by_hw_id (line 250) | def swarm_assignments_by_hw_id(payload: dict[str, Any] | list[dict[str, ... function build_collision_validation_payload (line 262) | def build_collision_validation_payload(entries: list[dict[str, Any]], se... function build_fleet_metadata_update (line 281) | def build_fleet_metadata_update(entries: list[dict[str, Any]], selected_... function build_slot_reassignment_update (line 309) | def build_slot_reassignment_update( function select_swarm_target (line 338) | def select_swarm_target(assignments: dict[int, dict[str, Any]], selected... function build_swarm_put_update (line 349) | def build_swarm_put_update(payload: dict[str, Any], *, target_hw_id: int... function build_swarm_patch_update (line 361) | def build_swarm_patch_update(current_assignment: dict[str, Any], *, patc... function select_origin_compute_source (line 371) | def select_origin_compute_source( function load_origin_file_snapshot (line 396) | def load_origin_file_snapshot(repo_root: Path) -> dict[str, Any]: function restore_origin_file_snapshot (line 407) | def restore_origin_file_snapshot(snapshot: dict[str, Any]) -> dict[str, ... function resolve_selected_ids (line 419) | def resolve_selected_ids(args: argparse.Namespace) -> list[int]: function parse_args (line 427) | def parse_args() -> argparse.Namespace: function main (line 445) | def main() -> int: FILE: tools/validate_drone_show_runtime.py function log (line 66) | def log(message: str) -> None: class CommandRun (line 71) | class CommandRun: class ApiClient (line 77) | class ApiClient: method __init__ (line 78) | def __init__(self, base_url: str) -> None: method _build_session (line 82) | def _build_session(self) -> requests.Session: method _reset_session (line 87) | def _reset_session(self) -> None: method get_json (line 94) | def get_json(self, path: str) -> dict: method post_json (line 109) | def post_json(self, path: str, payload: dict) -> dict: method post_file (line 114) | def post_file(self, path: str, file_path: Path) -> dict: method get_telemetry (line 124) | def get_telemetry(self) -> dict[str, dict]: method submit_command (line 129) | def submit_command( method probe_live_armability (line 149) | def probe_live_armability(self, drone_ip: str, *, require_global_posit... function require (line 159) | def require(condition: bool, message: str) -> None: function wait_for (line 164) | def wait_for(predicate, *, label: str, timeout: int, interval: float = 1... function command_summary (line 176) | def command_summary(status: dict) -> dict: function wait_api_ready (line 202) | def wait_api_ready(client: ApiClient, timeout: int = 60) -> dict: function wait_for_command (line 212) | def wait_for_command( function build_show_zip (line 237) | def build_show_zip(source_dir: Path) -> Path: function ensure_imported_show (line 252) | def ensure_imported_show(client: ApiClient, source_dir: Path | None, exp... function ensure_custom_show_ready (line 266) | def ensure_custom_show_ready(client: ApiClient) -> dict: function idle_row (line 272) | def idle_row(row: dict) -> bool: function wait_for_idle (line 283) | def wait_for_idle(client: ApiClient, ids: list[int], timeout: int = 120)... function wait_for_pending_execution (line 295) | def wait_for_pending_execution(client: ApiClient, ids: list[int], timeou... function wait_for_executing (line 311) | def wait_for_executing(client: ApiClient, ids: list[int], mission_type: ... function wait_for_relative_altitude (line 327) | def wait_for_relative_altitude(client: ApiClient, target_id: int, baseli... function check_deviation_signal (line 352) | def check_deviation_signal(client: ApiClient, ids: list[int]) -> None: function wait_for_show_launch_ready (line 373) | def wait_for_show_launch_ready(client: ApiClient, ids: list[int], timeou... function wait_for_live_launch_probe_ready (line 395) | def wait_for_live_launch_probe_ready(client: ApiClient, ids: list[int], ... function wait_for_dispatch_readiness (line 441) | def wait_for_dispatch_readiness(client: ApiClient, ids: list[int], timeo... function extract_http_error_detail (line 447) | def extract_http_error_detail(exc: requests.HTTPError) -> str: function reset_sitl_fleet (line 470) | def reset_sitl_fleet(client: ApiClient, repo_root: Path, ids: list[int],... function submit_show_command_with_retry (line 498) | def submit_show_command_with_retry( function run_show_mode (line 524) | def run_show_mode( function run_custom_show_mode (line 558) | def run_custom_show_mode(client: ApiClient, ids: list[int], *, label: st... function run_override_drill (line 576) | def run_override_drill(client: ApiClient, ids: list[int], *, label: str)... function cleanup_land (line 639) | def cleanup_land(client: ApiClient, ids: list[int], *, label: str, timeo... function main (line 650) | def main() -> int: FILE: tools/validate_integrated_runtime.py class ApiClient (line 93) | class ApiClient(BaseApiClient): method patch_json (line 96) | def patch_json(self, path: str, payload: dict[str, Any]) -> dict[str, ... method get_swarm (line 110) | def get_swarm(self) -> list[dict[str, Any]]: method update_assignment (line 117) | def update_assignment(self, hw_id: int, **kwargs: Any) -> dict[str, Any]: function resolve_selected_ids (line 130) | def resolve_selected_ids(args: argparse.Namespace) -> list[int]: function build_demo_swarm_assignments (line 138) | def build_demo_swarm_assignments(ids: list[int], *, spacing_m: float) ->... function build_reassignment_patch (line 176) | def build_reassignment_patch(ids: list[int], *, reassign_offset_m: float... function apply_assignments (line 191) | def apply_assignments( function wait_active_missions (line 220) | def wait_active_missions( function wait_followers_remain_in_swarm (line 252) | def wait_followers_remain_in_swarm( function parse_args (line 277) | def parse_args() -> argparse.Namespace: function main (line 304) | def main() -> int: FILE: tools/validate_onboard_ulog_runtime.py function log (line 49) | def log(message: str) -> None: function parse_args (line 53) | def parse_args() -> argparse.Namespace: function resolve_selected_ids (line 65) | def resolve_selected_ids(args: argparse.Namespace) -> list[int]: function get_json (line 73) | def get_json(client: ApiClient, path: str) -> dict[str, Any]: function post_json (line 77) | def post_json(client: ApiClient, path: str, payload: dict[str, Any] | No... function download_binary (line 81) | def download_binary(base_url: str, path: str) -> tuple[bytes, dict[str, ... function wait_for_ulogs (line 92) | def wait_for_ulogs(client: ApiClient, drone_id: int, *, timeout: int) ->... function _list_if_nonempty (line 101) | def _list_if_nonempty(client: ApiClient, drone_id: int) -> dict[str, Any... function wait_for_empty_ulogs (line 106) | def wait_for_empty_ulogs(client: ApiClient, drone_id: int, *, timeout: i... function _list_if_empty (line 115) | def _list_if_empty(client: ApiClient, drone_id: int) -> dict[str, Any] |... function wait_for_download_job (line 120) | def wait_for_download_job(client: ApiClient, drone_id: int, job_id: str,... function _job_if_terminal (line 129) | def _job_if_terminal(client: ApiClient, drone_id: int, job_id: str) -> d... function extract_filename (line 137) | def extract_filename(headers: dict[str, str], fallback: str) -> str: function main (line 145) | def main() -> None: FILE: tools/validate_px4_params_runtime.py function normalize_drone_ids (line 41) | def normalize_drone_ids(ids): function parse_csv_drone_ids (line 47) | def parse_csv_drone_ids(raw): function write_json_report (line 50) | def write_json_report(path, payload): function log (line 61) | def log(message: str) -> None: function require (line 65) | def require(condition: bool, message: str) -> None: function format_http_error (line 70) | def format_http_error(exc: urllib.error.HTTPError) -> str: class ApiClient (line 82) | class ApiClient: method __init__ (line 83) | def __init__(self, base_url: str) -> None: method request_json (line 86) | def request_json( method get_json (line 107) | def get_json(self, path: str, *, timeout: float = 20.0) -> dict[str, A... method get_drone_json (line 110) | def get_drone_json(self, drone_ip: str, path: str, *, timeout: float =... method get_telemetry (line 118) | def get_telemetry(self) -> dict[str, dict[str, Any]]: method post_json (line 123) | def post_json(self, path: str, payload: dict[str, Any], *, timeout: fl... function parse_args (line 127) | def parse_args() -> argparse.Namespace: function resolve_selected_ids (line 138) | def resolve_selected_ids(args: argparse.Namespace) -> list[int]: function wait_for_health (line 146) | def wait_for_health(client: ApiClient) -> None: function get_policy (line 151) | def get_policy(client: ApiClient) -> dict[str, Any]: function wait_for (line 157) | def wait_for(predicate, *, label: str, timeout: int = 90, interval: floa... function _selected_drone_api_health_snapshot (line 169) | def _selected_drone_api_health_snapshot(client: ApiClient, drone_ids: li... function wait_for_selected_drone_api_health (line 191) | def wait_for_selected_drone_api_health( function refresh_snapshots (line 205) | def refresh_snapshots(client: ApiClient, drone_ids: list[int], *, compon... function find_param_row (line 223) | def find_param_row(snapshot: dict[str, Any], param_name: str) -> dict[st... function choose_param_value (line 231) | def choose_param_value(row: dict[str, Any], *, delta: float) -> int | fl... function build_qgc_file (line 260) | def build_qgc_file(*, hw_id: str, component_id: int, name: str, value: i... function diff_imported_patch (line 269) | def diff_imported_patch(client: ApiClient, snapshot_id: str, import_entr... function run_patch_job (line 280) | def run_patch_job( function assert_patch_job_success (line 300) | def assert_patch_job_success(job: dict[str, Any], *, expect_targets: int... function validate_snapshot_value (line 310) | def validate_snapshot_value(snapshot: dict[str, Any], *, param_name: str... function select_baseline_rows (line 319) | def select_baseline_rows( function main (line 329) | def main() -> int: FILE: tools/validate_quickscout_runtime.py class _FallbackParams (line 46) | class _FallbackParams: function calculate_live_armability_request_timeout (line 61) | def calculate_live_armability_request_timeout(*, params): function normalize_drone_ids (line 76) | def normalize_drone_ids(ids): function parse_csv_drone_ids (line 82) | def parse_csv_drone_ids(raw): function write_json_report (line 85) | def write_json_report(path, payload): function log (line 100) | def log(message: str) -> None: function require (line 104) | def require(condition: bool, message: str) -> None: function format_http_error (line 109) | def format_http_error(exc: urllib.error.HTTPError) -> str: class ApiClient (line 121) | class ApiClient: method __init__ (line 122) | def __init__(self, base_url: str) -> None: method request_json (line 125) | def request_json( method get_json (line 150) | def get_json(self, path: str, *, timeout: float = 20.0) -> dict[str, A... method post_json (line 153) | def post_json( method get_telemetry (line 163) | def get_telemetry(self) -> dict[str, dict[str, Any]]: function wait_for (line 169) | def wait_for(predicate, *, label: str, timeout: int = 90, interval: floa... function _telemetry_has_ids (line 181) | def _telemetry_has_ids(telemetry: dict[str, dict[str, Any]], ids: list[i... function _is_idle_baseline_row (line 185) | def _is_idle_baseline_row(row: dict[str, Any]) -> bool: function _is_idle_reset_row (line 210) | def _is_idle_reset_row(row: dict[str, Any]) -> bool: function _is_airborne_row (line 216) | def _is_airborne_row(row: dict[str, Any], baseline_altitude: float, *, m... function resolve_selected_ids (line 224) | def resolve_selected_ids(args: argparse.Namespace) -> list[int]: function select_target_drones (line 232) | def select_target_drones( function build_runtime_search_center (line 258) | def build_runtime_search_center(target_rows: list[dict[str, Any]]) -> tu... function offset_geodetic_point (line 266) | def offset_geodetic_point(lat: float, lng: float, *, east_m: float, nort... function build_runtime_request_base (line 281) | def build_runtime_request_base( function build_last_known_point_request (line 319) | def build_last_known_point_request( function build_area_sweep_request (line 358) | def build_area_sweep_request( function build_corridor_search_request (line 404) | def build_corridor_search_request( function build_quickscout_runtime_request (line 449) | def build_quickscout_runtime_request( function wait_api_ready (line 506) | def wait_api_ready(client: ApiClient, timeout: int = 60) -> dict[str, Any]: function wait_fleet_ready (line 516) | def wait_fleet_ready(client: ApiClient, ids: list[int], timeout: int = 1... function wait_idle_subset (line 529) | def wait_idle_subset(client: ApiClient, ids: list[int], timeout: int = 2... function wait_non_targets_idle (line 542) | def wait_non_targets_idle(client: ApiClient, ids: list[int], timeout: in... function _probe_drone_live_armability (line 568) | def _probe_drone_live_armability(row: dict[str, Any]) -> dict[str, Any] ... function wait_targets_launch_probe_ready (line 588) | def wait_targets_launch_probe_ready( function wait_target_airborne (line 620) | def wait_target_airborne( function wait_targets_airborne (line 656) | def wait_targets_airborne( function wait_active_commands_clear (line 695) | def wait_active_commands_clear(client: ApiClient, timeout: int = 120) ->... function detect_foreign_active_commands (line 703) | def detect_foreign_active_commands( function wait_status_phase (line 737) | def wait_status_phase( function wait_command_terminal (line 766) | def wait_command_terminal(client: ApiClient, command_id: str, *, timeout... function require_command_success (line 783) | def require_command_success(status: dict[str, Any], *, expected_accepts:... function validate_findings_and_handoff (line 798) | def validate_findings_and_handoff( function parse_args (line 868) | def parse_args() -> argparse.Namespace: function main (line 897) | def main() -> int: FILE: tools/validate_smart_swarm_runtime.py function log (line 63) | def log(message: str) -> None: class ApiClient (line 67) | class ApiClient: method __init__ (line 68) | def __init__(self, base_url: str) -> None: method get_json (line 71) | def get_json(self, path: str): method post_json (line 75) | def post_json(self, path: str, payload): method patch_json (line 86) | def patch_json(self, path: str, payload): method get_telemetry (line 97) | def get_telemetry(self): method get_swarm (line 102) | def get_swarm(self): method submit_command (line 108) | def submit_command(self, mission_type: int, target_ids: list[int], ope... method update_assignment (line 120) | def update_assignment(self, hw_id: int, **kwargs): function command_summary (line 130) | def command_summary(status: dict) -> dict: function sitl_container_name (line 154) | def sitl_container_name(hw_id: int) -> str: function resolve_leader_dropout_targets (line 158) | def resolve_leader_dropout_targets( function docker_control (line 185) | def docker_control(action: str, hw_id: int, *, timeout: int = 20) -> None: function wait_for (line 202) | def wait_for(predicate, *, label: str, timeout: int = 90, interval: floa... function wait_api_ready (line 214) | def wait_api_ready(client: ApiClient, timeout: int = 60): function wait_for_command (line 224) | def wait_for_command(client: ApiClient, command_id: str, *, desired_phas... function latlon_to_ne (line 242) | def latlon_to_ne(lat_deg: float, lon_deg: float, ref_lat_deg: float, ref... function body_to_ne (line 250) | def body_to_ne(offset_forward: float, offset_right: float, yaw_deg: floa... function snapshot (line 257) | def snapshot(client: ApiClient, ids: list[int]) -> dict[str, dict]: function require (line 262) | def require(condition: bool, message: str) -> None: function _telemetry_has_ids (line 267) | def _telemetry_has_ids(telemetry: dict[str, dict], ids: list[int]) -> bool: function _is_idle_baseline_row (line 271) | def _is_idle_baseline_row(row: dict) -> bool: function _is_idle_reset_row (line 296) | def _is_idle_reset_row(row: dict) -> bool: function build_clusters (line 302) | def build_clusters(assignments: list[dict], allowed_ids: set[int]) -> li... function formation_error (line 326) | def formation_error(leader: dict, follower: dict, entry: dict) -> dict: function cluster_assignments (line 359) | def cluster_assignments(assignments: list[dict], ids: list[int]) -> list... function canonical_assignment (line 364) | def canonical_assignment(entry: dict) -> dict: function assignment_snapshot (line 374) | def assignment_snapshot(assignments: list[dict], ids) -> dict[int, dict]: function restore_assignments (line 383) | def restore_assignments(client: ApiClient, expected_assignments: dict[in... function measure_cluster (line 407) | def measure_cluster(assignments: list[dict], telemetry: dict[str, dict])... function formation_timeout_seconds (line 423) | def formation_timeout_seconds(initial_max_error: float, max_velocity: fl... function wait_altitude (line 430) | def wait_altitude(client: ApiClient, ids: list[int], base_altitudes: dic... function wait_fleet_ready (line 444) | def wait_fleet_ready(client: ApiClient, ids: list[int], timeout: int = 90): function wait_mission (line 461) | def wait_mission(client: ApiClient, ids: list[int], mission_type: int, t... function wait_follow_mode (line 472) | def wait_follow_mode(client: ApiClient, drone_id: int, follow_mode: int,... function wait_swarm_update (line 483) | def wait_swarm_update(client: ApiClient, drone_id: int, *, follow: int |... function wait_for_leader_dropout_failover (line 499) | def wait_for_leader_dropout_failover( function wait_formation (line 556) | def wait_formation( function wait_idle_reset (line 610) | def wait_idle_reset(client: ApiClient, ids: list[int], timeout: int = 180): function cleanup_land (line 621) | def cleanup_land(client: ApiClient, ids: list[int], timeout: int = 180): function require_full_acceptance (line 632) | def require_full_acceptance(status: dict, expected_targets: int, label: ... function require_full_execution (line 641) | def require_full_execution(status: dict, expected_targets: int, label: s... function parse_args (line 650) | def parse_args() -> argparse.Namespace: function resolve_selected_ids (line 675) | def resolve_selected_ids(args: argparse.Namespace) -> list[int]: function main (line 683) | def main() -> int: FILE: tools/validate_swarm_trajectory_runtime.py class _FallbackParams (line 62) | class _FallbackParams: function calculate_land_disarm_timeout (line 80) | def calculate_land_disarm_timeout(relative_altitude_m, *, params=Params): function calculate_swarm_rtl_completion_timeout (line 90) | def calculate_swarm_rtl_completion_timeout(relative_altitude_m, *, param... function calculate_live_armability_request_timeout (line 101) | def calculate_live_armability_request_timeout(*, params=Params): function write_json_report (line 124) | def write_json_report(path, payload): # pragma: no cover - fallback only function log (line 133) | def log(message: str) -> None: function decode_http_error_detail (line 137) | def decode_http_error_detail(exc: urllib.error.HTTPError) -> str: function format_http_error (line 164) | def format_http_error(exc: urllib.error.HTTPError) -> str: class ApiClient (line 168) | class ApiClient: method __init__ (line 169) | def __init__(self, base_url: str) -> None: method get_json (line 172) | def get_json(self, path: str) -> dict: method post_json (line 179) | def post_json(self, path: str, payload: dict) -> dict: method get_telemetry (line 193) | def get_telemetry(self) -> dict[str, dict]: method get_swarm_assignments (line 198) | def get_swarm_assignments(self) -> list[dict]: method submit_command (line 204) | def submit_command( function require (line 225) | def require(condition: bool, message: str) -> None: function wait_for (line 230) | def wait_for(predicate, *, label: str, timeout: int, interval: float = 1... function command_summary (line 242) | def command_summary(status: dict) -> dict: function wait_api_ready (line 275) | def wait_api_ready(client: ApiClient, timeout: int = 60) -> dict: function idle_row (line 285) | def idle_row(row: dict) -> bool: function wait_for_idle (line 296) | def wait_for_idle(client: ApiClient, ids: list[int], timeout: int = 180)... function _probe_live_armability_for_drone_once (line 308) | def _probe_live_armability_for_drone_once( function probe_live_armability_for_drone (line 369) | def probe_live_armability_for_drone( function collect_live_armability_results (line 428) | def collect_live_armability_results( function wait_for_live_launch_readiness (line 485) | def wait_for_live_launch_readiness( function wait_for_command (line 530) | def wait_for_command( function wait_for_executing (line 555) | def wait_for_executing(client: ApiClient, ids: list[int], timeout: int =... function wait_for_altitude_gain (line 571) | def wait_for_altitude_gain(client: ApiClient, baselines: dict[int, float... function latlon_to_ne (line 614) | def latlon_to_ne(lat_deg: float, lon_deg: float, ref_lat_deg: float, ref... function ne_to_latlon (line 622) | def ne_to_latlon(north_m: float, east_m: float, ref_lat_deg: float, ref_... function follower_expectations (line 630) | def follower_expectations(assignments: list[dict], *, active_ids: Iterab... function follower_scope_issues (line 650) | def follower_scope_issues(expectations: dict[int, dict], *, active_ids: ... function load_processed_track (line 666) | def load_processed_track(repo_root: Path, drone_id: int) -> dict[str, Any]: function sample_processed_track (line 700) | def sample_processed_track(track: dict[str, Any], mission_elapsed_s: flo... function processed_formation_expectations (line 726) | def processed_formation_expectations( function selected_top_leaders (line 757) | def selected_top_leaders(assignments: list[dict], *, active_ids: Iterabl... function max_selected_horizontal_offset_m (line 770) | def max_selected_horizontal_offset_m( function recommend_short_profile_entry_delay (line 792) | def recommend_short_profile_entry_delay( function build_short_validation_profile_rows (line 810) | def build_short_validation_profile_rows( function write_short_validation_profiles (line 868) | def write_short_validation_profiles( function snapshot_raw_profiles (line 920) | def snapshot_raw_profiles(repo_root: Path, leader_ids: Iterable[int]) ->... function restore_raw_profiles (line 947) | def restore_raw_profiles(snapshot: dict[str, Any]) -> dict[str, Any]: function evaluate_formation_snapshot (line 973) | def evaluate_formation_snapshot( function wait_for_formation (line 1070) | def wait_for_formation( function max_processed_duration_seconds (line 1164) | def max_processed_duration_seconds(repo_root: Path, *, drone_ids: Iterab... function max_processed_relative_altitude_m (line 1184) | def max_processed_relative_altitude_m( function estimate_command_completion_timeout (line 1224) | def estimate_command_completion_timeout( function cleanup_land (line 1255) | def cleanup_land(client: ApiClient, ids: list[int], label: str, baseline... function main (line 1278) | def main() -> int: FILE: tools/version_sync.py function get_git_commit_hash (line 34) | def get_git_commit_hash(): function get_git_branch (line 52) | def get_git_branch(): function get_git_repo_label (line 84) | def get_git_repo_label(): function read_version (line 109) | def read_version(): function update_python_init (line 126) | def update_python_init(version): function update_package_json (line 157) | def update_package_json(version): function generate_version_js (line 180) | def generate_version_js(version): function validate_only (line 233) | def validate_only(version): function main (line 243) | def main():