41 lines
1.3 KiB
C
41 lines
1.3 KiB
C
|
#pragma once
|
||
|
|
||
|
#include "esphome/core/component.h"
|
||
|
#include "queue.h"
|
||
|
#include "NimBLEDevice.h"
|
||
|
#include "NimBLEAdvertisedDevice.h"
|
||
|
#include "nimble_device_listener.h"
|
||
|
#include "nimble_tracker_event.h"
|
||
|
|
||
|
namespace esphome
|
||
|
{
|
||
|
namespace nimble_tracker
|
||
|
{
|
||
|
class NimbleTracker : public Component
|
||
|
{
|
||
|
|
||
|
public:
|
||
|
void set_scan_duration(uint32_t scan_duration) { scan_duration_ = scan_duration; }
|
||
|
void set_scan_interval(uint32_t scan_interval) { scan_interval_ = scan_interval; }
|
||
|
void set_scan_window(uint32_t scan_window) { scan_window_ = scan_window; }
|
||
|
void set_scan_active(bool scan_active) { scan_active_ = scan_active; }
|
||
|
void set_scan_continuous(bool scan_continuous) { scan_continuous_ = scan_continuous; }
|
||
|
Queue<NimbleTrackerEvent> tracker_events_;
|
||
|
|
||
|
void setup() override;
|
||
|
void loop() override;
|
||
|
|
||
|
void register_listener(NimbleDeviceListener *listener) { listeners_.push_back(listener); }
|
||
|
|
||
|
protected:
|
||
|
uint32_t scan_duration_;
|
||
|
uint32_t scan_interval_;
|
||
|
uint32_t scan_window_;
|
||
|
bool scan_active_;
|
||
|
bool scan_continuous_;
|
||
|
NimBLEScan *pBLEScan_;
|
||
|
std::vector<NimbleDeviceListener *> listeners_;
|
||
|
};
|
||
|
} // namespace esp32_ble_tracker
|
||
|
|
||
|
} // namespace esphome
|