/Datatone-Watchout-Controller

A Datatone Watchout TCP Client C# Library.

Primary LanguageC#

Datatone Watchout Controller

A Datatone Watchout TCP Client C# Libary.

This libary aimes to provide a simple asynchronous communication API over TCP/IP in order to control the Datatone Watchout Production/Display Software.

The projects is well structured, documented and contains a good WPF sample project for interacting with a Production server.

All API implementations are bound to the Datatone Watchout manual: https://www.dataton.com/assets/Products/Watchout/WATCHOUT_5_Users_Guide.pdf




The API includes two separate interfaces:
WatchoutProductionClient - for interacting with the Watchout Production computer.
WatchoutDisplayClient - for interacting with the Watchout Display computer.

The following commands are supported:

Production Computer

  • run - Run timeline from current position, optional aux timeline name.
  • halt - Stop at the current position, with optional auxiliary timeline name.
  • kill - Stop and deactivate the named auxiliary timeline.
  • gotoTime - Go to a time position, specified in milliseconds or as a time. The second, optional, parameter selects an auxiliary timeline.
  • gotoControlCue - Go to a named Control cue (name is case sensitive).
  • standBy - Set the standby mode to true or false.
  • load - Load a show from specified file, with optional parameters.
  • online - Control the online status of the production software.
  • update - Update the display computers.
  • enableLayerCond - Set enabled layer conditions.
  • setInput - Set the value of a named Input, with optional fade-rate in mS.

Display Computer

  • ping - Do-nothing command causing a Ready feedback message to be sent.
  • authenticate - Perform authentication. Required prior to other commands.
  • load - Load a show and get ready to run.
  • run - Start running, optionally specifying an auxiliary timeline name.
  • halt - Stop running, optionally specifying an auxiliary timeline name.
  • kill - Stop and deactivate the named auxiliary timeline.
  • gotoTime - Jump to a time position.
  • gotoControlCue - Jump to the time position of a named Control cue.
  • enableLayerCond - Turn conditional layers on or off.
  • standBy - Enter/exit standby mode.
  • getStatus - Retrieves name and status of the currently running show.
  • reset - Reset and stop all timelines.
  • setInput - Set the value of a named Input, with optional fade-rate in mS.
  • wait - Waits for the entire display cluster to become established.

Usage Example

private async void Example()
{
   //Initialize a new production client.
   WatchoutProductionClient controller = new WatchoutProductionClient();
 
   //Connect the client to the production computer.
   controller.Connect("127.0.0.1");

   //Execute an auxiliary timline and wait for a response.
   var result = await controller.Run("timeline 1");
   if (!result.CommandSuccessful)
   {
      MessageBox.Show(result.Error.ToString());
   }
}

Sample Application

alt tag