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:
+12
-3
@@ -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"])
|
||||||
|
|||||||
Reference in New Issue
Block a user