Сценарии пользователей
-
const roulette = Device( "Roulette"); const actor = Device( "Аctor"); startOnChange ([roulette]); script({ start() { let newvalue = 100-(roulette.value-20)*100/85; actor.setValue(newvalue); } });
Что то не так я делаю
-
Актуатор в устройствах создали?
Он же не может быть просто actor, он actorаХХ (с цифрой на конце).
Вы же конкретному значение присваиваете.И что такое "roulette"?
У вас есть датчик. Он в "устройствах" как назван? Его ID?
И "актуатор универсальный аналоговый" в устройствах же создайте, и в скрипте используйте его ID.Если вы мультисценарий создаете, первым делом типы устройств указываются. Нет такого типа - "Roulette"
-
Да создал и назвал его actor
Roulette это датчик расстояния, в устройствах он так и назван
Не мульти сценарий
-
А что отладчик говорит?
-
@dre12007, вы уточните как у вас данные от датчика попадают на сервер? Какой плагин используется? Есть несколько вариантов, поэтому надо понять как лучше сделать. А так - входных данных никаких, но вы помогите...
-
Плагин мега
Датчик опрашивается каждые 15 секунд
Отладчик молчит
-
Пользователь @dre12007 написал в Сценарии пользователей:
Плагин мега
Датчик опрашивается каждые 15 секунд
Отладчик молчитзначит скрипт не запускается даже.
Изменения значения то есть у датчика?
-
Да вроде есть
Ну данные то после опроса точно приходят
-
@dre12007, ну если MegaD. То тут есть два более легких варианта:
1.Открываем свойства канала, переходим на вкладку "Обработка" и в поле "Формула расчета входного значения" вписываем100 - (Number(value) - 20)*100/85
2.То же, но на вкладке "Канал" включаем чек-боксом "Использовать функцию обработки при получении данных", а в ней вписываем:
function (val) { var result = ( 100 - (val - 20) *100/85 ).toFixed(2); return result; //Возвращаем значение }
Таким образом, входные данные с датчика сразу "скорректируются" и у устройства будет отображаться нужное значение.
-
@dre12007, с виду скрипт рабочий. Вы точно правильно внесли ID устройств в скрипт? И ваш "Actor" - это точно актуатор универсальный аналоговый? А "Roulette" - датчик аналоговый универсальный?
Данные смотрите через плагин или на мнемосхеме?
-
Actor ДАТЧИК универсальный аналоговый
ID правильный
Рулет тоже датчик универсальный аналоговый
-
Пользователь @Alex_Jet написал в Сценарии пользователей:
@dre12007, ну если MegaD. То тут есть два более легких варианта:
- Открываем свойства канала, переходим на вкладку "Обработка" и в поле "Формула расчета входного значения" вписываем
100 - (Number(value) - 20)*100/85
- То же, но на вкладке "Канал" включаем чек-боксом "Использовать функцию обработки при получении данных", а в ней вписываем:
function (val) { var result = ( 100 - (val - 20) *100/85 ).toFixed(2); return result; //Возвращаем значение }
Таким образом, входные данные с датчика сразу "скорректируются" и у устройства будет отображаться нужное значение.
А этот способ если сделать то не нужен actor получается?
Просто рулет в виджет добавляю и он рисует нужный процент ?
-
Пользователь @dre12007 написал в Сценарии пользователей:
Actor ДАТЧИК универсальный аналоговый
ID правильный
Рулет тоже датчик универсальный аналоговыйActor нужно сделать НЕ датчиком, а актуатором.
Датчику нельзя значение присвоить.
-
Пользователь @dre12007 написал в Сценарии пользователей:
А этот способ если сделать то не нужен actor получается?
Просто рулет в виджет добавляю и он рисует нужный процент ?Да.
-
@Erik
Вроде работает
Спасибо огромное за помощь
Ещё вопрос
Когда я буду делать какой нибудь сценарий с участием рулетки
На какие данные сценарий будет ссылаться, те что в плагине или обработанные ?
-
Пользователь @dre12007 написал в Сценарии пользователей:
@Erik
Вроде работает
Спасибо огромное за помощь
Ещё вопрос
Когда я буду делать какой нибудь сценарий с участием рулетки
На какие данные сценарий будет ссылаться, те что в плагине или обработанные ?На что вы в сценарии сошлетесь, то и будет.
-
Может глупый вопрос
Да и все работает
Но спрошу
Если посчитать ну например 46см
То получается минус 69 с хвостиком
А на экран выводит 69 без минуса
Не ругайтесь сильно я не очень хорошо учился в школе
-
Если посчитать 46 см, получится
100-(46-20)*100/85 = 69,41
без минуса.Пользователь @dre12007 написал в Сценарии пользователей:
Не ругайтесь сильно я не очень хорошо учился в школе
Вам лучше чем нибудь гуманитарным заниматься. Катастрофами, например.
-
Все правильно, я просто затупил, лет 20 ничего кроме денег не считал
Я в конце отнимал от полученной суммы 100, а не на оборот
Получал туже сумму но с минусом
-
Подскажите пожалуйста ещё
Вот в сценарии пишу
if (roulette.value > 70)
Видимо он видит не обработанные значения те что от датчика приходят
А как написать что бы сценарий видел нужное значения, обработанное ?