#ifndef MFCC_TC_TM_THRUSTER_H
#define MFCC_TC_TM_THRUSTER_H

#include <stdint.h>
#include <stdlib.h>

#ifdef LINUX_TEMP_PORT
#define THR_DBG_ENB 1 
#endif

int8_t thruster_tc_hdlr(uint32_t tc_id, uint8_t* tc_data, uint16_t tc_len);

int8_t obc_tc_thruster_set_mode(uint8_t* tc_data);
int8_t obc_tc_thruster_get_mode(uint8_t* tc_data);
int8_t obc_tc_thruster_set_firing_duration(uint8_t* tc_data);
int8_t obc_tc_thruster_get_firing_duration(uint8_t* tc_data);
int8_t obc_tc_thruster_get_input_power_consmp(uint8_t* tc_data);
int8_t obc_tc_thruster_set_radiator_temp_limit(uint8_t* tc_data);
int8_t obc_tc_thruster_get_radiator_temp_limit(uint8_t* tc_data);
int8_t obc_tc_thruster_set_tank_pressure_limit(uint8_t* tc_data);
int8_t obc_tc_thruster_get_tank_pressure_limit(uint8_t* tc_data);
int8_t obc_tc_thruster_get_remaining_propellant(uint8_t* tc_data);
//int8_t obc_tc_thruster_get_active_status(uint8_t* tc_data);
int8_t obc_tc_thruster_get_onboard_temperature(uint8_t* tc_data);


typedef struct
{
    uint8_t thruster_id;
    uint8_t mode;
} __attribute__((__packed__))thruster_mode_info;

typedef struct
{
    uint8_t thruster_id;
    uint32_t firing_duration;
} __attribute__((__packed__))thruster_firing_dur_info;

typedef struct
{
    uint8_t thruster_id;
    float thr_rmng_prplnt_lvl;
} __attribute__((__packed__))thruster_remaining_proplent_level;

typedef struct
{
    uint8_t thruster_id;
    float get_onbrd_temp;
} __attribute__((__packed__))thruster_onboard_temperature;

typedef struct
{
uint8_t thruster_id;
float min_rad_temp;
float max_rad_temp;
} __attribute__((__packed__))thruster_radiator_temperature_limit;

typedef struct
{
uint8_t thruster_id;
float voltage;
float current;
}__attribute__((__packed__))thruster_power_consumption;

typedef struct
{
uint8_t thruster_id;
float min_tank_prs;
float max_tank_prs;
} __attribute__((__packed__))thruster_tank_presure_limit;


#endif
