Initial commit
Diff: mbed-dev-master/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/cb_bt_man.h
- Revision:
- 0:bb348c97df44
diff -r 000000000000 -r bb348c97df44 mbed-dev-master/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/cb_bt_man.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-dev-master/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/cb_bt_man.h Wed Sep 16 01:11:49 2020 +0000 @@ -0,0 +1,1024 @@ +/* + *--------------------------------------------------------------------------- + * Copyright (c) 2016, u-blox Malmö, All Rights Reserved + * SPDX-License-Identifier: LicenseRef-PBL + * + * This file and the related binary are licensed under the + * Permissive Binary License, Version 1.0 (the "License"); + * you may not use these files except in compliance with the License. + * + * You may obtain a copy of the License here: + * LICENSE-permissive-binary-license-1.0.txt and at + * https://www.mbed.com/licenses/PBL-1.0 + * + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Component : Bluetooth Manager + * File : cb_bt_man.h + * + * Description : General Bluetooth functionality + * + *-------------------------------------------------------------------------*/ + +/** + * @file cb_bt_man.h + * + * @brief General Bluetooth functionality. This includes initialization of + * the Bluetooth radio and stack, handling properties such as device + * name, scanning for other devices using inquiry or Bluetooth Low Energy + * scan and more. + */ + +#ifndef _CB_BT_MAN_H_ +#define _CB_BT_MAN_H_ + +#include "cb_comdefs.h" +#include "bt_types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/*=========================================================================== +* DEFINES +*=========================================================================*/ +#define cbBM_OK (0) +#define cbBM_ERROR (-1) +#define cbBM_MAX_OUTPUT_POWER (127) + +#define cbBM_ADV_CHANNEL_MAP_CH_37_BIT 0x01 +#define cbBM_ADV_CHANNEL_MAP_CH_38_BIT 0x02 +#define cbBM_ADV_CHANNEL_MAP_CH_39_BIT 0x04 +#define cbBM_ADV_CHANNEL_MAP_ALL (cbBM_ADV_CHANNEL_MAP_CH_37_BIT | cbBM_ADV_CHANNEL_MAP_CH_38_BIT | cbBM_ADV_CHANNEL_MAP_CH_39_BIT) +/*=========================================================================== +* TYPES +*=========================================================================*/ + +extern const TBdAddr invalidBdAddress; + +typedef enum +{ + cbBM_INQUIRY_GENERAL = 0, + cbBM_INQUIRY_LIMITED = 1, +} cbBM_InquiryType; + +typedef void(*cbBM_TIStatusCallback)( + cb_int32 status, + cb_int8 temperature); + +typedef void (*cbBM_InquiryEventCallback)( + TBdAddr *pBdAddress, + TCod cod, + cb_uint16 clockOffset, + cb_int8 rssi, + cb_char *pName, + TExtInqRsp* pExtInqRsp, + cb_uint8 length); + +typedef void (*cbBM_InquiryCompleteCallback)( + cb_int32 status); + +typedef void (*cbBM_RemoteNameCallback)( + TBdAddr *pBdAddress, + TName *pName, + cb_int32 status); + +typedef enum +{ + cbBM_DEVICE_DISCOVERY_LE_ALL = 0, // Limited size filtering to reduce duplicate results (for devices in filter). + cbBM_DEVICE_DISCOVERY_LE_GENERAL, + cbBM_DEVICE_DISCOVERY_LE_LIMITED, + cbBM_DEVICE_DISCOVERY_LE_ALL_NO_FILTERING // No found devices filtered out due to previously found +} cbBM_DeviceDiscoveryTypeLe; + +typedef enum +{ + cbBM_ACTIVE_SCAN = 0, + cbBM_PASSIVE_SCAN = 1 +} cbBM_ScanTypeLe; + + +typedef void (*cbBM_DeviceDiscoveryLeEventCallback)( + TBdAddr *pBdAddress, // Bluetooth address + cb_int8 rssi, // Tx power in dBm + cb_char *pName, // Remote name as null terminated string + TAdvData *pAdvData); // Advertisment data of remote device + +typedef void (*cbBM_DeviceDiscoveryLeCompleteCallback)( + cb_int32 status); + +typedef enum +{ + cbBM_DISCOVERABLE_MODE_NONE = 0, + cbBM_DISCOVERABLE_MODE_LIMITED = 1, + cbBM_DISCOVERABLE_MODE_GENERAL = 2, +} cbBM_DiscoverableMode; + +typedef enum +{ + cbBM_CONNECTABLE_MODE_NOT_CONNECTABLE = 0, + cbBM_CONNECTABLE_MODE_CONNECTABLE +} cbBM_ConnectableMode; + +typedef enum +{ + cbBM_DISCOVERABLE_MODE_LE_NONE = 0, + cbBM_DISCOVERABLE_MODE_LE_LIMITED = 1, + cbBM_DISCOVERABLE_MODE_LE_GENERAL = 2, +} cbBM_DiscoverableModeLe; + +typedef enum +{ + cbBM_CONNECTABLE_MODE_LE_NOT_CONNECTABLE = 0, + cbBM_CONNECTABLE_MODE_LE_CONNECTABLE +} cbBM_ConnectableModeLe; + +typedef enum +{ + cbBM_SET_CHANNEL_MAP_CNF_POS, + cbBM_SET_CHANNEL_MAP_CNF_NEG, +} cbBM_ChannelMapEvt; + +typedef void (*cbBM_ChannelMapCallb)( + cbBM_ChannelMapEvt chMapEvt, + TChannelMap *pChMap); // Channel map bit mask + +typedef void (*cbBM_InitComplete)(void); +typedef void(*cbBM_LocalAddressCb)(void); + +typedef enum +{ + cbBM_LE_ROLE_DISABLED = 0, + cbBM_LE_ROLE_CENTRAL = 1, + cbBM_LE_ROLE_PERIPHERAL = 2, +} cbBM_LeRole; + +/** + * Bluetooth Manager initialization parameters. + */ +typedef struct +{ + TBdAddr address; /** Bluetooth address that shall be assigned to controller. Pass invalidBdAddress to use controller default address*/ + cbBM_LeRole leRole; /** Bluetooth low energy role */ + cb_int8 maxOutputPower; /** Maximum output power. */ + cb_int32 nvdsStartIdLinkKeysClassic; /** Start id for CLASSIC link keys storage in NVDS. */ + cb_int32 maxLinkKeysClassic; /** Max number of CLASSIC link keys */ + cb_int32 nvdsStartIdLinkKeysLe; /** Start id for BLE link keys storage in NVDS. */ + cb_int32 maxLinkKeysLe; /** Max number of link keys BLE*/ +} cbBM_InitParams; + +typedef void(*cbBM_ServiceEnabled)(cb_uint8 serviceChannel); +/*=========================================================================== + * FUNCTIONS + *=========================================================================*/ + +/** + * Initialize the Bluetooth Radio, the connectBlue Embedded Bluetooth + * Stack and the Bluetooth Manager. + * The init complete callback is used to notify when the initialization is + * complete. During initialization default values are set for all properties. + * The application shall set desired values for the main Bluetooth properties + * such as local name after the initialization is complete. After init the device + * is non discoverable and non connectable. + * + * @param pInitParameters Init parameters + * @param initCompleteCallback Callback used to notify when the initialization is complete. + * @param pBtReadyCallback Callback used to notify when the customized Bluetooth + * initialization is ready. + * @return None + */ +extern void cbBM_init( + cbBM_InitParams *pInitParameters, + cbBM_InitComplete initCompleteCallback); + +/** + * This function executes cbBM_setQosParams command according to parameters. + * @param connectConfig decides whether to turn off connectability and discoverability + * when max links are reached. + * @param qosConfig QoS enable=1, disable=0 + * @param connectConfig QoS "off during connection"=0, "on during connection"=1 + * @return true if in parameters are valid. + */ +extern cb_int32 cbBM_setQosParams( + cb_uint8 qosConfig, + cb_uint8 connectConfig); + +/** + * This function sets the link supervision timeout in LLC. + * @param linkSupervisionTimeout in milliseconds + * @return true if in parameter is valid. + */ +extern cb_int32 cbBM_setLinkSupervisionTimeout( + cb_uint16 linkSupervisionTimeout); + +/** + * This function gets the link supervision timeout from LLC. + * @return link supervision timeout in milliseconds + */ +extern cb_uint16 cbBM_getLinkSupervisionTimeout(void); + +/** + * This function enables or disables the fast connect feature (interlaced page scan). + * @param fastConnect enable=TRUE, disable=FALSE + * @return cbBM_OK if in parameter is valid. + */ +extern cb_int32 cbBM_setFastConnect( + cb_boolean fastConnect); +/** + * This function gets whether the fast connect feature is enabled or disabled. + * @return fast connect; enabled=TRUE, disabled=FALSE + */ +extern cb_boolean cbBM_getFastConnect(void); + +/** + * This function enables or disables the fast discovery feature (interlaced inquiry scan). + * @param fastDiscovery enable=TRUE, disable=FALSE + * @return cbBM_OK if in parameter is valid. + */ +extern cb_int32 cbBM_setFastDiscovery( + cb_boolean fastDiscovery); + +/** + * This function gets whether the fast discovery feature is enabled or disabled. + * @return fast connect enabled=TRUE, disabled=FALSE + */ +extern cb_boolean cbBM_getFastDiscovery(void); + +/** + * This function sets the page timeout in LLC. + * @param pageTimeout in milliseconds + * @return cbBM_OK if successful + */ +extern cb_int32 cbBM_setPageTimeout( + cb_uint16 pageTimeout); + +/** + * This function gets the page timeout from LLC. + * @return page timeout in milliseconds. + */ +extern cb_uint16 cbBM_getPageTimeout(void); + +/** + * This function sets all default parameters for LE. + * This function needs to be called before the cbBM_init. + */ +extern void cbBM_setDefaultValuesLeParams(void); + +/** + * This function executes HCI_cmdWrScanEnable command according to parameters. + * @param discoverableMode discoverable mode + * @param connectableMode connectable mode + * @return cbBM_OK if HCI command could be executed. + */ +extern cb_int32 cbBM_updateScan( + cbBM_DiscoverableMode discoverableMode, + cbBM_ConnectableMode connectableMode); + +/** + * Get the current Bluetooth address of the device from radio. This can + * be a way to get a alive-message from the radio. Also, if the radio resets, + * the address is set to a chip default value. + * + * @param callback to application when address has been read. + */ +extern void cbBM_checkRadioAlive(cbBM_LocalAddressCb callback); + +/** + * Get the current Bluetooth address of the device. + * @param pAddress Pointer to return variable. + * @return if the operation is successful cbBM_OK is returned. + */ +extern cb_int32 cbBM_getLocalAddress(TBdAddr *pAddress); + +/** + * Set local name + * This sets the Bluetooth Classic device name as well as the Bluetooth Low + * Energy device name. Inquiry and advertising is updated. + * @param pName The new local name (null terminated string). Max length is 32 chars. + * @return If the operation is successful cbBM_OK is returned. + */ +extern cb_int32 cbBM_setLocalName(cb_char* pName); + +/** + * Get local name. + * Get the current local name. + * @param pName Pointer to return variable. + * @param length Max length of the name string. Name will be truncated if length is too small. + * @return If the operation is successful cbBM_OK is returned. + */ +extern cb_int32 cbBM_getLocalName( + cb_char *pName, + cb_uint32 length); + +/** + * Set class of device + * @param cod New Class of Device. + * @return If the operation is successful cbBM_OK is returned. + */ +extern cb_int32 cbBM_setCod(TCod cod); + +/** + * Get current class of device. + * @param pCod Pointer to return variable. + * @return If the operation is successful cbBM_OK is returned. + */ +extern cb_int32 cbBM_getCod(TCod* pCod); + +/** + * Set discoverable mode for Bluetooth Classic. + * @param discoverable New discoverable mode. + * @return If the operation is successful cbBM_OK is returned. + */ +extern cb_int32 cbBM_setDiscoverableMode(cbBM_DiscoverableMode discoverable); + +/** + * Get current discoverable mode for Bluetooth Classic. + * @param pDiscoverable Pointer to return variable. + * @return If the operation is successful cbBM_OK is returned. + */ +extern cb_int32 cbBM_getDiscoverableMode(cbBM_DiscoverableMode *pDiscoverable); + +/** + * Set connectable mode for Bluetooth Classic. + * @param connectable Connectable mode + * @return If the operation is successful cbBM_OK is returned. + */ +extern cb_int32 cbBM_setConnectableMode(cbBM_ConnectableMode connectable); + +/** + * Get current connectable mode for Bluetooth Classic + * @param pConnectable Pointer to return variable. + * @return If the operation is successful cbBM_OK is returned. + */ +extern cb_int32 cbBM_getConnectableMode(cbBM_ConnectableMode *pConnectable); + +/** + * Set master slave policy for Bluetooth Classic + * @param policy Master slave policy + * @return If the operation is successful cbBM_OK is returned. + */ +extern cb_int32 cbBM_setMasterSlavePolicy(TMasterSlavePolicy policy); + +/** + * Set master slave policy for Bluetooth Classic + * @param pPolicy Pointer to return variable + * @return If the operation is successful cbBM_OK is returned. + */ +extern cb_int32 cbBM_getMasterSlavePolicy(TMasterSlavePolicy *pPolicy); + +/** + * Enable/disable sniff mode + * @param enable TRUE=enable sniff mode, FALSE=disable sniff mode + * @return If the operation is successful cbBM_OK is returned. + */ +extern cb_int32 cbBM_setSniffMode(cb_boolean enable); + +/** + * Get sniff mode + * @param pEnable Pointer to return variable + * @return If the operation is successful cbBM_OK is returned. + */ +extern cb_int32 cbBM_getSniffMode(cb_boolean *pEnable); + +/** + * Set default channel map for Bluetooth Classic. Used to exclude channels + * from usage. + * Request an update of which channels shall be used by adaptive frequency hopping. + * typically this is not needed since the Bluetooth is very good at select which + * channels to use. + * @param channelMap Channel map bit mask. Note that at least 20 channels must be enabled. + * @param channelMapCallback Callback used to notify if the channel map + * is accepted by the radio. + * @return If the operation is successfully initiated cbBM_OK is returned. + */ +extern cb_int32 cbBM_setAfhChannelMap( + TChannelMap channelMap, + cbBM_ChannelMapCallb channelMapCallback); + +/** + * Get the default channel map. + * @param pMap Pointer to return variable where the channel map bit mask is stored. + * @return If the operation is successful cbBM_OK is returned. + */ +extern cb_int32 cbBM_getAfhChannelMap(TChannelMap *pMap); + +/** + * Start an Bluetooth inquiry. + * The event callback is called for every device that is found during inquiry. + * @param type Type of inquiry. + * @param inquiryLengthInMs Length of inquiry in ms + * @param eventCallback Callback used to notify each found device + * @param completeCallback Callback used to notify when the inquiry is completed + * @return If the inquiry is successfully started cbBM_OK is returned + */ +extern cb_int32 cbBM_inquiry( + cbBM_InquiryType type, + cb_uint32 inquiryLengthInMs, + cbBM_InquiryEventCallback eventCallback, + cbBM_InquiryCompleteCallback completeCallback); + +/** + * Cancel an ongoing inquiry. + * @return If the operation is successful cbBM_OK is returned. + */ +extern cb_int32 cbBM_inquiryCancel(void); + +/** + * Perform a remote name request for Bluetooth Classic. + * @param pAddress Pointer to address of remote device. + * @param clockOffset Clock offset. Can be found in inquiry response. Use 0 if not available. + * @param pageTimeout Page timeout in ms (Length of connection attempt). + * @param remoteNameCallb Callback used to notify the completion of the + * name request. + * @return If the operation is successfully initiated cbBM_OK is returned. + */ +extern cb_int32 cbBM_remoteName( + TBdAddr *pAddress, + cb_uint16 clockOffset, + cb_uint16 pageTimeout, + cbBM_RemoteNameCallback remoteNameCallb); + +/** + * Add service class to inquiry response data. Typically + * not used by the application. + * @param uuid16 The UUID to add. E.g. 0x1101=SPP, 0x1115=PANU, 0x1116=NAP + * @param pCallback callback to indicate service is enabled + * @param serviceChannel channel the service is started on + * @return If the operation is successful cbBM_OK is returned. + */ +extern cb_int32 cbBM_addServiceClass(cb_uint16 uuid16, cbBM_ServiceEnabled pCallback,cb_uint8 serviceChannel); + +/** + * Check if service class is already registered. + * @param uuid16 The UUID to check. E.g. 0x1101=SPP, 0x1115=PANU, 0x1116=NAP + * @return TRUE If the ServiceClass is registered, FALSE otherwise. + */ +cb_boolean cbBM_isServiceClassRegistered(cb_uint16 uuid16 ); + +/** + * Add service class to inquiry response data. Typically + * not used by the application. + * @param uuid128 The UUID to add. + * @param pCallback callback to indicate service is enabled. + * @param serviceChannel channel the service is started on. + * @return If the operation is successful cbBM_OK is returned. + */ +extern cb_int32 cbBM_add128BitsServiceClass(cb_uint8* uuid128, cbBM_ServiceEnabled pCallback, cb_uint8 serviceChannel); + +/** + * Set maximum Bluetooth Classic ACL links the stack + * shall allow. + * @param maxConnections Max ACL connections. + * @return If the operation is successful cbBM_OK is returned. + */ +extern cb_int32 cbBM_setMaxConnections(cb_uint32 maxConnections); + +/** + * Get controller version string. + * @return Pointer to NULL terminated version string. + */ +extern cb_char* cbBM_getControllerVersionString(void); + +/** + * Get stack version string. + * @return Pointer to NULL terminated version string. + */ +extern cb_char* cbBM_getStackVersionString(void); + +/** + * Get current Bluetooth Low Energy Role. + * @return Current Bluetooth Low Energy role. + */ +extern cbBM_LeRole cbBM_getLeRole(void); + +/** + * Set Bluetooth Low Energy discoverable mode. + * Only valid for peripheral role. + * @param discoverableMode Bluetooth Low Energy discoverable mode + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setDiscoverableModeLe( + cbBM_DiscoverableModeLe discoverableMode); + +/** + * Get Bluetooth Low Energy discoverable mode. + * @param pDiscoverableMode Pointer to return variable + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_getDiscoverableModeLe( + cbBM_DiscoverableModeLe *pDiscoverableMode); + +/** + * Set Bluetooth Low Energy connectable mode. + * Only valid for peripheral role. + * @param connectable Set to TRUE to accept connections + * Set to FALSE to reject incoming connections + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setConnectableModeLe( + cbBM_ConnectableModeLe connectable); + +/** + * Get current connectable mode. + * @param pConnectable Pointer to return variable. + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_getConnectableModeLe( + cbBM_ConnectableModeLe* pConnectable); + +/** + * Set custom advertising data. + * Only valid for peripheral role. + * @param pAdvData Pointer to advertising data. + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setCustomAdvData( + TAdvData* pAdvData); + +/** + * Set custom scan response data. + * Only valid for peripheral role. + * @param pScanRspData Pointer to scan response data. + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setCustomScanRspData( + TAdvData* pScanRspData); + +/** + * Set current scan response data. + * Only valid for peripheral role. + * @param pAdvData Pointer to scan response data. + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_getAdvData( + TAdvData* pAdvData); + +/** + * Get current scan response data. + * Only valid for peripheral role. + * @param pScanRspData Pointer to scan response data. + * @return cbBM_OK is returned on success. + */ + extern cb_int32 cbBM_getScanRspData( + TAdvData* pScanRspData); + +/** + * Start an Bluetooth Low Energy device discovery. + * The event callback is called for every device that is found during inquiry. + * @param type Type of discovery. + * @param discoveryLength Length of inquiry in seconds. + * @param scanType Active or passive scan + * @param eventCallback Callback used to notify each found device + * @param completeCallback Callback used to notify when the inquiry is completed. + * @return If the device discovery is successfully started cbBM_OK is returned. + */ +extern cb_int32 cbBM_deviceDiscoveryLe( + cbBM_DeviceDiscoveryTypeLe type, + cb_uint16 discoveryLength, + cbBM_ScanTypeLe scanType, + cbBM_DeviceDiscoveryLeEventCallback eventCallback, + cbBM_DeviceDiscoveryLeCompleteCallback completeCallback); + +/** + * Cancel an ongoing device discovery. + * @return If the operation is successful cbBM_OK is returned. + */ +extern cb_int32 cbBM_deviceDiscoveryLeCancel(void); + +/** + * Perform a remote name request for Bluetooth Low Energy. + * @param pAddress Pointer to address of remote device. + * @param remoteNameCallback Callback used to notify the completion of the + * name request. + * @return If the operation is successfully initiated cbBM_OK is returned. + */ +extern cb_int32 cbBM_remoteNameLe(TBdAddr *pAddress, + cbBM_RemoteNameCallback remoteNameCallback); + + + +/* + * Add 128bit service UUID to scan response data. Typically + * not used by the application. + * @param uuid128 Pointer to 128bit UUID + * @return If the operation is successfully initiated cbBM_OK is returned. + */ +extern cb_int32 cbBM_add128BitsServiceClassLe(cb_uint8* uuid128); + +/* + * Read the used max tx power . + * @return max tx power level in dBm. + */ +extern cb_int8 cbBM_getMaxTxPower(void); + +/* + * Read the connection parameters for Bond. + * @param bondParams Pointer to structure where the connection parameters are stored. + * @return void + */ +void cbBM_getBondParameters(TAclParamsLe* bondParams); + +/* + * Read the connection parameters for connection. + * @param aclParams Pointer to structure where the connection parameters are stored. + * @return void + */ +void cbBM_getConnectParameters(TAclParamsLe* aclParams); + +/* + * Read the connection parameters for remote name request. + * @param aclParams Pointer to structure where the connection parameters are stored. + * @return void + */ +void cbBM_getRemoteNameReqParameters(TAclParamsLe* aclParams); + +/* + * Read the vendor specific status of the WL18 chipset. + * @param callback Callback used to notify the completion of the + * status request. + * @return Returns cbBM_OK if successfully started. + */ +cb_int32 cbBM_getTISystemStatus(cbBM_TIStatusCallback callback); + +/* + * Set BT classic as not supported in the peripheral advertisment. + * @param enforceDisable TRUE to set BT classic not supported + * @return cbBM_OK if successful + */ +cb_int32 cbBM_setForceClassicNotSupportedInAdv(cb_boolean enforceDisable); + +/* + * Set BT classic as not supported in the peripheral advertisment. + * + * @return TRUE if BT classic is set to not supported in the peripheral advertisment. + */ +cb_boolean cbBM_getForceClassicNotSupportedInAdv(void); + +/** + * Set min advertisment interval + * + * @param newValue Minimial interval value as slots (1 slot is 0.625ms) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setAdvertisingIntervalMin(cb_uint16 val); + +/** + * Set max advertisment interval + * + * @param newValue Time in slots (1 slot is 0.625ms) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setAdvertisingIntervalMax(cb_uint16 newValue); + +/** + * Set advertisment channel map + * + * @param Bit mask of channels to use; Channel 37, 38, 39 + * (cbBM_ADV_CHANNEL_MAP_CH_37_BIT, cbBM_ADV_CHANNEL_MAP_CH_38_BIT, cbBM_ADV_CHANNEL_MAP_CH_39_BIT) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setAdvChannelmap(cb_uint16 newValue); + +/** + * Set min connection interval + * + * @param newValue Time in slots (1 slot is 1.25ms) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setConnectConnIntervalMin(cb_uint16 newValue); + +/** + * Set max connection interval + * + * @param newValue Time in slots (1 slot is 1.25ms) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setConnectConnIntervalMax(cb_uint16 newValue); + +/** + * Set connection latency + * + * @param newValue Time in slots (1 slot is 1.25ms) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setConnectConnLatency(cb_uint16 newValue); + +/** + * Set link loss (or supervision) timeout + * + * @param newValue Time in ms (make sure it is larger than the connection latency) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setConnectLinklossTmo(cb_uint16 newValue); + +/** + * Set create connection (or page) timeout + * + * @param newValue Time in ms + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setConnectCreateConnTmo(cb_uint16 newValue); + +/** + * Set connect scan interval + * + * @param newValue Time in slots (1 slot is 0.625ms) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setConnectScanInterval(cb_uint16 newValue); + +/** + * Set connect scan window + * + * @param newValue Time in slots (1 slot is 0.625ms) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setConnectScanWindow(cb_uint16 newValue); + +/** + * Set min bond connection interval + * + * @param newValue Time in slots (1 slot is 1.25ms) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setBondConnIntervalMin(cb_uint16 newValue); + +/** + * Set max bond connection interval + * + * @param newValue Time in slots (1 slot is 1.25ms) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setBondConnIntervalMax(cb_uint16 newValue); + +/** + * Set bond connection latency + * + * @param newValue Time in slots (1 slot is 1.25ms) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setBondConnLatency(cb_uint16 newValue); + +/** + * Set bond link loss (or supervision) timeout + * + * @param newValue Time in ms (make sure it is larger than the connection latency) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setBondLinklossTmo(cb_uint16 newValue); + +/** + * Set bond create connection (or page) timeout + * + * @param newValue Time in ms + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setBondCreateConnTmo(cb_uint16 newValue); + +/** + * Set bond scan interval + * + * @param newValue Time in slots (1 slot is 0.625ms) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setBondScanInterval(cb_uint16 newValue); + +/** + * Set bond scan window + * + * @param newValue Time in slots (1 slot is 0.625ms) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setBondScanWindow(cb_uint16 newValue); + +/** + * Set min remote name connection interval + * + * @param newValue Time in slots (1 slot is 1.25ms) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setRemoteNameConnIntervalMin(cb_uint16 newValue); + +/** + * Set max remote name connection interval + * + * @param newValue Time in slots (1 slot is 1.25ms) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setRemoteNameConnIntervalMax(cb_uint16 newValue); + +/** + * Set remote name connection latency + * + * @param newValue Time in slots (1 slot is 1.25ms) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setRemoteNameConnLatency(cb_uint16 newValue); + +/** + * Set remote name link loss (or supervision) timeout + * + * @param newValue Time in ms (make sure it is larger than the connection latency) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setRemoteNameLinklossTmo(cb_uint16 newValue); + +/** + * Set remote name create connection (or page) timeout + * + * @param newValue Time in ms + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setRemoteNameCreateConnTmo(cb_uint16 newValue); + +/** + * Set remote name scan interval + * + * @param newValue Time in slots (1 slot is 0.625ms) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setRemoteNameScanInterval(cb_uint16 newValue); + +/** + * Set remote name scan window + * + * @param newValue Time in slots (1 slot is 0.625ms) + * @return cbBM_OK is returned on success. + */ +extern cb_int32 cbBM_setRemoteNameScanWindow(cb_uint16 newValue); + +/** + * Get min advertisment interval + * + * @return Time in slots (1 slot is 0.625ms) + */ +extern cb_uint16 cbBM_getAdvertisingIntervalMin(void); + +/** + * Get max advertisment interval + * + * @return Time in slots (1 slot is 0.625ms) + */ +extern cb_uint16 cbBM_getAdvertisingIntervalMax(void); + +/** + * Get advertisment channel map + * + * @return Bit mask of channels to use; Channel 37, 38, 39 + * (cbBM_ADV_CHANNEL_MAP_CH_37_BIT, cbBM_ADV_CHANNEL_MAP_CH_38_BIT, cbBM_ADV_CHANNEL_MAP_CH_39_BIT) + */ +extern cb_uint16 cbBM_getAdvChannelmap(void); + +/** + * Get min connection interval + * + * @return Time in slots (1 slot is 1.25ms) + */ +extern cb_uint16 cbBM_getConnectConnIntervalMin(void); + +/** + * Get max connection interval + * + * @return Time in slots (1 slot is 1.25ms) + */ +extern cb_uint16 cbBM_getConnectConnIntervalMax(void); + +/** + * Get connection latency + * + * @return Time in slots (1 slot is 1.25ms) + */ +extern cb_uint16 cbBM_getConnectConnLatency(void); + +/** + * Get link loss (or supervision) timeout + * + * @return Time in ms + */ +extern cb_uint16 cbBM_getConnectLinklossTmo(void); + +/** + * Get create connection (or page) timeout + * + * @return Time in ms + */ +extern cb_uint16 cbBM_getConnectCreateConnTmo(void); + +/** + * Get connection scan interval + * + * @return Time in slots (1 slot is 0.625ms) + */ +extern cb_uint16 cbBM_getConnectScanInterval(void); + +/** + * Get connection scan window + * + * @return Time in slots (1 slot is 0.625ms) + */ +extern cb_uint16 cbBM_getConnectScanWindow(void); + +/** + * Get min bond connection interval + * + * @return Time in slots (1 slot is 1.25ms) + */ +extern cb_uint16 cbBM_getBondConnIntervalMin(void); + +/** + * Get bond connection interval + * + * @return Time in slots (1 slot is 1.25ms) + */ +extern cb_uint16 cbBM_getBondConnIntervalMax(void); + +/** + * Get bond connection latency + * + * @return Time in slots (1 slot is 1.25ms) + */ +extern cb_uint16 cbBM_getBondConnLatency(void); + +/** + * Get bond link loss (or supervision) timeout + * + * @return Time in ms + */ +extern cb_uint16 cbBM_getBondLinklossTmo(void); + +/** + * Get bond connection (or page) timeout + * + * @return Time in ms + */ +extern cb_uint16 cbBM_getBondCreateConnTmo(void); + +/** + * Get bond scan interval + * + * @return Time in slots (1 slot is 0.625ms) + */ +extern cb_uint16 cbBM_getBondScanInterval(void); + +/** + * Get bond scan window + * + * @return Time in slots (1 slot is 0.625ms) + */ +extern cb_uint16 cbBM_getBondScanWindow(void); + +/** + * Get min remote name connection interval + * + * @return Time in slots (1 slot is 1.25ms) + */ +extern cb_uint16 cbBM_getRemoteNameConnIntervalMin(void); + +/** + * Get max remote name connection interval + * + * @return Time in slots (1 slot is 1.25ms) + */ +extern cb_uint16 cbBM_getRemoteNameConnIntervalMax(void); + +/** + * Get remote name connection latency + * + * @return Time in slots (1 slot is 1.25ms) + */ +extern cb_uint16 cbBM_getRemoteNameConnLatency(void); + +/** + * Get remote name link loss (or supervision) timeout + * + * @return Time in ms + */ +extern cb_uint16 cbBM_getRemoteNameLinklossTmo(void); + +/** + * Get remote name connection (or page) timeout + * + * @return Time in ms + */ +extern cb_uint16 cbBM_getRemoteNameCreateConnTmo(void); + +/** + * Get remote name scan interval + * + * @return Time in slots (1 slot is 0.625ms) + */ +extern cb_uint16 cbBM_getRemoteNameScanInterval(void); + +/** + * Get remote name scan window + * + * @return Time in slots (1 slot is 0.625ms) + */ +extern cb_uint16 cbBM_getRemoteNameScanWindow(void); + +#ifdef __cplusplus +} +#endif + +#endif