Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-dev by
targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/cb_main.h
- Committer:
- Anythingconnected
- Date:
- 2017-12-18
- Revision:
- 180:d79f997829d6
- Parent:
- 178:79309dc6340a
File content as of revision 180:d79f997829d6:
/*---------------------------------------------------------------------------
* 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: Main for WiFi-driver and BT stack
* File : cb_main.h
*
* Description :
*-------------------------------------------------------------------------*/
#ifndef _CB_MAIN_H_
#define _CB_MAIN_H_
#include "bt_types.h"
#include "cb_bt_man.h"
#include "cb_wlan.h"
#include "mbed_events.h"
/*===========================================================================
* DEFINES
*=========================================================================*/
#define cbMAIN_TARGET_INVALID_ID -1
/*===========================================================================
* TYPES
*=========================================================================*/
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_uint32 maxLinkKeysClassic; /** Max number of CLASSIC link keys */
cb_uint32 maxLinkKeysLe; /** Max number of link keys BLE*/
} cbMAIN_BtInitParams;
typedef void(*cbMAIN_ErrorHandler)(
cb_int32 errorCode,
const cb_char* filename,
cb_uint32 line);
typedef struct
{
cbWLAN_MACAddress mac; /**< MAC of WLAN interface, set to all zeros if hardware programmed address should be used. */
cbWM_TxPowerSettings txPowerSettings; /**< Transmission power settings. */
} cbMAIN_WlanStartParams;
/*---------------------------------------------------------------------------
* Callback to indicate that initialization of BT stack is completed.
*-------------------------------------------------------------------------*/
typedef void(*cbMAIN_initBtComplete)(void);
/*===========================================================================
* FUNCTIONS
*=========================================================================*/
/**
* Initialize OS, timers, GPIO's, heap and OTP.
*
* @return void
*/
extern void cbMAIN_initOS(void);
/**
* Start Bluetooth HW.
*
* @param pInitParameters Initial configuration parameters. These parameters can
* not be changed once Bluetooth has been started.
* @param callback Will be invoked when initialisation is done.
* @return void
*/
extern void cbMAIN_initBt(cbMAIN_BtInitParams *pInitParameters, cbMAIN_initBtComplete callback);
/**
* Initialize WLAN component.
* @return Port specific TARGET identifier
*/
extern cb_int32 cbMAIN_initWlan(void);
/**
* Start WLAN component.
* Create WLAN driver instance, bind it to targetId and start the driver.
*
* @param targetId Port specific TARGET identifier.
* @param params Start parameters passed to WLAN driver instance.
* @return cbSTATUS_OK if successful, otherwise cbSTATUS_ERROR.
*/
extern cb_int32 cbMAIN_startWlan(cb_int32 targetId, cbMAIN_WlanStartParams *params);
/**
* Register error handler function.
*
* @param errHandler Function to be invoked in case of error.
* @return void
*/
extern void cbMAIN_registerErrorHandler(cbMAIN_ErrorHandler errHandler);
/**
* Start driver OS. This must be called after all cbMAIN_initOS/cbMAIN_initBt/cbMAIN_initWlan
* to start the driver thread.
*
* @return void
*/
extern void cbMAIN_startOS(void);
/**
* Get event queue. Used for running a function in the same thread context as the driver.
* Can not be called before cbMAIN_initOS/cbMAIN_initBt/cbMAIN_initWlan.
* Use cbMAIN_dispatchEventQueue to trigger the driver to call the queued up functions.
* @return EventQueue Pointer to the event queue where function calls can be enqueued.
*/
extern EventQueue* cbMAIN_getEventQueue(void);
/**
* Lock driver from usage. This must be used if a C API function is used outside of the driver thread context.
* The driver should only be locked for as small time as possible.
* @return void
*/
extern void cbMAIN_driverLock(void);
/**
* Unlock driver. used when the C API function has finished executing to release the driver for others to use.
*
* @return void
*/
extern void cbMAIN_driverUnlock(void);
/**
* Dispatch event queue. Should be called to trigger calls that have been queued up in the driver context
*
* @return void
*/
extern void cbMAIN_dispatchEventQueue(void);
#endif /*_CB_MAIN_H_*/
