Rdzleo 93f0e19d1d 初始化项目:精灵吊坠 RTC 语音助手 + VEML7700 石头同频匹配
ESP32-S3 吊坠设备固件,集成火山引擎 RTC 语音助手、蓝牙配网、
VEML7700 环境光传感器驱动及石头同频匹配交友功能。

VEML7700 驱动:
- 基于 ESP-IDF i2c_master API 实现,复用项目 I2cDevice 基类
- 支持 ALS + White 双通道、自动量程、Vishay 非线性校正
- 3 次采样取中位数过滤偶发异常

石头同频匹配算法(双维度):
- 维度1:光谱比值 ALS/White(石头固有光学特征,不随光照强度变化)
- 维度2:亮度等级(5级对数划分,排除极端环境差异)
- 比值阈值 15%,实测同石头姿势变化波动 1.6%~9.6%,安全余量充足

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 11:43:57 +08:00

47 lines
1.2 KiB
C++

#ifndef DISPLAY_H
#define DISPLAY_H
#include <esp_timer.h>
#include <esp_log.h>
#include <esp_pm.h>
#include <string>
// 前向声明或空类型定义
struct lv_font_t {};
struct DisplayFonts {
const lv_font_t* text_font = nullptr;
const lv_font_t* icon_font = nullptr;
const lv_font_t* emoji_font = nullptr;
};
class Display {
public:
Display() : width_(0), height_(0) {}
virtual ~Display() {}
virtual void SetStatus(const char* status) {}
virtual void ShowNotification(const char* notification, int duration_ms = 3000) {}
virtual void ShowNotification(const std::string &notification, int duration_ms = 3000) {}
virtual void SetEmotion(const char* emotion) {}
virtual void SetChatMessage(const char* role, const char* content) {}
virtual void SetIcon(const char* icon) {}
virtual void SetTheme(const std::string& theme_name) {}
virtual std::string GetTheme() { return current_theme_name_; }
inline int width() const { return width_; }
inline int height() const { return height_; }
virtual bool Lock(int timeout_ms = 0) { return true; }
virtual void Unlock() {}
virtual void Update() {}
protected:
int width_;
int height_;
std::string current_theme_name_;
};
#endif // DISPLAY_H