Your message:
> Is the tcl server available?
>
> -randy
Randy -
Yes, the code is all in the Open Mash CVS archive. It is not
well-structured or documented, but as I said it is pretty easy to learn
and modify. We have built clients and servers that run as Open Mash
scripts and that run as Tcl/Tk scripts. The mash scripts are in
mash-code/mash/tcl and the tcl/tk scripts are in mash-code/apps. here
is a list of a couple of the applications:
1. mash/tcl/{rcc,rccd} - wei developed a camera client/server that
defined the model for a general camera server. we use the Parkervision
controls here for webcasting classes from several classrooms.
2. apps/vcc3 - client/server app for controlling a canon VCC3. i had a
student working on support for the newer VCC4 this semester, but i don't
think it got checked back into the archive.
3. apps/rswitch - gui for a routing switcher. this is the client. it
uses the nway server which i don't know where it is.
(Peter, do you know where the nway server is and the other client that
we use for webcasting in Soda?)
4. apps/amx - server to execute operations in an AMX control computer
through an rs232 interface.
5. mash/tcl/applications/avswitch* - client/server for a routing switch.
6. mash/tcl/applications/powerswitch* - <not sure what this does, it
probably controls the lutron lighting system installed in our building>
7. mash/tcl/applications/camera-* - an early camera client/server.
some of these control apps were designed to work with the Director's
Control (dc) application we developed for producing a webcast. As such,
they fit into a larger framework that included a service discovery
protocol and a soft-state protocol (Announce/Listen) that was very
reliable. if you want to read about the research behind all this work,
the paper on Streaming Media Middleware surveys the systems and
requirements for building and maintaining it. The paper is at
http://bmrc.berkeley.edu/papers/2001/159/
Other papers on dc and the automated control of webcasts are available
at http://bmrc.berkeley.edu/papers/.
So, which system/package should you start with. I would recommend you
look at mash/tcl/rcc*. the server is very simple and it shows how TclDP
is used to setup a client and a server and how RPC commands are done to
control things.
We have implemented a number of apps for our AG colab. I am not sure
they are in the current archive. We will do that shortly.
This code probably looks like a mess since it is all ad hoc. We found
the dc implementation and model hard to extend to other applications, so
we began development of a middleware package for controlling distributed
media resources. The goal was to simplify the development of
applications that required control of conventional a/v equipment and
streaming media applications. Rather than building a bunch of
customized special-purpose apps, we wanted to create a common library
and infrastructure for doing a variety of control and automation tasks.
My biggest objective is to reduce the need for human operators because I
believe that limits the widespread deployment and use of this
technology.
The system we designed and began to prototype was called INDIVA, which
is described at http://bmrc.berkeley.edu/projects/indiva.
If you have any questions, send them to the Open Mash developers list
which you can join at http://www.openmash.org/.
Enjoy!
Larry
--
Professor Lawrence A. Rowe Internet: Rowe@BMRC.Berkeley.EDU
Computer Science Division - EECS Phone: 510-642-5117
University of California, Berkeley Fax: 510-642-5615
Berkeley, CA 94720-1776 URL: http://bmrc.berkeley.edu/~larry
- To: ag-tech@mcs.anl.gov
- Subject: Re: [AG-TECH] mute control.
- From: "Lawrence A. Rowe" <Rowe@bmrc.berkeley.edu>
- Date: Tue, 27 May 2003 12:57:32 -0700
- CC: James Miller <millerjw@psc.edu>
- Organization: U.C. Berkeley
- References: <Pine.SGI.3.95.1030522134741.1426359B-100000@okeefe.ncsa.uiuc.edu>
- Reply-To: Rowe@bmrc.berkeley.edu
- Sender: owner-ag-tech@mcs.anl.gov
hi - we developed our AG facility so that *every* a/v device and computer can be controlled from a computer - that means implementing an rs232 or IR interface to each device. then, you can use tcl/tk to write GUI interfaces to control anything (e.g., routing switchers, pan/tilt cameras, mixers, projectors - such as switching from RGB to NTSC/PAL and turning them on/off, etc.). we have a generic tcl server that can be easily modified/extended to send the appropriate text commands to a device over the interface. the rs232 interface code is simple since tcl has a socket abstraction that allows you to talk to serial ports. you can also purchase a board for linux or windows that sends text commands out over an IR interface to a device (e.g., tape the LED to the remote control window on the device). i think that board also looks like a serial device. the gentner audio mixer has an rs232 interface so it would be easy to implement the server to talk to it. now, you need user interfaces. we typically develop small tcl/tk scripts with GUI's that provide the operational interface you want. these commands do TclDP RPC's to the server which pass the commands on to the device. so, you could implement several different scripts -- one for master control operators and one for participants. the participants could run their scripts on laptops or pdas connected via wireless network so that RPC's can be sent to the server. you could even allow the master control operator to configure the state of the control system so participants cannot override his/her decisions. for example, we use multiple routing switchers to manage webcasts produced from different classrooms. we have one client script that gives a guru complete control of all sources and destinations w/o having to know the actual connections between the switches. however, webcast operators, who are typically undergrads trained in 1-2 hours, only need to control the sources in a particular room -- so we wrote a different client that just provides the controls for the sources in a specific room with the interface identifying the various cameras and video sources (e.g., "Speaker", "Stage", and "Audience" cameras, VCR, and scan converter). most webcasters find it easy to learn and use. developing these client/server scripts is relatively easy. we have undergraduates write new services and client scripts after 2-3 weeks of training and giving them one of the existing client/server programs as a starting point. the good thing about all this is that it is extremely portable. we run client programs on any platform and connect to servers that run typically on the control computer in the AG configuration - which given modern processors also serves as our audio machine. i have had a lot of experience with traditional a/v control systems (e.g., amx, crestron, etc.). i find them expensive and difficult to modify - you have to use their proprietary cruddy scripting language and, if you want to connect it to the Internet you need another server sitting next to it to forward commands to the control computer through an rs232 interface. this configuration introduces significant latency. also, having the control software in a specific computer that may or may not be easy to modify makes it much harder to manage the sofware. change is difficult and error prone -- hence, most operational folks don't want to change it very often which impedes new development and experimentation. that's why the model should be "use a general purpose computer" with a open source scripting language for control rather than using an "oem customized computer" with a proprietary scripting language. Larry -- Professor Lawrence A. Rowe Internet: Rowe@BMRC.Berkeley.EDU Computer Science Division - EECS Phone: 510-642-5117 University of California, Berkeley Fax: 510-642-5615 Berkeley, CA 94720-1776 URL: http://bmrc.berkeley.edu/~larry