CTS-SAT-1-OBC-Firmware
Loading...
Searching...
No Matches
obc_temperature_sensor.h
Go to the documentation of this file.
1#ifndef INCLUDE_GUARD__OBC_TEMPERATURE_SENSOR_H
2#define INCLUDE_GUARD__OBC_TEMPERATURE_SENSOR_H
3
4#include <stdint.h>
5
7static const int32_t OBC_TEMP_SENSOR_ERROR_TEMPERATURE_CC = 99999;
8
13
14static const uint16_t OBC_TEMP_SENSOR_nine_bit_scaling_factor = 10;
15static const uint16_t OBC_TEMP_SENSOR_ten_bit_scaling_factor = 100;
16static const uint16_t OBC_TEMP_SENSOR_eleven_bit_scaling_factor = 1000;
17static const uint16_t OBC_TEMP_SENSOR_twelve_bit_scaling_factor = 10000;
18
26
27// used for unit tests
29{
33 uint8_t config_write_data; // data to be written to the config register.
34 uint32_t conversion_delay_ms; // time it takes for sensor to convert to specific precision
35};
36
37
38uint8_t OBC_TEMP_SENSOR_read_temperature(int32_t *result);
40 uint8_t raw_bytes[], uint8_t precision_coefficient,
42 uint16_t precision_scaling_factor
43);
44uint8_t OBC_TEMP_SENSOR_set_temp_precision(uint8_t arg_precision, uint32_t* temp_precision_conversion_delay, uint32_t* temp_scaling_factor);
45uint8_t OBC_TEMP_SENSOR_configure_precision_values(uint8_t arg_precision, struct Set_Precision_Data* precision_data);
47
49
50#endif /* INCLUDE_GUARD__OBC_TEMPERATURE_SENSOR_H */
int32_t OBC_TEMP_SENSOR_get_temperature_cC()
The simplest and most foolproof way to get the OBC temperature in centi-celsius.
Definition obc_temperature_sensor.c:193
static const int32_t OBC_TEMP_SENSOR_ERROR_TEMPERATURE_CC
A fake temperature, in cC, which indicates an error in reading the temperature.
Definition obc_temperature_sensor.h:7
static const uint16_t OBC_TEMP_SENSOR_ten_bit_scaling_factor
Definition obc_temperature_sensor.h:15
uint8_t OBC_TEMP_SENSOR_configure_precision_values(uint8_t arg_precision, struct Set_Precision_Data *precision_data)
Configures the precision global variables in preparation for setting the precision.
Definition obc_temperature_sensor.c:149
int8_t OBC_TEMP_SENSOR_get_temp_precision(void)
Reads the temperature precision from the config register. Refer to https://www.st....
Definition obc_temperature_sensor.c:85
static const float OBC_TEMP_SENSOR_ten_bit_precision_coefficient
Definition obc_temperature_sensor.h:10
static const float OBC_TEMP_SENSOR_twelve_bit_precision_coefficient
Definition obc_temperature_sensor.h:12
static const float OBC_TEMP_SENSOR_eleven_bit_precision_coefficient
Definition obc_temperature_sensor.h:11
static const uint16_t OBC_TEMP_SENSOR_twelve_bit_scaling_factor
Definition obc_temperature_sensor.h:17
Temperature_Sensor_Data_Precision_Insignificant_Bytes_t
Definition obc_temperature_sensor.h:20
@ OBC_TEMP_SENSOR_TEN_BIT_PRECISION_INSIGNIFICANT_BYTES
Definition obc_temperature_sensor.h:23
@ OBC_TEMP_SENSOR_TWELVE_BIT_PRECISION_INSIGNIFICANT_BYTES
Definition obc_temperature_sensor.h:21
@ OBC_TEMP_SENSOR_NINE_BIT_PRECISION_INSIGNIFICANT_BYTES
Definition obc_temperature_sensor.h:24
@ OBC_TEMP_SENSOR_ELEVEN_BIT_PRECISION_INSIGNIFICANT_BYTES
Definition obc_temperature_sensor.h:22
uint8_t OBC_TEMP_SENSOR_set_temp_precision(uint8_t arg_precision, uint32_t *temp_precision_conversion_delay, uint32_t *temp_scaling_factor)
Set the temp temperature precision in the config register.
Definition obc_temperature_sensor.c:111
uint8_t OBC_TEMP_SENSOR_read_temperature(int32_t *result)
Reads the temperature from the STDS75DS2F and stores it in the provided variable pointer result....
Definition obc_temperature_sensor.c:32
int32_t OBC_TEMP_SENSOR_convert_raw_to_deg_c(uint8_t raw_bytes[], uint8_t precision_coefficient, Temperature_Sensor_Data_Precision_Insignificant_Bytes_t precision_insignificant_bits, uint16_t precision_scaling_factor)
Converts the raw bytes provided to a temperature in celsius and multiplied by a scaling factor based ...
Definition obc_temperature_sensor.c:61
static const float OBC_TEMP_SENSOR_nine_bit_precision_coefficient
Definition obc_temperature_sensor.h:9
static const uint16_t OBC_TEMP_SENSOR_eleven_bit_scaling_factor
Definition obc_temperature_sensor.h:16
static const uint16_t OBC_TEMP_SENSOR_nine_bit_scaling_factor
Definition obc_temperature_sensor.h:14
Definition obc_temperature_sensor.h:29
Temperature_Sensor_Data_Precision_Insignificant_Bytes_t precision_insignificant_bits
Definition obc_temperature_sensor.h:31
uint16_t precision_scaling_factor
Definition obc_temperature_sensor.h:30
uint8_t config_write_data
Definition obc_temperature_sensor.h:33
float precision_coefficient
Definition obc_temperature_sensor.h:32
uint32_t conversion_delay_ms
Definition obc_temperature_sensor.h:34