blaklight.cc 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include "iot/thing.h"
  2. #include "board.h"
  3. #include "display/lcd_display.h"
  4. #include "settings.h"
  5. #include <esp_log.h>
  6. #define TAG "Backlight"
  7. namespace iot {
  8. // 这里仅定义 Backlight 的属性和方法,不包含具体的实现
  9. class Backlight : public Thing {
  10. public:
  11. Backlight() : Thing("Backlight", "屏幕背光") {
  12. // 定义设备的属性
  13. properties_.AddNumberProperty("brightness", "当前亮度百分比", [this]() -> int {
  14. // 这里可以添加获取当前亮度的逻辑
  15. auto backlight = Board::GetInstance().GetBacklight();
  16. return backlight ? backlight->brightness() : 0;
  17. });
  18. // 定义设备可以被远程执行的指令
  19. methods_.AddMethod("SetBrightness", "设置亮度", ParameterList({
  20. Parameter("brightness", "0到100之间的整数", kValueTypeNumber, true)
  21. }), [this](const ParameterList& parameters) {
  22. uint8_t brightness = static_cast<uint8_t>(parameters["brightness"].number());
  23. auto backlight = Board::GetInstance().GetBacklight();
  24. if (backlight) {
  25. backlight->SetBrightness(brightness, true);
  26. }
  27. });
  28. }
  29. };
  30. } // namespace iot
  31. DECLARE_THING(Backlight);