Tango Delta Configuration and Troubelshooting

Modified on Tue, 10 Sep at 6:25 PM

Friendly Reminders:

 

TangoDelta Setup and Configuration Below

In order to configure the server to read input from the TangoDelta device, you have to edit the director.conf file.

 


Friendly Reminder: Note that there are two ways to setup the TangoDelta, either use “normal” or “hybrid” mode.

 

1A. Normal mode scoreboard device setup

In this mode, we explicitly disable the readers to avoid any conflicts between inputs. This is usually how we connect all the score devices

In director.conf, add the following lines:


1B. Hybrid scoreboard device setup (for LNB)

In Hybrid mode we do NOT disable the readers because they will be used as a backup source.

The way this works, is by always using the TangoDelta and only switch to OCR in the following cases:

  • TangoDelta stops sending data.

  • TangoDelta sends non-readable data.

Because we rely on the OCR in case of issues, they will have to be calibrated at all times!


2. Firewall setup (not necessary anymore)

This step should not be considered any longer as TangoDelta firewall rules have been globally whitelisted and there is no need to add them manually.

 

Open required communication ports for TangoDelta in the firewall is listed below (No longer necessary).


Here is what you need to add in the /home/setup/config/custom_firewall_rules.sh file on the server



Then launch



 If that file does not exist, create it with:

 

 

 


Troubleshooting - What does the TangoDelta data look like?

As of 12/03/2021, this is the documentation for TangoDelta and the information is listed below.

1.2 Data Layer

Tangodelta system continuously writes messages to the data link every 400ms.
There are only one type of

message, providing different information.
 

- Message format:

 

          +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

  labels  | P | Q |     gameclock     | shotclock |  score H  |  score G  | P |

          +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

  offset  | 0 | 1 | 2   3   4   5   6 | 7   8   9 | A   B   C | D   E   F | 0 |

          +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

 example  | < | 0 | 0   0   :   0   0 | :   2   4 | 0   0   0 | 0   0   0 | > |

          +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

 example  | < | 8 | 0   1   2   .   7 | 3   .   2 | 0   0   1 | 0   0   2 | > |

          +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

 

    Padding (P) - offset 0
        * `<`          ->  Start of message


    Quarter (Q) - offset 1
        * 1 decimal    ->  [0; 9]


    Gameclock - offset [2; 6]
        * ` -:- `      ->  Cleared value, regex("\s-:-\s")
        * `MM:SS`      ->  Minutes and Seconds
        * `0SS.D`      ->  last minute with deciseconds, prepended by `0`
        - `0SS:D`      ->  same as above - TO BE CONFIRMED

 

    Shotclock - offset [7; 9]
        * ` - `        ->  Cleared value, regex("\s-\s")
        * `:SS`        ->  Seconds, always prepended by `:`
        * `S.D`        ->  last 5 seconds with deciseconds

 

    Score H - offset [10; 12]

        * 3 decimals   ->  [000; 999]


    Score G - offset [13; 15]

        * 3 decimals   ->  [000; 999]


    Padding (P) - offset 16

        * `>`          ->  End of message

- Sample messages:

    <110:00:24000000> Start of the game -> period 1, time: 10:00, 24 chrono: 24, score: 0-0
    <400:00:12050090> End of the game -> period 4, time: 00:00, 24 chrono: 12, score: 50-90
    <0 -:-  - 000000> All cleared -> period 0, time: cleared, 24 chrono: cleared, score: 0-0

*/

 

How to enable extra scoreboard network logs?

If you wish to capture extra logs, you can edit the director.conf within webadmin and add the following XML block inside of it.


For every new recording, this will create or overwrite the file “/home/keeadmin/TangoDeltaNetwork_debug


 

Example of this within director.conf

// ...
#define SCOREBOARDLINK SBL_MODE_TANGODELTA
// ...

#ifdef SCOREBOARDLINK
    <ConfigureFilter Name="sbl">
        <Property Name="DebugLogFilename">TangoDeltaNetwork_debug</Property>
    </ConfigureFilter>
#enfif

// ...

How to detect if we receive data from TangoDelta?

Run the following command:

run_as_root "tcpdump -i any -s0 -nett udp port 16940 -A -s0"

 

This will show the TangoDelta network input in real time and should look something like this:

 tcpdump example output show below.
1601149371.906658  In 88:83:5d:4f:e8:14 ethertype IPv4 (0x0800), length 62: 192.168.1.41.60167 > 192.168.1.45.16940: UDP, length 17
E..-k.....K[...)...-..B,....<105:59:24001001>.
1601149371.906658  In 88:83:5d:4f:e8:14 ethertype IPv4 (0x0800), length 62: 192.168.1.41.60167 > 192.168.1.45.16940: UDP, length 17
E..-k.....K[...)...-..B,....<105:59:24001001>.
1601149371.906658  In 88:83:5d:4f:e8:14 ethertype IPv4 (0x0800), length 62: 192.168.1.41.60167 > 192.168.1.45.16940: UDP, length 17
E..-k.....K[...)...-..B,....<105:59:24001001>.
1601149371.906658  In 88:83:5d:4f:e8:14 ethertype IPv4 (0x0800), length 62: 192.168.1.41.60167 > 192.168.1.45.16940: UDP, length 17
E..-k.....K[...)...-..B,....<105:59:24001001>.
1601149371.906658  In 88:83:5d:4f:e8:14 ethertype IPv4 (0x0800), length 62: 192.168.1.41.60167 > 192.168.1.45.16940: UDP, length 17
E..-k.....K[...)...-..B,....<105:59:24001001>.
1601149371.906658  In 88:83:5d:4f:e8:14 ethertype IPv4 (0x0800), length 62: 192.168.1.41.60167 > 192.168.1.45.16940: UDP, length 17
E..-k.....K[...)...-..B,....<105:59:24001001>.
1601149371.906658  In 88:83:5d:4f:e8:14 ethertype IPv4 (0x0800), length 62: 192.168.1.41.60167 > 192.168.1.45.16940: UDP, length 17
E..-k.....K[...)...-..B,....<105:59:24001001>.
1601149371.906658  In 88:83:5d:4f:e8:14 ethertype IPv4 (0x0800), length 62: 192.168.1.41.60167 > 192.168.1.45.16940: UDP, length 17
E..-k.....K[...)...-..B,....<105:59:24001001>.
1601149371.906658  In 88:83:5d:4f:e8:14 ethertype IPv4 (0x0800), length 62: 192.168.1.41.60167 > 192.168.1.45.16940: UDP, length 17
E..-k.....K[...)...-..B,....<105:59:24001001>.
1601149371.906658  In 88:83:5d:4f:e8:14 ethertype IPv4 (0x0800), length 62: 192.168.1.41.60167 > 192.168.1.45.16940: UDP, length 17
E..-k.....K[...)...-..B,....<105:59:24001001>.
1601149371.906658  In 88:83:5d:4f:e8:14 ethertype IPv4 (0x0800), length 62: 192.168.1.41.60167 > 192.168.1.45.16940: UDP, length 17
E..-k.....K[...)...-..B,....<105:59:24001001>.
1601149371.906658  In 88:83:5d:4f:e8:14 ethertype IPv4 (0x0800), length 62: 192.168.1.41.60167 > 192.168.1.45.16940: UDP, length 17
E..-k.....K[...)...-..B,....<105:59:24001001>.
1601149371.906658  In 88:83:5d:4f:e8:14 ethertype IPv4 (0x0800), length 62: 192.168.1.41.60167 > 192.168.1.45.16940: UDP, length 17
E..-k.....K[...)...-..B,....<105:59:24001001>.
1601149371.906658  In 88:83:5d:4f:e8:14 ethertype IPv4 (0x0800), length 62: 192.168.1.41.60167 > 192.168.1.45.16940: UDP, length 17
E..-k.....K[...)...-..B,....<105:59:24001001>.
1601149371.906658  In 88:83:5d:4f:e8:14 ethertype IPv4 (0x0800), length 62: 192.168.1.41.60167 > 192.168.1.45.16940: UDP, length 17
E..-k.....K[...)...-..B,....<105:59:24001001>.



If no output is shown, this means we did not receive data from the TangoDelta.

This can happen within the means below:

  • TangoDelta device is offline.

  • TangoDelta device is sending data to the wrong IP. (The arena might have changed IP)

  • TangoDelta is on the wrong network.

 


How to detect which source is being used during a live?

 

During a live game, all scoreboard related information is written to 


In that file, the following characters can be “grepped” for a clearer overview :

  • --> : input (What is read/received by either OCR/SVM/TANGODELTA)

  • <-- : output (What will be sent to the score bar)

  • READER | : Analysis information about a source value (OCR or SVM)

  • DEVICE | : Analysis information about a source value (Scoreboard device)



Example output shown below:

 


How to disable the TangoDelta input?

In case of issues with the TangoDelta, we can manually discard the data with the command listed below:


In case of a “Hybrid setup” (see 1B). This command will allow the OCR data to be used to populate the score bug.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article