Skip to content

Rust application enabling free streaming of data from a Daktronics console to the SaaS platform Singular.Live

Notifications You must be signed in to change notification settings

zabackary/daktronics-singular-ui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Daktronics Singular UI

A generically named cross-platform desktop application enabling free streaming of data from a Daktronics console to the SaaS platform Singular.Live.

CI status

Demo video

daktronics-singular-ui-demo.webm

Usage

Follow the directions in the app in order to use DSU. Basically, you need to create a profile which specifies a mapping between the fields received from the Daktronics console (see the documentation for fields available per sport). This mapping is used to read the incoming fields and output them as JSON for the Singular.Live datastream. For ease of use, a template Singular.Live Composition Script is bundled in the app; see the "Set up" tab.

Daktronics Singular UI also supports a variety of command-line options for use as a server application. As of September 2024, using DSU without a UI (i.e. headless) mode is not supported, but other than that, it should be all set to be used in an environment without human intervention. An example command can be found below.

daktronics-singular-ui \
  --profile /path/to/profile.dsu \ # the path to the profile
  --start \                        # automatically start streaming
  --serial-path /dev/USB0 \        # which serial port to use
  --hide-header \                  # hide the app header for small screens
  --unattended \                   # automatically restart on errors (default 3)
  --fullscreen                     # fullscreen UI

See the output of daktronics-singular-ui --help.

$ ./daktronics-singular-ui --help
Links the output of an Daktronics AllSport 5000 to Singular.Live

Usage: daktronics-singular-ui [OPTIONS]

Options:
  -l, --headless
          Whether to hide the UI (run without a window). Must be used with --start

  -p, --profile <PROFILE>
          The profile configuration file path. If not provided, the UI will prompt for one

  -s, --start
          Whether to start the stream immediately. Must be used with --profile and --serial-path

  -e, --serial-path <SERIAL_PATH>
          What serial path (e.g. /dev/xxx or COM1 on Windows) to use, when --start is used

  -f, --fullscreen
          Whether to start the program in fullscreen mode

      --hide-header
          Whether to hide the header and show a minimized video

          Useful for small display sizes

  -u, --unattended
          Enable unattended mode, restarting automatically if there are many errors

          Passing a number indicates the maximum tolerated error count. Default 3. Max 15.

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version

Setup

Binaries

Grab the binaries from the GitHub releases page. For now, a Linux binary and Windows binary are provided. Daktronics Singular UI is highly portable, so a MacOS version is possible. However, Apple does not make cross-compiling easy and I don't own a MacOS machine (I do have an old Mac Mini, so I might turn that into a build server, but no promises).

From source

To build from source, make sure you have a Rust toolchain installed, then do:

cargo build --release

and the binary will be built at target/release/daktronics-singular-ui. The binary does not have any dependencies as everything (libraries, icons, etc.) is statically linked.

To cross compile, using cross should be supported.

Stack

About

Written for the Christian Academy in Japan productions team for use in live-streaming sports events.

About

Rust application enabling free streaming of data from a Daktronics console to the SaaS platform Singular.Live

Topics

Resources

Stars

Watchers

Forks