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:
- 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.
- 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.
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());
}
}
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());
}
}