сообщение из сценария



  • Вопрос "чайника", уж извините ежли что...
    Как можно вывести сообщение из сценария в виджет?
    Имеется в виду текстовое сообщение или расчетное значение?



  • @alesle, вы о чем? В какой виджет вам надо что-то вывести? Опишите конкретную задачу.
    В частности, я делал виджет из "Актюатор аналоговый универсальный" тут.



  • Да да, именно это ( как у Вас) и нужно было.
    Т.е технология (как я понял) такова:
    Берем устройство - "Актуатор универсальный аналоговый", вставляем его в виджет, и с помощью Device.SetValue() устанавливаем его значение, которое, соответственно, выводится в виджет.
    Пробую....
    Попробовал,
    Ну конечно, все гениальное - просто!
    Спасибо!!!



  • @alesle, вы бы темы не плодили), лучше спросить об этом в Сценарии - новая версия API



  • Ваш форум - ваши правила.....
    Просто тема "новая версия API"- очень широка и по названию предполагала описание некого отличия от предыдущей версии..
    А у чайников, вроде меня , возникает много вопросов по элементарным вещам .
    Вот и задал там, где показалось уместным.



  • все же можно я не буду засирать умную тему про новый API своими, возможно идиотскими вопросами, и спрошу здесь,
    Итак, создал девайс для вывода (ACTORA1) -проверил работает. Нужно было в скрипте передать часть действий в функцию. и тут у меня случился затык.
    Скрипт после дикого упрощения:

    /** 
    * @name проба 
    * @desc  
    * @version 4 
    */
    const dev = Device("ACTORA1"); 
    
      function str2(dd) {
         if (dd < 10 ) return "меньше 10";
         if (dd >= 10) return "больше 9";
        }
    
    script({
        start() {
     
    let mes=str2(2);
        dev.setValue(mes) ;
        } 
      
    });
    

    Не работает....
    Блин, что не так (ну, кроме моей головы)?

    UPD: после некоторых "танцев с бубном" выяснено, что функция просто не вызывается и вставка любой ссылки на функцию , будь то
    let mes=str2(2);
    или просто str2() приводит к неработоспособности сценария.
    Что я делаю не так?



  • @alesle, вначале прочитайте про синтаксис сценариев - тут. Надеюсь, что после этого у Вас отпадет значительная часть вопросов. Также очень полезно знать систему команд - сам до сих пор пользуюсь этой страничкой).



  • Спасибо за указанное направление!
    Заработало, когда:

    1. Код функции помещен в раздел script ( что логично);
    2. вызвать функцию использовав
      this.str2();
      конструкция let mes=this.str2(2); позволяет вернуть значения по return в функции str().

    Вывод: Командный язык в скриптах - это не совсем классический JS и написать скрипт тупо глядя в учебник не всегда получится.
    Читайте документацию !


Log in to reply