STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
battery.c
Go to the documentation of this file.
1
#include "
battery.h
"
2
3
uint16_t
battery_counts_to_mv
(uint32_t counts) {
4
if
(counts >
BATTERY_ADC_FULL_SCALE
) {
5
return
0U;
6
}
7
return
(uint16_t)((counts *
BATTERY_MV_AT_FULL_SCALE
+
8
BATTERY_ADC_FULL_SCALE
/ 2U) /
9
BATTERY_ADC_FULL_SCALE
);
10
}
11
12
battery_t
battery_assess
(
bool
valid, uint32_t counts,
bool
on_usb
) {
13
battery_t
b
= {
BATTERY_INVALID
, 0, 0};
14
if
(!valid || counts >
BATTERY_ADC_FULL_SCALE
) {
15
return
b
;
16
}
17
b
.counts = (uint16_t)counts;
18
b
.mv =
battery_counts_to_mv
(counts);
19
if
(
on_usb
) {
20
b
.state =
BATTERY_USB
;
21
}
else
if
(
b
.mv <
BATTERY_FAIL_MV
||
b
.mv >
BATTERY_MAX_MV
) {
22
b
.state =
BATTERY_FAIL
;
23
}
else
if
(
b
.mv <
BATTERY_WARN_MV
) {
24
b
.state =
BATTERY_WARN
;
25
}
else
{
26
b
.state =
BATTERY_OK
;
27
}
28
return
b
;
29
}
30
31
const
char
*
battery_state_name
(
battery_state_t
state
) {
32
switch
(
state
) {
33
case
BATTERY_OK
:
34
return
"OK"
;
35
case
BATTERY_WARN
:
36
return
"LOW, charge before flight"
;
37
case
BATTERY_FAIL
:
38
return
"FAIL"
;
39
case
BATTERY_USB
:
40
return
"on USB (battery not measured)"
;
41
case
BATTERY_INVALID
:
42
return
"ADC read failed"
;
43
default
:
44
return
"not read"
;
45
}
46
}
battery_counts_to_mv
uint16_t battery_counts_to_mv(uint32_t counts)
Definition
battery.c:3
battery_state_name
const char * battery_state_name(battery_state_t state)
Definition
battery.c:31
battery_assess
battery_t battery_assess(bool valid, uint32_t counts, bool on_usb)
Definition
battery.c:12
battery.h
battery_state_t
battery_state_t
Definition
battery.h:38
BATTERY_USB
@ BATTERY_USB
Definition
battery.h:43
BATTERY_WARN
@ BATTERY_WARN
Definition
battery.h:41
BATTERY_OK
@ BATTERY_OK
Definition
battery.h:40
BATTERY_INVALID
@ BATTERY_INVALID
Definition
battery.h:44
BATTERY_FAIL
@ BATTERY_FAIL
Definition
battery.h:42
BATTERY_MAX_MV
#define BATTERY_MAX_MV
Definition
battery.h:36
BATTERY_MV_AT_FULL_SCALE
#define BATTERY_MV_AT_FULL_SCALE
Definition
battery.h:29
BATTERY_WARN_MV
#define BATTERY_WARN_MV
Definition
battery.h:32
BATTERY_FAIL_MV
#define BATTERY_FAIL_MV
Definition
battery.h:33
BATTERY_ADC_FULL_SCALE
#define BATTERY_ADC_FULL_SCALE
Definition
battery.h:30
state
static ActuatorControllerState state
Definition
main.cpp:57
on_usb
static bool on_usb(void *ctx)
Definition
idle_task.c:37
b
*brief create JSON pointer *sa reference_tokens const string_t const string_t & b
Definition
json.hpp:13878
battery_t
Definition
battery.h:47
firmware
Flight_Computer
src
app
battery.c
Generated by
1.15.0