CTS-SAT-1-OBC-Firmware
Loading...
Searching...
No Matches
adcs_types.h File Reference
#include <stdint.h>
#include <stdbool.h>
#include <time.h>
Include dependency graph for adcs_types.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ADCS_cmd_ack_struct_t
 
struct  ADCS_id_struct_t
 
struct  ADCS_boot_running_status_struct_t
 
struct  ADCS_comms_status_struct_t
 
struct  ADCS_angular_rates_struct_t
 
struct  ADCS_llh_position_struct_t
 
struct  ADCS_Power_Control_struct_t
 
struct  ADCS_set_unix_time_save_mode_struct_t
 
struct  ADCS_orbit_params_struct_t
 
struct  ADCS_rated_sensor_rates_struct_t
 
struct  ADCS_wheel_speed_struct_t
 
struct  ADCS_magnetorquer_command_struct_t
 
struct  ADCS_raw_magnetometer_values_struct_t
 
struct  ADCS_fine_angular_rates_struct_t
 
struct  ADCS_magnetometer_config_struct_t
 
struct  ADCS_commanded_angles_struct_t
 
struct  ADCS_estimation_params_struct_t
 
struct  ADCS_augmented_sgp4_params_struct_t
 
struct  ADCS_tracking_controller_target_struct_t
 
struct  ADCS_rate_gyro_config_struct_t
 
struct  ADCS_estimated_attitude_angles_struct_t
 
struct  ADCS_magnetic_field_vector_struct_t
 
struct  ADCS_fine_sun_vector_struct_t
 
struct  ADCS_nadir_vector_struct_t
 
struct  ADCS_quaternion_error_vector_struct_t
 
struct  ADCS_estimated_gyro_bias_struct_t
 
struct  ADCS_estimation_innovation_vector_struct_t
 
struct  ADCS_raw_cam_sensor_struct_t
 
struct  ADCS_raw_coarse_sun_sensor_1_to_6_struct_t
 
struct  ADCS_raw_coarse_sun_sensor_7_to_10_struct_t
 
struct  ADCS_cubecontrol_current_struct_t
 
struct  ADCS_raw_gps_status_struct_t
 
struct  ADCS_raw_gps_time_struct_t
 
struct  ADCS_raw_gps_struct_t
 
struct  ADCS_measurements_struct_t
 
struct  ADCS_file_info_struct_t
 
struct  ADCS_download_block_ready_struct_t
 
struct  ADCS_sd_card_format_erase_progress_struct_t
 
struct  ADCS_file_download_buffer_struct_t
 
struct  ADCS_acp_execution_state_struct_t
 
struct  ADCS_current_state_1_struct_t
 
struct  ADCS_raw_star_tracker_struct_t
 
struct  ADCS_sd_log_config_struct
 

Macros

#define ADCS_SD_LOG_BITFIELD_LENGTH_BYTES   10
 
#define ADCS_COMMISSIONING_HAL_DELAY_MS   300
 

Typedefs

typedef enum ADCS_error_flag_enum_t ADCS_error_flag_enum_t
 
typedef enum ADCS_run_mode_enum_t ADCS_run_mode_enum_t
 
typedef enum ADCS_reset_cause_enum_t ADCS_reset_cause_enum_t
 
typedef enum ADCS_boot_cause_enum_t ADCS_boot_cause_enum_t
 
typedef enum ADCS_running_program_enum_t ADCS_running_program_enum_t
 
typedef enum ADCS_control_mode_enum_t ADCS_control_mode_enum_t
 
typedef enum ADCS_estimation_mode_enum_t ADCS_estimation_mode_enum_t
 
typedef enum ADCS_power_select_enum_t ADCS_power_select_enum_t
 
typedef enum ADCS_magnetometer_mode_enum_t ADCS_magnetometer_mode_enum_t
 
typedef enum ADCS_augmented_sgp4_filter_enum_t ADCS_augmented_sgp4_filter_enum_t
 
typedef enum ADCS_axis_select_enum_t ADCS_axis_select_enum_t
 
typedef enum ADCS_capture_result_enum_t ADCS_capture_result_enum_t
 
typedef enum ADCS_detect_result_enum_t ADCS_detect_result_enum_t
 
typedef enum ADCS_which_cam_sensor_enum_t ADCS_which_cam_sensor_enum_t
 
typedef enum ADCS_gps_solution_status_enum_t ADCS_gps_solution_status_enum_t
 
typedef enum ADCS_gps_axis_enum_t ADCS_gps_axis_enum_t
 
typedef enum ADCS_file_type_enum_t ADCS_file_type_enum_t
 
typedef enum ADCS_current_execution_point_enum_t ADCS_current_execution_point_enum_t
 
typedef enum ADCS_asgp4_mode_enum_t ADCS_asgp4_mode_enum_t
 
typedef enum ADCS_camera_select_enum_t ADCS_camera_select_enum_t
 
typedef enum ADCS_image_size_enum_t ADCS_image_size_enum_t
 
typedef enum ADCS_sd_log_destination_enum_t ADCS_sd_log_destination_enum_t
 
typedef enum ADCS_commissioning_step_enum_t ADCS_commissioning_step_enum_t
 
typedef struct ADCS_cmd_ack_struct_t ADCS_cmd_ack_struct_t
 
typedef struct ADCS_id_struct_t ADCS_id_struct_t
 
typedef struct ADCS_boot_running_status_struct_t ADCS_boot_running_status_struct_t
 
typedef struct ADCS_comms_status_struct_t ADCS_comms_status_struct_t
 
typedef struct ADCS_angular_rates_struct_t ADCS_angular_rates_struct_t
 
typedef struct ADCS_llh_position_struct_t ADCS_llh_position_struct_t
 
typedef struct ADCS_Power_Control_struct_t ADCS_power_control_struct_t
 
typedef struct ADCS_set_unix_time_save_mode_struct_t ADCS_set_unix_time_save_mode_struct_t
 
typedef struct ADCS_orbit_params_struct_t ADCS_orbit_params_struct_t
 
typedef struct ADCS_rated_sensor_rates_struct_t ADCS_rated_sensor_rates_struct_t
 
typedef struct ADCS_wheel_speed_struct_t ADCS_wheel_speed_struct_t
 
typedef struct ADCS_magnetorquer_command_struct_t ADCS_magnetorquer_command_struct_t
 
typedef struct ADCS_raw_magnetometer_values_struct_t ADCS_raw_magnetometer_values_struct_t
 
typedef struct ADCS_fine_angular_rates_struct_t ADCS_fine_angular_rates_struct_t
 
typedef struct ADCS_magnetometer_config_struct_t ADCS_magnetometer_config_struct_t
 
typedef struct ADCS_commanded_angles_struct_t ADCS_commanded_angles_struct_t
 
typedef struct ADCS_estimation_params_struct_t ADCS_estimation_params_struct_t
 
typedef struct ADCS_augmented_sgp4_params_struct_t ADCS_augmented_sgp4_params_struct_t
 
typedef struct ADCS_tracking_controller_target_struct_t ADCS_tracking_controller_target_struct_t
 
typedef struct ADCS_rate_gyro_config_struct_t ADCS_rate_gyro_config_struct_t
 
typedef struct ADCS_estimated_attitude_angles_struct_t ADCS_estimated_attitude_angles_struct_t
 
typedef struct ADCS_magnetic_field_vector_struct_t ADCS_magnetic_field_vector_struct_t
 
typedef struct ADCS_fine_sun_vector_struct_t ADCS_fine_sun_vector_struct_t
 
typedef struct ADCS_nadir_vector_struct_t ADCS_nadir_vector_struct_t
 
typedef struct ADCS_quaternion_error_vector_struct_t ADCS_quaternion_error_vector_struct_t
 
typedef struct ADCS_estimated_gyro_bias_struct_t ADCS_estimated_gyro_bias_struct_t
 
typedef struct ADCS_estimation_innovation_vector_struct_t ADCS_estimation_innovation_vector_struct_t
 
typedef struct ADCS_raw_cam_sensor_struct_t ADCS_raw_cam_sensor_struct_t
 
typedef struct ADCS_raw_coarse_sun_sensor_1_to_6_struct_t ADCS_raw_coarse_sun_sensor_1_to_6_struct_t
 
typedef struct ADCS_raw_coarse_sun_sensor_7_to_10_struct_t ADCS_raw_coarse_sun_sensor_7_to_10_struct_t
 
typedef struct ADCS_cubecontrol_current_struct_t ADCS_cubecontrol_current_struct_t
 
typedef struct ADCS_raw_gps_status_struct_t ADCS_raw_gps_status_struct_t
 
typedef struct ADCS_raw_gps_time_struct_t ADCS_raw_gps_time_struct_t
 
typedef struct ADCS_raw_gps_struct_t ADCS_raw_gps_struct_t
 
typedef struct ADCS_measurements_struct_t ADCS_measurements_struct_t
 
typedef struct ADCS_file_info_struct_t ADCS_file_info_struct_t
 
typedef struct ADCS_download_block_ready_struct_t ADCS_download_block_ready_struct_t
 
typedef struct ADCS_sd_card_format_erase_progress_struct_t ADCS_sd_card_format_erase_progress_struct_t
 
typedef struct ADCS_file_download_buffer_struct_t ADCS_file_download_buffer_struct_t
 
typedef struct ADCS_acp_execution_state_struct_t ADCS_acp_execution_state_struct_t
 
typedef struct ADCS_current_state_1_struct_t ADCS_current_state_1_struct_t
 
typedef struct ADCS_raw_star_tracker_struct_t ADCS_raw_star_tracker_struct_t
 
typedef struct ADCS_sd_log_config_struct ADCS_sd_log_config_struct
 

Enumerations

enum  ADCS_error_flag_enum_t {
  ADCS_ERROR_FLAG_NONE = 0 , ADCS_ERROR_FLAG_INVALID_ID = 1 , ADCS_ERROR_FLAG_WRONG_LENGTH = 2 , ADCS_ERROR_FLAG_INVALID_PARAMS = 3 ,
  ADCS_ERROR_FLAG_CRC = 4
}
 
enum  ADCS_run_mode_enum_t { ADCS_RUN_MODE_OFF = 0 , ADCS_RUN_MODE_ENABLED = 1 , ADCS_RUN_MODE_TRIGGERED = 2 , ADCS_RUN_MODE_SIMULATION = 3 }
 
enum  ADCS_reset_cause_enum_t {
  ADCS_RESET_CAUSE_POWER_ON = 0 , ADCS_RESET_CAUSE_BROWN_OUT_DETECTED_ON_REGULATED_POWER = 1 , ADCS_RESET_CAUSE_BROWN_OUT_DETECTED_ON_UNREGULATED_POWER = 2 , ADCS_RESET_CAUSE_EXTERNAL_WATCHDOG = 3 ,
  ADCS_RESET_CAUSE_EXTERNAL = 4 , ADCS_RESET_CAUSE_WATCHDOG = 5 , ADCS_RESET_CAUSE_LOCKUP_SYSTEM = 6 , ADCS_RESET_CAUSE_LOCKUP = 7 ,
  ADCS_RESET_CAUSE_SYSTEM_REQUEST = 8 , ADCS_RESET_CAUSE_BACKUP_BROWN_OUT = 9 , ADCS_RESET_CAUSE_BACKUP_MODE = 10 , ADCS_RESET_CAUSE_BACKUP_MODE_AND_BACKUP_BROWN_OUT_VDD_REGULATED = 11 ,
  ADCS_RESET_CAUSE_BACKUP_MODE_AND_BACKUP_BROWN_OUT_VDD_REGULATED_AND_BROWN_OUT_REGULATED = 12 , ADCS_RESET_CAUSE_BACKUP_MODE_AND_WATCHDOG = 13 , ADCS_RESET_CAUSE_BACKUP_BROWN_OUT_BUVIN_AND_SYSTEM_REQUEST = 14 , ADCS_RESET_CAUSE_UNKNOWN = 15
}
 
enum  ADCS_boot_cause_enum_t {
  ADCS_BOOT_CAUSE_UNEXPECTED = 0 , ADCS_BOOT_CAUSE_NOT_USED_1 = 1 , ADCS_BOOT_CAUSE_COMMUNICATIONS_TIMEOUT = 2 , ADCS_BOOT_CAUSE_COMMANDED = 3 ,
  ADCS_BOOT_CAUSE_NOT_USED_2 = 4 , ADCS_BOOT_CAUSE_SRAM_LATCHUP = 5
}
 
enum  ADCS_running_program_enum_t { ADCS_RUNNING_PROGRAM_ADCS = 1 , ADCS_RUNNING_PROGRAM_BOOTLOADER = 2 }
 
enum  ADCS_control_mode_enum_t {
  ADCS_CONTROL_MODE_NONE = 0 , ADCS_CONTROL_MODE_DETUMBLING = 1 , ADCS_CONTROL_MODE_Y_THOMSON_SPIN = 2 , ADCS_CONTROL_MODE_Y_WHEEL_MOMENTUM_STABILIZED_INITIAL_PITCH_ACQUISITION = 3 ,
  ADCS_CONTROL_MODE_Y_WHEEL_MOMENTUM_STABILIZED_STEADY_STATE = 4 , ADCS_CONTROL_MODE_XYZ_WHEEL = 5 , ADCS_CONTROL_MODE_RWHEEL_SUN_TRACKING = 6 , ADCS_CONTROL_MODE_RWHEEL_TARGET_TRACKING = 7 ,
  ADCS_CONTROL_MODE_VERY_FAST_SPIN_DETUMBLING = 8 , ADCS_CONTROL_MODE_FAST_SPIN_DETUMBLING = 9 , ADCS_CONTROL_MODE_USER_SPECIFIC_1 = 10 , ADCS_CONTROL_MODE_USER_SPECIFIC_2 = 11 ,
  ADCS_CONTROL_MODE_STOP_R_WHEELS = 12 , ADCS_CONTROL_MODE_USER_CODED = 13 , ADCS_CONTROL_MODE_SUN_TRACKING_YAW_OR_ROLL_ONLY_WHEEL = 14 , ADCS_CONTROL_MODE_TARGET_TRACKING_YAW_ONLY_WHEEL = 15
}
 
enum  ADCS_estimation_mode_enum_t {
  ADCS_ESTIMATION_MODE_NONE = 0 , ADCS_ESTIMATION_MODE_MEMS_RATE_SENSING = 1 , ADCS_ESTIMATION_MODE_MAGNETOMETER_RATE_FILTER = 2 , ADCS_ESTIMATION_MODE_MAGNETOMETER_RATE_FILTER_WITH_PITCH_ESTIMATION = 3 ,
  ADCS_ESTIMATION_MODE_MAGNETOMETER_AND_FINE_SUN_TRIAD_ALGORITHM = 4 , ADCS_ESTIMATION_MODE_FULL_STATE_EXTENDED_KALMAN_FILTER = 5 , ADCS_ESTIMATION_MODE_MEMS_GYRO_EXTENDED_KALMAN_FILTER = 6 , ADCS_ESTIMATION_MODE_USER_CODED_ESTIMATION_MODE = 7
}
 
enum  ADCS_power_select_enum_t { ADCS_POWER_SELECT_OFF = 0 , ADCS_POWER_SELECT_ON = 1 , ADCS_POWER_SELECT_SAME = 2 }
 
enum  ADCS_magnetometer_mode_enum_t { ADCS_MAGNETOMETER_MODE_MAIN_SIGNAL = 0 , ADCS_MAGNETOMETER_MODE_REDUNDANT_SIGNAL = 1 , ADCS_MAGNETOMETER_MODE_MAIN_MOTOR = 2 , ADCS_MAGNETOMETER_MODE_NONE = 3 }
 
enum  ADCS_augmented_sgp4_filter_enum_t { ADCS_Augmented_SGP4_FILTER_LOWPASS = 0 , ADCS_Augmented_SGP4_FILTER_AVERAGE = 1 }
 
enum  ADCS_axis_select_enum_t {
  ADCS_AXIS_SELECT_POSITIVE_X = 0 , ADCS_AXIS_SELECT_NEGATIVE_X = 1 , ADCS_AXIS_SELECT_POSITIVE_Y = 2 , ADCS_AXIS_SELECT_NEGATIVE_Y = 3 ,
  ADCS_AXIS_SELECT_POSITIVE_Z = 4 , ADCS_AXIS_SELECT_NEGATIVE_Z = 5 , ADCS_AXIS_SELECT_NOT_USED = 6 , ADCS_AXIS_SELECT_POSITIVE_XY_45_DEGREE = 7
}
 
enum  ADCS_capture_result_enum_t {
  ADCS_CAPTURE_RESULT_STARTUP = 0 , ADCS_CAPTURE_RESULT_PENDING = 1 , ADCS_CAPTURE_RESULT_SUCCESS = 2 , ADCS_CAPTURE_RESULT_SUCCESS_SHIFT = 3 ,
  ADCS_CAPTURE_RESULT_TIMEOUT = 4 , ADCS_CAPTURE_RESULT_SRAM_ERROR = 5
}
 
enum  ADCS_detect_result_enum_t {
  ADCS_DETECT_RESULT_STARTUP = 0 , ADCS_DETECT_RESULT_NO_DETECT = 1 , ADCS_DETECT_RESULT_PENDING = 2 , ADCS_DETECT_RESULT_TOO_MANY_EDGES = 3 ,
  ADCS_DETECT_RESULT_TOO_FEW_EDGES = 4 , ADCS_DETECT_RESULT_BAD_FIT = 5 , ADCS_DETECT_RESULT_SUN_NOT_FOUND = 6 , ADCS_DETECT_RESULT_SUCCESS = 7
}
 
enum  ADCS_which_cam_sensor_enum_t { ADCS_WHICH_CAM_SENSOR_NONE = 0 , ADCS_WHICH_CAM_SENSOR_CAM1 = 1 , ADCS_WHICH_CAM_SENSOR_CAM2 = 2 }
 
enum  ADCS_gps_solution_status_enum_t {
  ADCS_GPS_SOLUTION_STATUS_SOLUTION_COMPUTED = 0 , ADCS_GPS_SOLUTION_STATUS_INSUFFICIENT_OBSERVATIONS = 1 , ADCS_GPS_SOLUTION_STATUS_NO_CONVERGENCE = 2 , ADCS_GPS_SOLUTION_STATUS_SINGULARITY_AT_PARAMETERS_MATRIX = 3 ,
  ADCS_GPS_SOLUTION_STATUS_COVARIANCE_TRACE_EXCEEDS_MAXIMUM = 4 , ADCS_GPS_SOLUTION_STATUS_NOT_YET_CONVERGED_FROM_COLD_START = 5 , ADCS_GPS_SOLUTION_STATUS_HEIGHT_OR_VELOCITY_LIMITS_EXCEEDED = 6 , ADCS_GPS_SOLUTION_STATUS_VARIANCE_EXCEEDS_LIMITS = 7 ,
  ADCS_GPS_SOLUTION_STATUS_LARGE_RESIDUALS = 8 , ADCS_GPS_SOLUTION_STATUS_CALCULATING_COMPARISON_TO_USER_PROVIDED = 9 , ADCS_GPS_SOLUTION_STATUS_FIXED_POSITION_INVALID = 10 , ADCS_GPS_SOLUTION_STATUS_POSITION_TYPE_UNAUTHORIZED = 11
}
 
enum  ADCS_gps_axis_enum_t { ADCS_GPS_AXIS_X = 0 , ADCS_GPS_AXIS_Y = 1 , ADCS_GPS_AXIS_Z = 2 }
 
enum  ADCS_file_type_enum_t { ADCS_FILE_TYPE_TELEMETRY_LOG = 2 , ADCS_FILE_TYPE_JPG_IMAGE = 3 , ADCS_FILE_TYPE_BMP_IMAGE = 4 , ADCS_FILE_TYPE_INDEX = 15 }
 
enum  ADCS_current_execution_point_enum_t {
  ADCS_CURRENT_EXECUTION_POINT_BUSY_INITIALIZATION = 0 , ADCS_CURRENT_EXECUTION_POINT_IDLE = 1 , ADCS_CURRENT_EXECUTION_POINT_SENSOR_ACTUATOR_COMMS = 2 , ADCS_CURRENT_EXECUTION_POINT_ADCS_UPDATE = 3 ,
  ADCS_CURRENT_EXECUTION_POINT_PERIPHERAL_POWER_COMMANDS = 4 , ADCS_CURRENT_EXECUTION_POINT_CPU_TEMPERATURE_SAMPLING = 5 , ADCS_CURRENT_EXECUTION_POINT_IMAGE_DOWNLOAD = 6 , ADCS_CURRENT_EXECUTION_POINT_IMAGE_COMPRESSION = 7 ,
  ADCS_CURRENT_EXECUTION_POINT_SAVING_IMAGE_TO_SD = 8 , ADCS_CURRENT_EXECUTION_POINT_LOGGING = 9 , ADCS_CURRENT_EXECUTION_POINT_LOG_FILE_COMPRESSION = 10 , ADCS_CURRENT_EXECUTION_POINT_SAVING_LOG_TO_SD = 11 ,
  ADCS_CURRENT_EXECUTION_POINT_WRITING_TO_FLASH = 12
}
 
enum  ADCS_asgp4_mode_enum_t { ADCS_ASGP4_MODE_OFF = 0 , ADCS_ASGP4_MODE_TRIGGER = 1 , ADCS_ASGP4_MODE_BACKGROUND = 2 , ADCS_ASGP4_MODE_AUGMENT = 3 }
 
enum  ADCS_camera_select_enum_t { ADCS_CAMERA_SELECT_1 = 0 , ADCS_CAMERA_SELECT_2 = 1 , ADCS_CAMERA_SELECT_STAR = 2 }
 
enum  ADCS_image_size_enum_t {
  ADCS_IMAGE_SIZE_1024_X_1024_PX = 0 , ADCS_IMAGE_SIZE_512_X_512_PX = 1 , ADCS_IMAGE_SIZE_256_X_256_PX = 2 , ADCS_IMAGE_SIZE_128_X_128_PX = 3 ,
  ADCS_IMAGE_SIZE_64_X_64_PX = 4
}
 
enum  ADCS_sd_log_destination_enum_t { ADCS_SD_LOG_DESTINATION_PRIMARY_SD = 0 , ADCS_SD_LOG_DESTINATION_SECONDARY_SD = 1 }
 
enum  ADCS_commissioning_step_enum_t {
  ADCS_COMMISSIONING_STEP_DETERMINE_INITIAL_ANGULAR_RATES = 1 , ADCS_COMMISSIONING_STEP_INITIAL_DETUMBLING = 2 , ADCS_COMMISSIONING_STEP_CONTINUED_DETUMBLING_TO_Y_THOMSON = 3 , ADCS_COMMISSIONING_STEP_MAGNETOMETER_DEPLOYMENT = 4 ,
  ADCS_COMMISSIONING_STEP_MAGNETOMETER_CALIBRATION = 5 , ADCS_COMMISSIONING_STEP_ANGULAR_RATE_AND_PITCH_ANGLE_ESTIMATION = 6 , ADCS_COMMISSIONING_STEP_Y_WHEEL_RAMP_UP_TEST = 7 , ADCS_COMMISSIONING_STEP_INITIAL_Y_MOMENTUM_ACTIVATION = 8 ,
  ADCS_COMMISSIONING_STEP_CONTINUED_Y_MOMENTUM_ACTIVATION_AND_MAGNETOMETER_EKF = 9 , ADCS_COMMISSIONING_STEP_CUBESENSE_SUN_NADIR = 10 , ADCS_COMMISSIONING_STEP_EKF_ACTIVATION_SUN_AND_NADIR = 11 , ADCS_COMMISSIONING_STEP_CUBESTAR_STAR_TRACKER = 12 ,
  ADCS_COMMISSIONING_STEP_EKF_ACTIVATION_WITH_STAR_VECTOR_MEASUREMENTS = 13 , ADCS_COMMISSIONING_STEP_X_Z_WHEEL_POLARITY_TEST = 14 , ADCS_COMMISSIONING_STEP_3_AXIS_REACTION_WHEEL_CONTROL = 15 , ADCS_COMMISSIONING_STEP_SUN_TRACKING_3_AXIS_CONTROL = 16 ,
  ADCS_COMMISSIONING_STEP_GROUND_TARGET_TRACKING_CONTROLLER = 17 , ADCS_COMMISSIONING_STEP_GPS_RECEIVER = 18
}
 

Variables

static const uint8_t ADCS_TELECOMMAND = 0
 
static const uint8_t ADCS_TELEMETRY_REQUEST = 1
 
static const uint8_t ADCS_MAGIC_NUMBER = 0x5A
 
static const uint8_t ADCS_i2c_WRITE_ADDRESS = 0xAE
 
static const uint8_t ADCS_i2c_READ_ADDRESS = 0xAF
 
static const uint8_t ADCS_i2c_ADDRESS = 0x57
 
static const uint8_t ADCS_UART_ESCAPE_BYTE = 0x1F
 
static const uint8_t ADCS_UART_START_MESSAGE = 0x7F
 
static const uint8_t ADCS_UART_END_MESSAGE = 0xFF
 
static const uint8_t ADCS_CRC_POLY = 0x91
 
static const uint16_t ADCS_HAL_TIMEOUT = 1000
 

Macro Definition Documentation

◆ ADCS_COMMISSIONING_HAL_DELAY_MS

#define ADCS_COMMISSIONING_HAL_DELAY_MS   300

◆ ADCS_SD_LOG_BITFIELD_LENGTH_BYTES

#define ADCS_SD_LOG_BITFIELD_LENGTH_BYTES   10

Typedef Documentation

◆ ADCS_acp_execution_state_struct_t

typedef struct ADCS_acp_execution_state_struct_t ADCS_acp_execution_state_struct_t

◆ ADCS_angular_rates_struct_t

typedef struct ADCS_angular_rates_struct_t ADCS_angular_rates_struct_t

◆ ADCS_asgp4_mode_enum_t

◆ ADCS_augmented_sgp4_filter_enum_t

◆ ADCS_augmented_sgp4_params_struct_t

typedef struct ADCS_augmented_sgp4_params_struct_t ADCS_augmented_sgp4_params_struct_t

◆ ADCS_axis_select_enum_t

◆ ADCS_boot_cause_enum_t

◆ ADCS_boot_running_status_struct_t

typedef struct ADCS_boot_running_status_struct_t ADCS_boot_running_status_struct_t

◆ ADCS_camera_select_enum_t

◆ ADCS_capture_result_enum_t

◆ ADCS_cmd_ack_struct_t

typedef struct ADCS_cmd_ack_struct_t ADCS_cmd_ack_struct_t

◆ ADCS_commanded_angles_struct_t

typedef struct ADCS_commanded_angles_struct_t ADCS_commanded_angles_struct_t

◆ ADCS_commissioning_step_enum_t

◆ ADCS_comms_status_struct_t

typedef struct ADCS_comms_status_struct_t ADCS_comms_status_struct_t

◆ ADCS_control_mode_enum_t

◆ ADCS_cubecontrol_current_struct_t

typedef struct ADCS_cubecontrol_current_struct_t ADCS_cubecontrol_current_struct_t

◆ ADCS_current_execution_point_enum_t

◆ ADCS_current_state_1_struct_t

typedef struct ADCS_current_state_1_struct_t ADCS_current_state_1_struct_t

◆ ADCS_detect_result_enum_t

◆ ADCS_download_block_ready_struct_t

typedef struct ADCS_download_block_ready_struct_t ADCS_download_block_ready_struct_t

◆ ADCS_error_flag_enum_t

◆ ADCS_estimated_attitude_angles_struct_t

typedef struct ADCS_estimated_attitude_angles_struct_t ADCS_estimated_attitude_angles_struct_t

◆ ADCS_estimated_gyro_bias_struct_t

typedef struct ADCS_estimated_gyro_bias_struct_t ADCS_estimated_gyro_bias_struct_t

◆ ADCS_estimation_innovation_vector_struct_t

typedef struct ADCS_estimation_innovation_vector_struct_t ADCS_estimation_innovation_vector_struct_t

◆ ADCS_estimation_mode_enum_t

◆ ADCS_estimation_params_struct_t

typedef struct ADCS_estimation_params_struct_t ADCS_estimation_params_struct_t

◆ ADCS_file_download_buffer_struct_t

typedef struct ADCS_file_download_buffer_struct_t ADCS_file_download_buffer_struct_t

◆ ADCS_file_info_struct_t

typedef struct ADCS_file_info_struct_t ADCS_file_info_struct_t

◆ ADCS_file_type_enum_t

◆ ADCS_fine_angular_rates_struct_t

typedef struct ADCS_fine_angular_rates_struct_t ADCS_fine_angular_rates_struct_t

◆ ADCS_fine_sun_vector_struct_t

typedef struct ADCS_fine_sun_vector_struct_t ADCS_fine_sun_vector_struct_t

◆ ADCS_gps_axis_enum_t

◆ ADCS_gps_solution_status_enum_t

◆ ADCS_id_struct_t

typedef struct ADCS_id_struct_t ADCS_id_struct_t

◆ ADCS_image_size_enum_t

◆ ADCS_llh_position_struct_t

typedef struct ADCS_llh_position_struct_t ADCS_llh_position_struct_t

◆ ADCS_magnetic_field_vector_struct_t

typedef struct ADCS_magnetic_field_vector_struct_t ADCS_magnetic_field_vector_struct_t

◆ ADCS_magnetometer_config_struct_t

typedef struct ADCS_magnetometer_config_struct_t ADCS_magnetometer_config_struct_t

◆ ADCS_magnetometer_mode_enum_t

◆ ADCS_magnetorquer_command_struct_t

typedef struct ADCS_magnetorquer_command_struct_t ADCS_magnetorquer_command_struct_t

◆ ADCS_measurements_struct_t

typedef struct ADCS_measurements_struct_t ADCS_measurements_struct_t

◆ ADCS_nadir_vector_struct_t

typedef struct ADCS_nadir_vector_struct_t ADCS_nadir_vector_struct_t

◆ ADCS_orbit_params_struct_t

typedef struct ADCS_orbit_params_struct_t ADCS_orbit_params_struct_t

◆ ADCS_power_control_struct_t

◆ ADCS_power_select_enum_t

◆ ADCS_quaternion_error_vector_struct_t

typedef struct ADCS_quaternion_error_vector_struct_t ADCS_quaternion_error_vector_struct_t

◆ ADCS_rate_gyro_config_struct_t

typedef struct ADCS_rate_gyro_config_struct_t ADCS_rate_gyro_config_struct_t

◆ ADCS_rated_sensor_rates_struct_t

typedef struct ADCS_rated_sensor_rates_struct_t ADCS_rated_sensor_rates_struct_t

◆ ADCS_raw_cam_sensor_struct_t

typedef struct ADCS_raw_cam_sensor_struct_t ADCS_raw_cam_sensor_struct_t

◆ ADCS_raw_coarse_sun_sensor_1_to_6_struct_t

typedef struct ADCS_raw_coarse_sun_sensor_1_to_6_struct_t ADCS_raw_coarse_sun_sensor_1_to_6_struct_t

◆ ADCS_raw_coarse_sun_sensor_7_to_10_struct_t

typedef struct ADCS_raw_coarse_sun_sensor_7_to_10_struct_t ADCS_raw_coarse_sun_sensor_7_to_10_struct_t

◆ ADCS_raw_gps_status_struct_t

typedef struct ADCS_raw_gps_status_struct_t ADCS_raw_gps_status_struct_t

◆ ADCS_raw_gps_struct_t

typedef struct ADCS_raw_gps_struct_t ADCS_raw_gps_struct_t

◆ ADCS_raw_gps_time_struct_t

typedef struct ADCS_raw_gps_time_struct_t ADCS_raw_gps_time_struct_t

◆ ADCS_raw_magnetometer_values_struct_t

typedef struct ADCS_raw_magnetometer_values_struct_t ADCS_raw_magnetometer_values_struct_t

◆ ADCS_raw_star_tracker_struct_t

typedef struct ADCS_raw_star_tracker_struct_t ADCS_raw_star_tracker_struct_t

◆ ADCS_reset_cause_enum_t

◆ ADCS_run_mode_enum_t

◆ ADCS_running_program_enum_t

◆ ADCS_sd_card_format_erase_progress_struct_t

typedef struct ADCS_sd_card_format_erase_progress_struct_t ADCS_sd_card_format_erase_progress_struct_t

◆ ADCS_sd_log_config_struct

typedef struct ADCS_sd_log_config_struct ADCS_sd_log_config_struct

◆ ADCS_sd_log_destination_enum_t

◆ ADCS_set_unix_time_save_mode_struct_t

typedef struct ADCS_set_unix_time_save_mode_struct_t ADCS_set_unix_time_save_mode_struct_t

◆ ADCS_tracking_controller_target_struct_t

typedef struct ADCS_tracking_controller_target_struct_t ADCS_tracking_controller_target_struct_t

◆ ADCS_wheel_speed_struct_t

typedef struct ADCS_wheel_speed_struct_t ADCS_wheel_speed_struct_t

◆ ADCS_which_cam_sensor_enum_t

Enumeration Type Documentation

◆ ADCS_asgp4_mode_enum_t

Enumerator
ADCS_ASGP4_MODE_OFF 
ADCS_ASGP4_MODE_TRIGGER 
ADCS_ASGP4_MODE_BACKGROUND 
ADCS_ASGP4_MODE_AUGMENT 

◆ ADCS_augmented_sgp4_filter_enum_t

Enumerator
ADCS_Augmented_SGP4_FILTER_LOWPASS 
ADCS_Augmented_SGP4_FILTER_AVERAGE 

◆ ADCS_axis_select_enum_t

Enumerator
ADCS_AXIS_SELECT_POSITIVE_X 
ADCS_AXIS_SELECT_NEGATIVE_X 
ADCS_AXIS_SELECT_POSITIVE_Y 
ADCS_AXIS_SELECT_NEGATIVE_Y 
ADCS_AXIS_SELECT_POSITIVE_Z 
ADCS_AXIS_SELECT_NEGATIVE_Z 
ADCS_AXIS_SELECT_NOT_USED 
ADCS_AXIS_SELECT_POSITIVE_XY_45_DEGREE 

◆ ADCS_boot_cause_enum_t

Enumerator
ADCS_BOOT_CAUSE_UNEXPECTED 
ADCS_BOOT_CAUSE_NOT_USED_1 
ADCS_BOOT_CAUSE_COMMUNICATIONS_TIMEOUT 
ADCS_BOOT_CAUSE_COMMANDED 
ADCS_BOOT_CAUSE_NOT_USED_2 
ADCS_BOOT_CAUSE_SRAM_LATCHUP 

◆ ADCS_camera_select_enum_t

Enumerator
ADCS_CAMERA_SELECT_1 
ADCS_CAMERA_SELECT_2 
ADCS_CAMERA_SELECT_STAR 

◆ ADCS_capture_result_enum_t

Enumerator
ADCS_CAPTURE_RESULT_STARTUP 
ADCS_CAPTURE_RESULT_PENDING 
ADCS_CAPTURE_RESULT_SUCCESS 
ADCS_CAPTURE_RESULT_SUCCESS_SHIFT 
ADCS_CAPTURE_RESULT_TIMEOUT 
ADCS_CAPTURE_RESULT_SRAM_ERROR 

◆ ADCS_commissioning_step_enum_t

Enumerator
ADCS_COMMISSIONING_STEP_DETERMINE_INITIAL_ANGULAR_RATES 
ADCS_COMMISSIONING_STEP_INITIAL_DETUMBLING 
ADCS_COMMISSIONING_STEP_CONTINUED_DETUMBLING_TO_Y_THOMSON 
ADCS_COMMISSIONING_STEP_MAGNETOMETER_DEPLOYMENT 
ADCS_COMMISSIONING_STEP_MAGNETOMETER_CALIBRATION 
ADCS_COMMISSIONING_STEP_ANGULAR_RATE_AND_PITCH_ANGLE_ESTIMATION 
ADCS_COMMISSIONING_STEP_Y_WHEEL_RAMP_UP_TEST 
ADCS_COMMISSIONING_STEP_INITIAL_Y_MOMENTUM_ACTIVATION 
ADCS_COMMISSIONING_STEP_CONTINUED_Y_MOMENTUM_ACTIVATION_AND_MAGNETOMETER_EKF 
ADCS_COMMISSIONING_STEP_CUBESENSE_SUN_NADIR 
ADCS_COMMISSIONING_STEP_EKF_ACTIVATION_SUN_AND_NADIR 
ADCS_COMMISSIONING_STEP_CUBESTAR_STAR_TRACKER 
ADCS_COMMISSIONING_STEP_EKF_ACTIVATION_WITH_STAR_VECTOR_MEASUREMENTS 
ADCS_COMMISSIONING_STEP_X_Z_WHEEL_POLARITY_TEST 
ADCS_COMMISSIONING_STEP_3_AXIS_REACTION_WHEEL_CONTROL 
ADCS_COMMISSIONING_STEP_SUN_TRACKING_3_AXIS_CONTROL 
ADCS_COMMISSIONING_STEP_GROUND_TARGET_TRACKING_CONTROLLER 
ADCS_COMMISSIONING_STEP_GPS_RECEIVER 

◆ ADCS_control_mode_enum_t

Enumerator
ADCS_CONTROL_MODE_NONE 
ADCS_CONTROL_MODE_DETUMBLING 
ADCS_CONTROL_MODE_Y_THOMSON_SPIN 
ADCS_CONTROL_MODE_Y_WHEEL_MOMENTUM_STABILIZED_INITIAL_PITCH_ACQUISITION 
ADCS_CONTROL_MODE_Y_WHEEL_MOMENTUM_STABILIZED_STEADY_STATE 
ADCS_CONTROL_MODE_XYZ_WHEEL 
ADCS_CONTROL_MODE_RWHEEL_SUN_TRACKING 
ADCS_CONTROL_MODE_RWHEEL_TARGET_TRACKING 
ADCS_CONTROL_MODE_VERY_FAST_SPIN_DETUMBLING 
ADCS_CONTROL_MODE_FAST_SPIN_DETUMBLING 
ADCS_CONTROL_MODE_USER_SPECIFIC_1 
ADCS_CONTROL_MODE_USER_SPECIFIC_2 
ADCS_CONTROL_MODE_STOP_R_WHEELS 
ADCS_CONTROL_MODE_USER_CODED 
ADCS_CONTROL_MODE_SUN_TRACKING_YAW_OR_ROLL_ONLY_WHEEL 
ADCS_CONTROL_MODE_TARGET_TRACKING_YAW_ONLY_WHEEL 

◆ ADCS_current_execution_point_enum_t

Enumerator
ADCS_CURRENT_EXECUTION_POINT_BUSY_INITIALIZATION 
ADCS_CURRENT_EXECUTION_POINT_IDLE 
ADCS_CURRENT_EXECUTION_POINT_SENSOR_ACTUATOR_COMMS 
ADCS_CURRENT_EXECUTION_POINT_ADCS_UPDATE 
ADCS_CURRENT_EXECUTION_POINT_PERIPHERAL_POWER_COMMANDS 
ADCS_CURRENT_EXECUTION_POINT_CPU_TEMPERATURE_SAMPLING 
ADCS_CURRENT_EXECUTION_POINT_IMAGE_DOWNLOAD 
ADCS_CURRENT_EXECUTION_POINT_IMAGE_COMPRESSION 
ADCS_CURRENT_EXECUTION_POINT_SAVING_IMAGE_TO_SD 
ADCS_CURRENT_EXECUTION_POINT_LOGGING 
ADCS_CURRENT_EXECUTION_POINT_LOG_FILE_COMPRESSION 
ADCS_CURRENT_EXECUTION_POINT_SAVING_LOG_TO_SD 
ADCS_CURRENT_EXECUTION_POINT_WRITING_TO_FLASH 

◆ ADCS_detect_result_enum_t

Enumerator
ADCS_DETECT_RESULT_STARTUP 
ADCS_DETECT_RESULT_NO_DETECT 
ADCS_DETECT_RESULT_PENDING 
ADCS_DETECT_RESULT_TOO_MANY_EDGES 
ADCS_DETECT_RESULT_TOO_FEW_EDGES 
ADCS_DETECT_RESULT_BAD_FIT 
ADCS_DETECT_RESULT_SUN_NOT_FOUND 
ADCS_DETECT_RESULT_SUCCESS 

◆ ADCS_error_flag_enum_t

Enumerator
ADCS_ERROR_FLAG_NONE 
ADCS_ERROR_FLAG_INVALID_ID 
ADCS_ERROR_FLAG_WRONG_LENGTH 
ADCS_ERROR_FLAG_INVALID_PARAMS 
ADCS_ERROR_FLAG_CRC 

◆ ADCS_estimation_mode_enum_t

Enumerator
ADCS_ESTIMATION_MODE_NONE 
ADCS_ESTIMATION_MODE_MEMS_RATE_SENSING 
ADCS_ESTIMATION_MODE_MAGNETOMETER_RATE_FILTER 
ADCS_ESTIMATION_MODE_MAGNETOMETER_RATE_FILTER_WITH_PITCH_ESTIMATION 
ADCS_ESTIMATION_MODE_MAGNETOMETER_AND_FINE_SUN_TRIAD_ALGORITHM 
ADCS_ESTIMATION_MODE_FULL_STATE_EXTENDED_KALMAN_FILTER 
ADCS_ESTIMATION_MODE_MEMS_GYRO_EXTENDED_KALMAN_FILTER 
ADCS_ESTIMATION_MODE_USER_CODED_ESTIMATION_MODE 

◆ ADCS_file_type_enum_t

Enumerator
ADCS_FILE_TYPE_TELEMETRY_LOG 
ADCS_FILE_TYPE_JPG_IMAGE 
ADCS_FILE_TYPE_BMP_IMAGE 
ADCS_FILE_TYPE_INDEX 

◆ ADCS_gps_axis_enum_t

Enumerator
ADCS_GPS_AXIS_X 
ADCS_GPS_AXIS_Y 
ADCS_GPS_AXIS_Z 

◆ ADCS_gps_solution_status_enum_t

Enumerator
ADCS_GPS_SOLUTION_STATUS_SOLUTION_COMPUTED 
ADCS_GPS_SOLUTION_STATUS_INSUFFICIENT_OBSERVATIONS 
ADCS_GPS_SOLUTION_STATUS_NO_CONVERGENCE 
ADCS_GPS_SOLUTION_STATUS_SINGULARITY_AT_PARAMETERS_MATRIX 
ADCS_GPS_SOLUTION_STATUS_COVARIANCE_TRACE_EXCEEDS_MAXIMUM 
ADCS_GPS_SOLUTION_STATUS_NOT_YET_CONVERGED_FROM_COLD_START 
ADCS_GPS_SOLUTION_STATUS_HEIGHT_OR_VELOCITY_LIMITS_EXCEEDED 
ADCS_GPS_SOLUTION_STATUS_VARIANCE_EXCEEDS_LIMITS 
ADCS_GPS_SOLUTION_STATUS_LARGE_RESIDUALS 
ADCS_GPS_SOLUTION_STATUS_CALCULATING_COMPARISON_TO_USER_PROVIDED 
ADCS_GPS_SOLUTION_STATUS_FIXED_POSITION_INVALID 
ADCS_GPS_SOLUTION_STATUS_POSITION_TYPE_UNAUTHORIZED 

◆ ADCS_image_size_enum_t

Enumerator
ADCS_IMAGE_SIZE_1024_X_1024_PX 
ADCS_IMAGE_SIZE_512_X_512_PX 
ADCS_IMAGE_SIZE_256_X_256_PX 
ADCS_IMAGE_SIZE_128_X_128_PX 
ADCS_IMAGE_SIZE_64_X_64_PX 

◆ ADCS_magnetometer_mode_enum_t

Enumerator
ADCS_MAGNETOMETER_MODE_MAIN_SIGNAL 
ADCS_MAGNETOMETER_MODE_REDUNDANT_SIGNAL 
ADCS_MAGNETOMETER_MODE_MAIN_MOTOR 
ADCS_MAGNETOMETER_MODE_NONE 

◆ ADCS_power_select_enum_t

Enumerator
ADCS_POWER_SELECT_OFF 
ADCS_POWER_SELECT_ON 
ADCS_POWER_SELECT_SAME 

◆ ADCS_reset_cause_enum_t

Enumerator
ADCS_RESET_CAUSE_POWER_ON 
ADCS_RESET_CAUSE_BROWN_OUT_DETECTED_ON_REGULATED_POWER 
ADCS_RESET_CAUSE_BROWN_OUT_DETECTED_ON_UNREGULATED_POWER 
ADCS_RESET_CAUSE_EXTERNAL_WATCHDOG 
ADCS_RESET_CAUSE_EXTERNAL 
ADCS_RESET_CAUSE_WATCHDOG 
ADCS_RESET_CAUSE_LOCKUP_SYSTEM 
ADCS_RESET_CAUSE_LOCKUP 
ADCS_RESET_CAUSE_SYSTEM_REQUEST 
ADCS_RESET_CAUSE_BACKUP_BROWN_OUT 
ADCS_RESET_CAUSE_BACKUP_MODE 
ADCS_RESET_CAUSE_BACKUP_MODE_AND_BACKUP_BROWN_OUT_VDD_REGULATED 
ADCS_RESET_CAUSE_BACKUP_MODE_AND_BACKUP_BROWN_OUT_VDD_REGULATED_AND_BROWN_OUT_REGULATED 
ADCS_RESET_CAUSE_BACKUP_MODE_AND_WATCHDOG 
ADCS_RESET_CAUSE_BACKUP_BROWN_OUT_BUVIN_AND_SYSTEM_REQUEST 
ADCS_RESET_CAUSE_UNKNOWN 

◆ ADCS_run_mode_enum_t

Enumerator
ADCS_RUN_MODE_OFF 
ADCS_RUN_MODE_ENABLED 
ADCS_RUN_MODE_TRIGGERED 
ADCS_RUN_MODE_SIMULATION 

◆ ADCS_running_program_enum_t

Enumerator
ADCS_RUNNING_PROGRAM_ADCS 
ADCS_RUNNING_PROGRAM_BOOTLOADER 

◆ ADCS_sd_log_destination_enum_t

Enumerator
ADCS_SD_LOG_DESTINATION_PRIMARY_SD 
ADCS_SD_LOG_DESTINATION_SECONDARY_SD 

◆ ADCS_which_cam_sensor_enum_t

Enumerator
ADCS_WHICH_CAM_SENSOR_NONE 
ADCS_WHICH_CAM_SENSOR_CAM1 
ADCS_WHICH_CAM_SENSOR_CAM2 

Variable Documentation

◆ ADCS_CRC_POLY

const uint8_t ADCS_CRC_POLY = 0x91
static

◆ ADCS_HAL_TIMEOUT

const uint16_t ADCS_HAL_TIMEOUT = 1000
static

◆ ADCS_i2c_ADDRESS

const uint8_t ADCS_i2c_ADDRESS = 0x57
static

◆ ADCS_i2c_READ_ADDRESS

const uint8_t ADCS_i2c_READ_ADDRESS = 0xAF
static

◆ ADCS_i2c_WRITE_ADDRESS

const uint8_t ADCS_i2c_WRITE_ADDRESS = 0xAE
static

◆ ADCS_MAGIC_NUMBER

const uint8_t ADCS_MAGIC_NUMBER = 0x5A
static

◆ ADCS_TELECOMMAND

const uint8_t ADCS_TELECOMMAND = 0
static

◆ ADCS_TELEMETRY_REQUEST

const uint8_t ADCS_TELEMETRY_REQUEST = 1
static

◆ ADCS_UART_END_MESSAGE

const uint8_t ADCS_UART_END_MESSAGE = 0xFF
static

◆ ADCS_UART_ESCAPE_BYTE

const uint8_t ADCS_UART_ESCAPE_BYTE = 0x1F
static

◆ ADCS_UART_START_MESSAGE

const uint8_t ADCS_UART_START_MESSAGE = 0x7F
static