annotate src/cs/drivers/drv_app/fchg/bsim_etm_cmd.c @ 276:4221c724c664

R2D: preparations for adding LCD hardware suspend handling
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 07 Sep 2021 21:05:38 +0000
parents aec644728174
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
256
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * In this module we are going to implement our handling of
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * ETM_BSIM command packets sent from a development host.
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 */
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 #include "fchg/fchg_env.h"
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #include "fchg/fchg_func_i.h"
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 #include "fchg/bsim_func_i.h"
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 #include "fchg/bsim_etm_cmd.h"
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 #include "rv/rv_general.h"
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 #include "rvf/rvf_api.h"
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 #include "rvm/rvm_use_id_list.h"
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 #include "etm/etm.h"
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 #include "etm/etm_api.h"
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 static void bsim_cmd_query(T_ETM_PKT *resp)
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 {
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 etm_pkt_put8(resp, pwr_ctrl->state);
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 etm_pkt_put8(resp,
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 pwr_ctrl->batt.percent_thresh[pwr_ctrl->curr_disch_thresh].remain_capa);
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 etm_pkt_put8(resp, pwr_ctrl->bsim.start_enable);
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 resp->status = BSIM_STAT_OK;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 }
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 static void bsim_cmd_discharge(T_ETM_PKT *resp, UINT8 set_percent)
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 {
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 UINT16 i;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 switch (pwr_ctrl->state) {
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 case FCHG_STATE_NO_EXT_PWR:
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 case FCHG_STATE_PWR_PLUG_TIMER:
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 case FCHG_STATE_READY_TO_CHARGE:
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 case FCHG_STATE_READY_TO_RECHARGE:
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 case FCHG_STATE_RECHARGE_TIMER:
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 case FCHG_STATE_NO_CHARGING:
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 break;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 default:
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 resp->status = BSIM_ERR_WRONG_STATE;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 return;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 }
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 for (i = 0; i < pwr_ctrl->nb_percent_thresh; i++) {
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 if (pwr_ctrl->batt.percent_thresh[i].remain_capa ==
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 set_percent)
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 break;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 }
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 if (i >= pwr_ctrl->nb_percent_thresh) {
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 resp->status = BSIM_ERR_INV_PERCENT;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 return;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 }
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 if (i <= pwr_ctrl->curr_disch_thresh) {
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 resp->status = BSIM_ERR_INV_DISCHARGE;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 return;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 }
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 pwr_ctrl->curr_disch_thresh = i;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 if (pwr_ctrl->event_handler)
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 pwr_ctrl->event_handler(FCHG_EVENT_DISCHARGE);
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 resp->status = BSIM_STAT_OK;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 }
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 static void bsim_cmd_chg_start(T_ETM_PKT *resp)
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 {
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 switch (pwr_ctrl->state) {
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 case FCHG_STATE_READY_TO_CHARGE:
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 case FCHG_STATE_READY_TO_RECHARGE:
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 break;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 default:
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 resp->status = BSIM_ERR_WRONG_STATE;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 return;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 }
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 rvf_send_trace("BSIM: simulated charging start", 30, NULL_PARAM,
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 RV_TRACE_LEVEL_DEBUG_MEDIUM, FCHG_USE_ID);
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 pwr_ctrl->state = FCHG_STATE_I2V_CAL_1;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 resp->status = BSIM_STAT_OK;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 }
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 static void bsim_cmd_chg_ci2cv(T_ETM_PKT *resp)
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 {
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 if (pwr_ctrl->state != FCHG_STATE_CI_CHARGING) {
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 resp->status = BSIM_ERR_WRONG_STATE;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 return;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 }
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 rvf_send_trace("BSIM: simulated charging CI->CV", 31, NULL_PARAM,
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 RV_TRACE_LEVEL_DEBUG_MEDIUM, FCHG_USE_ID);
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 pwr_ctrl->state = FCHG_STATE_CV_CHARGING;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 resp->status = BSIM_STAT_OK;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 }
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 static void bsim_cmd_chg_complete(T_ETM_PKT *resp)
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 {
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 if (pwr_ctrl->state != FCHG_STATE_CV_CHARGING) {
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 resp->status = BSIM_ERR_WRONG_STATE;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 return;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93 }
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 rvf_send_trace("BSIM: simulated charging complete", 33, NULL_PARAM,
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95 RV_TRACE_LEVEL_DEBUG_MEDIUM, FCHG_USE_ID);
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96 pwr_init_discharge();
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 pwr_ctrl->state = FCHG_STATE_READY_TO_RECHARGE;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 if (pwr_ctrl->event_handler)
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 pwr_ctrl->event_handler(FCHG_EVENT_CHARGING_COMPLETE);
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100 resp->status = BSIM_STAT_OK;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 }
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 static void bsim_cmd_set_ichg(T_ETM_PKT *resp, UINT16 ichg)
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 {
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 pwr_ctrl->ci_ichg = ichg;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106 pwr_ctrl->ichg_average = ichg;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 resp->status = BSIM_STAT_OK;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 }
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110 static void bsim_cmd_start_enable(T_ETM_PKT *resp, UINT8 setting)
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111 {
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 pwr_ctrl->bsim.start_enable = setting;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113 resp->status = BSIM_STAT_OK;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 }
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 void bsim_process_etm(T_ETM_DATA_READY *msg)
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117 {
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118 T_ETM_PKT *resp;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119 uint8 fid;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121 resp = (T_ETM_PKT *) etm_malloc(sizeof(T_ETM_PKT));
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122 if (!resp) {
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 rvf_send_trace(
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 "Unable to respond to ETM_BSIM: etm_malloc() failed", 50,
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 NULL_PARAM, RV_TRACE_LEVEL_ERROR, FCHG_USE_ID);
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126 return;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 }
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 /* init response packet */
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129 resp->mid = ETM_BSIM;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
130 resp->size = 0;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131 resp->index = 0;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
132 /* start processing command */
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133 fid = msg->data[0];
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134 etm_pkt_put8(resp, fid);
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
135 /* command dispatch */
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
136 switch (fid) {
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
137 case BSIM_CMD_QUERY:
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
138 bsim_cmd_query(resp);
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
139 break;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140 case BSIM_CMD_DISCHARGE:
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141 bsim_cmd_discharge(resp, etm_get8(msg->data + 1));
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142 break;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143 case BSIM_CMD_CHG_START:
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 bsim_cmd_chg_start(resp);
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145 break;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146 case BSIM_CMD_CHG_CI2CV:
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147 bsim_cmd_chg_ci2cv(resp);
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148 break;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149 case BSIM_CMD_CHG_COMPLETE:
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
150 bsim_cmd_chg_complete(resp);
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151 break;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152 case BSIM_CMD_SET_ICHG:
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153 bsim_cmd_set_ichg(resp, etm_get16(msg->data + 1));
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154 break;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155 case BSIM_CMD_START_ENABLE:
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156 bsim_cmd_start_enable(resp, etm_get8(msg->data + 1));
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157 break;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158 default:
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159 resp->status = BSIM_ERR_BAD_CMD;
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
160 }
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161 etm_pkt_send(resp);
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162 etm_free(resp);
aec644728174 FCHG BSIM: ETM connection implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163 }