Facility Control

 View Only
Expand all | Collapse all

Dashboard Tally Service

  • 1.  Dashboard Tally Service

    Posted 01-12-2017 20:51
    What is this Dashboard Tally Service in v8.1.2?


  • 2.  RE: Dashboard Tally Service

    Posted 01-12-2017 21:55

    It is a service that allows DashBoard to receive tally information from a TSL UMD 5.0 or 3.1 source (such as a Carbonite).

    This is mostly used for DashBoard to set the tally lights on/off for ACID Cameras but can also be accessed through ogscript:

    tallyservice.getTallyState(TALLY_ID);
    tallyservice.setTallyState(TALLY_ID, TEXT, RED_ON, GREEN_ON);
    tallyservice.addTallyListener(TALLY_ID, THIS_OBJ, FUNCTION);
    tallyservice.addAllTallyListener(THIS_OBJ, FUNCTION);

    getTallyState and the Tally Listeners are passed a TallyEvent object containing the following functions:

    var tallyState = tallyservice.getTallyState(TALLY_ID);
    
    if (tallyState != null)
    {
       tallyState.getId();
       tallyState.getBrightness();
       tallyState.getText();
       tallyState.isGreenLeft();
       tallyState.isGreenRight();
       tallyState.isRedLeft();
       tallyState.isRedRight();
    }

    You can find templates for all of these commands in the ogScript "Script Palette" .


    #DashBoard


  • 3.  RE: Dashboard Tally Service

    Posted 01-18-2017 14:27
    Where do you find ogScript "Script Pallet" .
    #DashBoard


  • 4.  RE: Dashboard Tally Service

    Posted 01-18-2017 16:06

    If you are in the ogScript editor (not the "Visual Logic" editor) and the text area has focus, you should see the palette (if the checkbox is checked).


    #DashBoard


  • 5.  RE: Dashboard Tally Service

    Posted 08-26-2024 20:18

    Hey @James Peltzer, working on using Dashboard Tally Service data as a Shared Device via Dashboard Proxy server.

    The idea is for our routing system to send TSL 5.0 Data (tally, umd name) to our Dashboard proxy server, where we can then point our multiple user Dashboard .grids to access that data to be less taxing on the routing system.

    I see this makes the Tally Service show up more like a device, rather than 'tallyservice' above

    For example, adding this 'tally' device in visual editor and dropping the block in gives me :

    params.getParam("DB-Tally-Service.1", 'params.simpletally.tally0.text', 0).getValue()

    I have this working, but it is rather memory intensive. Is there a way to get the listener you described above to work with a proxy tally device? 



    ------------------------------
    Evan Aaron
    Engineer
    Game Creek Video
    ------------------------------



  • 6.  RE: Dashboard Tally Service

    Posted 08-27-2024 09:01

    Hey Evan - I don't have an answer about your Tally question, but as far as your "memory intensive" comment, have you tried giving Dashboard access to additional memory?  

    Window > Preferences > General > Memory Allocation



    ------------------------------
    Bo Cordle
    Rocket Surgery
    Charleston, SC
    ------------------------------



  • 7.  RE: Dashboard Tally Service

    Posted 08-27-2024 11:11

    Thanks Bo. Yes I know, was only testing with 4 TSL IDs and was getting up to close to a gig of memory utilization- hoping to scale this to 100+ IDs, would like to keep dashboard memory as close to 1G as possible. 



    ------------------------------
    Evan Aaron
    Engineer
    Game Creek Video
    ------------------------------



  • 8.  RE: Dashboard Tally Service

    Posted 08-28-2024 11:23

    Hi Evan

    No, you cannot use the tallyservice ogScript calls with a Tally Service device shared via the proxy server - the device and the script calls are 2 views into the cached tally data but when you share the device it just appears to DashBoard like any other OGP device and not specifically related to tally information.

    I would be a little concerned with connections to the tally service proxy device being very memory intensive. Is the proxy server's memory bar going up to 1gb and then eventually hanging the application or is it reaching 1gb and then bouncing back and forth a little bit? Bouncing would be normal for a properly-functioning Java application and is called the 'saw tooth' garbage collection signature.  Running out of memory entirely/having the application hang would indicate an incorrect behaviour happening somewhere either in the panels or in the DashBoard code.



    ------------------------------
    James Peltzer
    Ross Video
    ------------------------------



  • 9.  RE: Dashboard Tally Service

    Posted 08-28-2024 11:37

    Copy that. So yes you are correct, the memory is doing the saw-tooth behavior, but every time the memory drops down, the panel UI flashes very quickly-- and to clarify this is on the 'user' side, not the proxy server side. 

    To add some more color. We are trying to use the TSL data to get the source name and tally state for Cobalt 9905 UDX paths from our routing system, and then take that data to update the "Custom Path Name" parameter on the 9905 (OID 0x1302,1303,1304,1305), and then change the display style of the label in a .grid based on the red tally. 

    I have this function below as a api function, which is being called by a task on a parameter object in the .grid for each custom path name. Is there a better way to do this?

    The memory issues I am seeing are only with 4 of these path name params (4 paths on 1 9905 Card). The hope is to be able to scale this to systems with 90+ 9905 cards. 

    function get9905tally(path, tallyid){
       var pathname = params.getParam("DB-Tally-Service.1", 'params.simpletally.tally' + tallyid.toString() + '.text', 0).getValue();
       var textstate = params.getParam("DB-Tally-Service.1", 'params.simpletally.tally' + tallyid.toString() + '.text_state', 0).getValue();
       var left = params.getParam("DB-Tally-Service.1", 'params.simpletally.tally' + tallyid.toString() + '.left', 0).getValue();
       params.setValue('0x130' + (path + 2).toString(), 0, pathname);
    if (textstate == 1){
          ogscript.setStyle('pathname_'+ (path).toString(), 'size:Biggest;font:default;txt-align:center;bg#FF0000;');
       }
       else{
          ogscript.setStyle('pathname_'+ (path).toString(), 'size:Biggest;font:default;txt-align:center;bg#tableheader;');
       }
    }
    <param expand="true" id="pathname_0" mid="88" oid="0x1302" runtasksonload="true" showlabel="false" style="size:Biggest;font:default;txt-align:center;">
                <task tasktype="ogscript">get9905tally(0, 0);</task>
             </param>



    ------------------------------
    Evan Aaron
    Engineer
    Game Creek Video
    ------------------------------



  • 10.  RE: Dashboard Tally Service

    Posted 08-28-2024 11:55

    Another option would be to create a custom panel on the 'proxy server' DashBoard instance that has all of the parameters you want to share/monitor (you can even include their styling) and use the 'jsonport' attribute at the top of the panel to share the panel's parameters as a virtual device you can connect to from your other DashBoard instances.  This way all of your logic and formatting live in one spot on the server instead of in all of the client DashBoards and you're only sharing what you need instead of the entire tally device.

    You can use a String parameter with OID 0x105 to assign a name to the panel-based device and make it easier to identify in the client DashBoards.



    ------------------------------
    James Peltzer
    Ross Video
    ------------------------------



  • 11.  RE: Dashboard Tally Service

    Posted 08-28-2024 12:45

    Oh interesting, that could work! I have not used the jsonport attribute, can you give a quick example of how to implement it?



    ------------------------------
    Evan Aaron
    Engineer
    Game Creek Video
    ------------------------------



  • 12.  RE: Dashboard Tally Service

    Posted 08-28-2024 13:28

    The jsonport attribute essentially runs a copy of the proxy server pointed to the virtual device that contains the custom panel's parameters.  This example panel uses port 5260 to share its data:

    <abs contexttype="opengear" jsonport="5260">
       <meta>
          <params>
             <param access="1" maxlength="0" name="Parameter One" oid="Parameter_One" type="STRING" value="First Value" widget="text"/>
             <param access="1" maxlength="0" name="Parameter Two" oid="Parameter_Two" type="STRING" value="Second Value" widget="text"/>
             <param access="1" maxlength="0" name="Device Name" oid="0x105" type="STRING" value="My Data Source" widget="default"/>
          </params>
       </meta>
       <param expand="true" height="94" left="30" oid="Parameter_One" showlabel="false" top="35" width="431"/>
       <param expand="true" height="90" left="30" oid="Parameter_Two" showlabel="false" top="144" width="434"/>
    </abs>
    

    You can then go to your client DashBoard and add a manual TCP/IP Dashboard Connect/openGear Frame pointed to the IP/Port of your server DashBoard and the panel's parameters will appear:

    After this, you can add parameters from your host/server panel to your client panels just like you did with the parameters from the proxied tally device.



    ------------------------------
    James Peltzer
    Ross Video
    ------------------------------



  • 13.  RE: Dashboard Tally Service

    Posted 08-28-2024 14:14

    Awesome! Thanks James will give that a shot



    ------------------------------
    Evan Aaron
    Engineer
    Game Creek Video
    ------------------------------