20 #include "app_error.h"
23 #define APP_DEVICE_TYPE 0x02
35 ble_gap_adv_params_t adv_params;
43 static uint8_t adv_pdu[31];
44 uint8_t manuf_data_len_start_idx, beacon_data_len_start_idx;
48 adv_pdu[offset++] = 0x00;
49 manuf_data_len_start_idx = offset;
50 adv_pdu[offset++] = BLE_GAP_AD_TYPE_MANUFACTURER_SPECIFIC_DATA;
51 offset += uint16_encode(
m_beacon.init_vals.manuf_id, &adv_pdu[offset]);
55 adv_pdu[offset++] = 0;
56 beacon_data_len_start_idx = offset;
57 memcpy(&adv_pdu[offset], &
m_beacon.init_vals.uuid,
sizeof(ble_uuid128_t));
58 offset +=
sizeof(ble_uuid128_t);
59 offset += uint16_encode(
m_beacon.init_vals.major, &adv_pdu[offset]);
60 offset += uint16_encode(
m_beacon.init_vals.minor, &adv_pdu[offset]);
61 adv_pdu[offset++] =
m_beacon.init_vals.rssi;
64 adv_pdu[beacon_data_len_start_idx-1] = offset - beacon_data_len_start_idx;
65 adv_pdu[manuf_data_len_start_idx-1] = offset - manuf_data_len_start_idx;
77 memset(&
m_beacon.adv_params, 0,
sizeof(ble_gap_adv_params_t));
79 m_beacon.adv_params.type=BLE_GAP_ADV_TYPE_ADV_NONCONN_IND;
81 err_code=sd_ble_gap_adv_data_set(
m_get_adv_data(&data_length), data_length, 0, 0);
82 APP_ERROR_CHECK(err_code);
88 err_code=sd_ble_gap_adv_start(&
m_beacon.adv_params);
89 APP_ERROR_CHECK(err_code);
95 err_code=sd_ble_gap_adv_stop();
96 APP_ERROR_CHECK(err_code);
void app_beacon_init(ble_beacon_init_t *p_init)
Function for initializing the advertiser module.
static uint8_t * m_get_adv_data(uint8_t *data_length)
Initialize adv packet.
Advertiser module. This module shows an example of using periodic timeslots on the radio when the Sof...
void app_beacon_stop(void)
Function for stopping the advertisement.
static struct @2 m_beacon
Struct containing all variables of this module.
void app_beacon_start(void)
Function for starting the advertisement.