321 lines
14 KiB
C
321 lines
14 KiB
C
/**
|
|
* Copyright (c) 2016 - 2020, Nordic Semiconductor ASA
|
|
*
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without modification,
|
|
* are permitted provided that the following conditions are met:
|
|
*
|
|
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
* list of conditions and the following disclaimer.
|
|
*
|
|
* 2. Redistributions in binary form, except as embedded into a Nordic
|
|
* Semiconductor ASA integrated circuit in a product or a software update for
|
|
* such product, must reproduce the above copyright notice, this list of
|
|
* conditions and the following disclaimer in the documentation and/or other
|
|
* materials provided with the distribution.
|
|
*
|
|
* 3. Neither the name of Nordic Semiconductor ASA nor the names of its
|
|
* contributors may be used to endorse or promote products derived from this
|
|
* software without specific prior written permission.
|
|
*
|
|
* 4. This software, with or without modification, must only be used with a
|
|
* Nordic Semiconductor ASA integrated circuit.
|
|
*
|
|
* 5. Any software provided in binary form under this license must not be reverse
|
|
* engineered, decompiled, modified and/or disassembled.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
|
|
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
* OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
* DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
|
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
|
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
|
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*
|
|
*/
|
|
#include "ser_dbg_sd_str.h"
|
|
#include "nrf_soc.h"
|
|
#include "nrf_log.h"
|
|
#include <string.h>
|
|
#include "sdk_common.h"
|
|
|
|
#ifdef BLE_STACK_SUPPORT_REQD
|
|
#include "ble_ranges.h"
|
|
#endif
|
|
|
|
#ifdef ANT_STACK_SUPPORT_REQD
|
|
#include "ant_interface.h"
|
|
#include "ant_parameters.h"
|
|
#endif
|
|
|
|
#if NRF_MODULE_ENABLED(NRF_LOG) && defined(BLE_STACK_SUPPORT_REQD)
|
|
static const char * sd_events[] = {
|
|
"BLE_EVT_USER_MEM_REQUEST", /*0x01*/
|
|
"BLE_EVT_USER_MEM_RELEASE", /*0x02*/
|
|
"SD_EVT_UNKNOWN", /*0x03*/
|
|
"SD_EVT_UNKNOWN", /*0x04*/
|
|
"SD_EVT_UNKNOWN", /*0x05*/
|
|
"SD_EVT_UNKNOWN", /*0x06*/
|
|
"SD_EVT_UNKNOWN", /*0x07*/
|
|
"SD_EVT_UNKNOWN", /*0x08*/
|
|
"SD_EVT_UNKNOWN", /*0x09*/
|
|
"SD_EVT_UNKNOWN", /*0x0a*/
|
|
"SD_EVT_UNKNOWN", /*0x0b*/
|
|
"SD_EVT_UNKNOWN", /*0x0c*/
|
|
"SD_EVT_UNKNOWN", /*0x0d*/
|
|
"SD_EVT_UNKNOWN", /*0x0e*/
|
|
"SD_EVT_UNKNOWN", /*0x0f*/
|
|
"BLE_GAP_EVT_CONNECTED", /*0x10*/
|
|
"BLE_GAP_EVT_DISCONNECTED", /*0x11*/
|
|
"BLE_GAP_EVT_CONN_PARAM_UPDATE", /*0x12*/
|
|
"BLE_GAP_EVT_SEC_PARAMS_REQUEST", /*0x13*/
|
|
"BLE_GAP_EVT_SEC_INFO_REQUEST", /*0x14*/
|
|
"BLE_GAP_EVT_PASSKEY_DISPLAY", /*0x15*/
|
|
"BLE_GAP_EVT_KEY_PRESSED", /*0x16*/
|
|
"BLE_GAP_EVT_AUTH_KEY_REQUEST", /*0x17*/
|
|
"BLE_GAP_EVT_LESC_DHKEY_REQUEST", /*0x18*/
|
|
"BLE_GAP_EVT_AUTH_STATUS", /*0x19*/
|
|
"BLE_GAP_EVT_CONN_SEC_UPDATE", /*0x1a*/
|
|
"BLE_GAP_EVT_TIMEOUT", /*0x1b*/
|
|
"BLE_GAP_EVT_RSSI_CHANGED", /*0x1c*/
|
|
"BLE_GAP_EVT_ADV_REPORT", /*0x1d*/
|
|
"BLE_GAP_EVT_SEC_REQUEST", /*0x1e*/
|
|
"BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST", /*0x1f*/
|
|
"BLE_GAP_EVT_SCAN_REQ_REPORT", /*0x20*/
|
|
"BLE_GAP_EVT_PHY_UPDATE_REQUEST", /*0x21*/
|
|
"BLE_GAP_EVT_PHY_UPDATE", /*0x22*/
|
|
"BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST", /*0x23*/
|
|
"BLE_GAP_EVT_DATA_LENGTH_UPDATE", /*0x24*/
|
|
"BLE_GAP_EVT_QOS_CHANNEL_SURVEY_REPORT", /*0x25*/
|
|
"BLE_GAP_EVT_ADV_SET_TERMINATED", /*0x26*/
|
|
"SD_EVT_UNKNOWN", /*0x27*/
|
|
"SD_EVT_UNKNOWN", /*0x28*/
|
|
"SD_EVT_UNKNOWN", /*0x29*/
|
|
"SD_EVT_UNKNOWN", /*0x2a*/
|
|
"SD_EVT_UNKNOWN", /*0x2b*/
|
|
"SD_EVT_UNKNOWN", /*0x2c*/
|
|
"SD_EVT_UNKNOWN", /*0x2d*/
|
|
"SD_EVT_UNKNOWN", /*0x2e*/
|
|
"SD_EVT_UNKNOWN", /*0x2f*/
|
|
"BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP", /*0x30*/
|
|
"BLE_GATTC_EVT_REL_DISC_RSP", /*0x31*/
|
|
"BLE_GATTC_EVT_CHAR_DISC_RSP", /*0x32*/
|
|
"BLE_GATTC_EVT_DESC_DISC_RSP", /*0x33*/
|
|
"BLE_GATTC_EVT_ATTR_INFO_DISC_RSP", /*0x34*/
|
|
"BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP", /*0x35*/
|
|
"BLE_GATTC_EVT_READ_RSP", /*0x36*/
|
|
"BLE_GATTC_EVT_CHAR_VALS_READ_RSP", /*0x37*/
|
|
"BLE_GATTC_EVT_WRITE_RSP", /*0x38*/
|
|
"BLE_GATTC_EVT_HVX", /*0x39*/
|
|
"BLE_GATTC_EVT_EXCHANGE_MTU_RSP", /*0x3a*/
|
|
"BLE_GATTC_EVT_TIMEOUT", /*0x3b*/
|
|
"BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE", /*0x3c*/
|
|
"SD_EVT_UNKNOWN", /*0x3d*/
|
|
"SD_EVT_UNKNOWN", /*0x3e*/
|
|
"SD_EVT_UNKNOWN", /*0x3f*/
|
|
"SD_EVT_UNKNOWN", /*0x40*/
|
|
"SD_EVT_UNKNOWN", /*0x41*/
|
|
"SD_EVT_UNKNOWN", /*0x42*/
|
|
"SD_EVT_UNKNOWN", /*0x43*/
|
|
"SD_EVT_UNKNOWN", /*0x44*/
|
|
"SD_EVT_UNKNOWN", /*0x45*/
|
|
"SD_EVT_UNKNOWN", /*0x46*/
|
|
"SD_EVT_UNKNOWN", /*0x47*/
|
|
"SD_EVT_UNKNOWN", /*0x48*/
|
|
"SD_EVT_UNKNOWN", /*0x49*/
|
|
"SD_EVT_UNKNOWN", /*0x4a*/
|
|
"SD_EVT_UNKNOWN", /*0x4b*/
|
|
"SD_EVT_UNKNOWN", /*0x4c*/
|
|
"SD_EVT_UNKNOWN", /*0x4d*/
|
|
"SD_EVT_UNKNOWN", /*0x4e*/
|
|
"SD_EVT_UNKNOWN", /*0x4f*/
|
|
"BLE_GATTS_EVT_WRITE", /*0x50*/
|
|
"BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST", /*0x51*/
|
|
"BLE_GATTS_EVT_SYS_ATTR_MISSING", /*0x52*/
|
|
"BLE_GATTS_EVT_HVC", /*0x53*/
|
|
"BLE_GATTS_EVT_SC_CONFIRM", /*0x54*/
|
|
"BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST", /*0x55*/
|
|
"BLE_GATTS_EVT_TIMEOUT", /*0x56*/
|
|
"BLE_GATTS_EVT_HVN_TX_COMPLETE", /*0x57*/
|
|
};
|
|
|
|
static const char * sd_functions[] = {
|
|
/* 0x60 offset */
|
|
"SD_BLE_ENABLE", /*0x60*/
|
|
"SD_BLE_EVT_GET", /*0x61*/
|
|
"SD_BLE_UUID_VS_ADD", /*0x62*/
|
|
"SD_BLE_UUID_DECODE", /*0x63*/
|
|
"SD_BLE_UUID_ENCODE", /*0x64*/
|
|
"SD_BLE_VERSION_GET", /*0x65*/
|
|
"SD_BLE_USER_MEM_REPLY", /*0x66*/
|
|
"SD_BLE_OPT_SET", /*0x67*/
|
|
"SD_BLE_OPT_GET", /*0x68*/
|
|
"SD_BLE_CFG_SET", /*0x69*/
|
|
"SD_BLE_UUID_VS_REMOVE", /*0x6A*/
|
|
"SD_UNKNOWN", /*0x6B*/
|
|
"SD_BLE_GAP_ADDR_SET" , /*0x6C*/
|
|
"SD_BLE_GAP_ADDR_GET" , /*0x6D*/
|
|
"SD_BLE_GAP_WHITELIST_SET" , /*0x6E*/
|
|
"SD_BLE_GAP_DEVICE_IDENTITIES_SET" , /*0x6F*/
|
|
"SD_BLE_GAP_PRIVACY_SET" , /*0x70*/
|
|
"SD_BLE_GAP_PRIVACY_GET" , /*0x71*/
|
|
"SD_BLE_GAP_ADV_SET_CONFIGURE" , /*0x72*/
|
|
"SD_BLE_GAP_ADV_START" , /*0x73*/
|
|
"SD_BLE_GAP_ADV_STOP" , /*0x74*/
|
|
"SD_BLE_GAP_CONN_PARAM_UPDATE" , /*0x75*/
|
|
"SD_BLE_GAP_DISCONNECT" , /*0x76*/
|
|
"SD_BLE_GAP_TX_POWER_SET" , /*0x77*/
|
|
"SD_BLE_GAP_APPEARANCE_SET" , /*0x78*/
|
|
"SD_BLE_GAP_APPEARANCE_GET" , /*0x79*/
|
|
"SD_BLE_GAP_PPCP_SET" , /*0x7a*/
|
|
"SD_BLE_GAP_PPCP_GET" , /*0x7b*/
|
|
"SD_BLE_GAP_DEVICE_NAME_SET" , /*0x7c*/
|
|
"SD_BLE_GAP_DEVICE_NAME_GET" , /*0x7d*/
|
|
"SD_BLE_GAP_AUTHENTICATE" , /*0x7e*/
|
|
"SD_BLE_GAP_SEC_PARAMS_REPLY" , /*0x7f*/
|
|
"SD_BLE_GAP_AUTH_KEY_REPLY" , /*0x80*/
|
|
"SD_BLE_GAP_LESC_DHKEY_REPLY" , /*0x81*/
|
|
"SD_BLE_GAP_KEYPRESS_NOTIFY" , /*0x82*/
|
|
"SD_BLE_GAP_LESC_OOB_DATA_GET" , /*0x83*/
|
|
"SD_BLE_GAP_LESC_OOB_DATA_SET" , /*0x84*/
|
|
"SD_BLE_GAP_ENCRYPT" , /*0x85*/
|
|
"SD_BLE_GAP_SEC_INFO_REPLY" , /*0x86*/
|
|
"SD_BLE_GAP_CONN_SEC_GET" , /*0x87*/
|
|
"SD_BLE_GAP_RSSI_START" , /*0x88*/
|
|
"SD_BLE_GAP_RSSI_STOP" , /*0x89*/
|
|
"SD_BLE_GAP_SCAN_START" , /*0x8a*/
|
|
"SD_BLE_GAP_SCAN_STOP" , /*0x8b*/
|
|
"SD_BLE_GAP_CONNECT" , /*0x8c*/
|
|
"SD_BLE_GAP_CONNECT_CANCEL " , /*0x8d*/
|
|
"SD_BLE_GAP_RSSI_GET" , /*0x8e*/
|
|
"SD_BLE_GAP_PHY_UPDATE" , /*0x8f*/
|
|
"SD_BLE_GAP_DATA_LENGTH_UPDATE" , /*0x90*/
|
|
"SD_BLE_GAP_QOS_CHANNEL_SURVEY_START", /*0x91*/
|
|
"SD_BLE_GAP_QOS_CHANNEL_SURVEY_STOP" , /*0x92*/
|
|
"SD_UNKNOWN", /*0x93*/
|
|
"SD_UNKNOWN", /*0x94*/
|
|
"SD_UNKNOWN", /*0x95*/
|
|
"SD_UNKNOWN", /*0x96*/
|
|
"SD_UNKNOWN", /*0x97*/
|
|
"SD_UNKNOWN", /*0x98*/
|
|
"SD_UNKNOWN", /*0x99*/
|
|
"SD_UNKNOWN", /*0x9A*/
|
|
"SD_BLE_GATTC_PRIMARY_SERVICES_DISCOVER", /*0x9B*/
|
|
"SD_BLE_GATTC_RELATIONSHIPS_DISCOVER", /*0x9C*/
|
|
"SD_BLE_GATTC_CHARACTERISTICS_DISCOVER", /*0x9D*/
|
|
"SD_BLE_GATTC_DESCRIPTORS_DISCOVER", /*0x9E*/
|
|
"SD_BLE_GATTC_ATTR_INFO_DISCOVER", /*0x9F*/
|
|
"SD_BLE_GATTC_CHAR_VALUE_BY_UUID_READ", /*0xA0*/
|
|
"SD_BLE_GATTC_READ", /*0xA1*/
|
|
"SD_BLE_GATTC_CHAR_VALUES_READ", /*0xA2*/
|
|
"SD_BLE_GATTC_WRITE", /*0xA3*/
|
|
"SD_BLE_GATTC_HV_CONFIRM", /*0xA4*/
|
|
"SD_BLE_GATTC_EXCHANGE_MTU_REQUEST", /*0xA5*/
|
|
"SD_UNKNOWN", /*0xA6*/
|
|
"SD_UNKNOWN", /*0xA7*/
|
|
"SD_BLE_GATTS_SERVICE_ADD", /*0xA8*/
|
|
"SD_BLE_GATTS_INCLUDE_ADD", /*0xA9*/
|
|
"SD_BLE_GATTS_CHARACTERISTIC_ADD", /*0xAA*/
|
|
"SD_BLE_GATTS_DESCRIPTOR_ADD", /*0xAB*/
|
|
"SD_BLE_GATTS_VALUE_SET", /*0xAC*/
|
|
"SD_BLE_GATTS_VALUE_GET", /*0xAD*/
|
|
"SD_BLE_GATTS_HVX", /*0xAE*/
|
|
"SD_BLE_GATTS_SERVICE_CHANGED", /*0xAF*/
|
|
"SD_BLE_GATTS_RW_AUTHORIZE_REPLY", /*0xB0*/
|
|
"SD_BLE_GATTS_SYS_ATTR_SET", /*0xB1*/
|
|
"SD_BLE_GATTS_SYS_ATTR_GET", /*0xB2*/
|
|
"SD_BLE_GATTS_INITIAL_USER_HANDLE_GET", /*0xB3*/
|
|
"SD_BLE_GATTS_ATTR_GET", /*0xB4*/
|
|
"SD_BLE_GATTS_EXCHANGE_MTU_REPLY", /*0xB5*/
|
|
};
|
|
#endif // NRF_MODULE_ENABLED(NRF_LOG) && defined(BLE_STACK_SUPPORT_REQD)
|
|
|
|
#ifdef ANT_STACK_SUPPORT_REQD
|
|
const char * string[] =
|
|
{
|
|
"ANT SVC",
|
|
"ANT_EVT",
|
|
};
|
|
#endif // ANT_STACK_SUPPORT_REQD
|
|
|
|
const char * ser_dbg_sd_call_str_get(uint8_t opcode)
|
|
{
|
|
#if NRF_MODULE_ENABLED(NRF_LOG)
|
|
const char * p_str = "SD_CALL_UNKNOWN";
|
|
#ifdef BLE_STACK_SUPPORT_REQD
|
|
if (opcode >= BLE_SVC_BASE && opcode <= BLE_GATTS_SVC_LAST)
|
|
{
|
|
uint32_t idx = opcode-BLE_SVC_BASE;
|
|
if (idx < ARRAY_SIZE(sd_functions) )
|
|
{
|
|
p_str = sd_functions[idx];
|
|
}
|
|
}
|
|
#endif // BLE_STACK_SUPPORT_REQD
|
|
|
|
#ifdef ANT_STACK_SUPPORT_REQD
|
|
// Check if opcode is within the range of the ANT Stack API SVC numbers
|
|
#ifdef BLE_STACK_SUPPORT_REQD
|
|
else if (opcode >= STK_SVC_BASE_2)
|
|
#else
|
|
if (opcode >= STK_SVC_BASE_2)
|
|
#endif // BLE_STACK_SUPPORT_REQD
|
|
{
|
|
p_str = string[0];
|
|
}
|
|
#endif // ANT_STACK_SUPPORT_REQD
|
|
|
|
switch (opcode)
|
|
{
|
|
case SD_ECB_BLOCK_ENCRYPT:
|
|
p_str = "SD_ECB_BLOCK_ENCRYPT";
|
|
break;
|
|
case SD_TEMP_GET:
|
|
p_str = "SD_TEMP_GET";
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return p_str;
|
|
#else
|
|
return NULL;
|
|
#endif
|
|
}
|
|
|
|
const char * ser_dbg_sd_evt_str_get(uint16_t opcode)
|
|
{
|
|
#if NRF_MODULE_ENABLED(NRF_LOG)
|
|
const char * p_str = "SD_EVT_UNKNOWN";
|
|
#ifdef BLE_STACK_SUPPORT_REQD
|
|
if (opcode >= BLE_EVT_BASE && opcode <= BLE_GATTS_EVT_LAST)
|
|
{
|
|
uint32_t idx = opcode - BLE_EVT_BASE;
|
|
if (idx < ARRAY_SIZE(sd_events))
|
|
{
|
|
p_str = sd_events[idx];
|
|
}
|
|
}
|
|
#endif // BLE_STACK_SUPPORT_REQD
|
|
|
|
#ifdef ANT_STACK_SUPPORT_REQD
|
|
// Check if opcode is within the range of the ANT Stack API SVC numbers
|
|
#ifdef BLE_STACK_SUPPORT_REQD
|
|
else if (opcode <= EVENT_BLOCKED)
|
|
#else
|
|
if (opcode <= EVENT_BLOCKED)
|
|
#endif // BLE_STACK_SUPPORT_REQD
|
|
{
|
|
p_str = string[1];
|
|
}
|
|
#endif
|
|
return p_str;
|
|
#else
|
|
return NULL;
|
|
#endif // NRF_MODULE_ENABLED(NRF_LOG)
|
|
}
|