макрос регулировки яркости

Работа с панелями оператора Weintek - подключение, программирование, совмещение с ПЛК

Модераторы: kiv, 8bit, VanMo

макрос регулировки яркости

Сообщение vnloginov » 14 сен 2017, 20:27

Доброго дня!

Помогите написать правильно макросы на уменьшение и увеличение яркости RGB

сейчас такой макрос:

Код: Выделить всё
macro_command main()

short a, b, c, d, e, f

GetData(a, "Arduino", 4x, 2#1, 1)// читаем текущее значение
GetData(b, "Arduino", 4x, 2#2, 1)
GetData(c, "Arduino", 4x, 2#3, 1)

d = a - 15
e = b - 15
f = c - 15

SetData(d, "Arduino", 4x, 2#1, 1)
SetData(e, "Arduino", 4x, 2#2, 1)
SetData(f, "Arduino", 4x, 2#3, 1)

end macro_command


работает НО! если например цвет стоит зеленый т.е. значения GetData a, b, c, такие: 255, 0, 0.
то при отрабатывании макроса получается: 240, -15, -15. и т.д. т.е. цвет начинает меняться....

как сделать что бы:
1. задать определенный диапазон от 0 до 255 и что бы макрос за эти рамки значения не подставлял.
2. как сделать если значения равны 0 то их не уменьшать (наверное если решится первый пункт, то и 2й отпадает)
vnloginov
 
Сообщения: 57
Зарегистрирован: 30 июл 2013, 20:06

Re: макрос регулировки яркости

Сообщение xenonci » 15 сен 2017, 20:55

macro_command main()

short a, b, c, d, e, f

GetData(a, "Arduino", 4x, 2#1, 1)// читаем текущее значение
GetData(b, "Arduino", 4x, 2#2, 1)
GetData(c, "Arduino", 4x, 2#3, 1)

d = a - 15
if d<0 then
d=0
end if
if d>255 then
d=255
end if
// и так для всех 3 переменных d,e и f
e = b - 15
f = c - 15

SetData(d, "Arduino", 4x, 2#1, 1)
SetData(e, "Arduino", 4x, 2#2, 1)
SetData(f, "Arduino", 4x, 2#3, 1)

end macro_command
xenonci
 
Сообщения: 85
Зарегистрирован: 16 авг 2016, 17:05


Вернуться в Weintek

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 18

cron