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
3uint16_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 +
10}
11
12battery_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
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}
uint16_t battery_counts_to_mv(uint32_t counts)
Definition battery.c:3
const char * battery_state_name(battery_state_t state)
Definition battery.c:31
battery_t battery_assess(bool valid, uint32_t counts, bool on_usb)
Definition battery.c:12
battery_state_t
Definition battery.h:38
@ BATTERY_USB
Definition battery.h:43
@ BATTERY_WARN
Definition battery.h:41
@ BATTERY_OK
Definition battery.h:40
@ BATTERY_INVALID
Definition battery.h:44
@ BATTERY_FAIL
Definition battery.h:42
#define BATTERY_MAX_MV
Definition battery.h:36
#define BATTERY_MV_AT_FULL_SCALE
Definition battery.h:29
#define BATTERY_WARN_MV
Definition battery.h:32
#define BATTERY_FAIL_MV
Definition battery.h:33
#define BATTERY_ADC_FULL_SCALE
Definition battery.h:30
static ActuatorControllerState state
Definition main.cpp:57
static bool on_usb(void *ctx)
Definition idle_task.c:37
*brief create JSON pointer *sa reference_tokens const string_t const string_t & b
Definition json.hpp:13878