CTS-SAT-1-OBC-Firmware
Loading...
Searching...
No Matches
mpi_types.h
Go to the documentation of this file.
1/*
2 * mpi_types.h
3 *
4 * Created on: Jun 14, 2024
5 * Author: Vaibhav Kapoor
6 */
7
8#ifndef INCLUDE_GUARD__MPI_TYPES_H
9#define INCLUDE_GUARD__MPI_TYPES_H
10#include <stdint.h>
11
13typedef enum {
14 MPI_RX_MODE_COMMAND_MODE, // MPI is in command mode
15 MPI_RX_MODE_SENSING_MODE, // MPI is science data is being collected mode
16 MPI_RX_MODE_NOT_LISTENING_TO_MPI // MPI is recording science data but it is not being collected mode
18
19typedef enum {
20 MPI_MEMORY_WRITE_STATUS_AWAITING_WRITE, // MPI buffer is waiting to be fully wrote to memory
21 MPI_MEMORY_WRITE_STATUS_READY_TO_FILL, // MPI buffer is ready to be wrote to
23
31
39typedef struct
40{
41 uint8_t sync_byte1; // First synchronization byte
42 uint8_t sync_byte2; // Second synchronization byte
43 uint8_t sync_byte3; // Third synchronization byte
44 uint8_t sync_byte4; // Fourth synchronization byte
45 uint16_t frame_counter; // Frame counter for the data frame
46 int16_t board_temperature; // Current board temperature
47 uint8_t firmware_version; // Firmware version of the MPI unit
48 uint8_t mpi_unit_id; // ID of the MPI unit
49 uint16_t detector_status; // Current status of the detector
50 uint16_t inner_dome_voltage_setting; // Voltage setting for the inner dome
51 uint8_t spib_reserved; // Reserved field
52 uint8_t inner_dome_scan_index; // Index for inner dome scanning
53 uint16_t faceplate_voltage_setting; // Voltage setting for the faceplate
54 uint16_t faceplate_voltage_adc_reading; // ADC reading for faceplate voltage
55 uint16_t inner_dome_voltage_adc_reading; // ADC reading for inner dome voltage
56 uint16_t pixels[67]; // Array of 67 image pixels (Not a typo: It is actually 67!)
57 uint16_t cyclic_redundancy_check; // CRC for data integrity check
59
60#endif // INCLUDE_GUARD__MPI_TYPES_H
MPI_buffer_state_enum_t
Definition mpi_types.h:19
@ MPI_MEMORY_WRITE_STATUS_READY_TO_FILL
Definition mpi_types.h:21
@ MPI_MEMORY_WRITE_STATUS_AWAITING_WRITE
Definition mpi_types.h:20
MPI_transceiver_state_enum_t
Represents the state of the MPI transceiver chip.
Definition mpi_types.h:25
@ MPI_TRANSCEIVER_MODE_MOSI
Definition mpi_types.h:27
@ MPI_TRANSCEIVER_MODE_INACTIVE
Definition mpi_types.h:26
@ MPI_TRANSCEIVER_MODE_MISO
Definition mpi_types.h:28
@ MPI_TRANSCEIVER_MODE_DUPLEX
Definition mpi_types.h:29
MPI_rx_mode_t
Enumerates the different modes under which the satellite can operate the MPI.
Definition mpi_types.h:13
@ MPI_RX_MODE_COMMAND_MODE
Definition mpi_types.h:14
@ MPI_RX_MODE_NOT_LISTENING_TO_MPI
Definition mpi_types.h:16
@ MPI_RX_MODE_SENSING_MODE
Definition mpi_types.h:15
Represents an data frame received from the MPI.
Definition mpi_types.h:40
uint8_t firmware_version
Definition mpi_types.h:47
uint16_t frame_counter
Definition mpi_types.h:45
uint8_t sync_byte1
Definition mpi_types.h:41
uint16_t faceplate_voltage_adc_reading
Definition mpi_types.h:54
uint16_t detector_status
Definition mpi_types.h:49
uint8_t inner_dome_scan_index
Definition mpi_types.h:52
uint8_t sync_byte3
Definition mpi_types.h:43
uint8_t sync_byte2
Definition mpi_types.h:42
uint16_t inner_dome_voltage_setting
Definition mpi_types.h:50
uint8_t sync_byte4
Definition mpi_types.h:44
uint16_t inner_dome_voltage_adc_reading
Definition mpi_types.h:55
int16_t board_temperature
Definition mpi_types.h:46
uint16_t cyclic_redundancy_check
Definition mpi_types.h:57
uint8_t mpi_unit_id
Definition mpi_types.h:48
uint8_t spib_reserved
Definition mpi_types.h:51
uint16_t faceplate_voltage_setting
Definition mpi_types.h:53
uint16_t pixels[67]
Definition mpi_types.h:56