1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #ifndef BOARD_H
- #define BOARD_H
- #include <http.h>
- #include <web_socket.h>
- #include <mqtt.h>
- #include <udp.h>
- #include <string>
- #include <network_interface.h>
- #include "led/led.h"
- #include "backlight.h"
- #include "camera.h"
- void* create_board();
- class AudioCodec;
- class Display;
- class Board {
- private:
- Board(const Board&) = delete; // 禁用拷贝构造函数
- Board& operator=(const Board&) = delete; // 禁用赋值操作
- protected:
- Board();
- std::string GenerateUuid();
- // 软件生成的设备唯一标识
- std::string uuid_;
- public:
- static Board& GetInstance() {
- static Board* instance = static_cast<Board*>(create_board());
- return *instance;
- }
- virtual ~Board() = default;
- virtual std::string GetBoardType() = 0;
- virtual std::string GetUuid() { return uuid_; }
- virtual Backlight* GetBacklight() { return nullptr; }
- virtual Led* GetLed();
- virtual AudioCodec* GetAudioCodec() = 0;
- virtual bool GetTemperature(float& esp32temp);
- virtual Display* GetDisplay();
- virtual Camera* GetCamera();
- virtual NetworkInterface* GetNetwork() = 0;
- virtual void StartNetwork() = 0;
- virtual const char* GetNetworkStateIcon() = 0;
- virtual bool GetBatteryLevel(int &level, bool& charging, bool& discharging);
- virtual std::string GetJson();
- virtual void SetPowerSaveMode(bool enabled) = 0;
- virtual std::string GetBoardJson() = 0;
- virtual std::string GetDeviceStatusJson() = 0;
- virtual void postAlive();
- bool internetConnet=0;
- };
- #define DECLARE_BOARD(BOARD_CLASS_NAME) \
- void* create_board() { \
- return new BOARD_CLASS_NAME(); \
- }
- #endif // BOARD_H
|