Spider and SchedSeven

Revision as of 13:35, 27 September 2011 by Sam.nicholson (talk | contribs) (Added spider hardware section)

Built by Dave Baker and Rob Humphrey in summer 2005 to replace the BBC Schedula system, this now handles YSTV's 24/7 output to both the campus network and the internet.

SchedSeven monitors a MySQL data base of scheduled programs, and sends commands to Spider when programmes are due to go out. SchedSeven also implements automatic filling of short gaps in the schedules and addition of idents before programs.

Spider is a priority-aware clearing house for control of anything and everything in the station that is capable of remote control. Currently it drives the Video Server and network video mux to schedule repeats of YSTV's programming.

Around 2009, SchedSeven was ditched in favour of skedular, with more bells, whistles, sticks...and a lot less gap filling, not sure what happened to that feature. Just two short years later, in the Summer of 2011, a project named docs:Tarantula was hatched, on account of the Video Server's software packing up and Spider being generally naff, to replace Skedular and the ageing Spider with an all singing, all dancing new scheduling and automation system (Michael Cullen's new job in broadcast automation probably had something to do with it too).

Spider Software

This has been ripped out of the old docswiki page and preserved for posterity, since Spider is (not especially) sadly defunct.

This is the heart of the computer control systems in the station, accepting requests from various control sources and feeding them out to the hardware depending on priority. Command Line Interface

If you need to "speak spider" to find out what's going on in the system, then you can telnet into port 5091 on ystvspider and query the status of devices and which are connected. You need to be logged in to the machine to do this if you're outside James Nucleus because port 5091 is blocked at the firewall.

Possible commands are:

  • marco - this just does echo and returns "polo"
  • help - prints this list of possible commands
  • listdevices - list all devices connected to the system, giving the plugin used to control them, the device name and the current status. The mapping of device types (and hence driver plugins) to device names is done in /etc/spider.xml
  • getparams <device> - get all parameters for a device. The device name is the second field above (which has to be unique, where as drivers don't becuase multiple devices can speak the same protocol.
  • get <device>:<param> - query current value of a parameter. This seems to be broken for the net mux, and hangs up the interface so you have to quit and log back in.
  • set <device>:<param>=<value> - set a parameter to certain value (=* to clear). Not heavily error checked, so be careful about spaces, quotes and the like. Note that this won't get cleared until you do so, so if you force a programme out this way, you need to unset the video form vidserv after it finishes to make scheduling keep working.
  • poss <device>:<param> - returns <devicename>:<parametername> followed by a coma-separated list of possible values.
  • help - displays this help text
  • quit - closes the connection

"

There are two user accounts:

  • user
  • sched

user is a higher priority than sched. Sched is what skedular logs in as,and if any controls have not been set to * by user, sched can do nothing. (interesting side note: if user tells it to play a video, then sched tells it to play a video, it plays the video user told it to, but restarts it when sched tells it to.)

Also if user does a set vidserv:video= which should be a stop command, scheduling breaks - big time. Needs to be video=*

-- Installing the software -- As with many ystv utilities, it's in SVN (https://ystv.co.uk/svn/oldsvn/spider/). Installation is mostly straight forward, however the following kernel module is required:

  • Device Drivers -> USB Support -> USB Modem (CDC ACM) Support

(setup instructions are WIP - nearly got it working right now!)

Spider Hardware

Again, another one from the docswiki: The main scheduling hardware is provided by the Hedco network mux - the NetMux.

This provides two 16 input, single output video muxes, and the same for stereo audio. Currently both video boards are fed from the same video sources from the distribution amplifier. Audio comes from the NetMuxBreakout, and currently only uses the campus network audio layer to feed both stream and network outputs via the compressor. For more details of the wiring see NetMuxWiring.

The network mux is controlled over a serial port from the custom NetMuxController built by Rob. This has a series of preset manual settings (to send live shows, vidserv, clock and inform to net / stream) and the Obey switch that gives the computer control system authority over the system. To cut other sources to net, use the mux front panel (for how, see the NetMux page).

The desk controller is plugged into a USB port on the old office PC which is now used to run SpiDer - the heart of the network control system. This accepts command requests from all the possible control sources (a command line interface and SchedSeven currently), and sets the highest priority requests onto the hardware.

The firmware within the NetMuxController is currently being updated to move away from using serial emulation over USB to communicating using a lower level access to the USB and a custom protocol. This custom protocol is defined in SpiderUSBProtocol.