129 lines
3.4 KiB
C++
129 lines
3.4 KiB
C++
#include "Bluetooth/Functions.h"
|
|
#include "Logic/Logic.h"
|
|
#include "Util/StaticDevice.h"
|
|
#include "WiFi/Driver.h"
|
|
#include "WiFi/Functions.h"
|
|
#include <INIReader.h>
|
|
#include <algorithm>
|
|
#include <iostream>
|
|
#include <signal.h>
|
|
#include <string>
|
|
|
|
|
|
void print()
|
|
{
|
|
std::cout << "Print" << std::endl;
|
|
}
|
|
|
|
void TestINIReader()
|
|
{
|
|
std::cout << "--------------------------------" << std::endl;
|
|
std::cout << "TestINIReader" << std::endl << std::endl;
|
|
|
|
INIReader reader("PresenceDetection.ini");
|
|
|
|
std::string target = reader.Get("PresenceDetection", "Target", "");
|
|
if (!target.empty())
|
|
std::cout << "Error" << std::endl;
|
|
std::cout << target.size() << " " << target << std::endl;
|
|
|
|
bool wifi = reader.GetBoolean("PresenceDetection", "WiFi", false);
|
|
if (wifi)
|
|
std::cout << "WiFi On" << std::endl;
|
|
else
|
|
std::cout << "WiFi Off" << std::endl;
|
|
|
|
bool test = reader.GetBoolean("PresenceDetection", "Test", false);
|
|
if (test)
|
|
std::cout << "Test On" << std::endl;
|
|
else
|
|
std::cout << "Test Off" << std::endl;
|
|
|
|
std::cout << "--------------------------------" << std::endl << std::endl;
|
|
}
|
|
|
|
void TestLogic()
|
|
{
|
|
std::cout << "--------------------------------" << std::endl;
|
|
std::cout << "TestLogic" << std::endl << std::endl;
|
|
|
|
PresenceDetection::Logic::Logic logic("http://DomoticaPi:8080/api/inventory/WirelessDevice");
|
|
|
|
logic.LoadDevicesFromConfiguration();
|
|
logic.UpdateDevicesFromInventory();
|
|
|
|
logic.DumpDevices();
|
|
|
|
std::cout << "--------------------------------" << std::endl << std::endl;
|
|
}
|
|
|
|
void TestPing()
|
|
{
|
|
std::cout << "--------------------------------" << std::endl;
|
|
std::cout << "TestPing" << std::endl << std::endl;
|
|
|
|
bool wifi = PresenceDetection::WiFi::Functions::Ping("192.168.1.174");
|
|
if (wifi)
|
|
std::cout << "192.168.1.174 Online" << std::endl;
|
|
else
|
|
std::cout << "192.168.1.174 Offline" << std::endl;
|
|
|
|
bool bluetooth = PresenceDetection::Bluetooth::Functions::Ping("64:C7:53:77:2A:32");
|
|
if (bluetooth)
|
|
std::cout << "64:C7:53:77:2A:32 Online" << std::endl;
|
|
else
|
|
std::cout << "64:C7:53:77:2A:32 Offline" << std::endl;
|
|
|
|
bluetooth = PresenceDetection::Bluetooth::Functions::Ping("C8:BC:C8:22:94:68");
|
|
if (bluetooth)
|
|
std::cout << "C8:BC:C8:22:94:68 Online" << std::endl;
|
|
else
|
|
std::cout << "C8:BC:C8:22:94:68 Offline" << std::endl;
|
|
|
|
bluetooth = PresenceDetection::Bluetooth::Functions::Ping("E8:9E:B4:25:E1:E8");
|
|
if (bluetooth)
|
|
std::cout << "E8:9E:B4:25:E1:E8 Online" << std::endl;
|
|
else
|
|
std::cout << "E8:9E:B4:25:E1:E8 Offline" << std::endl;
|
|
|
|
std::cout << "--------------------------------" << std::endl << std::endl;
|
|
}
|
|
|
|
void TestUniFi()
|
|
{
|
|
std::shared_ptr<PresenceDetection::WiFi::Driver> pWiFiDriver;
|
|
|
|
std::string hostname = "UniFi-Controller";
|
|
int port = 8443;
|
|
std::string username = "admin";
|
|
std::string password = "Wh1sK3y196909";
|
|
std::string cookiefile = "UniFi_Cookies";
|
|
int timeout = 60;
|
|
std::string inventoryURL = "http://DomoticaPi:8080/api/inventory/WirelessDevice";
|
|
std::string target = "";
|
|
std::vector<PresenceDetection::Util::StaticDevice> staticDevices;
|
|
|
|
pWiFiDriver = std::make_shared<PresenceDetection::WiFi::Driver>(hostname, port, username, password, cookiefile, timeout, inventoryURL, target, staticDevices);
|
|
|
|
sigset_t wset;
|
|
sigemptyset(&wset);
|
|
sigaddset(&wset,SIGHUP);
|
|
sigaddset(&wset,SIGINT);
|
|
sigaddset(&wset,SIGTERM);
|
|
int sig;
|
|
sigwait(&wset,&sig);
|
|
|
|
pWiFiDriver->Stop();
|
|
pWiFiDriver->Wait();
|
|
}
|
|
|
|
int main(int /*argc*/, char** /*argv[]*/)
|
|
{
|
|
//TestINIReader();
|
|
//TestLogic();
|
|
//TestPing();
|
|
TestUniFi();
|
|
|
|
return 0;
|
|
}
|