Wasp3D Automation Protocol

whinnycampingMechanics

Nov 5, 2013 (4 years and 8 days ago)

89 views



Wasp
3D

Automation Protocol

Version 3.0

Technical Article | Writers:
P.M.Sudheesh

| Published:
August
20
10



Page
2

of
15


Overview

Wasp3D Automation Protocol

lets devices to control th
e Wasp3D sting Server (graphics playout).
It

is based on ASCII
based simple text commands separated by a carriage return
\
r

Chr (13)

and newline character
\
n

Chr (10)
. Automation
Systems can connect to Wasp automation driver through TCP/IP. Communication in Full Duplex with each command is
acknowled
ged by Wasp3D system by an ACK or NACK Message.

Command Format

Command
<Space>

ParameterName
=ParameterValue”
<space>

ParameterName
=
ParameterValue

\
r
\
n

<Space>


Separator used between command and parameters




Container for Parameter name and parameter value
pair

\
r
\
n


Command terminator

Automation Command Architecture

AUTOMATION SERVER
SECONDARY EVENT
1
SECONDARY EVENT
2
SECONDARY EVENT
3
SECONDARY EVENT
4
WASP
3
D DEVICE DRIVER
WASP
3
D STING SERVER
WASP
3
D Automation Driver

Automation Process Workflow

Wait for Command
Command Separator
Received
?
NO
YES
Multiple Commands
Received
?
NO
YES
Extract Individual
Commands
Full Command Received
?
Add to Message Parser
Queue
NO
YES
Message Valid
NO
YES
Reject the Message
Send
NACK
back to
Client
Convert the Message
To native commands
&
Send to
Sting Server
Wait for the Message
From Sting server
&
Send back Response

Page
3

of
15


Integrati
ng

Wasp3D with the
Newsroom (
NRCS
)

and Automation System (3
-
Way

Integration
)

ActiveX Inside NRCS
1
.
User selects the Graphic templates
2
.
Populates the variable Data
3
.
Embeds the Graphic in the Story
NRCS Server
MOS
Messages
Wasp
3
D BeeKeeper

(
Automation Server
)
Automation System
Automation sends
Wasp
3
D Commands
with
MOS ID


Integrating Wasp3D with a Traffic System and Automation System (3
-
Way Integration)

ActiveX Inside traffic System
1
.
User selects the Graphic templates
2
.
Populates the variable Data
3
.
Embeds the Graphic in the Story
Automation System
Imports the traffic schedule
containing the Wasp
Graphic information
Wasp
3
D BeeKeeper
(
Automation Server
)
Automation sends
Wasp
3
D Commands
with ‘
MOS ID’

or
‘Slug’
Wasp
3
D DataBuzz
1
.
User selects the Graphic templates
2
.
Populates the variable Data
3
.
Copies the Graphics
ObjectID


or the
Slug
into the schedule



Page
4

of
15


Integrating Wasp3D with an Automation System

ActiveX Inside Automation System
1
.
User selects the Graphic templates
2
.
Populates the variable Data
3
.
Embeds the Graphic in the Story
Automation System
Wasp
3
D BeeKeeper
(
Automation Server
)
Automation sends
Wasp
3
D Commands
with ‘
MOS ID’

or
‘Slug’
Wasp
3
D DataBuzz
1
.
User selects the Graphic templates
2
.
Populates the variable Data
3
.
Copies the Graphics
ObjectID


or the
Slug
into the schedule



Page
5

of
15


Wasp3D Acronyms

Template

A Template (
or a Graphic Template) is also known as a Scenegraph. It contains the 3d objects along with their
animations. A template may contain multiple control keys (e.g. timed pause, infinite pause, play complete etc. which
provide the functionality of keyframe ba
sed actions to be performed in the graphics)


Wasp3D Sting Server

This is the real
-
time rendering engine for the graphics playout. The graphics are delivered as SD/HD


SDI with Fill and
Key Outputs.


Wasp3D
Bee Keeper

The Beekeeper is an automation
control application. It provides the gateway for communication between Wasp3D
and various newsroom, traffic and automation system.


Player

To Control the Playout of a Graphic Template


The Player (or play control) provides controls to Initialize, Play, Pa
use,
and stop the Graphics Animation.


Playlist

A
Playlist (
also called
rundown
)
is a collected
of graphic
template instances that needs to be played. In W
asp3d
the
data and the template are
stored
separately.
The templates are stored in a central server
and the data is stored in the
DB. Each playlist instance is a combination (or union) of a template and a data.

Data element for a particular template can be created
using Wasp3D ActiveX or D
ata
B
uzz. When a particular instance
is loaded, the system marries

the data element with the template and load
s them on the Sting S
erver.
The
playlist can
have predefined “Z” order
ing, and hence by default all data instances in the playlist will get loaded in the same ‘Z’
order.
Multiple playlist can be active

and played

simultaneously
at same time on the system
.


Program

A
Program is container for playlists. Each program can have multiple playlist with different “Z” order. By sending
controlling commands to Program, multiple playlist can be controlled at same time
.

Progr
am
s are
created
using the
Wasp3D
Hive

manager. Once a Program is created user
s

can drag drop existing playlist
s into this Program
or create
new playlist
s and assign them to
the program. User can also assign a particular “Z” order for layering purpose.



Data Instance or Template instance

A Data instance is the d
ata

information (of the variable elements of a graphic template) that an end user populates.

A Data instance consists of two pieces of information


the Variable Text data that an end user fill in

and the
associated graphics template for this variable data. Since both these are stored separately


each template can have
‘n’ number of data instance associated with it.






Page
6

of
15


Wasp3D Control Commands

The Wasp3D Control commands can be broadly categoriz
ed into Program Commands, Playlist Commands and Player
Commands.


Program Commands

Commands in this category are executed mainly for “Batch Operation” on
the Sting Server (P
lay
out S
erver
)
.

Scenarios
:
A
Typical scenario
would be to take ‘OFF AIR’ all active

graphic

being played out from the Sting Server.

So there may be cases where
a T
icker

(or crawl) is

running from one playlist,
a
lower
-
third
from
another
, a S
ide
B
ug
from a third playlist


and Each of these playlist are running on a specified Z
-
Order. B
y

sending commands in the
Program category, one can control
all the on
-
air graphic by a single
command
.


Playlist

Commands

Playlist Commands are used for controlling a specific playlist
.
Playlist elements are sequentially controlled in an
automated fashion by the Automation System.

Scenarios
:
When controlling a
Ticker

or a
lower third, logo etc.
the P
laylist level commands are used

to control the
behavior at the instance level
. One also s
end commands to control the instances in rundown sequentially by using
commands like loadFirstItem, loadNextItem, loadPreviousItem and loadLastItem commands
.


Player

Commands



Commands in this category are used for controlling individual graphic
instances.

Scenarios
:
When
the A
utomation
System
owns the rundown and
instructs the W
asp3d
Sting Server
to load
a
specific
graphic

template (or instance)
as per
the predefined
schedule
.



Command Number

PGM001

Category

PROGRAM

Command

load

Purpose

Loads the specified program. If a program
is
already loaded
,
it will be unloaded first
before executing this command

Compulsory parameters

1

Optional Parameters

1


Command

Parameter 1

Optional parameter 1

*

load

Program={name of the program}

Engine={target play out server name}


Description:

This command is the first command
that
normally
needs to be
sen
t when working with
P
rogram

Commands
. All
P
laylist

in the specified
P
rogram

will automatically get loaded with
their
assigned “Z” order.
The
optional parameter
Engine

is
specifie
s the Sting Server on which the
playlist
s

will be
loaded for P
lay
O
ut
.
If no Engine is mentioned,
the
system will pick up the default engine
as
configured
in the

wasp3d system.


Example

load

“Program=MCR”
\
r
\
n

load

“Program=MCR” “Engine=wasp3d
-
MCR
-
CH1“
\
r
\
n



Page
7

of
15


Command Number

PGM002

Category

PROGRAM

Command

start

Purpose

Starts already loaded program. The command will fail if program is not already loaded
into the system. If a program is already in “pause” mode,
瑨en⁩ ⁷楬氠牥le慳e⁴Ue⁰慵se
po楮W

䍯Cpu汳o特⁰慲慭e瑥Ws

1

佰瑩Wn慬a偡牡me瑥Ws

0


Command

Parameter 1

Optional parameter 1


start

Program={name of the program}



Description

Executing this command will result in
s
tarting
the graphics playout of
each

playlist in the program. This command
assumes that there is already a loaded Program in the system (loaded either manually on Wasp3D sting client or
through the command PGM001) . If there is no program already loaded this command will fail. If there is a
program in
“Pause” mode (see PGM003) then, it will release the pause point and continue the program



Example


start

“Program=MCR”
\
r
\
n



Command Number

PGM003

Category

PROGRAM

Command

pause

Purpose

Pauses already started Program. If
there is no started program the command will fail

Compulsory parameters

1

Optional Parameters

0



Command

Parameter 1

Optional parameter 1


pause

Program={name of the program}



Description

This command will “pause” already running programs. A Pause command, freezes all the active on
-
air graphics at the
exact instance when the command is received by the Sting Server. This Command
will not

clear

the video buffer of
any graphic contents. A “Pau
sed” program can be released by sending
the
start

command
as specified in PGM002.


Example:


pause

“Program=MCR”
\
r
\
n



Page
8

of
15


Command Number

PGM004

Category

PROGRAM

Command

stop

Purpose

Stops already started Program. If there is no started
program the command will fail

Compulsory parameters

1

Optional Parameters

0


Command

Parameter 1

Optional parameter 1


stop

Program={Name of the program}



Description

This command will stop active On
-
Air Programs. If there is no program loaded, this
command will fail. If a program is
already started, then it will stop the program, and take all graphic OFF
-
AIR. This command will also reset the position
of currently playing items in each playlist to start of the playlist


Example:


stop


Program=MCR”
\
r
\
n




Command Number

PGM005

Category

PROGRAM

Command

offair

Purpose

Pauses and

takes
OFF
-
AIR already started Program. If there is no started program the
command will fail

Compulsory parameters

1

Optional Parameters

0


Command

Parameter
1

Optional parameter 1


offair

Program={Name of the Program}



Description:

This comma
nd do the same action as
pause

Program

(see PGM003) but will also take the program

OFF
-
AIR. The
program will remain in the pause state while in “O
FF
-
AIR” mode until it receives
onair

Program

command
(see
PGM006). If no program
is currently

loaded in the system the command will fail.



Example:


offair

“Program=MCR”
\
r
\
n



Page
9

of
15



Command Number

PGM006

Category

PROGRAM

Command

onair

Purpose

Releases the P
ause and
takes
ON
-
AIR already started Program. If there is no started
program the command will fail

Compulsory parameters

1

Optional Parameters

0


Command

Parameter 1

Optional parameter 1


onair

Program={name of the Program}



Description

This command will release the pause point that has been created by an
offair

Program command (PGM005) and take
the program ON
-
AIR


Example


onair

“Program=MCR”

\
r
\
n




Command Number

PLY001

Category

PLAYLIST

Command

load

Purpose

Loads the specified playlist.

Compulsory parameters

1

Optional Parameters

1


Command

Parameter 1

Optional parameter 1 *

load

Playlist={name of the playlist}

Engine={target play out server name}


Description

Executing this command will result in loading the specified playlist.
Playlist
s can be
created
in the
Wasp3D
Hive
M
anager or through MOS Messages. If optional parameter
of the
Engine is specified then the playlist will be assigned
the specified
Sting Serve
r for playout
. If no Engine is mentioned, system will pick up the default engine configured at
wasp3d system.



Example


load

“Playlist=MCR”
\
r
\
n



load

“Playlist=MCR” “Engine=wasp3d
-
PCR
-
CH1“
\
r
\
n




Page
10

of
15


Command Number

PLY002

Category

PLAYLIST

Command

start

Purpose

Starts already loaded playlist. The command will fail if playlist is not already loaded into
the system. If a playlist is already in “pause” mode, then it will release the pause point

䍯Cpu汳o特⁰慲慭e瑥Ws

1

佰瑩Wn慬a偡牡me瑥Ws

0




Command

Parameter 1

Optional parameter 1


start

Playlist={name of the playlist}



Description:

Executing this command will result in starting the playlist. This command assumes that there is already a loaded
Playlist in the
system (loaded either manually on Wasp3D sting client or through the command PLY001). If there is no
playlist already loaded this command will fail. If there is a playlist in “Pause” mode (see PLY003) then, it will release
the pause point and continue the
playlist


Example


start

“Playlist=Ticker”
\
r
\
n



Command Number

PLY003

Category

PLAYLIST

Command

pause

Purpose

Pauses already started Playlist. If there is no started playlist the command will fail

Compulsory parameters

1

Optional
Parameters

0


Command

Parameter 1

Optional parameter 1


pause

Playlist={name of Playlist}



Description

This command will “pause” the currently running playlist.
A Pause command, freezes all the active on
-
air graphics at
the exact instance when the command is received by the Sting Server. This Command
will not

clear

the video buffer of
any graphic contents.
A “Paused” playlist can be released by sending
start

Playl
ist as specified in PLY002.


Example


pause

“Playlist=Ticker”
\
r
\
n




Page
11

of
15



Command Number

PLY004

Category

PLAYLIST

Command

stop

Purpose

Stops already started Playlist. If there is no started playlist the command will fail

Compulsory
parameters

1

Optional Parameters

0


Command

Parameter 1

Optional parameter 1

stop

Playlist={name of the Playlist}



Description

This command will stop an already started playlist. If there is no playlist loaded, this command will fail. If a playlist
is
already started, then it will stop the playlist, and take all graphic OFF
-
AIR. This command will also reset the position of
currently playing items in the playlist to start of the playlist


Example


stop

“Playlist=Ticker”
\
r
\
n




Command

Number

PLY005

Category

PLAYLIST

Command

offair

Purpose

Pauses and
takes
OFF
-
AIR already started Playlist. If there is no started playlist the
command will fail

Compulsory parameters

1

Optional Parameters

0


Command

Parameter 1

Optional parameter 1


offair

Playlist={Name of the Playlist}



Description

This command does the same action as
pause

Playlist (see PLY003). Apart from pausing the Playlist, it will also take
the playlist OFF
-
AIR. The playlist will remain in the pause state while in “O
FF
-
AIR” mode until it receives
onair

Playlist
(see PLY006). If no playlist is currently loaded in the system , the command will fail.


Example


offair

“Playlist=Ticker”
\
r
\
n




Page
12

of
15



Command Number

PLY006

Category

PLAYLIST

Command

onair

Purpose

Pauses and ON
-
AIR already started Playlist. If there is no started playlist the command
will fail

Compulsory parameters

1

Optional Parameters

0


Command

Parameter 1

Optional parameter 1


onair

Playlist={Name of the Playlist}



Description

This command will release the pause point that has been created by an
offair

Playlist command (PLY005) and take the
program ON
-
AIR


Example


onair

“Playlist=Ticker”
\
r
\
n



Command Number

PLY007

Category

PLAYLIST

Command

load

Purpose

Loads
a specific instance from playlist

Compulsory parameters

2

Optional Parameters

0


Command

Parameter 1


parameter 2


load

Playlist={Name of the Playlist}

Position={Position in the playlist}


Description

This command will load the specified instance in
the specified playlist. The command will fail if specified playlist is not
already loaded in the system. Position parameters can be either predefined values “
NEXT
”,”
FIRST
”,”
PREVIOUS
”,”
LAST

or the sequential number of the instance in the playlist or instan
ce number associated with the Instance.


Example


load

“Playlist=Ticker” “Position=FIRST”
\
r
\
n




Page
13

of
15



Command Number

PLR001

Category

PLAYER

Command

load

Purpose

Load the specified instance

Compulsory parameters

1

Optional Parameters

3


Command

Parameter 1

Optional parameter 1


Optional parameter 2

Optional parameter 3

load

Instance={Name of the
Instance}

Playlist={Name of the
Playlist}

Zorder={value}

Engine={Play out server
name}


Description

This command will load the specified instance into the
Sting Server
. If the instance doesn’t exist, then the command
will fail. If there are multiple instances with the same name, then first available instance will be get loaded. If
a
playlist
name is
specified
, the
system will search for the instance in the specified playlist and if found loads that instance. If

the
Z
-
order is specified
,
the instance will be assigned with that number. If Engine name is specified, then the instance
will be loaded on the

specified
Sting Server E
ngine/
C
hannel. If engine name is absent from the command
, the

system
will choose default server assigned.

One can have multiple instances loaded
simultaneously
on the server
.


Example


load

“Instance= Story 1”
\
r
\
n


load

“Instance=

{BAEC83DA
-
46F5
-
4C96
-
AF5A
-
A6039D55E993}

\
r
\
n
//ObjectID


load

“Instance= Story 1” “Playlist=News@9”
\
r
\
n


load

“Instance=
{BAEC83DA
-
46F5
-
4C96
-
AF5A
-
A6039D55E993}
” “Playlist=News@9”
\
r
\
n



load

“Instance= Story 1” “Playlist=News@9” “Engine=Wasp
-
PCr
-
Ch1”
\
r
\
n


load

“Instance= Story 1” “Zorder=1”
\
r
\
n




Command Number

PLR002

Category

PLAYER

Command

start

Purpose

Start specified player

Compulsory parameters

1

Optional Parameters

0


Command

Parameter 1

Optional parameter 1


start

Instance={Name of the Instance}



Description:

This
command will start the specified player. The Data I
nstance should be loaded into the system (see PLR001) before
this command. If the specified player is not loaded the command will fail. If the Data Instance is already loaded and in
a “Paused” state (see PLR003), then it will release the Pause Point.


Exam
ple:


start

“Instance= Story 1”
\
r
\
n


start

“Instance=

{BAEC83DA
-
46F5
-
4C96
-
AF5A
-
A6039D55E993}

\
r
\
n
//ObjectID



Page
14

of
15


Command Number

PLR003

Category

PLAYER

Command

pause

Purpose

pause
s

specified player

Compulsory parameters

1

Optional Parameters

0


Command

Parameter 1

Optional parameter 1


pause

Instance={Name of the Instance}



Description

This
command will P
ause the specified player. The specified instance should be loaded into the system (see PLR001)
before this command. If the specified player is not loaded the command will fail. Once this command is executed, it
needs to be released using

the
start

Player

(see PLR004) command
.


Exampl
e


pause

“Instance= Story 1”
\
r
\
n


pause

“Instance=

{BAEC83DA
-
46F5
-
4C96
-
AF5A
-
A6039D55E993}

\
r
\
n
//ObjectID




Command Number

PLR004

Category

PLAYER

Command

stop

Purpose

stop
s

specified player

Compulsory parameters

1

Optional Parameters

0


Command

Parameter 1

Optional parameter 1


stop

Instance={Name of the Instance}



Description

This
command will stop the specified player. The specified instance should be loaded into the system (see PLR001)
before this command. Executing this command will result in stopping of the animation in the graphic and taking the
graphic “OFF
-
AIR”. This command
will not unload the graphic from memory of playout server until the
unload

Player
(see PLR005) is called. A stopped instance can be started again by sending the
start

Player command (PLY002)
without sending
load

Player(PLR001) command again.


Example


stop

“Instance= Story 1”
\
r
\
n


stop

“Instance=

{BAEC83DA
-
46F5
-
4C96
-
AF5A
-
A6039D55E993}

\
r
\
n
//ObjectID



Page
15

of
15


Command Number

PLR005

Category

PLAYER

Command

unload

Purpose

stop and unload the specified player

Compulsory
parameters

1

Optional Parameters

0


Command

Parameter 1

Optional parameter 1


unload

Instance={Name of the Instance}



Description

Executing this command will stop the current scenes animation in the graphic and take it “OFF
-
AIR”
. The Templates
are also unloaded from the Sting Server. The specified instance should be loaded into the system (see PLR001) before
this command. An unloaded instance
cannot

be started again by sending
start

Player command (PLY002) unless the
load

Playe
r(PLR001) command is sent first.


Note: Templates with “Play Complete” control points will automatically be unloaded from the Sting Server when the
Play complete Control point is encountered in the timeline..


Example


unload

“Instance= St
ory 1”
\
r
\
n


unload

“Instance=

{BAEC83DA
-
46F5
-
4C96
-
AF5A
-
A6039D55E993}

\
r
\
n
//ObjectID



Command Number

PLR006

Category

PLAYER

Command

graphicOut

Purpose

stop and unload the specified player with Out animation

Compulsory parameters

1

Optional Parameters

0


Command

Parameter 1

Optional parameter 1


graphicOut

Instance={Name of the Instance}



Description

This command is
a
special command
and works similar to the
unload

Player command., but the
execut
ion of the
command is a bit different then the unload command.
Instead of taking the graphic
Off
-
Air
immediately, this
command will release all pause triggers
in the template, till it encounters the Play Complete Control key, thus
allowing the graphics t
o play their OUT Animation
.


Example


graphicOut

“Instance= Story 1”
\
r
\
n


graphicOut

“Instance=

{BAEC83DA
-
46F5
-
4C96
-
AF5A
-
A6039D55E993}

\
r
\
n
//ObjectID