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_test_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_test_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_test_man.h Wed Sep 16 01:11:49 2020 +0000 @@ -0,0 +1,253 @@ +/*--------------------------------------------------------------------------- + * 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 Test + * File : cb_bt_test_man.h + * + * Description : Functionality for Bluetooth radio tests and qualification. + *-------------------------------------------------------------------------*/ + +/** +* @file cb_bt_test_man.h +* @brief Functionality for Bluetooth radio tests and qualification. + */ + +#ifndef _CB_BT_TEST_MAN_H_ +#define _CB_BT_TEST_MAN_H_ + +#include "cb_comdefs.h" + +#include "cb_bt_man.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/*=========================================================================== + * DEFINES + *=========================================================================*/ +#define cbBTM_OK (0) +#define cbBTM_ERROR (-1) + +/*=========================================================================== + * TYPES + *=========================================================================*/ +typedef enum +{ + cbBTM_TEST_CONF_POS, + cbBTM_TEST_CONF_NEG +} cbBTM_TestEvt; + +typedef void (*cbBTM_TestCallback)(cbBTM_TestEvt evt); +typedef void (*cbBTM_LeTestEndCallback)(cbBTM_TestEvt evt, cb_uint16 nbrOfPackets); + + +/*=========================================================================== + * FUNCTIONS + *=========================================================================*/ + +/** + * Init Bluetooth test manager + * @returns None + */ +extern void cbBTM_init(void); + +/** + * Enable Device under test mode. Used for Bluetooth Classic radio tests. + * + * @param callback Test callback used to notify if the test was successfully started. + * @returns cbBTM_OK is returned + */ +extern cb_int32 cbBTM_enableDUT(cbBTM_TestCallback callback); + +/** + * This command operates the RF transceiver in continuous transmission mode (which is most likely used in + * regulatory and standardization procedures and tests, such as FCC and ETSI certifications). Activating the + * VS runs the TX START sequence code using the configured frequency, modulation, pattern, and power + * level. The VS also enables the generation of a user-defined pattern (or correcting definitions without a + * patch) by setting a new pattern generator (also known as a PN generator) init value and mask. + * based on HCI_VS_DRPb_Tester_Con_TX, HCI Opcode 0xFDCA + * The cbBTM_TestCallback is used to notify if the test is sucessfully started. + * + * @param frequency Transmission frequency in MHz Range: 2402 - 2480 + * @param modulationScheme Range: 0x00 - 0x05 where + * 0x00 = CW + * 0x01 = BT BR (GFSK) + * 0x02 = BT EDR 2MB (p/4-DQPSK) + * 0x03 = BT EDR 3MB (8-DPSK) + * 0x04 = BT LE (BLE, GMSK) + * 0x05 = ANT (GFSK) + * @param testPattern Range: 0x00 - 0x07 + * 0x00 = PN9 + * 0x01 = PN15 + * 0x02 = ZOZO (101010101010101010) + * 0x03 = All 1 + * 0x04 = All 0 + * 0x05 = FOFO (1111000011110000) + * 0x06 = FFOO (1111111100000000) + * 0x07 = Not used + * @param powerLevelIndex Range: 0-7: 7 = Max Output Power, 0 = Min Output Power, 0x08 (PA off) 8 = PA Off (leakage) + * @param reserved1 shall be set to 0 + * @param reserved2 shall be set to 0 + * @param callback Test callback used to notify if the test was successfully started. + * + * @return cbBTM_OK is returned + */ +extern cb_int32 cbBTM_tiDrpbTesterConTx( + cb_uint16 frequency, + cb_uint8 modulationScheme, + cb_uint8 testPattern, + cb_uint8 powerLevelIndex, + cb_uint32 reserved1, + cb_uint32 reserved2, + cbBTM_TestCallback callback); + +/** + *This command operates the RF transceiver in continuous reception mode (most likely used in regulatory + * and standardization procedures and tests, such as FCC and ETSI certifications). By activating the VS, the + * RX START sequence code runs, using the configured frequency, RX mode, and modulation type. + * based on HCI_VS_DRPb_Tester_Con_RX, HCI Opcode 0xFDCB + * + * The cbBTM_TestCallback is used to notify if the test is successfully started. + * @param frequency Transmission frequency in MHz Range: 2402 - 2480 + * @param rxMode Range: 0 -3: + * 0x00 = Connection mode + * 0x01 = Best RF mode (ADPL closed loop) - For expert use only! + * 0x02 = Low current mode (ADPLL open loop) - For expert use only! + * 0x03 = Scan mode + * @param modulationScheme Range: 0x03 - 0x05 where + * 0x03 = BT (BR, EDR 2MB, EDR 3MB) + * 0x04 = BT LE (BLE, GMSK) + * 0x05 = ANT (GFSK) + * @param callback Test callback used to notify if the test was successfully started. + * + * @return cbBTM_OK is returned + */ +extern cb_int32 cbBTM_tiDrpbTesterConRx( + cb_uint16 frequency, + cb_uint8 rxMode, + cb_uint8 modulationScheme, + cbBTM_TestCallback callback); + +/** + * + * This command operates the RF transceiver in continuous reception mode (most likely used in regulatory + * and standardization procedures and tests, such as FCC and ETSI certifications). Activating the VS runs + * the RX START sequence code using the configured frequency, RX mode, and modulation type. + * This command emulates Bluetooth connection mode. Connection does not require a setup procedure. + * Based on HCI_VS_DRPb_Tester_Packet_TX_RX HCI Opcode 0xFDCC + * + * @param aclPacketType ACL TX packet type. Range: 0x00 - 0x0B + * 0x00 = DM1 + * 0x01 = DH1 + * 0x02 = DM3 + * 0x03 = DH3 + * 0x04 = DM5 + * 0x05 = DH5 + * 0x06 = 2-DH1 + * 0x07 = 2-DH3 + * 0x08 = 2-DH5 + * 0x09 = 3-DH1 + * 0x0A = 3-DH3 + * 0x0B = 3-DH5 + * @param frequencyMode 0x00 = Hopping 0x03 = Single frequency + * @param txSingleFrequency Transmission frequency in MHz,Range 2402 - 2480, 0xFFFF = no TX + * @param rxSingleFrequency Transmission frequency in MHz,Range 2402 - 2480, 0xFFFF = no RX + * @param aclDataPattern ACL TX packet data pattern Range: 0x00 - 0x05 + * 0x00 = All 0 + * 0x01 = All 1 + * 0x02 = ZOZO (101010101010101010) + * 0x03 = FOFO (1111000011110000) + * 0x04 = Ordered (1, 2, 3, 4, and so on) + * 0x05 = PRBS9 (pseudo-random bit sequence) + * @param useExtendedFeatures Shall be SET to 0 + * @param aclDataLength ACL packet data length. + * DM1: 0 - 17 ACL packet data length in bytes + * DH1: 0 - 27 + * DM3: 0 - 121 + * DH3: 0 - 183 + * DM5: 0 - 224 + * DH5: 0 - 339 + * 2-DH1: 0 - 54 + * 2-DH3: 0 - 367 + * 2-DH5: 0 - 679 + * 3-DH1: 0 - 83 + * 3-DH3: 0 - 552 + * 3-DH5: 0 - 1021 + * @param powerLevel Range 0-7: 7 = Max Output Power; 0 = Min Output; Power 8 = PA Off (leakage) 0x08 (PA off) + * @param disableWhitening 0x00 = Enable whitening, 0x01 = Disable whitening + * @param prbs9Init PRBS9 Init, range 0x0000 - 0x01FF + * @param callback Test callback used to notify if the test was successfully started. + * + * @return cbBTM_OK is returned + */ +extern cb_int32 cbBTM_tiDrpbTesterPacketTxRx( + cb_uint8 aclPacketType, + cb_uint8 frequencyMode, + cb_uint16 txSingleFrequency, + cb_uint16 rxSingleFrequency, + cb_uint8 aclDataPattern, + cb_uint8 useExtendedFeatures, + cb_uint16 aclDataLength, + cb_uint8 powerLevel, + cb_uint8 disableWhitening, + cb_uint16 prbs9Init, + cbBTM_TestCallback callback); + +/** + * Enable Bluetooth Low Energy Transmitter test. + * @param txFreq Transmit frequency. N = (F - 2402) / 2, Range: 0x00 to 0x27, Frequency Range : 2402 MHz to 2480 MHz, + Use oxFF to generate a pseudo random hopping frequency useful for some scenarios during type approval. + * @param length Length in bytes of payload data in each packet + * @param packetPayload 0x00 Pseudo-Random bit sequence 9 + * 0x01 Pattern of alternating bits 11110000 + * 0x02 Pattern of alternating bits 10101010 + * 0x03 Pseudo-Random bit sequence 15 + * 0x04 Pattern of All 1 bits + * 0x05 Pattern of All 0 bits + * 0x06 Pattern of alternating bits 00001111 + * 0x07 Pattern of alternating bits 0101 + * @param callback Test callback used to notify if the test was successfully started. + * @return cbBTM_OK is returned + */ +extern cb_int32 cbBTM_enableBleTransmitterTest( + cb_uint8 txFreq, + cb_uint8 length, + cb_uint8 packetPayload, + cbBTM_TestCallback callback); + +/** + * Enable Bluetooth Low Energy Receiver test. + * @param rxFreq Receive frequency. N = (F - 2402) / 2, Range: 0x00 to 0x27, Frequency Range : 2402 MHz to 2480 MHz, + * @param callback Test callback used to notify if the test was successfully started. + * @returns cbBTM_OK is returned + */ +extern cb_int32 cbBTM_enableBleReceiverTest( + cb_uint8 rxFreq, + cbBTM_TestCallback callback); + +/** + * End Bluetooth Low Energy Receiver or Transmitter test. + * @param callback Test callback used to notify if the test was successfully ended. + * @returns cbBTM_OK is returned + */ +extern cb_int32 cbBTM_bleTestEnd(cbBTM_LeTestEndCallback callback); + +#ifdef __cplusplus +} +#endif + +#endif /* _CB_BT_TEST_MAN_H_ */ +