This commit is contained in:
2023-12-03 22:19:57 +03:00
parent 121ca8f453
commit bc6f6402eb
22 changed files with 286 additions and 10 deletions

View File

@@ -19,9 +19,9 @@ namespace esphome
}
}
void NimbleDeviceListener::set_address(std::string address) {
void NimbleDeviceListener::set_addresses(std::vector<std::string> addresses) {
this->match_by_ = MATCH_BY_ADDRESS;
this->address_ = address;
this->addresses_ = addresses;
}
bool NimbleDeviceListener::parse_event(NimbleTrackerEvent *tracker_event)
@@ -51,7 +51,9 @@ namespace esphome
ESP_LOGD(TAG, "Found device %s", tracker_event->toString().c_str());
auto address = tracker_event->getAddress().toString();
if (this->address_ == address) {
auto &v = this->addresses_;
if(std::find(v.begin(), v.end(), address) != v.end()) {
return this->update_state(tracker_event);
} else {
return false;

View File

@@ -14,7 +14,7 @@ namespace esphome
public:
bool parse_event(NimbleTrackerEvent *tracker_event);
void set_irk(std::string irk_hex);
void set_address(std::string address);
void set_addresses(std::vector<std::string>);
protected:
virtual bool update_state(NimbleTrackerEvent *tracker_event) = 0;
@@ -27,7 +27,7 @@ namespace esphome
MatchType match_by_;
uint8_t *irk_;
std::string address_;
std::vector<std::string> addresses_;
};
} // namespace nimble_tracker