Hi @chipakj
The Ultricore routing system uses the openGear protocol instead of the NK Router protocol to communicate with DashBoard. Ultimately, this is a much more powerful way to integrate into DashBoard as it exposes much more information about the device to DashBoard but it does mean the NK tool set is not available.
I'm including a fairly simple panel to help get you started. This panel reads the list of sources and destinations from an Ultrix (you'll want to use the "Data Sources" button on the PanelBuilder tool bar to associate it with your Ultrix) and allows you to set crosspoints on each one.
<abs contexttype="opengear" gridsize="20">
<meta>
<params>
<param access="1" constrainttype="INT_CHOICE" name="Sources" oid="Sources" precision="0" stateless="true" type="INT32" value="0" widget="combo">
<constraint key="0">Nothing</constraint>
</param>
<param access="1" constrainttype="INT_CHOICE" name="Destinations" oid="Destinations" precision="0" stateless="true" type="INT32" value="0" widget="combo">
<constraint key="0">Nothing</constraint>
</param>
</params>
<ogscript handles="onload">function loadUltrixTable(sources)
{
var uOid = sources ? 'params.sources' : 'params.dests';
var pOid = sources ? 'Sources' : 'Destinations';
var newValues = [];
var numValuesP = params.getParam('ultrix', 'params.sources', 0);
var numValues = 0;
if (numValuesP != null)
{
numValues = numValuesP.getElementCount();
}
for (var i = 0; i < numValues; i++)
{
newValues[i] = { "key": i, "value": params.getParam('ultrix', uOid + '.' + i + '.name', 0).getValue() };
}
if (newValues.length == 0)
{
newValues.push({"key": 0, "value": "Nothing Found"});
}
params.replaceConstraint(pOid, params.createIntChoiceConstraint(newValues));
}
function loadUltrixInfo()
{
loadUltrixTable(true);
loadUltrixTable(false);
}
loadUltrixInfo();</ogscript>
<api>function doUltrixSwitch(context, source, destination, level_string) {
level_string = level_string + "";
level_string = level_string.replace(/\s/g, ' ');
var levels = level_string.split(",");
var ultrix = params.createMultiSet(context);
for(i=0; i<levels.length; i++) {
ultrix.setValue("params.statusByDestination." + destination + ".inputstatus", (levels[i] - 1), source);
}
ultrix.execute();
}</api>
</meta>
<param expand="true" height="60" left="80" oid="Sources" top="100" width="280"/>
<param expand="true" height="60" left="80" oid="Destinations" showlabel="false" top="40" width="280"/>
<button buttontype="push" height="120" left="360" name="Take" top="40" width="200">
<task tasktype="ogscript">
/*! block id=1010,1011,1012 !*/
doUltrixSwitch("ultrix", params.getValue('Sources', 0), params.getValue('Destinations', 0), "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17")
/*!!
<block id="1010" type="function_doUltrixSwitch" x="330" y="136" w="243" context="ultrix" source="ID:1011" destination="ID:1012" level_string="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17" />
<block id="1011" type="param__top&amp;Sources (Sources)[0]" x="10" y="258" w="243" SET="" />
<block id="1012" type="param__top&amp;Destinations (Destinations)[0]" x="10" y="350" w="243" SET="" />
!!*/
/*!!<checksum>7fd2a9099dacd2921fd333c9e3dd7e7b</checksum>!!*/</task>
</button>
<simplegrid contexttype="opengear" height="40" id="ultrix" left="80" objectid="Ultrix-5ru-50187811002<br>Slot 0<br>Ultrix-5ru" objecttype="Ultrix-5ru" rows="1" top="180" width="480">
<param element="0" expand="true" oid="0x105" showlabel="false" widget="1"/>
</simplegrid>
</abs>#DashBoard