Lua скрипт для управления освещением P C RGB - PullRequest
0 голосов
/ 01 августа 2020

У меня материнская плата MSI (B450 Tomahawk Max), и я, вместе с несколькими другими людьми, абсолютно ненавижу программный пакет MSI, потому что он делает все, а не выполняет ту работу, для которой предназначен.

Я хотел управлять светодиодами RGB, присутствующими на моей материнской плате, избегая при этом программного обеспечения MSI, поэтому я загрузил MSIRGB с github, который использует lua скрипты для управления шаблоном «анимации» светодиодного освещения.

Дело в том, что у меня нет Угадайте, как работать с lua, и работа заставляет меня быть занятым. Приведенный ниже сценарий представляет собой связанный сценарий, который плавно переключается между всеми цветами.

-- Adapted from nagisa/msi-rgb's Hue Wheel effect

-- Variables
local saturation = 0.933
local value = 1.0

local delay = 80 -- delay between each colour update, in milliseconds
local colour_step = 1.1

--
Lighting.SetStepDuration(511)
Lighting.SetFlashingSpeed(0)
Lighting.SetBreathingModeEnabled(false)

local i = 0
while true do
    local r, g, b = Lighting.ColourUtils.HSVtoRGB((i % 98.0) / 98.0, saturation, value)

    r = tonumber(("%x"):format(r * 15), 16)
    g = tonumber(("%x"):format(g * 15), 16)
    b = tonumber(("%x"):format(b * 15), 16)

    Lighting.BatchBegin()
    for i = 1, 8 do
        Lighting.SetColour(i, r, g, b)
    end
    Lighting.BatchEnd()

    os.sleep(delay)

    i = i + colour_step
end

Мой запрос представляет собой аналогичный сценарий, который только циклически переключает цвета, сделанные из красного и синего, поскольку зеленые светодиоды не работают и Я не могу отправить свою материнскую плату для RMA из-за блокировки в моей стране.

Я знаю, что это веб-сайт для устранения сомнений / рекомендаций, а не запрос, но я буду очень признателен за любую помощь.

Большое спасибо.

1 Ответ

0 голосов
/ 01 августа 2020

Замените

local r, g, b = Lighting.ColourUtils.HSVtoRGB((i % 98.0) / 98.0, saturation, value)

на

local j = i % 64
j = math.min(j, 64 - j)
local r, g, b = 1 - math.min(16, j)/16, 1, 1 - math.min(16, 32 - j)/16
...