I haven't specifically pulled names from the TSL data, but I have used it to recall camera presets based on tally. Here's a code snippet from my grid file, which might be a bit hacky, but hopefully points you the right way. This moves a Panasonic PTZ camera to a preset number if it is not tallied. This requires the Dashboard tally listener to be enabled, and the switcher to be sending tally to the pc running Dashboard. You can see the tally status in Dashboard by looking here to ensure you are receiving the data:
Also, I believe the event you are look for is
tallyEvent.getText();
Code snip (recallCamPreset function):
<api name="recallCamPreset">//recallCamPreset
function recallCamPreset(cam, preset)
{
var tallyEvent = 0; //define tally event
var presetnumber = params.getValue('param.cam' + cam + '.preset' + preset + 'num' , 0) //lookup value stored in parameter
var recall = (presetnumber - 1);
if (recall < 10){
var camrecall = ("0" + recall.toString());
}
else
{
var camrecall = recall.toString();
}
var tallyEvent = tallyservice.getTallyState([cam]);
if (tallyEvent != null){
if (tallyEvent.isRedRight())
{
ogscript.debug('CAM on PGM, will not move');
//nothing to program
}
else
{
var url = 'http://' + params.getValue('param.cam' + cam + '.ip', 0) + '/cgi-bin/aw_ptz?cmd=%23R' + camrecall + '&res=1';
ogscript.debug("Sending " + url + " preset: " + recall);
ogscript.asyncPost(url, null, null);
if (params.getValue('param.PresetPVWEnable', 0) == 1){ //put it on preview? ?
var source = cam; //used to handle any input offset from camera to switcher IO
rosstalk.sendMessage(params.getValue('Carbonite_IPAddress', 0), 7788, "XPT " + "ME:0:PST" + ":" + "IN:" + source);
ogscript.debug('Source ' + source + ' put on PVW');
}
}
}
else
{
ogscript.debug('No tally data available, recall command ignored');
}
}</api>
------------------------------
Dave Whitehead
Enterprise Architect
House of Commons
Canada
------------------------------
Original Message:
Sent: 01-31-2022 13:31
From: Ben Gatien
Subject: Pull TSL Data From Carbonite Ultra/Ultrix
I asked someone on the switcher team, since I don't know much about TSL data. He responded with:
Well you don't "Pull it"..The TSL Protocol can be setup to send it out ..And all of the TSL Mapping is in our manuals.http://help.rossvideo.com/carbonite-device-db/Topics/Devices/UMD/TSL.html#TSL-Protocol_Ultraand to set it up they do that here:http://help.rossvideo.com/carbonite-device-db/Topics/Devices/UMD/TSL.html#topic.tsl
Hopefully that will help you.
Ben
------------------------------
Ben Gatien
Ross Video
Original Message:
Sent: 12-15-2021 15:31
From: Matthew Shield
Subject: Pull TSL Data From Carbonite Ultra/Ultrix
Hey All,
Does anybody know how to pull TSL data from a Carbonite Ultra into a custom Dashboard control panel?
In our facility we have two Carbonite Ultra switchers that I am trying to create a custom dashboard for. The two Ultras have the first 10 inputs hard wired to cameras but inputs 11-24 have inputs coming from an Ultrix. The Ultras receive TSL data from the Ultrix to populate the input names on the busmap for inputs 11-24. I'm trying to create a dashboard that shows (and allows and operator to select) the current source information taking the PST and PGM parameters for MiniME/MEs (using the appropraite OIDs from the bus screen found using the inspector tool). The issue I have though is that they only pull through the assigned input name on the switcher (e.g. S_in11, S_in12 etc) and not the TSL UMD name from the Ultrix (e.g. PC 1 Out).
Is there an easy way to grab these TSL names for the appropriate sources or do I have to somehow poll the Ultrix for source names and match those to the switcher inputs somehow? At present I have overridden the constraints to get the appropriate naming but that won't work if the source input will change.
Any ideas?
Existing Code for one of the Projector snippets (the ultra context not included) :
<table> <tr> <label bottom="0" left="0" name="Projector 1" right="0" style="txt-align:center;size:Big;" top="0"/> </tr> <tr> <simplegrid anchor="center" cols="1" style="bg#listbg;"> <table> <tr> <simplegrid hspace="20" vspace="20"> <param expand="true" fill="both" height="150" id="projector.1.current.source" oid="0xF97" rowspan="1" showlabel="false" style="txt-align:center;bdr#green;bdr:thick;" weightx="1.0" weighty="1.0" widget="label" width="250"/> <param bottom="0" colspan="1" expand="true" fill="both" height="150" left="0" oid="0xF98" rowspan="1" showlabel="false" style="bdr#red;bdr:thick;txt-align:center;" top="0" weightx="1.0" weighty="1.0" widget="label" width="250"/> </simplegrid> </tr> </table> <table> <tr> <param constrainttype="INT_CHOICE" expand="true" height="60" id="bus-view" oid="0xF97" precision="0" showlabel="false" style="size:10;t:bg#red;f:bg#buttonbg;" width="80"> <constraint key="1010">PRESO 3</constraint> <constraint key="1011">PRESO 4</constraint> <constraint key="1012">PLAYOUT 3</constraint> <constraint key="1013">PLAYOUT 4</constraint> <constraint key="1014">LECTERN</constraint> <constraint key="100">MEDIA 1</constraint> <constraint key="101">MEDIA 2</constraint> <task tasktype="ogscript"/> </param> </tr> <tr> <param constrainttype="INT_CHOICE" expand="true" height="60" id="bus-view" oid="0xF98" precision="0" showlabel="false" style="size:10;t:bg#green;f:bg#buttonbg;" width="80"> <constraint key="1010">PRESO 3</constraint> <constraint key="1011">PRESO 4</constraint> <constraint key="1012">PLAYOUT 3</constraint> <constraint key="1013">PLAYOUT 4</constraint> <constraint key="1014">LECTERN</constraint> <constraint key="100">MEDIA 1</constraint> <constraint key="101">MEDIA 2</constraint> </param> </tr> </table> </simplegrid> </tr></table>
------------------------------
Matthew Shield
Broadcast Engineer
------------------------------