@@ -68,175 +68,175 @@ static const struct bt_conn_auth_cb auth_callbacks;
6868#endif
6969
7070static service_t ble_service = {
71- .service_id = BLE_SERVICE_ID ,
72- .client_connected = ble_client_connected ,
73- .client_disconnected = ble_client_disconnected ,
71+ .service_id = BLE_SERVICE_ID ,
72+ .client_connected = ble_client_connected ,
73+ .client_disconnected = ble_client_disconnected ,
7474};
7575
7676static void ble_is_not_enabled_rsp (struct cfw_message * msg , int status )
7777{
78- struct ble_enable_rsp * resp =
79- (struct ble_enable_rsp * )cfw_alloc_rsp_msg (msg ,
80- /* translate msg from req to rsp */
81- (CFW_MESSAGE_ID (msg ) ^ MSG_ID_BLE_SERVICE_BASE )
82- | MSG_ID_BLE_SERVICE_RSP ,
83- sizeof (* resp ));
84- resp -> status = status ;
85- cfw_send_message (resp );
78+ struct ble_enable_rsp * resp =
79+ (struct ble_enable_rsp * )cfw_alloc_rsp_msg (msg ,
80+ /* translate msg from req to rsp */
81+ (CFW_MESSAGE_ID (msg ) ^ MSG_ID_BLE_SERVICE_BASE )
82+ | MSG_ID_BLE_SERVICE_RSP ,
83+ sizeof (* resp ));
84+ resp -> status = status ;
85+ cfw_send_message (resp );
8686}
8787
8888#ifdef CONFIG_TCMD_BLE_DEBUG
8989static void handle_msg_id_ble_dbg (struct cfw_message * msg )
9090{
91- struct nble_dbg_req params ;
92- struct ble_dbg_req_rsp * resp = (void * )
93- cfw_alloc_rsp_msg (msg , MSG_ID_BLE_DBG_RSP , sizeof (* resp ));
94- struct ble_dbg_req_rsp * req = (struct ble_dbg_req_rsp * ) msg ;
91+ struct nble_dbg_req params ;
92+ struct ble_dbg_req_rsp * resp = (void * )
93+ cfw_alloc_rsp_msg (msg , MSG_ID_BLE_DBG_RSP , sizeof (* resp ));
94+ struct ble_dbg_req_rsp * req = (struct ble_dbg_req_rsp * ) msg ;
9595
96- params .u0 = req -> u0 ;
97- params .u1 = req -> u1 ;
96+ params .u0 = req -> u0 ;
97+ params .u1 = req -> u1 ;
9898 params .user_data = (void * )resp ;
99- nble_dbg_req (& params );
99+ nble_dbg_req (& params );
100100}
101101#endif /* CONFIG_TCMD_BLE_DEBUG */
102102
103103void on_nble_dbg_rsp (const struct nble_dbg_rsp * params )
104104{
105105#ifdef CONFIG_TCMD_BLE_DEBUG
106- struct ble_dbg_req_rsp * resp = params -> user_data ;
107- if (!resp )
108- return ;
109- resp -> u0 = params -> u0 ;
110- resp -> u1 = params -> u1 ;
111- cfw_send_message (resp );
106+ struct ble_dbg_req_rsp * resp = params -> user_data ;
107+ if (!resp )
108+ return ;
109+ resp -> u0 = params -> u0 ;
110+ resp -> u1 = params -> u1 ;
111+ cfw_send_message (resp );
112112#endif /* CONFIG_TCMD_BLE_DEBUG */
113113}
114114
115115
116116static void handle_msg_id_ble_rpc_callin (struct message * msg , void * priv )
117117{
118- struct ble_rpc_callin * rpc = container_of (msg , struct ble_rpc_callin , msg );
119- /* handle incoming message */
118+ struct ble_rpc_callin * rpc = container_of (msg , struct ble_rpc_callin , msg );
119+ /* handle incoming message */
120120 //pr_debug(LOG_MODULE_BLE, "%s-%d", __FUNCTION__, __LINE__);
121- rpc_deserialize (rpc -> p_data , rpc -> len );
122- bfree (rpc -> p_data );
123- message_free (msg );
121+ rpc_deserialize (rpc -> p_data , rpc -> len );
122+ bfree (rpc -> p_data );
123+ message_free (msg );
124124 //pr_debug(LOG_MODULE_BLE, "%s-%d", __FUNCTION__, __LINE__);
125125}
126126
127127static void ble_set_bda_cb (int status ,
128128 void * user_data ,
129129 const bt_addr_le_t * bda )
130130{
131- struct ble_enable_req * req = user_data ;
131+ struct ble_enable_req * req = user_data ;
132132
133- if (!req )
134- return ;
133+ if (!req )
134+ return ;
135135
136- struct ble_enable_rsp * resp = (void * )cfw_alloc_rsp_msg (& req -> header ,
136+ struct ble_enable_rsp * resp = (void * )cfw_alloc_rsp_msg (& req -> header ,
137137 MSG_ID_BLE_ENABLE_RSP ,
138138 sizeof (* resp ));
139- resp -> status = status ;
140-
141- if (status == 0 ) {
142- resp -> enable = 1 ;
143-
144- //nble_read_bda_req(resp);
145- } else {
146- /* error case */
147- resp -> enable = 0 ;
148- cfw_send_message (resp );
149- }
150- bfree (req );
139+ resp -> status = status ;
140+
141+ if (status == 0 ) {
142+ resp -> enable = 1 ;
143+
144+ //nble_read_bda_req(resp);
145+ } else {
146+ /* error case */
147+ resp -> enable = 0 ;
148+ cfw_send_message (resp );
149+ }
150+ bfree (req );
151151}
152152
153153static void handle_ble_enable (struct ble_enable_req * req ,
154154 struct _ble_service_cb * p_cb )
155155{
156- pr_info (LOG_MODULE_BLE , "ble_enable: state %d" , p_cb -> ble_state );
156+ pr_info (LOG_MODULE_BLE , "ble_enable: state %d" , p_cb -> ble_state );
157157
158- p_cb -> ble_state = BLE_ST_ENABLED ;
158+ p_cb -> ble_state = BLE_ST_ENABLED ;
159159
160- if (req -> bda_present ) {
161- struct nble_set_bda_req params ;
160+ if (req -> bda_present ) {
161+ struct nble_set_bda_req params ;
162162
163- params .cb = ble_set_bda_cb ;
164- params .user_data = req ;
165- params .bda = req -> bda ;
163+ params .cb = ble_set_bda_cb ;
164+ params .user_data = req ;
165+ params .bda = req -> bda ;
166166
167- nble_set_bda_req (& params );
168- } else {
169- ble_set_bda_cb (0 , req , NULL );
170- }
167+ nble_set_bda_req (& params );
168+ } else {
169+ ble_set_bda_cb (0 , req , NULL );
170+ }
171171}
172172
173173static void handle_ble_disable (struct ble_enable_req * req , struct _ble_service_cb * p_cb )
174174{
175- struct ble_enable_rsp * resp ;
175+ struct ble_enable_rsp * resp ;
176176
177- pr_debug (LOG_MODULE_BLE , "ble_disable" );
178- p_cb -> ble_state = BLE_ST_DISABLED ;
177+ pr_debug (LOG_MODULE_BLE , "ble_disable" );
178+ p_cb -> ble_state = BLE_ST_DISABLED ;
179179
180- bt_le_adv_stop ();
180+ bt_le_adv_stop ();
181181
182- resp = (void * )cfw_alloc_rsp_msg (& req -> header ,
183- MSG_ID_BLE_ENABLE_RSP ,
184- sizeof (* resp ));
185- cfw_send_message (resp ); // Sid. KW warning ack.
182+ resp = (void * )cfw_alloc_rsp_msg (& req -> header ,
183+ MSG_ID_BLE_ENABLE_RSP ,
184+ sizeof (* resp ));
185+ cfw_send_message (resp ); // Sid. KW warning ack.
186186
187187}
188188
189189static void ble_service_message_handler (struct cfw_message * msg , void * param )
190190{
191- bool free_msg = true;
192- struct _ble_service_cb * p_cb = param ;
193- uint16_t msg_id = CFW_MESSAGE_ID (msg );
194-
195- if (p_cb -> ble_state < BLE_ST_ENABLED &&
196- msg_id != MSG_ID_BLE_ENABLE_REQ ) {
197- ble_is_not_enabled_rsp (msg , - ENODEV );
198- goto out ;
199- }
200-
201- switch (msg_id ) {
202- case MSG_ID_BLE_ENABLE_REQ : {
203- struct ble_enable_req * req =
204- container_of (msg , struct ble_enable_req , header );
205- if (p_cb -> ble_state ) {
206- if (req -> enable ) {
207- handle_ble_enable (req , p_cb );
208- free_msg = false;
209- } else
210- handle_ble_disable (req , p_cb );
211- } else {
212- pr_debug (LOG_MODULE_BLE , "ble_hdl_msg: core service not opened!" );
213- /* core service is not yet up */
214- struct ble_enable_rsp * resp = (void * )cfw_alloc_rsp_msg (msg ,
215- MSG_ID_BLE_ENABLE_RSP , sizeof (* resp ));
216- resp -> status = - EINPROGRESS ;
217- resp -> enable = 0 ;
218- cfw_send_message (resp ); // Sid. KW warning ack.
219- }
220- }
221- break ;
191+ bool free_msg = true;
192+ struct _ble_service_cb * p_cb = param ;
193+ uint16_t msg_id = CFW_MESSAGE_ID (msg );
194+
195+ if (p_cb -> ble_state < BLE_ST_ENABLED &&
196+ msg_id != MSG_ID_BLE_ENABLE_REQ ) {
197+ ble_is_not_enabled_rsp (msg , - ENODEV );
198+ goto out ;
199+ }
200+
201+ switch (msg_id ) {
202+ case MSG_ID_BLE_ENABLE_REQ : {
203+ struct ble_enable_req * req =
204+ container_of (msg , struct ble_enable_req , header );
205+ if (p_cb -> ble_state ) {
206+ if (req -> enable ) {
207+ handle_ble_enable (req , p_cb );
208+ free_msg = false;
209+ } else
210+ handle_ble_disable (req , p_cb );
211+ } else {
212+ pr_debug (LOG_MODULE_BLE , "ble_hdl_msg: core service not opened!" );
213+ /* core service is not yet up */
214+ struct ble_enable_rsp * resp = (void * )cfw_alloc_rsp_msg (msg ,
215+ MSG_ID_BLE_ENABLE_RSP , sizeof (* resp ));
216+ resp -> status = - EINPROGRESS ;
217+ resp -> enable = 0 ;
218+ cfw_send_message (resp ); // Sid. KW warning ack.
219+ }
220+ }
221+ break ;
222222#ifdef CONFIG_TCMD_BLE_DEBUG
223- case MSG_ID_BLE_DBG_REQ :
224- handle_msg_id_ble_dbg (msg );
225- break ;
223+ case MSG_ID_BLE_DBG_REQ :
224+ handle_msg_id_ble_dbg (msg );
225+ break ;
226226#endif
227- default :
228- pr_warning (LOG_MODULE_BLE , "unsupported %d" , msg_id );
229- break ;
230- }
227+ default :
228+ pr_warning (LOG_MODULE_BLE , "unsupported %d" , msg_id );
229+ break ;
230+ }
231231out :
232- if (free_msg )
233- cfw_msg_free (msg );
232+ if (free_msg )
233+ cfw_msg_free (msg );
234234}
235235
236236static void ble_client_connected (conn_handle_t * instance )
237237{
238- if (_ble_cb .ble_state == BLE_ST_NOT_READY )
239- pr_warning (LOG_MODULE_BLE , "BLE_CORE service is not registered" );
238+ if (_ble_cb .ble_state == BLE_ST_NOT_READY )
239+ pr_warning (LOG_MODULE_BLE , "BLE_CORE service is not registered" );
240240}
241241
242242static void ble_client_disconnected (conn_handle_t * instance )
@@ -246,26 +246,30 @@ static void ble_client_disconnected(conn_handle_t *instance)
246246void ble_bt_rdy (int err )
247247{
248248 BT_SERVICE_ASSERT (err == 0 );
249- _ble_cb .ble_state = BLE_ST_DISABLED ;
249+ _ble_cb .ble_state = BLE_ST_DISABLED ;
250250 ble_inited = true;
251251
252- /* register BLE service */
253- if (cfw_register_service (_ble_cb .queue ,
252+ /* register BLE service */
253+ if (cfw_register_service (_ble_cb .queue ,
254254 & ble_service ,
255255 ble_service_message_handler ,
256256 & _ble_cb ) == -1 ) {
257- panic (0xb1eb1e );
258- }
257+ panic (0xb1eb1e );
258+ }
259259}
260260
261261void ble_cfw_service_init (int service_id , T_QUEUE queue )
262262{
263- uint32_t time_stamp_last = 0 ;
264- _ble_cb .queue = queue ;
265- _ble_cb . ble_state = BLE_ST_NOT_READY ;
263+ _ble_cb . queue = queue ;
264+ _ble_cb .ble_state = BLE_ST_NOT_READY ;
265+ }
266266
267+ void ble_enable ()
268+ {
269+ uint32_t time_stamp_last = 0 ;
270+
267271#ifdef CONFIG_IPC_UART_NS16550
268- nble_driver_configure (queue , handle_msg_id_ble_rpc_callin );
272+ nble_driver_configure (_ble_cb . queue , handle_msg_id_ble_rpc_callin );
269273#endif
270274
271275 ble_inited = false;
0 commit comments