Spider and SchedSeven

From YSTV History Wiki
Revision as of 13:22, 27 September 2011 by Sam.nicholson (talk | contribs) (Added old docswiki page)
Jump to navigation Jump to search

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

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!)