source: azure_iot_hub_f767zi/trunk/asp_baseplatform/gdic/ble_shield2.1/utility/acilib_if.h@ 457

Last change on this file since 457 was 457, checked in by coas-nagasima, 4 years ago

ファイルを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-chdr;charset=UTF-8
File size: 18.1 KB
Line 
1/* Copyright (c) 2014, Nordic Semiconductor ASA
2 *
3 * Permission is hereby granted, free of charge, to any person obtaining a copy
4 * of this software and associated documentation files (the "Software"), to deal
5 * in the Software without restriction, including without limitation the rights
6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 * copies of the Software, and to permit persons to whom the Software is
8 * furnished to do so, subject to the following conditions:
9 *
10 * The above copyright notice and this permission notice shall be included in all
11 * copies or substantial portions of the Software.
12 *
13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 * SOFTWARE.
20 */
21
22/**
23 * @file
24 *
25 * @ingroup group_acilib
26 *
27 * @brief Prototypes for the acilib interfaces.
28 */
29
30#ifndef _acilib_IF_H_
31#define _acilib_IF_H_
32
33/** @brief Encode the ACI message for set test mode command
34 *
35 * @param[in,out] buffer Pointer to ACI message buffer
36 * @param[in] test_mode Pointer to the test mode in ::aci_cmd_params_test_t
37 *
38 * @return None
39 */
40void acil_encode_cmd_set_test_mode(uint8_t *buffer, aci_cmd_params_test_t *p_aci_cmd_params_test);
41
42/** @brief Encode the ACI message for sleep command
43 *
44 * @param[in,out] buffer Pointer to ACI message buffer
45 *
46 * @return None
47 */
48void acil_encode_cmd_sleep(uint8_t *buffer);
49
50/** @brief Encode the ACI message for get device version
51 *
52 * @param[in,out] buffer Pointer to ACI message buffer
53 *
54 * @return None
55 */
56void acil_encode_cmd_get_device_version(uint8_t *buffer);
57
58/** @brief Encode the ACI message for set local data
59 *
60 * @param[in,out] buffer Pointer to ACI message buffer
61 * @param[in] p_aci_cmd_params_set_local_data Pointer to the local data parameters in ::aci_cmd_params_set_local_data_t
62 * @param[in] data_size Size of data message
63 *
64 * @return None
65 */
66void acil_encode_cmd_set_local_data(uint8_t *buffer, aci_cmd_params_set_local_data_t *p_aci_cmd_params_set_local_data, uint8_t data_size);
67
68/** @brief Encode the ACI message to connect
69 *
70 * @param[in,out] buffer Pointer to ACI message buffer
71 * @param[in] p_aci_cmd_params_connect Pointer to the run parameters in ::aci_cmd_params_connect_t
72 *
73 * @return None
74 */
75void acil_encode_cmd_connect(uint8_t *buffer, aci_cmd_params_connect_t *p_aci_cmd_params_connect);
76
77/** @brief Encode the ACI message to bond
78 *
79 * @param[in,out] buffer Pointer to ACI message buffer
80 * @param[in] p_aci_cmd_params_bond Pointer to the run parameters in ::aci_cmd_params_bond_t
81 *
82 * @return None
83 */
84void acil_encode_cmd_bond(uint8_t *buffer, aci_cmd_params_bond_t *p_aci_cmd_params_bond);
85
86/** @brief Encode the ACI message to disconnect
87 *
88 * @param[in,out] buffer Pointer to ACI message buffer
89 * @param[in] p_aci_cmd_params_disconnect Pointer to the run parameters in ::aci_cmd_params_disconnect_t
90 *
91 * @return None
92 */
93void acil_encode_cmd_disconnect(uint8_t *buffer, aci_cmd_params_disconnect_t *p_aci_cmd_params_disconnect);
94
95/** @brief Encode the ACI message to baseband reset
96 *
97 * @param[in,out] buffer Pointer to ACI message buffer
98 *
99 * @return None
100 */
101 void acil_encode_baseband_reset(uint8_t *buffer);
102
103 /** @brief Encode the ACI message for Directed Advertising
104 *
105 * @param[in,out] buffer Pointer to ACI message buffer
106 *
107 * @return None
108 */
109 void acil_encode_direct_connect(uint8_t *buffer);
110
111/** @brief Encode the ACI message to wakeup
112 *
113 * @param[in,out] buffer Pointer to ACI message buffer
114 *
115 * @return None
116 */
117void acil_encode_cmd_wakeup(uint8_t *buffer);
118
119/** @brief Encode the ACI message for set radio Tx power
120 *
121 * @param[in,out] buffer Pointer to ACI message buffer
122 * @param[in] p_aci_cmd_params_set_tx_power Pointer to the set Tx power parameters in ::aci_cmd_params_set_tx_power_t
123 *
124 * @return None
125 */
126void acil_encode_cmd_set_radio_tx_power(uint8_t *buffer, aci_cmd_params_set_tx_power_t *p_aci_cmd_params_set_tx_power);
127
128/** @brief Encode the ACI message for get device address
129 *
130 * @param[in,out] buffer Pointer to ACI message buffer
131 *
132 * @return None
133 */
134void acil_encode_cmd_get_address(uint8_t *buffer);
135
136/** @brief Encode the ACI message for send data
137 *
138 * @param[in,out] buffer Pointer to ACI message buffer
139 * @param[in] p_aci_cmd_params_send_data_t Pointer to the data parameters in ::aci_cmd_params_send_data_t
140 * @param[in] data_size Size of data message
141 *
142 * @return None
143 */
144void acil_encode_cmd_send_data(uint8_t *buffer, aci_cmd_params_send_data_t *p_aci_cmd_params_send_data_t, uint8_t data_size);
145
146/** @brief Encode the ACI message for request data
147 *
148 * @param[in,out] buffer Pointer to ACI message buffer
149 * @param[in] p_aci_cmd_params_request_data Pointer to the request data parameters in ::aci_cmd_params_request_data_t
150 *
151 * @return None
152 */
153void acil_encode_cmd_request_data(uint8_t *buffer, aci_cmd_params_request_data_t *p_aci_cmd_params_request_data);
154
155/** @brief Encode the ACI message for open remote pipe
156 *
157 * @param[in,out] buffer Pointer to ACI message buffer
158 * @param[in] p_aci_cmd_params_open_remote_pipe Pointer to the dynamic data parameters in ::aci_cmd_params_open_remote_pipe_t
159 *
160 * @return None
161 */
162void acil_encode_cmd_open_remote_pipe(uint8_t *buffer, aci_cmd_params_open_remote_pipe_t *p_aci_cmd_params_open_remote_pipe);
163
164/** @brief Encode the ACI message for close remote pipe
165 *
166 * @param[in,out] buffer Pointer to ACI message buffer
167 * @param[in] p_aci_cmd_params_close_remote_pipe Pointer to the dynamic data parameters in ::aci_cmd_params_close_remote_pipe_t
168 *
169 * @return None
170 */
171void acil_encode_cmd_close_remote_pipe(uint8_t *buffer, aci_cmd_params_close_remote_pipe_t *p_aci_cmd_params_close_remote_pipe);
172
173/** @brief Encode the ACI message for echo message
174 *
175 * @param[in,out] buffer Pointer to ACI message buffer
176 * @param[in] p_cmd_params_echo Pointer to the dynamic data parameters in ::aci_cmd_params_echo_t
177 * @param[in] msg_size Size of the message
178 *
179 * @return None
180 */
181void acil_encode_cmd_echo_msg(uint8_t *buffer, aci_cmd_params_echo_t *p_cmd_params_echo, uint8_t msg_size);
182
183/** @brief Encode the ACI message to battery level
184 *
185 * @param[in,out] buffer Pointer to ACI message buffer
186 *
187 * @return None
188 */
189void acil_encode_cmd_battery_level(uint8_t *buffer);
190
191/** @brief Encode the ACI message to temparature
192 *
193 * @param[in,out] buffer Pointer to ACI message buffer
194 *
195 * @return None
196 */
197void acil_encode_cmd_temparature(uint8_t *buffer);
198
199/** @brief Encode the ACI message to read dynamic data
200 *
201 * @param[in,out] buffer Pointer to ACI message buffer
202 *
203 * @return None
204 */
205void acil_encode_cmd_read_dynamic_data(uint8_t *buffer);
206
207/** @brief Encode the ACI message to change timing request
208 *
209 * @param[in,out] buffer Pointer to ACI message buffer
210 * @param[in] p_aci_cmd_params_change_timing Pointer to the change timing parameters in ::aci_cmd_params_change_timing_t
211 *
212 * @return None
213 */
214void acil_encode_cmd_change_timing_req(uint8_t *buffer, aci_cmd_params_change_timing_t *p_aci_cmd_params_change_timing);
215
216/** @brief Encode the ACI message to change timing request using the timing parameters from GAP PPCP
217 *
218 * @param[in,out] buffer Pointer to ACI message buffer
219 * @param[in] p_aci_cmd_params_change_timing Pointer to the change timing parameters in ::aci_cmd_params_change_timing_t
220 *
221 * @return None
222 */
223void acil_encode_cmd_change_timing_req_GAP_PPCP(uint8_t *buffer);
224
225
226/** @brief Encode the ACI message for write dynamic data
227 *
228 * @param[in,out] buffer Pointer to ACI message buffer
229 * @param[in] seq_no Sequence number of the dynamic data (as received in the response to @c Read Dynamic Data)
230 * @param[in] dynamic_data Pointer to the dynamic data
231 * @param[in] dynamic_data_size Size of dynamic data
232 *
233 * @return None
234 */
235void acil_encode_cmd_write_dynamic_data(uint8_t *buffer, uint8_t seq_no, uint8_t* dynamic_data, uint8_t dynamic_data_size);
236
237/** @brief Encode the ACI message to send data acknowledgement
238 *
239 * @param[in,out] buffer Pointer to ACI message buffer
240 * @param[in] pipe_number Pipe number for which the ack is to be sent
241 *
242 * @return None
243 */
244void acil_encode_cmd_send_data_ack(uint8_t *buffer, const uint8_t pipe_number);
245
246/** @brief Encode the ACI message to send negative acknowledgement
247 *
248 * @param[in,out] buffer Pointer to ACI message buffer
249 * @param[in] pipe_number Pipe number for which the nack is to be sent
250 * @param[in] error_code Error code that has to be sent in the NACK
251 *
252 * @return None
253 */
254void acil_encode_cmd_send_data_nack(uint8_t *buffer, const uint8_t pipe_number,const uint8_t error_code);
255
256/** @brief Encode the ACI message to set the application latency
257 *
258 * @param[in,out] buffer Pointer to ACI message buffer
259 * @param[in] p_aci_cmd_params_set_app_latency Pointer to the set_application_latency command parameters in ::aci_cmd_params_dtm_cmd_t
260 *
261 * @return None
262 */
263void acil_encode_cmd_set_app_latency(uint8_t *buffer, aci_cmd_params_set_app_latency_t *p_aci_cmd_params_set_app_latency);
264
265/** @brief Encode the ACI message for setup
266 *
267 * @param[in,out] buffer Pointer to ACI message buffer
268 * @param[in] p_cmd_params_set_run_behaviour Pointer to the setup data in ::aci_cmd_params_setup_t
269 * @param[in] setup_data_size Size of setup message
270 *
271 * @return None
272 */
273void acil_encode_cmd_setup(uint8_t *buffer, aci_cmd_params_setup_t *p_aci_cmd_params_setup, uint8_t setup_data_size);
274
275/** @brief Encode the ACI message for DTM command
276 *
277 * @param[in,out] buffer Pointer to ACI message buffer
278 * @param[in] p_cmd_params_set_run_behaviour Pointer to the DTM command parameters in ::aci_cmd_params_dtm_cmd_t
279 *
280 * @return None
281 */
282void acil_encode_cmd_dtm_cmd(uint8_t *buffer, aci_cmd_params_dtm_cmd_t *p_aci_cmd_params_dtm_cmd);
283
284/** @brief Encode the ACI message for Set Key Request command
285 *
286 * @param[in,out] buffer Pointer to ACI message buffer
287 *
288 * @return None
289 */
290void acil_encode_cmd_set_key(uint8_t *buffer, aci_cmd_params_set_key_t *p_aci_cmd_params_set_key);
291
292/** @brief Encode the ACI message for Bond Security Request command
293 *
294 * @param[in,out] buffer Pointer to ACI message buffer
295 *
296 * @return None
297 */
298void acil_encode_cmd_bond_security_request(uint8_t *buffer);
299
300/** @brief Encode the ACI message
301 *
302 * @param[in,out] buffer Pointer to ACI message buffer
303 * @param[in] p_aci_cmd Pointer to ACI command data in ::aci_cmd_t
304 * @param[in] bool
305 *
306 * @return bool true, if succesful, else returns false
307 */
308bool acil_encode_cmd(uint8_t *buffer, aci_cmd_t *p_aci_cmd);
309
310/** @brief Encode the ACI message for Broadcast command
311 *
312 * @param[in,out] buffer Pointer to ACI message buffer
313 * @param[in] p_aci_cmd Pointer to ACI command data in ::aci_cmd_params_broadcast_t
314 *
315 * @return None
316 */
317void acil_encode_cmd_broadcast(uint8_t *buffer, aci_cmd_params_broadcast_t * p_aci_cmd_params_broadcast);
318
319/** @brief Encode the ACI message for Open Adv Pipes
320 *
321 * @param[in,out] buffer Pointer to ACI message buffer
322 * @param[in] p_aci_cmd Pointer to ACI command data in ::aci_cmd_params_open_adv_pipe_t
323 *
324 * @return None
325 */
326void acil_encode_cmd_open_adv_pipes(uint8_t *buffer, aci_cmd_params_open_adv_pipe_t * p_aci_cmd_params_set_adv_svc_data);
327
328/** @brief Decode the ACI event command response
329 *
330 * @param[in] buffer_in Pointer to message received
331 * @param[in,out] buffer Pointer to the decoded message in ::aci_evt_params_cmd_rsp_t
332 *
333 * @return None
334 */
335void acil_decode_evt_command_response(uint8_t *buffer_in, aci_evt_params_cmd_rsp_t *p_evt_params_cmd_rsp);
336
337/** @brief Decode the ACI event device started
338 *
339 * @param[in] buffer_in Pointer to message received
340 * @param[in,out] p_aci_evt Pointer to the decoded message in ::aci_evt_params_device_started_t
341 *
342 * @return None
343 */
344void acil_decode_evt_device_started(uint8_t *buffer_in, aci_evt_params_device_started_t *p_evt_params_device_started);
345
346/** @brief Decode the ACI event pipe status
347 *
348 * @param[in] buffer_in Pointer to message received
349 * @param[in,out] p_aci_evt_params_pipe_status Pointer to the decoded message in ::aci_evt_params_pipe_status_t
350 *
351 * @return None
352 */
353void acil_decode_evt_pipe_status(uint8_t *buffer_in, aci_evt_params_pipe_status_t *p_aci_evt_params_pipe_status);
354
355/** @brief Decode the ACI event for disconnected
356 *
357 * @param[in] buffer_in Pointer to message received
358 * @param[in,out] p_aci_evt_params_disconnected Pointer to the decoded message in ::aci_evt_params_disconnected_t
359 *
360 * @return None
361 */
362void acil_decode_evt_disconnected(uint8_t *buffer_in, aci_evt_params_disconnected_t *p_aci_evt_params_disconnected);
363
364/** @brief Decode the ACI event for bond status
365 *
366 * @param[in] buffer_in Pointer to message received
367 * @param[in,out] p_aci_evt_params_bond_status Pointer to the decoded message in ::aci_evt_params_bond_status_t
368 *
369 * @return None
370 */
371void acil_decode_evt_bond_status(uint8_t *buffer_in, aci_evt_params_bond_status_t *p_aci_evt_params_bond_status);
372
373/** @brief Decode the ACI event for data received
374 *
375 * @param[in] buffer_in Pointer to message received
376 * @param[in,out] p_evt_params_data_received Pointer to the decoded message in ::aci_evt_params_data_received_t
377 *
378 * @return size Received data size
379 */
380uint8_t acil_decode_evt_data_received(uint8_t *buffer_in, aci_evt_params_data_received_t *p_evt_params_data_received);
381
382/** @brief Decode the ACI event data acknowledgement
383 *
384 * @param[in] buffer_in Pointer to message received
385 * @param[in,out] p_evt_params_data_ack Pointer to the decoded message in ::aci_evt_params_data_ack_t
386 *
387 * @return None
388 */
389void acil_decode_evt_data_ack(uint8_t *buffer_in, aci_evt_params_data_ack_t *p_evt_params_data_ack);
390
391/** @brief Decode the ACI event for hardware error
392 *
393 * @param[in] buffer_in Pointer to message received
394 * @param[in,out] p_aci_evt_params_hw_error Pointer to the decoded message in ::aci_evt_params_hw_error_t
395 *
396 * @return size Size of debug information
397 */
398uint8_t acil_decode_evt_hw_error(uint8_t *buffer_in, aci_evt_params_hw_error_t *p_aci_evt_params_hw_error);
399
400/** @brief Decode the ACI event data credit
401 *
402 * @param[in] buffer_in Pointer to message received
403 * @param[in,out] p_evt_params_data_credit Pointer to the decoded message in ::aci_evt_params_data_credit_t
404 *
405 * @return None
406 */
407void acil_decode_evt_credit(uint8_t *buffer_in, aci_evt_params_data_credit_t *p_evt_params_data_credit);
408
409/** @brief Decode the ACI event for connected
410 *
411 * @param[in] buffer_in Pointer to message received
412 * @param[in,out] p_aci_evt_params_connected Pointer to the decoded message in ::aci_evt_params_connected_t
413 *
414 * @return None
415 */
416void acil_decode_evt_connected(uint8_t *buffer_in, aci_evt_params_connected_t *p_aci_evt_params_connected);
417
418/** @brief Decode the ACI event for timing
419 *
420 * @param[in] buffer_in Pointer to message received
421 * @param[in,out] p_evt_params_timing Pointer to the decoded message in ::aci_evt_params_timing_t
422 *
423 * @return None
424 */
425void acil_decode_evt_timing(uint8_t *buffer_in, aci_evt_params_timing_t *p_evt_params_timing);
426
427/** @brief Decode the ACI event for pipe error
428 *
429 * @param[in] buffer_in Pointer to message received
430 * @param[in,out] p_evt_params_pipe_error Pointer to the decoded message in ::aci_evt_params_pipe_error_t
431 *
432 */
433void acil_decode_evt_pipe_error(uint8_t *buffer_in, aci_evt_params_pipe_error_t *p_evt_params_pipe_error);
434
435/** @brief Decode the ACI event for key request
436 *
437 * @param[in] buffer_in Pointer to message received
438 * @param[in,out] p_evt_params_key_type Pointer to the decoded message in ::aci_evt_params_key_type_t
439 *
440 * @return None
441 */
442void acil_decode_evt_key_request(uint8_t *buffer_in, aci_evt_params_key_request_t *p_evt_params_key_request);
443
444/** @brief Decode the ACI event for echo
445 *
446 * @param[in] buffer_in Pointer to message received
447 * @param[in,out] buffer_out Pointer to the echo message (max size of buffer ::ACI_ECHO_DATA_MAX_LEN)
448 *
449 * @return size Received echo message size
450 */
451uint8_t acil_decode_evt_echo(uint8_t *buffer_in, aci_evt_params_echo_t *buffer_out);
452
453/** @brief Decode the ACI event
454 *
455 * @param[in] buffer_in Pointer to message received
456 * @param[in,out] p_aci_evt Pointer to the decoded message in ::aci_evt_t
457 *
458 * @return bool true, if succesful, else returns false
459 */
460bool acil_decode_evt(uint8_t *buffer_in, aci_evt_t *p_aci_evt);
461
462/** @brief Decode the Display Key Event
463 *
464 * @param[in] buffer_in Pointer to message received
465 * @param[in,out] p_aci_evt Pointer to the decoded message in ::aci_evt_params_display_passkey_t
466 *
467 * @return None
468 */
469void acil_decode_evt_display_passkey(uint8_t *buffer_in, aci_evt_params_display_passkey_t *p_aci_evt_params_display_passkey);
470
471#endif /* _acilib_IF_H_ */
Note: See TracBrowser for help on using the repository browser.