fix: яркость DoA эффекта через масштабирование цвета

Для LED_EFFECT=4 (DoA) команда LED_BRIGHTNESS не работает.
Яркость управляется через значения цветов в LED_DOA_COLOR.

Изменения:
- Масштабирование base_color и doa_color по brightness (0-255)
- Формат цвета: 0xBBGGRR (BGR byte order)
- Комментарии на русском согласно .qwen/qwen.md

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
2026-05-20 11:41:06 +03:00
co-authored by Qwen-Coder
parent 19a11aac6e
commit 75ba5481b6
+12 -3
View File
@@ -139,10 +139,19 @@ def set_led_state(state: str, skip_publish=False):
run_xvf_command("LED_BRIGHTNESS", [brightness]) run_xvf_command("LED_BRIGHTNESS", [brightness])
logger.info(f"🟢 Speaking: зелёный ({brightness})") logger.info(f"🟢 Speaking: зелёный ({brightness})")
elif state == "idle": elif state == "idle":
# DoA эффект: яркость управляется через значения цвета, а не LED_BRIGHTNESS
# Масштабируем цвета по яркости (0-255)
base_r = int(0x30 * brightness / 255)
base_g = int(0x30 * brightness / 255)
base_b = int(0x30 * brightness / 255)
doa_r = int(0x00 * brightness / 255)
doa_g = int(0xBC * brightness / 255)
doa_b = int(0xD4 * brightness / 255)
base_color = f"0x{base_b:02X}{base_g:02X}{base_r:02X}"
doa_color = f"0x{doa_b:02X}{doa_g:02X}{doa_r:02X}"
run_xvf_command("LED_EFFECT", [4]) run_xvf_command("LED_EFFECT", [4])
run_xvf_command("LED_DOA_COLOR", ["0x303030", "0x00BCD4"]) run_xvf_command("LED_DOA_COLOR", [base_color, doa_color])
run_xvf_command("LED_BRIGHTNESS", [brightness]) logger.info(f"⚪ Idle: DoA (brightness={brightness}, base={base_color}, doa={doa_color})")
logger.info(f"⚪ Idle: DoA ({brightness})")
elif state == "paused": elif state == "paused":
run_xvf_command("LED_EFFECT", [1]) run_xvf_command("LED_EFFECT", [1])
run_xvf_command("LED_COLOR", ["0x404040"]) run_xvf_command("LED_COLOR", ["0x404040"])