51 lines
1.0 KiB
C++
51 lines
1.0 KiB
C++
#ifndef BLUETOOTH_DRIVER_H
|
|
#define BLUETOOTH_DRIVER_H
|
|
|
|
#include "Util/DynamicDevice.h"
|
|
#include "Util/StaticDevice.h"
|
|
#include <HttpClient.h>
|
|
#include <Timer.h>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
|
|
namespace PresenceDetection {
|
|
namespace Bluetooth {
|
|
|
|
class Driver
|
|
{
|
|
public:
|
|
Driver(int timeout, const std::string& inventoryURL, const std::string& target, const std::vector<Util::StaticDevice>& staticDevices);
|
|
~Driver();
|
|
|
|
void Start();
|
|
void Stop();
|
|
void Wait();
|
|
|
|
private:
|
|
void ClearDevices();
|
|
void UpdateDevicesFromInventory();
|
|
void UpdatePresentDevices();
|
|
void SendStateChange(bool present, const std::string& macAddress);
|
|
|
|
private:
|
|
Timer::Timer m_deviceTimer;
|
|
Timer::Timer m_inventoryTimer;
|
|
Http::HttpClient m_httpClient;
|
|
|
|
std::vector<Util::DynamicDevice> m_dynamicDevices;
|
|
|
|
int m_timeout;
|
|
int m_checkInterval;
|
|
std::string m_inventoryURL;
|
|
std::string m_target;
|
|
std::vector<Util::StaticDevice> m_staticDevices;
|
|
|
|
std::vector<std::string> m_presentDevices;
|
|
};
|
|
|
|
} // namespace Bluetooth
|
|
} // namespace PresenceDetection
|
|
|
|
#endif // BLUETOOTH_DRIVER_H
|