Interactive Lift Devices Project Specification

Outline
To develop an interface to the Xibo software where by multiple simple microswitch on/off input can be used to trigger changes of layout being shown on the display.

Example:

Switch 1 = Off Switch 2 = Off Display = Normal Content

Switch 1 = On Switch 2 = Off Display = Content pertaining to switch 1

Switch inputs should be via an RS-232 port. The system should log an stat record for each switch On/Off event, optionally via XMDS for central collation of results.

Content Selection
Content will be marked as appropriate for each of the states by means of tags applied to the layout - which already exist in the 1.0 series server. At the client end, these tag names will be hardcoded to specific switch inputs. A future extension might be to design an interface whereby that could be configured at a central point, or by means of a utility run on each client.

Statistics Gathering
The client shall log when any input goes from False to True or True to False such that it is possible to determine which input was changed.

As a minimum, this log will be written to a file on the hard drive of each client. If possible, this data will be returned to the server via XMDS using the new SubmitStats call (see Changes to 1.0 series XMDS Webservice).

The client will pair False->True and True->False events such that one stat record is returned for each pair of input changes - so that it will be possible to extract those records and calculate the total time between input changes.

Switch Interface Design
The interface chosen is the RS232 interface found on most PCs. It was chosen because it is commodity hardware, available everywhere, reliable, simple and the wiring to it can be run over long distances. On PCs not fitted with an RS232 port, or where more than 4 inputs are required, a USB RS232 port can be added.

An input is considered True when pin 7 (RTS) is shorted to one of the sensing pins (1, 6, 8 or 9). It is considered False when there is no connection.

Multiple inputs can be True at once. Definitions for behaviour in that scenario are in the detail section above.

If reverse operation is required, that is that when a pin is True it should be considered False, then this can be achieved by reversing the logic in the software.

Note that debounced microswitches may be required to prevent "chattering" between layouts as the inputs transition from True->False or visa-versa, however the sampling frequency of the inputs will be relatively long (1Hz or similar) so this may not be an issue. A test should be performed before hardware is ordered in bulk.

Changes to 1.0 series XMDS Web service
Changes will occur as a 1.0.3 release of Xibo.

Display Statistics
Display Statistics will be enhanced as per this specification: Display Statistics

There will be an export CSV function in the server interface which will allow the selection of the following criteria:
 * Date Range
 * Display Group
 * Tag

Layout Tags
Layout Tags will be included in the XLF file sent to the client.

These will appear inside the element as below:

Tag 1 Tag 2

If the layout tags are changed in the admin interface a new XLF will be generated and set to the client when it next collects from the server.

Scheduled Work
Work is already underway on the cross-platform client. It is still in its early stages, but work is progressing well. See Cross-Platform Client Demo Video for a video showing some of the new features available in the client. Note however that initially only Image and Video media types will be supported for this project, and that the transitions shown will be unavailable since the 1.0 series server does not have support for specifying transitions to be used.

The cross-platform client is a work in progress. In the context of this project, the client supplied will have bugs in it. We will work to rectify these, however since the client has not been written in its entirety yet, we are unable to guarantee that we will be able to fix any particular bug, or on any particular timescale.

Minimum Requirement

 * Functional Client
 * Alpha-quality code
 * Download media from server
 * Download schedule from server
 * Download layouts from the server
 * Display Image and Video media items
 * Switch inputs influence the scheduler such that appropriate content is shown
 * Tested with 6 switch inputs

Custom Scheduler
A custom scheduler will be written that will take account of the switch inputs. This shall be tested to accept 6 switch inputs.

When all inputs are False, the scheduler will consider only content that has no tags when deciding the next item to show.

When an input value goes to True, the scheduler will consider only content that is tagged with the appropriate tag for that switch input and force the early finish of the currently playing layout. Subsequent inputs going to True will trigger the same chain of events.

Untagged content will be played once all inputs go back to False.

If no content is tagged/untagged suitably for any scenario, the splash screen will be shown. This could be customised by the end user.

Statistics
Switch input events will be logged as defined in Statistics Gathering.