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 1 month ago in iRidium Script • updated by Andrey S 1 month ago 2

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

0
Answered
AlexDr 2 months ago in iRidium Script • updated by S1210 4 weeks ago 12

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

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


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


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


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


0
Answered
Iain Brew 2 months ago in iRidium Script • updated 1 month 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
Евгений Лешкив 2 months ago in iRidium Script • updated by Ekaterina (head of support) 2 months ago 1

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

0
Answered
Евгений Лешкив 3 months ago in iRidium Script • updated by Aleksandr Romanov (CTO) 2 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 3 months ago in iRidium Script • updated by Jackie Roos 3 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 3 months ago in iRidium Script • updated 3 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 3 months ago in iRidium Script • updated by Oksana (expert) 3 months ago 8

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


var hello = "Hello World";

setTimeout(alert, 1000, hello);


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

0
Dmitry Ryzhkov 5 months ago in iRidium Script • updated 3 months ago 4

Hi


How I can remove created driver by script?


var dev = IR.CreateDevice(parameters);


//????????

dev.Remove();

dev.Delete();

dev.Clear();

0
Under review
Dmitry Ryzhkov 5 months ago in iRidium Script • updated by Ekaterina (head of support) 4 months ago 1

Hello


I'm use yours function from dev portal, see below. When 0 appears in array sending string don't have any characters and stop sending.


In my case I use next procedure. I will need transform length string to 4 byte present and send it to device.



var value = "0";
//This not working when coming 0
var elementLength = String.fromCharCode(value.length >> 24 & 0xFF)+
                    String.fromCharCode(value.length >> 16 & 0xFF)+
                    String.fromCharCode(value.length >>  8 & 0xFF)+
                    String.fromCharCode(value.length       & 0xFF);
// This working fine witch concat
var elementLength = [ 
                      value.length >> 24 & 0xFF,
                      value.length >> 16 & 0xFF,
                      value.length >> 08 & 0xFF,
                      value.length >> 00 & 0xFF

                    ];
<em>// process an array of HEX bytes from Data field of Command or Feedback</em>
<strong>function</strong> HexArrayToAsciiString<span class="br0">(</span>in_aArray<span class="br0">)</span> 
<span class="br0">{</span>
   <em>// init string</em>
   <strong>var</strong> l_sStr <span class="sy0">=</span> <span class="st0">''</span><span class="sy0">;</span>
 
   <em>// aray bypass</em>
   <strong>for</strong><span class="br0">(</span><strong>var</strong> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0"><</span> in_aArray.<span class="me1">length</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">)</span>
      l_sStr <span class="sy0">+=</span> <span class="kw4">String</span>.<span class="me1">fromCharCode</span><span class="br0">(</span>parseInt<span class="br0">(</span>in_aArray<span class="br0">[</span>i<span class="br0">]</span><span class="sy0">,</span> <span class="nu0">16</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span>
 
   <em>// return string in ASCII format</em>
   <strong>return</strong> l_sStr<span class="sy0">;</span>
<span class="br0">}</span>