Facility Control

 View Only
Expand all | Collapse all

Dashboard Tally service setup

  • 1.  Dashboard Tally service setup

    Posted 09-25-2017 15:27

    Hi!

    We are having a project at my school and i'm trying to trigger actions with tally. I cant find anywhere how to get the carbonite's tally in to dashboard tally service. How do you set it up? Where can I set the port on carbonite?

    On the picture is the menu, and i wonder what i have to type in to get the signals from the carbonite into here.



  • 2.  RE: Dashboard Tally service setup

    Posted 09-25-2017 15:55
    On the Carbonite Panel, you will need to add a new device of type "Serial Tally".
    This will give you the option to use TSL and point it at DashBoard's tally service.

    You will also need to configure different inputs on Carbonite to have TSL addresses so Carbonite can feed tally data when they are brought on-air and off-air. You can do this through the "Inputs" tab of the "Configuration" UI for Carbonite in Dashboard. Each input has a "TSL Address" configuration option on the far right of the screen.

    James
    #DashBoard


  • 3.  RE: Dashboard Tally service setup

    Posted 09-25-2017 16:12

    Thanks for quick answer.

    I need to set a ip-adress and port when i configure a new device, right? and then set the port number into dashboards tally service?

    Any examples of how to set it up and what portnumber and ip-adress to use?

    I'm new to this side of dashboard so thank you so much for all of the help :)


    #DashBoard


  • 4.  RE: Dashboard Tally service setup

    Posted 09-25-2017 19:09
    Yes. You can see more information about Carbonite's Tally Device here:
    https://rossvideoltd.sharepoint.com/sites/marketing/communications/_layouts/15/guestaccess.aspx?docid=04bcb8eccf72f493bbb2ff6828ca3a03d&authkey=AchEsXisMcr9UU9yLr8QOXw

    The IP address is the IP address of the DashBoard computer.
    Carbonite outputs TSL UMD v3.1 in over either TCP or UDP.

    The port number is the port number you configured in DashBoard's tally service for either TSL UMD 3.1 TCP (if you selected a TCP output) or UDP (if you selected a UDP output).

    James
    #DashBoard


  • 5.  RE: Dashboard Tally service setup

    Posted 09-26-2017 07:21
    Okay, can't seem to open the link you attached.

    Now i have set the ip in the device config to the ip of the computer i am running dashboard and tally service off. I've set the carbonite tsl tally to "On" on the first 8 inputs, and adressed them 1-8.

    also i have set a portnumber in device config and matched it in dashboard under TSL UMD 3.1(TCP) in tally service and it's still nothing....(yes i sat it to tcp in the carbonite)


    -
    Over to another topic within the category: when i get this to work; is it possible to get dashboard to trigger a "BMD gpi and tally interface". We are having a remoteproject/experiment at school and are missing a way to get tally over IP and this seemed lika a solution. all of the cameras and communication are going over nimbra/optical fibre. The production is happening 10 miles from our operating spot.

    Or do you have another way to accomplish this? i'm very open to suggestions if you have some.
    #DashBoard


  • 6.  RE: Dashboard Tally service setup

    Posted 09-26-2017 13:56

    At this point, it might be worthwhile debugging whether the issue is Carbonite not sending the Tally to DashBoard or DashBoard not receiving the tally events.

    I have attached the source code for a Tally Test Custom Panel that can send commands to DashBoard's tally service. Please enter the IP for your DashBoard computer and press the "Go 3.1 (TCP)" button to verify that a tally event is added to DashBoard's table of events.

    <abs contexttype="opengear" style="">
       <meta>
          <params>
             <param access="1" constraint="0.0;65535.0;0.0;65535.0;1" constrainttype="INT_STEP_RANGE" name="Tally ID" oid="Tally_ID" precision="0" stateless="true" type="INT32" value="1" widget="spinner"/>
             <param access="1" constrainttype="INT_CHOICE" name="Red Left" oid="Red_Left" precision="0" stateless="true" type="INT32" value="0" widget="checkbox">
                <constraint key="0">Off</constraint>
                <constraint key="1">On</constraint>
             </param>
             <param access="1" constrainttype="INT_CHOICE" name="Red Right" oid="Red_Right" precision="0" stateless="true" type="INT32" value="0" widget="checkbox">
                <constraint key="0">Off</constraint>
                <constraint key="1">On</constraint>
             </param>
             <param access="1" constrainttype="INT_CHOICE" name="Green Left" oid="Green_Left" precision="0" stateless="true" type="INT32" value="0" widget="checkbox">
                <constraint key="0">Off</constraint>
                <constraint key="1">On</constraint>
             </param>
             <param access="1" constrainttype="INT_CHOICE" name="Green Right" oid="Green_Right" precision="0" stateless="true" type="INT32" value="0" widget="checkbox">
                <constraint key="0">Off</constraint>
                <constraint key="1">On</constraint>
             </param>
             <param access="1" constrainttype="INT_CHOICE" name="Brightness" oid="Brightness" precision="0" stateless="true" type="INT32" value="1" widget="combo">
                <constraint key="0">Off</constraint>
                <constraint key="1">Low</constraint>
                <constraint key="2">Med</constraint>
                <constraint key="3">High</constraint>
             </param>
             <param access="1" maxlength="0" name="Text" oid="Text" stateless="true" type="STRING" value="CAM" widget="text"/>
             <param access="1" maxlength="0" name="host" oid="host" type="STRING" value="localhost" widget="text"/>
             <param access="1" constraint="0.0;65535.0;0.0;65535.0;1" constrainttype="INT_STEP_RANGE" name="Port5.0" oid="Port5.0" precision="0" type="INT32" value="5002" widget="spinner"/>
             <param access="1" constraint="0.0;65535.0;0.0;65535.0;1" constrainttype="INT_STEP_RANGE" name="Port3.1" oid="Port3.1" precision="0" type="INT32" value="5001" widget="spinner"/>
             <param access="1" constraint="0.0;65535.0;0.0;65535.0;1" constrainttype="INT_STEP_RANGE" name="Port3.1" oid="Port3.1TCP" precision="0" type="INT32" value="5727" widget="spinner"/>
          </params>
       </meta>
       <param expand="true" height="37" left="55" oid="Tally_ID" top="56" width="106"/>
       <simplegrid cols="2" height="150" left="21" top="100" width="165">
          <label name="Green Left"/>
          <param expand="true" oid="Red_Left"/>
          <label name="Green Right"/>
          <param expand="true" oid="Red_Right"/>
          <label name="Red Left"/>
          <param expand="true" oid="Green_Left"/>
          <label name="Red Right"/>
          <param expand="true" oid="Green_Right"/>
       </simplegrid>
       <param expand="true" height="33" left="22" oid="Brightness" top="258" width="135"/>
       <param expand="true" height="36" left="21" oid="Text" top="299" width="133"/>
       <button buttontype="push" height="54" left="19" name="Go 5.0 (UDP)" top="342" width="137">
          <task tasktype="ogscript">var messageBuilder = ogscript.createMessageBuilder();
    /*
    * messageBuilder.writeByteArray(bytesArray);
    * messageBuilder.writeByteArray(bytesArray, offset, length);
    * messageBuilder.writeBoolean(boolVal);
    * messageBuilder.writeByte(byteVal);
    * messageBuilder.writeShort(shortVal);
    * messageBuilder.writeChar(charVal);
    * messageBuilder.writeInt(intVal);
    * messageBuilder.writeLong(longVal);
    * messageBuilder.writeFloat(floatVal);
    * messageBuilder.writeDouble(doubleVal);
    * messageBuilder.writeLine(strVal);
    * messageBuilder.writeString(strVal);
    * messageBuilder.writeUTF(strVal); //includes 2-byte length count
    */
    
    var text = params.getValue('Text', 0) + '';
    
    messageBuilder.writeShort(8 + text.length);//Length
    messageBuilder.writeByte(0);//Version
    messageBuilder.writeByte(0);//Flags
    messageBuilder.writeShort(params.getValue('Tally_ID', 0));
    var control = 0;
    if (params.getValue('Red_Right', 0) == 1)
    {
       control = control | 0x1;
    }
    if (params.getValue('Green_Right', 0) == 1)
    {
       control = control | 0x2;
    }
    if (params.getValue('Red_Left', 0) == 1)
    {
       control = control | 0x10;
    }
    if (params.getValue('Green_Left', 0) == 1)
    {
       control = control | 0x20;
    }
    control = control | (params.getValue('Brightness', 0) &lt;&lt; 6);
    messageBuilder.writeShort(control);
    messageBuilder.writeShort(text.length);
    messageBuilder.writeString(text);
    
    var bytes = messageBuilder.toByteArray();
    
    ogscript.sendUDPBytes(params.getValue('host', 0), params.getValue('Port5.0', 0), bytes);</task>
       </button>
       
       <button buttontype="push" height="54" left="17" name="Go 3.1 (UDP)" top="403" width="137">
          <task tasktype="ogscript">var messageBuilder = ogscript.createMessageBuilder();
    /*
    * messageBuilder.writeByteArray(bytesArray);
    * messageBuilder.writeByteArray(bytesArray, offset, length);
    * messageBuilder.writeBoolean(boolVal);
    * messageBuilder.writeByte(byteVal);
    * messageBuilder.writeShort(shortVal);
    * messageBuilder.writeChar(charVal);
    * messageBuilder.writeInt(intVal);
    * messageBuilder.writeLong(longVal);
    * messageBuilder.writeFloat(floatVal);
    * messageBuilder.writeDouble(doubleVal);
    * messageBuilder.writeLine(strVal);
    * messageBuilder.writeString(strVal);
    * messageBuilder.writeUTF(strVal); //includes 2-byte length count
    */
    
    var text = ("                " + params.getValue('Text', 0)).substr(-16);
    
    messageBuilder.writeByte(0x80 + params.getValue('Tally_ID', 0));
    
    var control = 0;
    if (params.getValue('Red_Right', 0) == 1)
    {
       control = control | 0x1;
    }
    if (params.getValue('Green_Right', 0) == 1)
    {
       control = control | 0x2;
    }
    if (params.getValue('Red_Left', 0) == 1)
    {
       control = control | 0x4;
    }
    if (params.getValue('Green_Left', 0) == 1)
    {
       control = control | 0x8;
    }
    control = control | (params.getValue('Brightness', 0) &lt;&lt; 4);
    messageBuilder.writeByte(control);
    messageBuilder.writeString(text);
    
    var bytes = messageBuilder.toByteArray();
    
    ogscript.sendUDPBytes(params.getValue('host', 0), params.getValue('Port3.1', 0), bytes);</task>
       </button>
       <label height="40" left="17" name="ID: " style="txt-align:east" top="54" width="36"/>
       <param expand="true" height="34" left="20" oid="host" top="12" width="140"/>
       <param expand="true" height="43" left="230" oid="Port5.0" top="346" width="71"/>
       <param expand="true" height="44" left="230" oid="Port3.1" top="410" width="72"/>
       <label height="42" left="164" name="Port: " style="txt-align:east" top="345" width="67"/>
       <label height="42" left="160" name="Port: " style="txt-align:east" top="409" width="67"/>
       <button buttontype="push" height="54" left="18" name="Go 3.1 (TCP)" top="464" width="137">
          <task tasktype="ogscript">var messageBuilder = ogscript.createMessageBuilder();
    /*
    * messageBuilder.writeByteArray(bytesArray);
    * messageBuilder.writeByteArray(bytesArray, offset, length);
    * messageBuilder.writeBoolean(boolVal);
    * messageBuilder.writeByte(byteVal);
    * messageBuilder.writeShort(shortVal);
    * messageBuilder.writeChar(charVal);
    * messageBuilder.writeInt(intVal);
    * messageBuilder.writeLong(longVal);
    * messageBuilder.writeFloat(floatVal);
    * messageBuilder.writeDouble(doubleVal);
    * messageBuilder.writeLine(strVal);
    * messageBuilder.writeString(strVal);
    * messageBuilder.writeUTF(strVal); //includes 2-byte length count
    */
    
    var text = ("                " + params.getValue('Text', 0)).substr(-16);
    
    messageBuilder.writeByte(0x80 + params.getValue('Tally_ID', 0));
    
    var control = 0;
    if (params.getValue('Red_Right', 0) == 1)
    {
       control = control | 0x1;
    }
    if (params.getValue('Green_Right', 0) == 1)
    {
       control = control | 0x2;
    }
    if (params.getValue('Red_Left', 0) == 1)
    {
       control = control | 0x4;
    }
    if (params.getValue('Green_Left', 0) == 1)
    {
       control = control | 0x8;
    }
    control = control | (params.getValue('Brightness', 0) &lt;&lt; 4);
    messageBuilder.writeByte(control);
    messageBuilder.writeString(text);
    
    var bytes = messageBuilder.toByteArray();
    
    rosstalk.sendBytes(params.getValue('host', 0), params.getValue('Port3.1TCP', 0), bytes, null);</task>
       </button>
       <label height="42" left="160" name="Port: " style="txt-align:east" top="470" width="67"/>
       <param expand="true" height="44" left="229" oid="Port3.1TCP" top="469" width="72"/>
    </abs>

    #DashBoard


  • 7.  RE: Dashboard Tally service setup

    Posted 11-07-2017 23:34
    Hi James. Is this possible on the Vision (18.1q) as well? If so would the above code be valid to test?
    #DashBoard


  • 8.  RE: Dashboard Tally service setup

    Posted 11-08-2017 14:41
    Vision does have support for TSL UMD 3.1 tally protocol. Are you asking about getting it to SEND the tally information to DashBoard or to RECEIVE the tally information from the custom panel sample I posted?
    #DashBoard


  • 9.  RE: Dashboard Tally service setup

    Posted 11-08-2017 16:07
    I'm wondering if it would be possible to use the tally information to run an event, such as a custom control or to open an audio channel etc, only when a "button" is on program. As to the panel code, I understood (or misunderstood) that to be a way to test the communication between the switcher and dashboard. And I'm also assuming that we would need the latest version of dashboard? Thanks for your help!

    #DashBoard


  • 10.  RE: Dashboard Tally service setup

    Posted 11-08-2017 20:08
    The tally service was introduced in DashBoard 8.2.
    The example code pretends to be the switcher (or whatever tally source you might have) to test the CustomPanel's tally code without having an actual tally source.

    I have confirmed with the Vision team that it does not output TSL UMD (Carbonite and Acuity do) so, while you would be able to trigger a script in DashBoard based on tally information, you would need to find a different source for that information.

    James
    #DashBoard


  • 11.  RE: Dashboard Tally service setup

    Posted 11-08-2017 21:27
    I was afraid that would be the case. I'll check with the Vision team and see if they have a suggestion as to how I could get tally information to Dashboard. Your time is greatly appreciated.
    #DashBoard