Expand description

Kubos API for interacting with Adcole Maryland Aerospace MAI-400 ADACS

All work is done against an instantiated MAI400 struct.

Examples

use mai400_api::*;

// Create a new MAI connection
let mai = MAI400::new("/dev/ttyS5")?;

// Set the GPS time to Jan 01, 2018
mai.set_gps_time(1198800018)?;

// Pull the updated time out of the next standard telemetry message
let (std, _imu, _irehs) = mai.get_message()?;

if let Some(telem) = std {
    println!("Current GPS time: {}", telem.gps_time);
}

Modules

Module for receiving and processing the IREHS telemetry message

Mock objects for use with unit tests

Module for receiving and processing the raw IMU telemetry message

Module for extracting and saving the rotating variables from the standard telemetry messages

Module for receiving and processing the standard telemetry message

Structs

Wrapper for UART stream

IR Earth Horizon Sensor telemetry data

Structure for keplarian elements returned in the standard telemetry message

Structure for MAI-400 device instance

Raw accelerometer and gyroscope data

Structure to contain all possible variables which can be returned by the standard telemetry message’s rotating_variable fields

Standard telemetry packet sent by the MAI-400 every 250ms

Thermopile error flags

Enums

Common Error for MAI Actions

Custom errors for UART actions

Constants

Sync word for raw IMU and IREHS telemetry packets

Type Definitions

Custom error type for MAI400 operations.