Welcome!

On this forum you can discuss iRidium with other users. iRidium consist of 2 main components - i3 pro app and iRidium Server. Please post here your questions, ideas or errors you find.

Please send your questions to support team as a private messages.


Please subscribe to the Change Log to know our news

0
Answered
Oleg Bubnov 8 months ago in iRidium Script • updated 7 months ago 2

Можно ли обратиться в скрипте к загруженной в глобальную галерею картинке? Глобальная галерея позволяет удобно загружать и хранить картинки, но, как я понимаю, они не загружаются в проект а попадают в папку Studio/gallery.

Затем, если я хочу обратиться к картинке в скрипте, я должен ее переместить ручками в галерею проекта, где уже нет папок. Что создает ряд затруднений при автоматизации и особенно при выборочном изменении уже помещенных в проект картинок.

И такой дикий слегка вопрос - можно ли редактировать картинки, которые уже в архиве проекта? То есть прям дергать из архива в ФШ и потом обратно паковать по месту.

Порекомендуйте, пожалуйста, как мне изящно действовать в случае, если я хочу назначать картинки на кнопки в скрипте.

0
Answered
Oleg Bubnov 8 months ago in iRidium Script • updated by Andrey S 8 months ago 2

Возможно ли создавать каналы AMX в скрипте? У меня есть название кнопки и я от него исхожу, когда скриптом создаю кнопку и загружаю на нее картинку. Потом в редакторе создаю канал и фидбек ручками и потом уже прописываю их кнопке скриптом. Хотелось бы автоматически создавать всё, исходя лишь из массива названий кнопок. Хотя бы, чтобы избежать ошибок в названиях при создании 400+ каналов и фидбеков. Есть ли какие-то best practices для подобных случаев? В руководстве есть отсылка к функциям .AddChanel и .AddTag… можно ли получить к ним какой-нибудь доступ для бета-тестера, если для АМХ есть какая-то реализация?

0
Answered
AlexDr 9 months ago in iRidium Script • updated by S1210 8 months ago 12

Как можно передать в скрипт имя элемента по которому был произведен клик?

Хотелось бы чтоб это был один из параметров передаваемых в вызываемой функции. Сейчас похоже там вообще никакие параметры не передаются и не используются.


Я пробовал делать так:


Обрабатывая в скрипте тег проекта UnderItemNameShowPopUp - он имел значение undefended.


и еще, подскажите где почитать что именно можно передать в переменную используя выделенные (да и некоторые не выделенные тоже) свойства элемента UI:


0
Answered
Iain Brew 9 months ago in iRidium Script • updated 8 months ago 9

I have a Matrox Monarch HD recording device which uses HTTP commands for operation. It can also provide feedback, however I am not having much luck at getting this feedback to display on a text item on a page. I tried putting the commands in the 'feedback' section of the driver, however discovered the will not work for HTTP Custom, only JS methods will.


The syntax for sending a command is as follows:


/Monarch/syncconnect/sdk.aspx?command=<command>


This works fine for starting and stopping recordings, however I really would like to show feedback on my control panel to give my end users confidence that recordings are actually happening, or alert them if there is an issue.


/Monarch/syncconnect/sdk.aspx?command=GetStatus


will return:


RECORD: READY/ON, STREAM: DISABLED, NAME:DIS-REC-1


I want to be able to have the 'RECORD: READY/ON' section displayed as text on a page, with the remainder of the string hidden.


In addition, when you start a recording:

/Monarch/syncconnect/sdk.aspx?command=StartRecording


it will return:


SUCCESS/FAILED



Could someone advise the JS code to make this work, as I am able to read code but not write it.


Thank you!


0
Answered
Евгений Лешкив 9 months ago in iRidium Script • updated by Ekaterina (head of support) 9 months ago 1

Существует ли возможность обработать мультитач на джойстике?

0
Answered
Евгений Лешкив 9 months ago in iRidium Script • updated by Aleksandr Romanov (CTO) 9 months ago 8

Использую такую структуры:

function UserSlider(Interface,GA1,GA2) // передаю название драйвера и групповые адреса

{

var DEVICE = IR.GetDevice(Interface);

var Level = IR.GetItem("Page").GetItem("Item1");

function SetInitState() // Функция вычисления позиции
{
SendCommand();
}

function SendCommand()
{
if(Level.Value < 30)
{
DEVICE.Set(MoveGA,0);
}
else if(Level.Value > 70)
{
DEVICE.Set(MoveGA,1);
}
else
{
DEVICE.Set(StopGA,0);
}
}


}


Этот скрипт работал на всех проектах i2.

Сейчас импортировал его в i3. Эмулятор выдает ошибку на команду DEVICE.Set/ Говорит следующее:

[11-01-2017 13:58:09.893] WARNING SCRIPT Script exception: TypeError: C:\Users\evgeniy\Documents\iRidium pro documents\Client\669\scripts\Shutters_horizontal.js:35: Tried to use null as an object

Эта ошибка вылезает на все три случая использования .Set. Инструкции на i3 все перечитал. Все сделано в рамках требований движка.

Подскажите, как быть. Может я что-то не вижу?

0
Martin Lang 10 months ago in iRidium Script • updated by Jackie Roos 9 months ago 1

hi,


is it possible to force a value in the channels/feedbacks via JS to be a integer and not a float?


when setting a feedback via JS like setting it to 100, is shows up as 100.000000


best regards,

martin lang

0
Marco Tanis 10 months ago in iRidium Script • updated 10 months ago 2

Hi,


I don't have a lot of knowledge in javascript and i want to use logical functions, but i don't get it to work.

i used an example of this forum and i want to make this with it:


if: input1=0 and input2=1

than set: output1->0 , output2->0, output3->0


if: input1=1 and input2=1

than set: output1->1 , output2->1, output3->1


here is the script i made, can anyone tell me what i did wrong?

IR.AddListener(IR.EVENT_START,0,function()
{
//Lsunch a listener of the basis if global tag work.
IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function(name, value)
   {
   
      IR.Log("Active global: " + name + "\value: " + value);
      /*
      Write logics for required processing.
      */
      if ((name == "Global.input1" && value == 0) && (name == "Global.input2" && value == 1))
         {
             IR.Log("Light OFF")
             IR.SetVariable("Global.output1", 0)
             IR.SetVariable("Global.output2", 0)
             IR.SetVariable("Global.output3", 0)
         }else
      /*
      Write logics for required processing. 
      */
      if ((name == "Global.input1" && value == 1) && (name == "Global.input2" && value == 1))
         {
             IR.Log("Light ON")
             IR.SetVariable("Global.output1", 1)
             IR.SetVariable("Global.output2", 1)
             IR.SetVariable("Global.output3", 1)
         }                         
   });
//Signature block for required tags
IR.SubscribeTagChange("Global.input1");
IR.SubscribeTagChange("Global.input2")
IR.SubscribeTagChange("Global.output1")
IR.SubscribeTagChange("Global.output2")
IR.SubscribeTagChange("Global.output3")
});

I used this example from this forum, but is "IR.setGlobalListener" the best option to use?

If someone has a better suggestion please tell !


Thanks,

Marco

0
Completed
AlexDr 10 months ago in iRidium Script • updated by Oksana (expert) 10 months ago 8

В JS есть возможность передать параметры анонимной функции используемой в процедурах setInterval и setTimeout:


var hello = "Hello World";

setTimeout(alert, 1000, hello);


В аналогичных функциях иридиум скрипт эта возможность не реализована. Предлагаю добавить ее в API. Меньше бы изврата пришлось городить в коде...

0
Dmitry Ryzhkov 11 months ago in iRidium Script • updated 10 months ago 4

Hi


How I can remove created driver by script?


var dev = IR.CreateDevice(parameters);


//????????

dev.Remove();

dev.Delete();

dev.Clear();