Files
Blinds_XIAO/include/BLE.hpp

39 lines
1018 B
C++
Raw Permalink Normal View History

2025-11-28 18:26:32 -06:00
#ifndef BLE_H
#define BLE_H
#include "NimBLEDevice.h"
2025-12-17 21:52:00 -06:00
#include "cJSON.h"
#include <atomic>
#include <string>
#include "esp_wifi_types.h"
2025-11-28 18:26:32 -06:00
// Global pointers to characteristics for notification support
extern std::atomic<NimBLECharacteristic*> ssidListChar;
extern std::atomic<NimBLECharacteristic*> ssidRefreshChar;
2025-12-18 22:19:54 -06:00
extern std::atomic<bool> isBLEClientConnected;
2025-11-28 18:26:32 -06:00
class MyServerCallbacks : public NimBLEServerCallbacks {
void onConnect(NimBLEServer* pServer, NimBLEConnInfo& connInfo);
void onDisconnect(NimBLEServer* pServer, NimBLEConnInfo& connInfo, int reason);
2025-11-28 18:26:32 -06:00
};
class MyCharCallbacks : public NimBLECharacteristicCallbacks {
void onRead(NimBLECharacteristic* pChar, NimBLEConnInfo& connInfo);
2025-12-17 21:52:00 -06:00
void onWrite(NimBLECharacteristic* pChar, NimBLEConnInfo& connInfo);
2025-11-28 18:26:32 -06:00
};
NimBLEAdvertising* initBLE();
2026-01-10 02:45:26 -06:00
void BLE_manager_task(void *pvParameters);
// Event Types
typedef enum {
EVENT_SCAN_REQUESTED,
EVENT_TOKEN_GIVEN,
EVENT_CREDS_GIVEN,
EVENT_SHUTDOWN
} BLE_event_type_t;
bool tokenCheck();
2025-11-28 18:26:32 -06:00
#endif