comparison src/cs/services/fcbm/fcbm_charging.c @ 245:3eccca3ac219

FCBM: charging state display implemented
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 05 May 2021 07:02:50 +0000
parents 35474f3a1782
children 00107c0b8570
comparison
equal deleted inserted replaced
244:96784b8974eb 245:3eccca3ac219
12 #include "fcbm/fcbm_timer_i.h" 12 #include "fcbm/fcbm_timer_i.h"
13 #include "fchg/fchg_api.h" 13 #include "fchg/fchg_api.h"
14 #include "r2d/r2d.h" 14 #include "r2d/r2d.h"
15 #include "r2d/r2d_blrr_api.h" 15 #include "r2d/r2d_blrr_api.h"
16 #include "abb/abb.h" 16 #include "abb/abb.h"
17 #include <stdio.h>
17 18
18 #ifdef LSCREEN 19 #ifdef LSCREEN
19 char fcbm_prod_banner_string[] = "FreeCalypso Handset"; 20 char fcbm_prod_banner_string[] = "FreeCalypso Handset";
20 #else 21 #else
21 char fcbm_prod_banner_string[] = "FreeCalypso Lite"; 22 char fcbm_prod_banner_string[] = "FreeCalypso Lite";
22 #endif 23 #endif
24
25 static char *fchg_states[] = {
26 "No charge power",
27 "CHG start delay",
28 "Ready to charge",
29 "Charge complete",
30 "I2V cal phase 1",
31 "I2V cal phase 2",
32 "CI charging",
33 "CV charging",
34 "Time exceeded",
35 "No charging"
36 };
23 37
24 void fcbm_process_msg_chg_mode(void) 38 void fcbm_process_msg_chg_mode(void)
25 { 39 {
26 if (fcbm_life_cycle_state != FCBM_STATE_INACTIVE) { 40 if (fcbm_life_cycle_state != FCBM_STATE_INACTIVE) {
27 rvf_send_trace("FCBM got charging mode request in wrong state", 41 rvf_send_trace("FCBM got charging mode request in wrong state",
45 fcbm_life_cycle_state = FCBM_STATE_ACTIVE; 59 fcbm_life_cycle_state = FCBM_STATE_ACTIVE;
46 } 60 }
47 61
48 static void charging_info_update(void) 62 static void charging_info_update(void)
49 { 63 {
50 /* to be filled */ 64 struct fchg_user_state state;
65 char str[20];
66
67 fchg_get_current_state(&state);
68 fcbm_display_line(3, fchg_states[state.chg_state]);
69 sprintf(str, "Vbat=%u mV", state.batt_mv);
70 fcbm_display_line(5, str);
71 sprintf(str, "Ichg=%u mA", fchg_convert_ichg_to_mA(state.ichg));
72 fcbm_display_line(6, str);
73 sprintf(str, "(%u ADC units)", state.ichg);
74 fcbm_display_line(7, str);
75 r2d_flush();
51 } 76 }
52 77
53 static void power_off_check(void) 78 static void power_off_check(void)
54 { 79 {
55 SYS_UWORD16 abb_status; 80 SYS_UWORD16 abb_status;