Mistake on this page?
Report an issue in GitHub or email us
bb_ble_api_op.h
Go to the documentation of this file.
1 /*************************************************************************************************/
2 /*!
3  * \file
4  *
5  * \brief BLE baseband interface file.
6  *
7  * Copyright (c) 2016-2019 Arm Ltd. All Rights Reserved.
8  *
9  * Copyright (c) 2019-2020 Packetcraft, Inc.
10  *
11  * Licensed under the Apache License, Version 2.0 (the "License");
12  * you may not use this file except in compliance with the License.
13  * You may obtain a copy of the License at
14  *
15  * http://www.apache.org/licenses/LICENSE-2.0
16  *
17  * Unless required by applicable law or agreed to in writing, software
18  * distributed under the License is distributed on an "AS IS" BASIS,
19  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20  * See the License for the specific language governing permissions and
21  * limitations under the License.
22  */
23 /*************************************************************************************************/
24 
25 #ifndef BB_BLE_API_OP_H
26 #define BB_BLE_API_OP_H
27 
28 #include "bb_api.h"
29 #include "pal_bb_ble.h"
30 #include "bb_ble_api_pdufilt.h"
31 #include "ll_defs.h"
32 
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36 
37 /*! \addtogroup BB_API_BLE
38  * \{ */
39 
40 /**************************************************************************************************
41  Macros
42 **************************************************************************************************/
43 
44 /*! \brief Convert BLE protocol ticks to BB ticks. */
45 #define BB_BLE_TO_US(n) ((n) * LL_BLE_US_PER_TICK)
46 
47 /*! \brief Increment statistics counter. */
48 #define BB_INC_STAT(s) s++
49 
50 /**************************************************************************************************
51  Constants
52 **************************************************************************************************/
53 
54 /*! \brief Operation types. */
55 typedef enum
56 {
57  BB_BLE_OP_TEST_TX, /*!< Continuous Tx test mode. */
58  BB_BLE_OP_TEST_RX, /*!< Continuous Rx test mode. */
59  BB_BLE_OP_MST_ADV_EVENT, /*!< Master advertising event. */
60  BB_BLE_OP_SLV_ADV_EVENT, /*!< Slave advertising event. */
61  BB_BLE_OP_MST_CONN_EVENT, /*!< Master connection event. */
62  BB_BLE_OP_SLV_CONN_EVENT, /*!< Slave connection event. */
63  BB_BLE_OP_MST_AUX_ADV_EVENT, /*!< Master auxiliary advertising event. */
64  BB_BLE_OP_SLV_AUX_ADV_EVENT, /*!< Slave auxiliary advertising event. */
65  BB_BLE_OP_SLV_PER_ADV_EVENT, /*!< Slave periodic advertising event. */
66  BB_BLE_OP_MST_PER_SCAN_EVENT, /*!< Master periodic scanning event. */
67  BB_BLE_OP_MST_CIS_EVENT, /*!< Master CIS event. */
68  BB_BLE_OP_SLV_CIS_EVENT, /*!< Slave CIS event. */
69  BB_BLE_OP_MST_BIS_EVENT, /*!< Master BIS event. */
70  BB_BLE_OP_SLV_BIS_EVENT, /*!< Slave BIS event. */
71  BB_BLE_OP_NUM /*!< Total number of operations. */
72 } BbBleOp_t;
73 
74 /*! \brief Maximum request PDU length (MAX(LL_SCAN_REQ_PDU_LEN, LL_CONN_IND_PDU_LEN)). */
75 #define BB_REQ_PDU_MAX_LEN (LL_ADV_HDR_LEN + LL_CONN_IND_PDU_LEN)
76 
77 /*! \brief Minimum scan time to cover one advertise data exchange. */
78 #define BB_MIN_SCAN_US (LL_ADV_PKT_MAX_USEC + LL_BLE_TIFS_US + \
79  LL_SCAN_REQ_MAX_USEC + LL_BLE_TIFS_US + \
80  LL_SCAN_RSP_MAX_USEC + \
81  BbGetSchSetupDelayUs())
82 
83 /**************************************************************************************************
84  Data Types
85 **************************************************************************************************/
86 
87 /*! \brief Pre-execute callback signature. */
88 typedef void (*BbBlePreExec_t)(BbOpDesc_t *pBod);
89 
90 /*! \brief Execute callback signature. */
91 typedef void (*BbBleExec_t)(BbOpDesc_t *pBod);
92 
93 /*! \brief Cancel callback signature. */
94 typedef void (*BbBleCancel_t)(BbOpDesc_t *pBod);
95 
96 /*! \brief Advertising PDU transmit setup call signature. */
97 typedef void (*BbBleTxAdvSetup_t)(BbOpDesc_t *pBod, uint32_t advTxTime);
98 
99 /*! \brief Chain indication PDU transmit setup call signature. */
100 typedef uint32_t (*BbBleTxAuxSetup_t)(BbOpDesc_t *pBod, bool_t isChainInd);
101 
102 /*! \brief Returns TRUE if an scan request/response required. */
103 typedef bool_t (*BbBleAdvComp_t)(BbOpDesc_t *pBod, const uint8_t *pBuf);
104 
105 /*! \brief Rx completion post processing call signature. */
106 typedef void (*BbBleAdvPost_t)(BbOpDesc_t *pBod, const uint8_t *pBuf);
107 
108 /*! \brief Chain indication PDU received call signature. */
109 typedef uint32_t (*BbBleRxChain_t)(BbOpDesc_t *pBod, const uint8_t *pBuf);
110 
111 /*! \brief Chain indication PDU received post call signature. */
112 typedef bool_t (*BbBleRxChainPost_t)(BbOpDesc_t *pBod, const uint8_t *pBuf);
113 
114 /*! \brief Data transmit completion callback signature. */
115 typedef void (*BbBleTxDataComp_t)(BbOpDesc_t *pBod, uint8_t status);
116 
117 /*! \brief Data receive completion callback signature. */
118 typedef void (*BbBleRxDataComp_t)(BbOpDesc_t *pBod, uint8_t *pBuf, uint8_t status);
119 
120 /*! \brief CIS check whether to continue current operation call signature. */
121 typedef uint32_t (*BbBleCisCheckContOp_t)(BbOpDesc_t *pBod, bool_t *pNewCisCtx);
122 
123 /*! \brief CIS post execute callback signature. */
124 typedef void (*BbBleCisPostExec_t)(BbOpDesc_t *pBod, uint8_t status);
125 
126 /*! \brief CIS data receive completion callback signature. */
127 typedef void (*BbBleCisRxDataComp_t)(BbOpDesc_t *pBod, uint8_t *pBuf, uint8_t status);
128 
129 /*! \brief Test completion callback signature. */
130 typedef bool_t (*BbBleTestComp_t)(BbOpDesc_t *pBod, uint8_t status);
131 
132 /*! \brief Periodic PDU Rx complete call signature. */
133 typedef uint32_t (*BbBlePerComp_t)(BbOpDesc_t *pBod, const uint8_t *pBuf, uint8_t status);
134 
135 /*! \brief Periodic PDU Rx complete post call signature. */
136 typedef bool_t (*BbBlePerPostComp_t)(BbOpDesc_t *pBod, const uint8_t *pBuf);
137 
138 /*!
139  * \brief Master advertising event operation data (\ref BB_BLE_OP_MST_ADV_EVENT).
140  *
141  * \note BB assumes maximum adversing and scan response payload is 39 bytes.
142  */
143 typedef struct
144 {
145  uint8_t *pRxAdvBuf; /*!< Advertising buffer. */
146  uint8_t *pTxReqBuf; /*!< Scan request buffer. */
147  uint8_t *pRxRspBuf; /*!< Scan response buffer. */
148 
149  BbBlePreExec_t preExecCback; /*!< Pre-execute callback. */
150  BbBleAdvComp_t rxAdvCback; /*!< Advertising completion callback. */
151  BbBleAdvPost_t rxAdvPostCback; /*!< Advertising completion post processing callback. */
152  BbBleAdvComp_t txReqCback; /*!< Scan request completion callback. */
153  BbBleAdvComp_t rxRspCback; /*!< Scan response completion callback. */
154 
155  uint8_t txReqLen; /*!< Scan request buffer length. */
156 
157  uint8_t scanChMap; /*!< Scan channel map. */
158 
159  /* Return parameters. */
160  int8_t advRssi; /*!< RSSI of advertisement. */
161  uint8_t advRxPhyOptions; /*!< Rx PHY options. */
162  uint32_t advCrc; /*!< CRC of advertisement. */
163  uint32_t advStartTsUsec; /*!< Start of advertising packet timestamp in microseconds. */
164  uint32_t elapsedUsec; /*!< Elapsed time of a single scan window in microseconds. */
165 
166  /* Filter results. */
167  bbBlePduFiltResults_t filtResults; /*!< Results from PDU filtering. */
169 
170 /*!
171  * \brief Slave advertising event operation data (\ref BB_BLE_OP_SLV_ADV_EVENT).
172  *
173  * \note BB assumes maximum scan request payload is 39 bytes.
174  */
175 typedef struct
176 {
177  uint8_t *pTxAdvBuf; /*!< Advertising buffer. */
178  uint8_t *pRxReqBuf; /*!< Scan request buffer (must be size of BB_REQ_PDU_MAX_LEN). */
179  uint8_t *pTxRspBuf; /*!< Scan response buffer. */
180 
181  BbBleTxAdvSetup_t txAdvSetupCback; /*!< Adv PDU transmit setup callback. */
182  BbBleAdvComp_t rxReqCback; /*!< Scan/Connect request receive completion callback. */
183  BbBleAdvPost_t rxReqPostCback; /*!< Scan/Connect request receive post processing callback. */
184 
185  uint8_t txAdvLen; /*!< Advertising buffer length. */
186  uint8_t txRspLen; /*!< Scan response buffer length. */
187 
188  uint8_t firstAdvChIdx; /*!< first advertising channel index. */
189 
190  uint8_t advChMap; /*!< Advertising channel map. */
191 
192  /* Return parameters. */
193  uint32_t reqStartTsUsec; /*!< Start of request packet timestamp in microseconds. */
194 
195  /* Filter results. */
196  bbBlePduFiltResults_t filtResults; /*!< Results from PDU filtering. */
198 
199 /*! \brief Master auxiliary advertising event operation data (\ref BB_BLE_OP_MST_AUX_ADV_EVENT). */
200 typedef struct
201 {
202  uint8_t *pTxAuxReqBuf; /*!< Scan request buffer. */
203 
204  BbBleAdvComp_t rxAuxAdvCback; /*!< Advertising completion callback. */
205  BbBleAdvComp_t rxAuxRspCback; /*!< Scan response completion callback. */
206  BbBleRxChain_t rxAuxChainCback; /*!< Chain completion callback. */
207  BbBleRxChainPost_t rxAuxChainPostCback;/*!< Chain completion post callback. */
208 
209  uint8_t txAuxReqLen; /*!< Scan request buffer length. */
210 
211  uint32_t rxSyncDelayUsec; /*!< Receive timeout in microseconds. */
212  bool_t isInit; /*!< TRUE if the event is for an initiation. */
213 
214  /* Return parameters. */
215  int8_t auxAdvRssi; /*!< RSSI of advertisement. */
216  uint8_t auxRxPhyOptions; /*!< Rx PHY options. */
217  uint32_t auxAdvCrc; /*!< CRC of advertisement. */
218  uint32_t auxStartTsUsec; /*!< Start of auxiliary advertising packet timestamp in microseconds. */
219 
220  /* Filter results. */
221  bbBlePduFiltResults_t filtResults; /*!< Results from PDU filtering. */
223 
224 /*! \brief Master periodic scanning event operation data (\ref BB_BLE_OP_MST_PER_SCAN_EVENT). */
225 typedef struct
226 {
227  BbBlePerComp_t rxPerAdvCback; /*!< Periodic scanning completion callback. */
228  BbBlePerPostComp_t rxPerAdvPostCback; /*!< Periodic scanning completion post callback. */
229  uint32_t rxSyncDelayUsec; /*!< Receive timeout in microseconds. */
230 
231  /* Return parameters. */
232  uint8_t rxStatus; /*!< RX status. */
233  int8_t perAdvRssi; /*!< RSSI of advertisement. */
234  uint8_t perRxPhyOptions; /*!< Rx PHY options. */
235  uint32_t perAdvCrc; /*!< CRC of advertisement. */
236  uint32_t perStartTsUsec; /*!< Start of periodic advertising packet timestamp in microseconds. */
237  bool_t perIsFirstTs; /*!< True if it is the first timestamp for a serial of periodic packets. */
239 
240 /*! \brief Slave auxiliary advertising event operation data (\ref BB_BLE_OP_SLV_AUX_ADV_EVENT). */
241 typedef struct
242 {
243  /* TODO BbBleSlvAuxAdvEvent_t hide buffer descriptors in BB layer. */
244  PalBbBleTxBufDesc_t txAuxAdvPdu[2]; /*!< Advertising PDU descriptor. */
245  uint8_t *pRxAuxReqBuf; /*!< Auxiliary request buffer (must be size of BB_REQ_PDU_MAX_LEN). */
246  PalBbBleTxBufDesc_t txAuxRspPdu[2]; /*!< Response PDU descriptor. */
247  PalBbBleTxBufDesc_t txAuxChainPdu[2]; /*!< Auxiliary chain PDU descriptor. */
248 
249  BbBleAdvComp_t rxAuxReqCback; /*!< Auxiliary request receive completion callback. */
250  BbBleAdvPost_t rxAuxReqPostCback; /*!< Auxiliary scan/connect request receive post processing callback. */
251  BbBleTxAuxSetup_t txAuxSetupCback; /*!< Auxiliary chain indication setup callback. */
252 
253  uint8_t auxAdvCh; /*!< Advertising channel map. */
254 
255  /* Return parameters. */
256  uint8_t auxRxPhyOptions; /*!< Rx PHY options. */
257  uint32_t auxReqStartTsUsec; /*!< Start of request packet timestamp in microseconds. */
258 
259  /* Filter results. */
260  bbBlePduFiltResults_t filtResults; /*!< Results from PDU filtering. */
262 
263 /*! \brief Connection event operation data (\ref BB_BLE_OP_MST_CONN_EVENT). */
264 typedef struct
265 {
266  BbBleExec_t execCback; /*!< Execute callback. */
267  BbBleCancel_t cancelCback; /*!< Cancel callback. */
268  BbBleTxDataComp_t txDataCback; /*!< Transmit completion callback. */
269  BbBleRxDataComp_t rxDataCback; /*!< Receive completion callback. */
270 
271  /* Return parameters. */
272  int8_t rssi; /*!< RSSI of the last received packet. */
273  uint8_t rxPhyOptions; /*!< Rx PHY options. */
275 
276 /*! \brief Connection event operation data (\ref BB_BLE_OP_SLV_CONN_EVENT). */
277 typedef struct
278 {
279  uint32_t rxSyncDelayUsec; /*!< Receive timeout in microseconds. */
280  BbBleExec_t execCback; /*!< Execute callback. */
281  BbBleCancel_t cancelCback; /*!< Cancel callback. */
282  BbBleTxDataComp_t txDataCback; /*!< Transmit completion callback. */
283  BbBleRxDataComp_t rxDataCback; /*!< Receive completion callback. */
284 
285  /* Return parameters. */
286  uint32_t startTsUsec; /*!< Start timestamp of the first received packet in microseconds. */
287  int8_t rssi; /*!< RSSI of the last received packet. */
288  uint8_t rxPhyOptions; /*!< Rx PHY options. */
290 
291 /*! \brief CIS master event operation data (\ref BB_BLE_OP_MST_CIS_EVENT). */
292 typedef struct
293 {
294  BbBleCisCheckContOp_t checkContOpCback; /*!< Check whether to continue current operation callback. */
295  BbBleExec_t execCback; /*!< Execute callback. */
296  BbBleExec_t contExecCback; /*!< Continue execute callback. */
297  BbBleCisPostExec_t postSubEvtCback; /*!< Post subevent callback. */
298  BbBleCancel_t cancelCback; /*!< Cancel callback. */
299  BbBleTxDataComp_t txDataCback; /*!< Transmit completion callback. */
300  BbBleCisRxDataComp_t rxDataCback; /*!< Receive completion callback. */
301  /* Return parameters. */
302  int8_t rssi; /*!< RSSI of the last received packet. */
303  uint8_t rxPhyOptions; /*!< Rx PHY options. */
305 
306 /*! \brief CIS slave event operation data (\ref BB_BLE_OP_SLV_CIS_EVENT). */
307 typedef struct
308 {
309  BbBleCisCheckContOp_t checkContOpCback; /*!< Check whether to continue current operation callback. */
310  BbBleExec_t execCback; /*!< Execute callback. */
311  BbBleExec_t contExecCback; /*!< Continue execute callback. */
312  BbBleCisPostExec_t postSubEvtCback; /*!< Post subevent callback. */
313  BbBleCancel_t cancelCback; /*!< Cancel callback. */
314  BbBleTxDataComp_t txDataCback; /*!< Transmit completion callback. */
315  BbBleRxDataComp_t rxDataCback; /*!< Receive completion callback. */
316 
317  /* Return parameters. */
318  bool_t isFirstTs; /*!< True for the first timestamp. */
319  uint32_t startTsUsec; /*!< Start timestamp of the first received packet in microseconds. */
320  uint32_t rxTsUsec; /*!< Timestamp of the received packet. in microseconds */
321  int8_t rssi; /*!< RSSI of the last received packet. */
322  uint8_t rxPhyOptions; /*!< Rx PHY options. */
323  uint32_t rxSyncDelayUsec; /*!< Receive timeout in microseconds. */
325 
326 /*! \brief BIS master event operation data (\ref BB_BLE_OP_MST_BIS_EVENT). */
327 typedef struct
328 {
329  uint32_t rxSyncDelayUsec; /*!< Receive timeout in microseconds. */
330  BbBleExec_t execCback; /*!< Execute callback. */
331  BbBleRxDataComp_t rxDataCback; /*!< Recieve completion callback. */
332 
333  /* Return parameters. */
334  uint32_t startTsUsec; /*!< First Rx timestamp. */
336 
337 /*! \brief BIS slave event operation data (\ref BB_BLE_OP_SLV_BIS_EVENT). */
338 typedef struct
339 {
340  BbBleExec_t execCback; /*!< Execute callback. */
341  BbBleTxDataComp_t txDataCback; /*!< Transmit completion callback. */
342 
343  /* Return parameters. */
344  /* None */
346 
347 /*! \brief Continuous transmit operation data (\ref BB_BLE_OP_TEST_TX). */
348 typedef struct
349 {
350  BbBleTestComp_t testCback; /*!< Test callback. */
351 
352  uint8_t *pTxBuf; /*!< Transmit data buffer. */
353  uint16_t txLen; /*!< Transmit data buffer length. */
354  uint16_t pktInterUsec; /*!< Transmit packet interval. */
355 } BbBleTestTx_t;
356 
357 /*! \brief Continuous receive operation data (\ref BB_BLE_OP_TEST_RX). */
358 typedef struct
359 {
360  uint32_t rxSyncDelayUsec; /*!< Synchronization delay in microseconds. */
361  BbBleTestComp_t testCback; /*!< Test callback. */
362 
363  uint8_t *pRxBuf; /*!< Receive data buffer. */
364  uint16_t rxLen; /*!< Receive data buffer length. */
365 } BbBleTestRx_t;
366 
367 /*! \brief Bluetooth Low Energy protocol specific operation parameters. */
368 typedef struct BbBleData_tag
369 {
370  PalBbBleChan_t chan; /*!< Channelization parameters. */
371  bbBlePduFiltParams_t pduFilt; /*!< PDU filter parameters. */
372 
373  union
374  {
375  BbBleMstAdvEvent_t mstAdv; /*!< Master advertising event data. */
376  BbBleSlvAdvEvent_t slvAdv; /*!< Slave advertising event data. */
377  BbBleMstAuxAdvEvent_t mstAuxAdv; /*!< Master auxiliary advertising event data. */
378  BbBleSlvAuxAdvEvent_t slvAuxAdv; /*!< Slave auxiliary advertising event data. */
379  BbBleSlvAuxAdvEvent_t slvPerAdv; /*!< Slave periodic advertising event data. */
380  BbBleMstConnEvent_t mstConn; /*!< Master connection event data. */
381  BbBleSlvConnEvent_t slvConn; /*!< Slave connection event data. */
382  BbBleMstPerScanEvent_t mstPerScan; /*!< Master periodic scanning event data. */
383  BbBleMstCisEvent_t mstCis; /*!< Master CIS event data. */
384  BbBleSlvCisEvent_t slvCis; /*!< Slave CIS event data. */
385  BbBleMstBisEvent_t mstBis; /*!< Master BIS event data. */
386  BbBleSlvBisEvent_t slvBis; /*!< Slave BIS event data. */
387  BbBleTestTx_t testTx; /*!< Transmit test data. */
388  BbBleTestRx_t testRx; /*!< Receive test data. */
389  } op; /*!< Operation specific data. */
390 } BbBleData_t;
391 
392 /**************************************************************************************************
393  Function Declarations
394 **************************************************************************************************/
395 
396 /*************************************************************************************************/
397 /*!
398  * \brief Transmit data PDU at next transmit slot.
399  *
400  * \param descs Array of transmit buffer descriptor.
401  * \param cnt Number of descriptors.
402  *
403  * \note This function is expected to be called during the call context of
404  * \ref BbBleSlvConnEvent_t::rxDataCback callback routine.
405  */
406 /*************************************************************************************************/
407 void BbBleTxData(PalBbBleTxBufDesc_t descs[], uint8_t cnt);
408 
409 /*************************************************************************************************/
410 /*!
411  * \brief Set receive data buffer for next receive slot.
412  *
413  * \param pBuf Receive data buffer.
414  * \param len Maximum length of data buffer.
415  *
416  * \note This function is expected to be called during the call context of
417  * \ref BbBleSlvConnEvent_t::rxDataCback callback routine.
418  *
419  * \note BB must always call the BbSlvConnEvent_t::rxDataCback callback routine of the
420  * currently executing BOD with the given buffer.
421  */
422 /*************************************************************************************************/
423 void BbBleRxData(uint8_t *pBuf, uint16_t len);
424 
425 /*************************************************************************************************/
426 /*!
427  * \brief Transmit CIS PDU at next transmit slot.
428  *
429  * \param descs Array of transmit buffer descriptor.
430  * \param cnt Number of descriptors.
431  *
432  * \note This function is expected to be called during the call context of
433  * \ref BbBleMstCisEvent_t::rxDataCback or \ref BbBleSlvCisEvent_t::rxDataCback
434  * callback routine.
435  */
436 /*************************************************************************************************/
437 void BbBleCisTxData(PalBbBleTxBufDesc_t descs[], uint8_t cnt);
438 
439 /*************************************************************************************************/
440 /*!
441  * \brief Set receive data buffer for next receive slot.
442  *
443  * \param pBuf Receive data buffer.
444  * \param len Maximum length of data buffer.
445  *
446  * \note This function is expected to be called during the call context of
447  * \ref BbBleSlvCisEvent_t::rxDataCback callback routine.
448  *
449  * \note BB must always call the BbBleSlvCisEvent_t::rxDataCback callback routine of the
450  * currently executing BOD with the given buffer.
451  */
452 /*************************************************************************************************/
453 void BbBleCisRxData(uint8_t *pBuf, uint16_t len);
454 
455 /*************************************************************************************************/
456 /*!
457  * \brief Transmit BIS Data PDU at next transmit slot.
458  *
459  * \param descs Array of transmit buffer descriptor.
460  * \param cnt Number of descriptors.
461  * \param nextPduTime Next PDU time.
462  * \param pNextChan Next PDU channel.
463  */
464 /*************************************************************************************************/
465 void BbBleBisTxData(PalBbBleTxBufDesc_t descs[], uint8_t cnt, uint32_t nextPduTime, PalBbBleChan_t *pNextChan);
466 
467 /*************************************************************************************************/
468 /*!
469  * \brief Set receive BIS Data PDU buffer for next receive slot.
470  *
471  * \param pBuf Receive data buffer.
472  * \param len Maximum length of data buffer.
473  * \param nextPduTime Next PDU time.
474  * \param pNextChan Next PDU channel.
475  * \param reAcq Rx train re-acquisition required.
476  */
477 /*************************************************************************************************/
478 void BbBleBisRxData(uint8_t *pBuf, uint16_t len, uint32_t nextPduTime, PalBbBleChan_t *pNextChan, bool_t reAcq);
479 
480 /*************************************************************************************************/
481 /*!
482  * \brief Receive data re-acquisition.
483  *
484  * \param syncTime Due time for the next Rx operation.
485  * \param pChan Channel parameters.
486  *
487  * Update due time for next Rx operation. Called after a missed Rx operation for re-acquisition
488  * of the receive train.
489  */
490 /*************************************************************************************************/
491 void BbBleBisRxDataReAcq(uint32_t syncTime, PalBbBleChan_t *pChan);
492 
493 /*! \} */ /* BB_API_BLE */
494 
495 #ifdef __cplusplus
496 };
497 #endif
498 
499 #endif /* BB_BLE_API_OP_H */
void BbBleTxData(PalBbBleTxBufDesc_t descs[], uint8_t cnt)
Transmit data PDU at next transmit slot.
void(* BbBleCisPostExec_t)(BbOpDesc_t *pBod, uint8_t status)
CIS post execute callback signature.
void BbBleCisTxData(PalBbBleTxBufDesc_t descs[], uint8_t cnt)
Transmit CIS PDU at next transmit slot.
bool_t(* BbBlePerPostComp_t)(BbOpDesc_t *pBod, const uint8_t *pBuf)
Periodic PDU Rx complete post call signature.
uint32_t(* BbBleCisCheckContOp_t)(BbOpDesc_t *pBod, bool_t *pNewCisCtx)
CIS check whether to continue current operation call signature.
BbBleCisCheckContOp_t checkContOpCback
void BbBleRxData(uint8_t *pBuf, uint16_t len)
Set receive data buffer for next receive slot.
Master periodic scanning event operation data (BB_BLE_OP_MST_PER_SCAN_EVENT).
BbBleExec_t contExecCback
void(* BbBleTxDataComp_t)(BbOpDesc_t *pBod, uint8_t status)
Data transmit completion callback signature.
struct BbBleData_tag BbBleData_t
Bluetooth Low Energy protocol specific operation parameters.
void(* BbBleAdvPost_t)(BbOpDesc_t *pBod, const uint8_t *pBuf)
Rx completion post processing call signature.
BbBleTxDataComp_t txDataCback
uint32_t rxSyncDelayUsec
BbBleSlvBisEvent_t slvBis
void BbBleBisRxDataReAcq(uint32_t syncTime, PalBbBleChan_t *pChan)
Receive data re-acquisition.
BbBleExec_t execCback
uint16_t pktInterUsec
BbBleSlvConnEvent_t slvConn
Connection event operation data (BB_BLE_OP_SLV_CONN_EVENT).
CIS master event operation data (BB_BLE_OP_MST_CIS_EVENT).
uint16_t txLen
bbBlePduFiltResults_t filtResults
bool_t(* BbBleRxChainPost_t)(BbOpDesc_t *pBod, const uint8_t *pBuf)
Chain indication PDU received post call signature.
BbBleCancel_t cancelCback
BbBleRxChain_t rxAuxChainCback
BbBleCancel_t cancelCback
BbBleAdvPost_t rxAuxReqPostCback
BbBleCisPostExec_t postSubEvtCback
uint16_t rxLen
BbBleMstAdvEvent_t mstAdv
void(* BbBleTxAdvSetup_t)(BbOpDesc_t *pBod, uint32_t advTxTime)
Advertising PDU transmit setup call signature.
Definition: bb_ble_api_op.h:97
BbBleAdvComp_t rxReqCback
BbBleExec_t execCback
BbBleTxDataComp_t txDataCback
BbBleTestRx_t testRx
BbBleSlvAuxAdvEvent_t slvAuxAdv
uint32_t rxSyncDelayUsec
BbBleMstBisEvent_t mstBis
BbBleExec_t contExecCback
uint8_t * pRxBuf
BbBleRxDataComp_t rxDataCback
BbBleTestComp_t testCback
BbBleRxDataComp_t rxDataCback
BbBleTestComp_t testCback
BbBleMstPerScanEvent_t mstPerScan
BbBleMstCisEvent_t mstCis
BbBleExec_t execCback
bbBlePduFiltParams_t pduFilt
PDU filtering parameters.
void BbBleCisRxData(uint8_t *pBuf, uint16_t len)
Set receive data buffer for next receive slot.
uint32_t rxSyncDelayUsec
BbBlePerPostComp_t rxPerAdvPostCback
BbBleMstConnEvent_t mstConn
void(* BbBleCancel_t)(BbOpDesc_t *pBod)
Cancel callback signature.
Definition: bb_ble_api_op.h:94
Slave advertising event operation data (BB_BLE_OP_SLV_ADV_EVENT).
PDU filtering results.
BbBleTxAuxSetup_t txAuxSetupCback
BbBleSlvAdvEvent_t slvAdv
uint32_t(* BbBleRxChain_t)(BbOpDesc_t *pBod, const uint8_t *pBuf)
Chain indication PDU received call signature.
Bluetooth Low Energy protocol specific operation parameters.
bool_t(* BbBleAdvComp_t)(BbOpDesc_t *pBod, const uint8_t *pBuf)
Returns TRUE if an scan request/response required.
union BbBleData_tag::@195 op
bbBlePduFiltResults_t filtResults
BbBleOp_t
Operation types.
Definition: bb_ble_api_op.h:55
Continuous receive operation data (BB_BLE_OP_TEST_RX).
BbBleAdvPost_t rxReqPostCback
void(* BbBleExec_t)(BbOpDesc_t *pBod)
Execute callback signature.
Definition: bb_ble_api_op.h:91
BbBleAdvComp_t rxAuxAdvCback
BbBleSlvAuxAdvEvent_t slvPerAdv
BbBleExec_t execCback
uint8_t * pTxBuf
BbBleCancel_t cancelCback
bbBlePduFiltResults_t filtResults
BbBlePerComp_t rxPerAdvCback
uint32_t(* BbBlePerComp_t)(BbOpDesc_t *pBod, const uint8_t *pBuf, uint8_t status)
Periodic PDU Rx complete call signature.
BIS slave event operation data (BB_BLE_OP_SLV_BIS_EVENT).
BbBleTxAdvSetup_t txAdvSetupCback
void(* BbBleCisRxDataComp_t)(BbOpDesc_t *pBod, uint8_t *pBuf, uint8_t status)
CIS data receive completion callback signature.
BbBleSlvCisEvent_t slvCis
bool_t(* BbBleTestComp_t)(BbOpDesc_t *pBod, uint8_t status)
Test completion callback signature.
void(* BbBleRxDataComp_t)(BbOpDesc_t *pBod, uint8_t *pBuf, uint8_t status)
Data receive completion callback signature.
Connection event operation data (BB_BLE_OP_MST_CONN_EVENT).
BbBleExec_t execCback
BLE channelization parameters.
Definition: pal_bb_ble.h:67
BbBleTxDataComp_t txDataCback
Continuous transmit operation data (BB_BLE_OP_TEST_TX).
BbBleRxChainPost_t rxAuxChainPostCback
Link layer constant definitions.
BbBleAdvComp_t rxAuxRspCback
bbBlePduFiltResults_t filtResults
PalBbBleChan_t chan
BbBleAdvComp_t rxAdvCback
BbBleAdvPost_t rxAdvPostCback
Baseband interface file.
BbBleTestTx_t testTx
uint32_t(* BbBleTxAuxSetup_t)(BbOpDesc_t *pBod, bool_t isChainInd)
Chain indication PDU transmit setup call signature.
CIS slave event operation data (BB_BLE_OP_SLV_CIS_EVENT).
Slave auxiliary advertising event operation data (BB_BLE_OP_SLV_AUX_ADV_EVENT).
Master auxiliary advertising event operation data (BB_BLE_OP_MST_AUX_ADV_EVENT).
void(* BbBlePreExec_t)(BbOpDesc_t *pBod)
Pre-execute callback signature.
Definition: bb_ble_api_op.h:88
BbBleMstAuxAdvEvent_t mstAuxAdv
BbBleTxDataComp_t txDataCback
Master advertising event operation data (BB_BLE_OP_MST_ADV_EVENT).
Baseband operation descriptor (BOD).
Definition: bb_api.h:149
BbBleAdvComp_t txReqCback
BbBleRxDataComp_t rxDataCback
BbBleCisCheckContOp_t checkContOpCback
BbBleAdvComp_t rxAuxReqCback
BbBlePreExec_t preExecCback
BbBleExec_t execCback
void BbBleBisRxData(uint8_t *pBuf, uint16_t len, uint32_t nextPduTime, PalBbBleChan_t *pNextChan, bool_t reAcq)
Set receive BIS Data PDU buffer for next receive slot.
BbBleTxDataComp_t txDataCback
Transmit buffer descriptor.
Definition: pal_bb_ble.h:131
BLE Baseband interface file.
BbBleAdvComp_t rxRspCback
BbBleRxDataComp_t rxDataCback
BbBleCisRxDataComp_t rxDataCback
void BbBleBisTxData(PalBbBleTxBufDesc_t descs[], uint8_t cnt, uint32_t nextPduTime, PalBbBleChan_t *pNextChan)
Transmit BIS Data PDU at next transmit slot.
BbBleCancel_t cancelCback
BIS master event operation data (BB_BLE_OP_MST_BIS_EVENT).
BLE baseband PDU filtering interface file.
BbBleCisPostExec_t postSubEvtCback
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.