Bluenet  5.7.0
Bluenet, firmware for nRF52 smart home devices
Loading...
Searching...
No Matches
cs_MeshAdvertiser.h
Go to the documentation of this file.
1
8#pragma once
9
10#include <ble/cs_iBeacon.h>
11#include <common/cs_Types.h>
13
14extern "C" {
15#include <advertiser.h>
16}
17
24#define MESH_ADVERTISER_BUF_SIZE (ADVERTISER_PACKET_BUFFER_PACKET_MAXLEN + 4)
25
27public:
28 void init();
29
33 void setMacAddress(uint8_t* address);
34
38 void setInterval(uint32_t intervalMs);
39
43 void setTxPower(int8_t power);
44
48 void start();
49
53 void stop();
54
58 void advertiseIbeacon(uint8_t ibeaconIndex);
59
61 void handleEvent(event_t& event);
62
63private:
64 static const uint8_t num_ibeacon_config_ids = 2;
65 advertiser_t* _advertiser = NULL;
66 uint8_t* _buffer = NULL;
67 adv_packet_t* _advPacket = NULL;
68 uint8_t _ibeaconConfigId = 0;
69
70 // Cache of what's in flash.
72
73 // Cache of previous time update.
74 uint32_t _lastTimestamp = 0;
75
77
83 void advertise(IBeacon* ibeacon);
84
86
87 void handleTime(uint32_t now);
88
89 void setConfigEntry(uint8_t id, ibeacon_config_id_packet_t& config);
90 void clearConfigEntry(uint8_t id);
91};
Event listener.
Definition: cs_EventListener.h:17
Implementation of the iBeacon specification.
Definition: cs_iBeacon.h:34
Definition: cs_MeshAdvertiser.h:26
void setMacAddress(uint8_t *address)
Set the advertised MAC address.
void advertise(IBeacon *ibeacon)
Advertise iBeacon data.
static const uint8_t num_ibeacon_config_ids
Definition: cs_MeshAdvertiser.h:64
ibeacon_config_id_packet_t _ibeaconInterval[num_ibeacon_config_ids]
Definition: cs_MeshAdvertiser.h:71
void setTxPower(int8_t power)
Set the TX power.
adv_packet_t * _advPacket
Definition: cs_MeshAdvertiser.h:67
void start()
Start advertising.
void handleTime(uint32_t now)
void clearConfigEntry(uint8_t id)
void setConfigEntry(uint8_t id, ibeacon_config_id_packet_t &config)
void updateIbeacon()
uint8_t * _buffer
Definition: cs_MeshAdvertiser.h:66
uint32_t _lastTimestamp
Definition: cs_MeshAdvertiser.h:74
advertiser_t * _advertiser
Definition: cs_MeshAdvertiser.h:65
void handleEvent(event_t &event)
Internal usage.
void stop()
Stop advertising.
void setInterval(uint32_t intervalMs)
Set the advertisement interval.
cs_ret_code_t handleSetIbeaconConfig(set_ibeacon_config_id_packet_t *packet)
void advertiseIbeacon(uint8_t ibeaconIndex)
Start advertising ibeacon.
uint8_t _ibeaconConfigId
Definition: cs_MeshAdvertiser.h:68
Author: Crownstone Team Copyright: Crownstone (https://crownstone.rocks) Date: Oct 9,...
Definition: cs_Event.h:26
uint16_t cs_ret_code_t
Definition: cs_Typedefs.h:21
Universally Unique IDentifiers for BLE services and characteristics.
Packet to change ibeacon config ID.
Definition: cs_Packets.h:314
Definition: cs_Packets.h:320