Vz:Doc:IpControl

From M1Research

Revision as of 07:31, 26 January 2009 by Verem (Talk | contribs)
Jump to: navigation, search

IP Control protocol is simplest way for VZ control.

By default VZ uses TCP/8001 port for shell style control protocol and UDP/8002 for non-interactive datagram proto.

Contents

UDP messages

This protocol provides fast and sessionless control type. Due to binary nature of command data block you need to use vzCmdSender.exe program.

Some examples:

load new scene

vzCmdSender.exe localhost LOAD_SCENE "./projects/demo1.xml"

Set text fields

vzCmdSender.exe localhost SET text_2 s_text "Senior Deputy Officer" SET text_1 s_text "Vasilij Pupkin"

start animation

vzCmdSender.exe localhost START_DIRECTOR main 0

continue (hide) animation

vzCmdSender.exe localhost CONTINUE_DIRECTOR main

TCP shell=

To connect to TCP/8001 and send commands you need a telnet client program. Find appropriate "telnet" program for operating. "putty" is nice free program.

Connecting

[verem@elbrus reports]$ telnet vz-dev 8001
Trying 10.1.5.23...
Connected to vz-dev.internal.m1stereo.tv (10.1.5.23).
Escape character is '^]'.
ViZualizator (vz-1.0-release) [tcpserver]

vz in$>

As use can see vz service is online and is ready to accept commands.

Commands

NOTE! Tune your telnet program for UTF-8 characters.

Each command sent to VZ has javascript-like structure. I try to descibe most usefull commands format with examples.

  • renderman.load(<scene_name>)

Perform scene loading into rendering engine, for example:

vz in$> renderman.load(./projects/demo1.xml)
vz out$> OK!Load
  • tree.function.<function_id>.<parameter_name>=<value>

perform parameter setting for function, for example:

vz in$> scene.tree.function.text_1.s_text=Prived Medved
vz out$> OK
vz in$> scene.tree.function.text_2.s_text=Hi Man!
vz out$> OK
  • tree.container.<container_id>.visible=<value>

Container visibility control

  • tree.motion.director.<director_id>.start([<position>])
  • tree.motion.director.<director_id>.stop()
  • tree.motion.director.<director_id>.continue()
  • tree.motion.director.<director_id>.reset([<position>])

Directors (animation) control

For example:

Start animation on director main.
vz in$> scene.tree.motion.director.main.start()
vz out$> OK
Continue animation on director main after pausing.
vz in$> scene.tree.motion.director.main.cont()
vz out$> OK
  • tree.motion.timeline.<timeline_id>.<t1|t2|y1|y2>=<value>

timeline modification.

Personal tools