34 lines
1.9 KiB
C++
34 lines
1.9 KiB
C++
#pragma once
|
||
|
||
#include <QString>
|
||
#include <QList>
|
||
|
||
// Реквизиты подключения устройства по Wi-Fi. Связь с устройством — по android_id
|
||
// (= devices.id), т.е. одна запись на физический аппарат, независимо от транспорта.
|
||
struct WifiConnection {
|
||
QString androidId; // = devices.id
|
||
QString ip; // последний известный IP телефона в Wi-Fi
|
||
int port = 0; // порт для adb connect (5555 для legacy tcpip)
|
||
QString code; // одноразовый pairing-код (пусто для legacy tcpip)
|
||
QString mac; // нормализованный MAC wlan0 — для поиска нового IP по ARP при смене DHCP
|
||
QString updatedAt; // ISO-время последнего обновления
|
||
};
|
||
|
||
// DAO таблицы wifi_connections. Задел под будущий авто-реконнект по Wi-Fi:
|
||
// хранит ip/port/code per-device, чтобы переподключать устройство без повторного
|
||
// поиска. В текущей итерации — только хранилище (воркер реконнекта отложен).
|
||
class WifiConnectionDAO {
|
||
public:
|
||
// Вставка/обновление по android_id (PRIMARY KEY).
|
||
static bool upsert(const QString &androidId, const QString &ip, int port,
|
||
const QString &code = {}, const QString &mac = {});
|
||
|
||
// Запись по android_id (пустой androidId в результате → не найдено).
|
||
[[nodiscard]] static WifiConnection getByAndroidId(const QString &androidId);
|
||
|
||
// Все сохранённые реквизиты.
|
||
[[nodiscard]] static QList<WifiConnection> getAll();
|
||
|
||
static bool remove(const QString &androidId);
|
||
};
|