BLE Transparent Service Application Implementations.
Copyright (c) 2020-2021 Microchip Technology Inc. and its subsidiaries.
#include "trans_service_app.h"
#include "ble_manager.h"
#include "trans_service.h"
#include "common/include/nm_common.h"
#include "sio2host.h"
#include <asf.h>
#include "driver/include/m2m_periph.h"
#include "driver/include/m2m_wifi.h"
#include "m2m_ble.h"
#include "at_ble_api.h"
#include "wifi_prov.h"
Macros | |
#define | ADV_DATA_LEN (28) |
ADV_DATA_LEN. More... | |
#define | ADV_TYPE_LEN (0x01) |
ADV_TYPE_LEN. More... | |
#define | APP_BTN_EVENT_BTN1_LONG_PRESS 2 |
#define | APP_BTN_EVENT_BTN1_SHORT_PRESS 1 |
#define | APP_BTN_EVENT_BTN2_LONG_PRESS 8 |
#define | APP_BTN_EVENT_BTN2_SHORT_PRESS 4 |
#define | APP_STATE_COMPLETE 6 |
#define | APP_STATE_IDLE 0 |
#define | APP_STATE_PROVISIONING 2 |
#define | APP_STATE_WAITING_FOR_BUTTON_PRESS 3 |
#define | APP_STATE_WAITING_FOR_PROFILE_SWITCH 5 |
#define | APP_STATE_WAITING_FOR_WIFI_CONNECTION 4 |
#define | APP_STATE_WAITING_FOR_WIFI_DISCONNECTION 1 |
#define | APP_TRANS_ADV_TIMEOUT (1000) |
APP_TRANS_ADV_TIMEOUT Advertising time-out between 0x0001 and 0x3FFF in seconds, 0x0000 disables time-out. More... | |
#define | APP_TRANS_FAST_ADV (100) |
APP_TRANS_FAST_ADV between 0x0020 and 0x4000 in 0.625 ms units (20ms to 10.24s). More... | |
#define | APP_WIFI_PROV_DISPLAY_NAME ("3400 DEMO") |
#define | HEX2ASCII(x) (((x)>=10)? (((x)-10)+'A') : ((x)+'0')) |
#define | SCAN_RESP_LEN (12) |
scan_resp_len is the length of the scan response data More... | |
#define | STRING_HEADER |
#define | TRANS_ADV_DATA_NAME_DATA ("uC-TRANS") |
#define | TRANS_ADV_DATA_NAME_LEN (8) |
TRANS_ADV_DATA_NAME_LEN the length of the device name. More... | |
#define | TRANS_ADV_DATA_NAME_TYPE (0x09) |
TRANS_ADV_DATA_NAME_TYPE the gap ad data type. More... | |
#define | TRANS_ADV_DATA_UUID_LEN (16) |
TRANS_ADV_DATA_UUID_LEN the size of TRANS service uuid. More... | |
#define | TRANS_ADV_DATA_UUID_TYPE (0x07) |
TRANS_ADV_DATA_UUID_TYPE the total sizeof TRANS service uuid. More... | |
Variables | |
uint8_t | enable_credit_based_fc |
static volatile uint8 | gu8BtnEvent |
static uint8 | gu8ScanIndex |
static volatile uint8 | gu8WiFiConnectionState = M2M_WIFI_DISCONNECTED |
static const uint8_t | SCAN_RESP_DATA [SCAN_RESP_LEN] = {0x0b,0x08, 'M', 'C', 'H', 'P', '-', 'T', 'R', 'A', 'N', 'S'} |
uint8_t | send_data [APP_TX_BUF_SIZE] |
uint16_t | send_length = 0 |
uint8_t | trans_ctrl_notification_flag |
static gatt_service_handler_t | trans_service_handler |
at_ble_uuid_t | trans_service_uuid |
uint8_t | trans_tx_notification_flag |
#define ADV_DATA_LEN (28) |
ADV_DATA_LEN.
#define ADV_TYPE_LEN (0x01) |
ADV_TYPE_LEN.
Referenced by ble_trans_service_advertise().
#define APP_BTN_EVENT_BTN1_LONG_PRESS 2 |
Referenced by app_button_press_callback().
#define APP_BTN_EVENT_BTN1_SHORT_PRESS 1 |
Referenced by app_button_press_callback().
#define APP_BTN_EVENT_BTN2_LONG_PRESS 8 |
Referenced by app_button_press_callback().
#define APP_BTN_EVENT_BTN2_SHORT_PRESS 4 |
Referenced by app_button_press_callback().
#define APP_STATE_COMPLETE 6 |
#define APP_STATE_IDLE 0 |
#define APP_STATE_PROVISIONING 2 |
#define APP_STATE_WAITING_FOR_BUTTON_PRESS 3 |
#define APP_STATE_WAITING_FOR_PROFILE_SWITCH 5 |
#define APP_STATE_WAITING_FOR_WIFI_CONNECTION 4 |
#define APP_STATE_WAITING_FOR_WIFI_DISCONNECTION 1 |
#define APP_TRANS_ADV_TIMEOUT (1000) |
APP_TRANS_ADV_TIMEOUT Advertising time-out between 0x0001 and 0x3FFF in seconds, 0x0000 disables time-out.
Referenced by ble_trans_service_advertise().
#define APP_TRANS_FAST_ADV (100) |
APP_TRANS_FAST_ADV between 0x0020 and 0x4000 in 0.625 ms units (20ms to 10.24s).
Referenced by ble_trans_service_advertise().
#define APP_WIFI_PROV_DISPLAY_NAME ("3400 DEMO") |
#define HEX2ASCII | ( | x | ) | (((x)>=10)? (((x)-10)+'A') : ((x)+'0')) |
Referenced by app_wifi_init().
#define SCAN_RESP_LEN (12) |
scan_resp_len is the length of the scan response data
Referenced by ble_trans_service_advertise().
#define STRING_HEADER |
Referenced by main().
#define TRANS_ADV_DATA_NAME_DATA ("uC-TRANS") |
Referenced by ble_trans_service_advertise().
#define TRANS_ADV_DATA_NAME_LEN (8) |
TRANS_ADV_DATA_NAME_LEN the length of the device name.
Referenced by ble_trans_service_advertise().
#define TRANS_ADV_DATA_NAME_TYPE (0x09) |
TRANS_ADV_DATA_NAME_TYPE the gap ad data type.
Referenced by ble_trans_service_advertise().
#define TRANS_ADV_DATA_UUID_LEN (16) |
TRANS_ADV_DATA_UUID_LEN the size of TRANS service uuid.
Referenced by ble_trans_service_advertise().
#define TRANS_ADV_DATA_UUID_TYPE (0x07) |
TRANS_ADV_DATA_UUID_TYPE the total sizeof TRANS service uuid.
Referenced by ble_trans_service_advertise().
|
static |
|
static |
References AT_BLE_SUCCESS, ble_trans_service_init(), ble_trans_service_process_event(), ble_trans_service_send_buf(), m2m_ble_event_get(), and m2m_ble_init().
Referenced by app_main().
References APP_BTN_EVENT_BTN1_LONG_PRESS, APP_BTN_EVENT_BTN1_SHORT_PRESS, APP_BTN_EVENT_BTN2_LONG_PRESS, APP_BTN_EVENT_BTN2_SHORT_PRESS, gu8BtnEvent, SW1, and SW2.
Referenced by app_main().
|
static |
References app_ble_trans_service(), app_button_press_callback(), app_wifi_handle_event(), app_wifi_init(), and nm_bsp_btn_init().
Referenced by main().
|
static |
References ble_prov_scan_result(), gu8ScanIndex, gu8WiFiConnectionState, M2M_ERR, M2M_INFO, M2M_WIFI_CONNECTED, M2M_WIFI_DISCONNECTED, m2m_wifi_get_num_ap_found(), M2M_WIFI_REQ_DHCP_CONF, m2m_wifi_req_scan_result(), M2M_WIFI_RESP_CON_STATE_CHANGED, M2M_WIFI_RESP_CURRENT_RSSI, M2M_WIFI_RESP_SCAN_DONE, M2M_WIFI_RESP_SCAN_RESULT, M2M_WIFI_RESP_SET_GAIN_TABLE, NM_BSP_TIME_MSEC, tstrM2MGainTableRsp::s8ErrorCode, tstrM2MIPConfig::u32StaticIP, tstrM2mWifiStateChanged::u8CurrState, and tstrM2mScanDone::u8NumofCh.
Referenced by app_main().
|
static |
References tstrEthInitParam::au8ethRcvBuf, HEX2ASCII, m2m_ble_wifi_init(), M2M_DEVICE_NAME, M2M_ERR, M2M_INFO, M2M_LISTEN_INTERVAL, m2m_memset(), M2M_NO_PS, m2m_periph_pullup_ctrl(), M2M_PERIPH_PULLUP_DIS_HOST_WAKEUP, M2M_PERIPH_PULLUP_DIS_SD_CMD_SPI_SCK, M2M_PERIPH_PULLUP_DIS_SD_DAT0_SPI_TXD, M2M_PS_DEEP_AUTOMATIC, M2M_PS_MANUAL, m2m_strlen(), M2M_SUCCESS, m2m_wifi_get_mac_address(), m2m_wifi_get_otp_mac_address(), m2m_wifi_set_device_name(), m2m_wifi_set_lsn_int(), m2m_wifi_set_mac_address(), m2m_wifi_set_sleep_mode(), MAC_ADDRESS, tstrEthInitParam::pfAppEthCb, tstrWifiInitParam::pfAppWifiCb, tstrWifiInitParam::strEthInitParam, system_reset(), tstrEthInitParam::u16ethRcvBufSize, and tstrM2mLsnInt::u16LsnInt.
Referenced by app_main().
|
static |
function to check the client characteristic configuration value.
References at_ble_notification_send(), AT_BLE_SUCCESS, at_ble_characteristic_changed_t::char_handle, at_ble_characteristic_changed_t::char_len, at_ble_characteristic_changed_t::char_new_value, at_ble_characteristic_t::char_val_handle, at_ble_characteristic_t::client_config_handle, at_ble_characteristic_changed_t::conn_handle, DBG_LOG, DBG_LOG_DEV, enable_credit_based_fc, gatt_service_handler::serv_chars, trans_ctrl_notification_flag, trans_tx_notification_flag, and trans_update_ctrl_char_value().
Referenced by ble_trans_service_profile_init().
|
static |
References ADV_TYPE_LEN, APP_TRANS_ADV_TIMEOUT, APP_TRANS_FAST_ADV, at_ble_adv_data_set(), AT_BLE_ADV_FP_ANY, AT_BLE_ADV_GEN_DISCOVERABLE, at_ble_adv_start(), AT_BLE_ADV_TYPE_UNDIRECTED, AT_BLE_FAILURE, AT_BLE_GAP_PERIPHERAL_SLV, at_ble_set_dev_config(), AT_BLE_SUCCESS, DBG_LOG, NULL, SCAN_RESP_DATA, SCAN_RESP_LEN, TRANS_ADV_DATA_NAME_DATA, TRANS_ADV_DATA_NAME_LEN, TRANS_ADV_DATA_NAME_TYPE, TRANS_ADV_DATA_UUID_LEN, TRANS_ADV_DATA_UUID_TYPE, and at_ble_uuid_t::uuid.
Referenced by ble_trans_service_handle_disconnect_event(), and ble_trans_service_profile_init().
|
static |
References ble_trans_service_advertise().
Referenced by ble_trans_service_profile_init().
void ble_trans_service_init | ( | void | ) |
References ble_device_init(), ble_trans_service_profile_init(), and NULL.
Referenced by app_ble_trans_service().
void ble_trans_service_process_event | ( | at_ble_events_t | event, |
at_ble_event_parameter_t * | params | ||
) |
References AT_BLE_UNDEFINED_EVENT, and ble_event_manager().
Referenced by app_ble_trans_service().
|
static |
void ble_trans_service_send_buf | ( | void | ) |
References APP_TX_BUF_SIZE, BACKSPACE_BUTTON_PRESS, DBG_LOG, ENTER_BUTTON_PRESS, send_data, send_length, sio2host_putchar(), sio2host_rx(), SPACE_BAR, and trans_update_tx_char_value().
Referenced by app_ble_trans_service().
at_ble_status_t ble_trans_update_value_on_btnpress | ( | uint8_t * | trans_tx_value, |
uint8_t | len | ||
) |
References trans_update_tx_char_value().
|
static |
References port_config::direction, LED0_PIN, port_get_config_defaults(), PORT_PIN_DIR_OUTPUT, port_pin_set_config(), and port_pin_set_output_level().
Referenced by main().
int main | ( | void | ) |
References app_main(), led_init(), nm_bsp_app_init(), nm_bsp_init(), sio2host_init(), STRING_HEADER, and system_init().
uint32 nmi_inet_addr | ( | char * | pcIpAddr | ) |
Synchronous function which returns a BSD socket compliant Internet Protocol (IPv4) socket address. This IPv4 address in the input string parameter could either be specified as a hostname, or as a numeric string representation like n.n.n.n known as the IPv4 dotted-decimal format (i.e. "192.168.10.1"). This function is used whenever an ip address needs to be set in the proper format (i.e. for the @ref tstrM2MIPConfig structure).
[in] | pcIpAddr | A null terminated string containing the IP address in IPv4 dotted-decimal address. |
uint8_t enable_credit_based_fc |
Referenced by ble_trans_char_changed_event(), and trans_update_ctrl_char_value().
|
static |
Referenced by app_button_press_callback().
|
static |
Referenced by app_wifi_handle_event().
|
static |
Referenced by app_wifi_handle_event().
|
static |
Referenced by ble_trans_service_advertise().
uint8_t send_data[APP_TX_BUF_SIZE] |
Referenced by ble_trans_service_send_buf().
uint16_t send_length = 0 |
Referenced by ble_trans_service_send_buf().
uint8_t trans_ctrl_notification_flag |
Referenced by ble_trans_char_changed_event(), and trans_update_ctrl_char_value().
|
static |
at_ble_uuid_t trans_service_uuid |
uint8_t trans_tx_notification_flag |
Referenced by ble_trans_char_changed_event(), and trans_update_tx_char_value().