Liquid is a toolkit designed to support the rapid-prototyping
of sensor-based applications. Its development is the result of
project SENTIENT (EPSRC Project GR/R45253), which was initiated
by the Computing Department at Lancaster University in October
2001.
Run LiquidSetup.exe and follow the on-screen prompts.
To execute the toolkit double-click the Liquid executable (Liquid.exe)
contained in the application folder.
1. Sensor Monitor
2. Development Studio
3. Options
4. Exit
WARNING: Before selecting either option 1 or 2 make
sure all the required sensors are already attached to the PC
running the Liquid application.
SENSOR MONITOR
A sensor monitor (SM) session allows you to read and
compare the input obtained from a selection of sensors via Liquid's
visualization unit.
When you start an SM session, you'll be asked to chose the
sensors you wish to use (see Fig 1). Sensors are grouped according
to their Purpose-Property-Means (PPM) combination e.g. a heart
monitor is categorized as a Physiological Monitor -> Heartbeat
Rate -> Electrocardiograph.

Figure
1 - Sensor Selection Process
Adding Sensors
To
ADD a sensor select the relevant PPM combination, the sensor model box will then
be populated with all the sensors it currently supports, select the sensor you
wish to add and then click the ADD button (highlighted in green).
If the sensor you wish to add is not listed in the model box you need to make
sure you have downloaded the necessary Liquid Device Driver (LDD) (see Adding
Sensors).
Once the ADD button has been clicked a
configuration dialog will appear (only if configuration is supported by the sensor).
Use the dialog to configure the sensor to the required settings. For additional
help consult the documentation that accompanies the sensors LDD.
If
the sensor was not loaded successfully an error will be outputted via the message
box (bottom right of the GUI) detailing the problem and likely cause.
Removing Sensors
To REMOVE a sensor select the relevant model from the
selected sensors list and click the DELETE button.
(Re)Configuring Sensors
To (RE)CONFIGURE a sensor select the relevant model
from the selected sensors list and click the CONFIG button. If a sensor does not
provide the ability to configure itself a message will be posted in the message
box indicating this.
Accessing Sensor Help
To
access sensor help select the relevant model from the selected sensors list and
click the HELP button. A dialog box will be launched if help is supported by the
sensors LDD (see Fig 2).

Figure
2 - SideWinder Joystick Help Dialog
Starting the SM Session
Once all the relevant sensors have been selected
click the START button to activate the SM session.
Understanding the SM Session
The session GUI is divided into 2 quadrants
(see Fig 3), the upper quadrant lists the sensors that have been selected for
the current session and the lower quadrant displays the currently selected sensors
output.

Figure
3 - Sensor Monitor GUI
Use the blue
bar to select which sensors output you wish to view.
To move the selection bar use the UP and DOWN arrow keys. Which
ever sensor is currently highlighted by the bar will have its
output displayed in the lower quadrant of the session GUI.
A sensors operational status is listed opposite the devices
name in the upper quadrant of the session GUI. Operational status messages are
as follows: -
1. Sensor not initiated - sensor has
not been initialized (switched on)
2. Sensor not activated - sensor has not been activated (unpaused)
3. Sensor active - sensor is active and collecting data
4. Sensor inactive - sensor is inactive (paused)
5. Initialization Failure - sensor failed to initialize using
the selected mode of configuration
6. Shutdown Failure - sensor failed to shutdown (switched
off)
7. Activation Failure - sensor failed to activate
8. Deactivation Failure - sensor failed to deactivate
9. Collection Failure - sensor failed to collect any intput
If a sensor enters any
state other than 'sensor active' an error message indicating the cause of the
problem will replace the sensors output in the lower quadrant of the GUI (see
Fig 4).

Figure
4 - Screenshot of Joystick failure (unplugged)
Understanding Sensor Output
Sensory data is displayed either (or both) as
an alphanumeric value or a graphical representation. Alphanumeric
values are always rendered in 1 of 3 colours. Green
represents good data, blue
represents timed out data (default timeout is 400 milliseconds)
and yellow represents erroneous
data (input has exceeded the recommended data range, only applies
to input consisting of purely numeric values).
Graphic displays are rendered according to the
sensors PPM combination, for example the combination Physiological
Monitor -> Heartbeat Rate -> Electrocardiograph will always
render data in the form of a graph. To understand how your sensor
displays data see Output
Descriptors for Casual Users.
Quitting the SM Session
To quit the SM session either click the 'X' icon or press ESCAPE
on the keyboard.
DEVELOPMEMT STUDIO
A development studio (DS)
session allows you forward sensory data to another application (Liquid Client
Application, LCA) via a TCP connection.
As with the sm session, you'll be asked
to chose the sensors you wish to use (see Fig 1) before starting
the session. Consult the SENSOR
MONITOR section on how to add sensors to the DS
session.
Starting the DS Session
Once all the relevant sensors have been selected
click the START button to activate the DS session.
Understanding the DS Session
The DS works in a similar fashion to the file transport protocol
(FTP). Separate ports are employed to facilitate both command
& control functions (C&C server) and data transfers
(OUTPUT server).
To
initialize the C&C and OUTPUT servers click the CREATE SOCKETS button located
in the top right hand corner of DS GUI (see Fig 5). If the servers were initialized
successfully a socket creation success message will be displayed in the message
box located in the center of the GUI. If the servers failed to initialize an error
message will be displayed detailing the problem and likely cause.

Figure
5 - Development Studio GUI
After
the servers have been initialized activate them by clicking the
START SERVERS button. The system will then wait for an LCA to
make a connection with the 2 servers. Once a connection has been
made the DS will transfer control of the sensors to the client.
For help on using an LCA consult the documentation that accompanies
the application.
The
DS provides the LCA with 4 C&C functions, they are follows: -
1. Open - initializes the sensors
2. Close - shuts the sensors down
3. Activate - activates the sensors / unpauses
4. Deactivate - deactivates the sensors / pauses
System messages such as
C&C calls, C&C results, application + driver failures will be outputted
via the message box.
Quitting the DS Session
To
quit the DS Session either click the 'X' icon or the EXIT button.
WARNING:
Before exiting make sure the client program has called the close C&C function,
otherwise you may risk crashing the machine the LCA is running on.
OPTIONS
The
options dialog allows you to tailor Liquid to your particular requirements.
Pixel Fix
Some graphics cards have been known to shift Liquids visualization
unit 1 pixel out of synch. If your graphics card causes this error to manifest
select this option to compensate.
Unaffected Graphic Cards: TNT2
Affected
Graphic Cards: Intel 82845G Graphics Controller
EXIT
Click
this button to quit Liquid.
SENSOR SUPPORT
Liquid supports sensors via API wrappers known as Liquid Device
Drivers. An LDD encompasses the often complex code necessary
to manipulate a sensor within a small command set e.g. the command
open would execute all the necessary code to initialize and
configure a sensor.
Adding Sensors
To
add a new sensor to Liquid download the relevant LDD wrapper from the Internet
and copy the .dll into the drivers folder of the Liquid application directory
e.g. C:\Liquid\Drivers\. To check that the sensor installed correctly follow the
instructions for adding a
sensor to a Liquid session.
Some sensors require that the devices API be
installed, this is noted with the documentation that accompanies the LDD. To install
the API consult the sensors documentation (although this is usually documented
in the LDD documentation).
Removing Sensors
To
remove a sensor from Liquid delete the relevant LDD wrapper from the drivers
folder located in the Liquid application directory.
TROUBLESHOOTING
Below
is an assortment of common problems encountered while using Liquid and their respective
solutions.
Problem
Sensor does not appear
in the sensor model box under the assigned PPM combination.
Solution
Check
the PPM combination selected is the correct one. Check the sensor LDD is installed
in the drivers folder of the applications directory e.g. C:\Liquid\Drivers\SideWinder.dll.
Problem
Sensor
output has frozen, but no error has been detected.
Solution
Check
the colour of the numeric representation of the data, if it is coloured blue
it simply means that the sensor has paused, This can be attributed to a number
of different reasons such as the sensor is waiting for new input to become available
or the API of the sensor has been accessed by another body (not Liquid). In most
of these cases the sensor will unfreeze once new input becomes available.
If
the problem is caused by the API being accessed by another body consult your sensors
documentation on how to reverse freezing the sensor.
If the numeric representation
of the sensory data is not coloured blue there may be a problem with the sensors
LDD. Consult the LDD documentation and failing that the body that released it.
Problem
DS servers failed to generate servers failed to create (binding
error returned).
Solution
Another application is running on the ports the C&C and
OUTPUT servers run on. Make sure no other instances of DS have
been initiated or are still running (check the task manager
for Liquid.exe instances). Make sure no other applications are
running on ports 100 and 101.
.
. back to Manual Index