mirror of
https://github.com/1technophile/OpenMQTTGateway.git
synced 2026-03-03 22:14:26 +01:00
* Update arduino core to 3.1.1 * Fix Blufi build * Update arduinojson, fix build errors with idf * Fix narrowing * fix RF builds * WIP-Convert ino files to cpp * Fix pilight build * Fix Somfy actuator build. * Update esp32dev-rf partition * Fix Weatherstation build * Fix GFSunInverter build * Fix esp32dev-ir build * Fix ble-aws build * Fix eth builds * Fix m5Stack missing pins_arduino.h * Fix build errors for M5 stack/tough, others are upstream issues. * Fix RTL 433 build - remaining errors are from radolib * Fix nodemcu build * fix 2g builds * Fix serial build * Fix actuator on off builds * Fix SSD1306 build - remaining errors are from radiolib * Fix multiple definition of OTAserver_cert * Fix nodemcu rf2 build * Fix ADC builds * Fix sensor builds * Fix LORA builds * Fix multi-receiver builds - remaining errors are in radiolib * Fix fastled builds * Fix theegns board builds * Fix broker builds * Update fastled - old version failed all-test build * Fix RN8209 builds * Fix max temp actuator builds * Fix PWM builds * Fix C37 sensor builds * Fix HTU21 builds * Fix INA266 builds * Fix undefined variables in mqtt discovery * Fix webui build * Fix fastled invalid pin error * Fix wifi manual setup builds * Fix onewire/all-test build - bin too big error remaining * Fix theengs plug build * Fix rfbridge builds * Fix blufi builds * Fix undefined functions in serial * Fix preprocessor definition checks * Set IDF log level to erre * Add delay in loop to prevent watchdog timeout * Use xTaskCreateUniveral to support single core processors * Remove old HTTPUpdate files - upsteam fixed. * Cleanup and move common declarations to header file * Use custom partiton table to fix builds where bin is too large * Update M5StickC - fixs esp32-m5stick-c-ble build * Revert to Arduino core 2.x for builds with incompatible libs * Remove "Z" from file names and rename omg_common to TheengsCommon * Fix gateway name when using MAC with new Arduino core * Update IDF config to reduce loop task stack use * Update esp-nimble-cpp version, corrects BLE uppercase ID's * Update wifi manager to fix watchdog timeout error
105 lines
3.1 KiB
C++
105 lines
3.1 KiB
C++
#ifndef zBLEConnect_h
|
|
#define zBLEConnect_h
|
|
|
|
#ifdef ESP32
|
|
# include "NimBLEDevice.h"
|
|
# include "TheengsCommon.h"
|
|
# include "config_BT.h"
|
|
|
|
class zBLEConnect {
|
|
public:
|
|
NimBLEClient* m_pClient;
|
|
TaskHandle_t m_taskHandle = nullptr;
|
|
zBLEConnect(NimBLEAddress& addr) {
|
|
m_pClient = NimBLEDevice::createClient(addr);
|
|
m_pClient->setConnectTimeout(5000);
|
|
}
|
|
virtual ~zBLEConnect() { NimBLEDevice::deleteClient(m_pClient); }
|
|
virtual bool writeData(BLEAction* action);
|
|
virtual bool readData(BLEAction* action);
|
|
virtual bool processActions(std::vector<BLEAction>& actions);
|
|
virtual void publishData() {}
|
|
virtual NimBLERemoteCharacteristic* getCharacteristic(const NimBLEUUID& service, const NimBLEUUID& characteristic);
|
|
};
|
|
|
|
class LYWSD03MMC_connect : public zBLEConnect {
|
|
void notifyCB(NimBLERemoteCharacteristic* pChar, uint8_t* pData, size_t length, bool isNotify);
|
|
|
|
public:
|
|
LYWSD03MMC_connect(NimBLEAddress& addr) : zBLEConnect(addr) {}
|
|
void publishData() override;
|
|
};
|
|
|
|
class DT24_connect : public zBLEConnect {
|
|
std::vector<uint8_t> m_data;
|
|
void notifyCB(NimBLERemoteCharacteristic* pChar, uint8_t* pData, size_t length, bool isNotify);
|
|
|
|
public:
|
|
DT24_connect(NimBLEAddress& addr) : zBLEConnect(addr) {}
|
|
void publishData() override;
|
|
};
|
|
|
|
class BM2_connect : public zBLEConnect {
|
|
//std::vector<uint8_t> m_data;
|
|
void notifyCB(NimBLERemoteCharacteristic* pChar, uint8_t* pData, size_t length, bool isNotify);
|
|
|
|
public:
|
|
BM2_connect(NimBLEAddress& addr) : zBLEConnect(addr) {}
|
|
void publishData() override;
|
|
};
|
|
|
|
class GENERIC_connect : public zBLEConnect {
|
|
std::vector<uint8_t> m_data;
|
|
|
|
public:
|
|
GENERIC_connect(NimBLEAddress& addr) : zBLEConnect(addr) {}
|
|
};
|
|
|
|
class HHCCJCY01HHCC_connect : public zBLEConnect {
|
|
std::vector<uint8_t> m_data;
|
|
void notifyCB(NimBLERemoteCharacteristic* pChar, uint8_t* pData, size_t length, bool isNotify);
|
|
|
|
public:
|
|
HHCCJCY01HHCC_connect(NimBLEAddress& addr) : zBLEConnect(addr) {}
|
|
void publishData() override;
|
|
};
|
|
|
|
class XMWSDJ04MMC_connect : public zBLEConnect {
|
|
std::vector<uint8_t> m_data;
|
|
void notifyCB(NimBLERemoteCharacteristic* pChar, uint8_t* pData, size_t length, bool isNotify);
|
|
|
|
public:
|
|
XMWSDJ04MMC_connect(NimBLEAddress& addr) : zBLEConnect(addr) {}
|
|
void publishData() override;
|
|
};
|
|
|
|
class SBS1_connect : public zBLEConnect {
|
|
uint8_t m_notifyVal;
|
|
void notifyCB(NimBLERemoteCharacteristic* pChar, uint8_t* pData, size_t length, bool isNotify);
|
|
|
|
public:
|
|
SBS1_connect(NimBLEAddress& addr) : zBLEConnect(addr) {}
|
|
bool processActions(std::vector<BLEAction>& actions) override;
|
|
};
|
|
|
|
class SBBT_connect : public zBLEConnect {
|
|
uint8_t m_notifyVal;
|
|
void notifyCB(NimBLERemoteCharacteristic* pChar, uint8_t* pData, size_t length, bool isNotify);
|
|
|
|
public:
|
|
SBBT_connect(NimBLEAddress& addr) : zBLEConnect(addr) {}
|
|
bool processActions(std::vector<BLEAction>& actions) override;
|
|
};
|
|
|
|
class SBCU_connect : public zBLEConnect {
|
|
uint8_t m_notifyVal;
|
|
void notifyCB(NimBLERemoteCharacteristic* pChar, uint8_t* pData, size_t length, bool isNotify);
|
|
|
|
public:
|
|
SBCU_connect(NimBLEAddress& addr) : zBLEConnect(addr) {}
|
|
bool processActions(std::vector<BLEAction>& actions) override;
|
|
};
|
|
|
|
#endif //ESP32
|
|
#endif //zBLEConnect_h
|