FreeCalypso > hg > fc-tourmaline
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; |