Crate melvin_ob

Source
Expand description

Welcome to the onboard software for Team 03 — “Cache us if you can” competing in the 2024/2025 ESA Computer in a Room Challenge. This repository contains the embedded code running on the simulated MELVIN onboard computer, responsible for command execution, event detection, task scheduling and DRS communication during the mission.

Modules§

console_communication 🔒
This module provides the main components for handling communication with the console. It includes the console_endpoint module for managing console endpoints, the console_messenger module for messaging functionality, and the melvin_messages module for defining message structures and protocols.
flight_control 🔒
This module provides core components and functionality for the flight system, including the flight computer, flight state management, orbit calculations, and supervision logic.
http_handler 🔒
This module provides core structs, enums, and utilities for interacting with the DRS backend system. It includes functionalities such as retrieving the objective list or the most recent observation.
imaging 🔒
This module provides various components and utilities for handling camera control, map and objective image buffering in the system.
mode_control 🔒
This module provides the foundational components for mode control, including signal handling and mode context management, which are essential for implementing and switching between various operational modes in the implemented nested state machine.
objective 🔒
This module defines various objectives and their handling system. It includes algorithms for managing and interacting with beacon objectives, as well as zoned and secret objectives. Also this module contains the whole logic for beacon measurements and their filtering.
scheduling 🔒
This module provides the core components for managing tasks and decisions.
util 🔒
This module provides utilities and functionalities for mathematical operations, logging, and the controller keychain.

Macros§

error
event
fatal
info
log
log_burn
obj
warn

Constants§

DT_0 🔒
Shared 0-length timedelta in chrono units
DT_0_STD 🔒
Shared 0-length timedelta in std time units
ENV_BASE_URL 🔒
Environment variable holding the DRS url
ENV_SKIP_RESET 🔒
Environment variable indicating whether to skip the initial reset or not
STATIC_ORBIT_VEL 🔒
Static orbit velocity for closed orbit

Statics§

GLOBAL 🔒

Functions§

init 🔒
main 🔒