Microchip® Advanced Software Framework

battery_app.c File Reference

BLE Battery Service Application Implementations.

Copyright (c) 2020-2021 Microchip Technology Inc. and its subsidiaries.

#include "battery_app.h"
#include "ble_manager.h"
#include "battery.h"
#include "common/include/nm_common.h"
#include <asf.h>
#include "console.h"
#include "driver/include/m2m_wifi.h"
#include "driver/include/m2m_periph.h"
#include "m2m_ble.h"
#include "at_ble_api.h"
#include "wifi_prov.h"

Macros

#define ADV_DATA_LEN   (18)
 ADV_DATA_LEN. More...
 
#define ADV_TYPE_LEN   (0x01)
 ADV_TYPE_LEN. More...
 
#define APP_BAS_ADV_TIMEOUT   (1000)
 APP_BAS_ADV_TIMEOUT Advertising time-out between 0x0001 and 0x3FFF in seconds, 0x0000 disables time-out. More...
 
#define APP_BAS_FAST_ADV   (100)
 
#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_WIFI_PROV_DISPLAY_NAME   ("3400 DEMO")
 
#define BAS_ADV_DATA_NAME_DATA   ("MCHP-BAS")
 
#define BAS_ADV_DATA_NAME_LEN   (9)
 BAS_ADV_DATA_NAME_LEN the length of the device name. More...
 
#define BAS_ADV_DATA_NAME_TYPE   (0x09)
 BAS_ADV_DATA_NAME_TYPE the gap ad data type. More...
 
#define BAS_ADV_DATA_UUID_LEN   (2)
 BAS_ADV_DATA_UUID_LEN the size of BAS service uuid. More...
 
#define BAS_ADV_DATA_UUID_TYPE   (0x03)
 BAS_ADV_DATA_UUID_TYPE the total sizeof BAS service uuid. More...
 
#define BATTERY_MAX_LEVEL   (100)
 
#define BATTERY_UPDATE_INTERVAL   (188)
 
#define HEX2ASCII(x)   (((x)>=10)? (((x)-10)+'A') : ((x)+'0'))
 
#define SCAN_RESP_LEN   (10)
 scan_resp_len is the length of the scan response data More...
 
#define STRING_HEADER
 

Functions

static
at_ble_event_parameter_t
gu8BleParam 
__aligned (4)
 
static void app_ble_battery (void)
 
static void app_ble_wifi_provisioning (void)
 
static void app_button_press_callback (uint8 btn, uint8 press)
 
static void app_main (void)
 
static void app_wifi_handle_event (uint8 u8MsgType, void *pvMsg)
 
static void app_wifi_init (tpfAppWifiCb wifi_cb_func)
 
static void ble_bat_handle_disconnect_event (at_ble_handle_t conn_handle)
 
static void ble_bat_handle_paired_event (at_ble_handle_t conn_handle)
 
static void ble_bat_handle_timer_event (void)
 
void ble_bat_init (void)
 
static void ble_bat_process (void)
 
void ble_bat_process_event (at_ble_events_t event, at_ble_event_parameter_t *params)
 
static void ble_bat_profile_init (void)
 
static at_ble_status_t ble_bat_start_advertise (void)
 
static void led_init (void)
 
int main (void)
 
uint32 nmi_inet_addr (char *pcIpAddr)
 

Variables

static gatt_service_handler_t bas_service_handler
 
static uint8_t battery_level
 
static volatile uint8 gu8BtnEvent
 
static uint8 gu8ScanIndex
 
static volatile uint8 gu8WiFiConnectionState = M2M_WIFI_UNDEF
 
static uint8_t led_toggle
 
static const uint8_t SCAN_RESP_DATA [SCAN_RESP_LEN] = {0x09,0xff, 0x00, 0x06, 0xd6, 0xb2, 0xf0, 0x05, 0xf0, 0xf8}
 
bool volatile timer_cb_done
 

#define ADV_DATA_LEN   (18)

ADV_DATA_LEN.

#define ADV_TYPE_LEN   (0x01)

ADV_TYPE_LEN.

Referenced by ble_bat_start_advertise().

#define APP_BAS_ADV_TIMEOUT   (1000)

APP_BAS_ADV_TIMEOUT Advertising time-out between 0x0001 and 0x3FFF in seconds, 0x0000 disables time-out.

Referenced by ble_bat_start_advertise().

#define APP_BAS_FAST_ADV   (100)

Referenced by ble_bat_start_advertise().

#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_WIFI_PROV_DISPLAY_NAME   ("3400 DEMO")
#define BAS_ADV_DATA_NAME_DATA   ("MCHP-BAS")

Referenced by ble_bat_start_advertise().

#define BAS_ADV_DATA_NAME_LEN   (9)

BAS_ADV_DATA_NAME_LEN the length of the device name.

Referenced by ble_bat_start_advertise().

#define BAS_ADV_DATA_NAME_TYPE   (0x09)

BAS_ADV_DATA_NAME_TYPE the gap ad data type.

Referenced by ble_bat_start_advertise().

#define BAS_ADV_DATA_UUID_LEN   (2)

BAS_ADV_DATA_UUID_LEN the size of BAS service uuid.

Referenced by ble_bat_start_advertise().

#define BAS_ADV_DATA_UUID_TYPE   (0x03)

BAS_ADV_DATA_UUID_TYPE the total sizeof BAS service uuid.

Referenced by ble_bat_start_advertise().

#define BATTERY_MAX_LEVEL   (100)
#define BATTERY_UPDATE_INTERVAL   (188)
#define HEX2ASCII (   x)    (((x)>=10)? (((x)-10)+'A') : ((x)+'0'))

Referenced by app_wifi_init().

#define SCAN_RESP_LEN   (10)

scan_resp_len is the length of the scan response data

Referenced by ble_bat_start_advertise().

#define STRING_HEADER
Value:
"-- Wifi BLE Provisioning demo with Battery--\r\n" \
"-- "BOARD_NAME" --\r\n" \
"-- Compiled: "__DATE__" "__TIME__" --\r\n"
#define BOARD_NAME
Name string macro.
Definition: samd21_xplained_pro.h:65

Referenced by main().

static at_ble_event_parameter_t gu8BleParam __aligned ( )
static
static void app_ble_battery ( void  )
static
static void app_button_press_callback ( uint8  btn,
uint8  press 
)
static
static void ble_bat_handle_disconnect_event ( at_ble_handle_t  conn_handle)
static
static void ble_bat_handle_paired_event ( at_ble_handle_t  conn_handle)
static
static void ble_bat_handle_timer_event ( void  )
static
void ble_bat_init ( void  )
static void ble_bat_process ( void  )
static
void ble_bat_process_event ( at_ble_events_t  event,
at_ble_event_parameter_t params 
)
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).
Parameters
[in]pcIpAddrA null terminated string containing the IP address in IPv4 dotted-decimal address.
Returns
Unsigned 32-bit integer representing the IP address in Network byte order (eg. "192.168.10.1" will be expressed as 0x010AA8C0).

gatt_service_handler_t bas_service_handler
static
uint8_t battery_level
static
volatile uint8 gu8BtnEvent
static
uint8 gu8ScanIndex
static

Referenced by app_wifi_handle_event().

volatile uint8 gu8WiFiConnectionState = M2M_WIFI_UNDEF
static
uint8_t led_toggle
static
const uint8_t SCAN_RESP_DATA[SCAN_RESP_LEN] = {0x09,0xff, 0x00, 0x06, 0xd6, 0xb2, 0xf0, 0x05, 0xf0, 0xf8}
static

Referenced by ble_bat_start_advertise().