Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Note: „BioMOBIUS™‟ in this document refers to the entire software system for
the creation of BioMOBIUS™ applications, and includes the EyesWeb Graphical
Development Environment tool for creating applications (also known as patches),
the Graphical User Interface development tool (to create user friendly GUI
frontends for the developed patches/applications), the block libraries, catalogs,
etc.
The BioMOBIUS™ platform also contains hardware components; these are not
included in the scope of this document. For information on the hardware
components please refer to the hardware section of the BioMOBIUS™ Website:
biomobius.trilcentre.org
Note: BioMOBIUS™ builds on the EyesWeb initiative by the University of Genoa.
Many of the technical details of BioMOBIUS™ reflect those of the EyesWeb
system.
Version: 2.3
User Manual 1
Table of Contents
1.1 OVERVIEW OF THE USER MANUAL ............................................................................................. 6
1.1.1 WHAT IS IT? ....................................................................................................................................... 6
1.1.2 STRUCTURAL MODEL ........................................................................................................................ 6
1.1.3 SUPPORTING DOCUMENTATION ......................................................................................................... 6
1.2. OVERVIEW OF BIOMOBIUS............................................................................................................ 8
1.2.1 WHAT IS BIOMOBIUS™?................................................................................................................. 8
1.2.2. WHAT DOES BIOMOBIUS™ CONSIST OF? ....................................................................................... 8
1.2.3 HOW IS BIOMOBIUS™ USED TODAY? .............................................................................................. 8
1.3. ARCHITECTURE ...............................................................................................................................12
1.3.1 HIGH LEVEL ARCHITECTURE OF BIOMOBIUS .................................................................................12
1.3.2 COMPONENT ARCHITECTURE............................................................................................................12
1.3.2.1 Patches .....................................................................................................................................12
1.3.2.2 Blocks .......................................................................................................................................13
1.3.3 APPLICATION DEVELOPMENT ENVIRONMENT ARCHITECTURE .........................................................14
1.3.3.1 Wizards ....................................................................................................................................14
1.3.3.2 EyesWeb Graphical Development Environment (GDE) ..........................................................14
1.3.3.3 GUI Designer ...........................................................................................................................14
1.4 INSTALLATION ..................................................................................................................................16
1.4.1 PRE-REQUISITES FOR INSTALLATION ................................................................................................16
1.4.2 INSTALLATION ..................................................................................................................................16
1.4.2.1 Step 1........................................................................................................................................16
1.4.2.2 Step 2........................................................................................................................................17
1.4.2.3 Step 3........................................................................................................................................17
2.1 THE EYESWEB GRAPHICAL DEVELOPMENT ENVIRONMENT ...........................................19
2.1.1 THE CATALOG VIEW.........................................................................................................................20
2.1.2 THE PROPERTIES VIEW .....................................................................................................................22
2.1.2.1 Params Sheet ...........................................................................................................................23
2.1.2.2 Appearance Settings .................................................................................................................24
2.1.2.3 Signature Settings ....................................................................................................................24
2.1.2.4 Scheduling Settings ..................................................................................................................24
2.1.2.5 Block-specific Settings .............................................................................................................24
2.1.3 DESCRIPTION SHEET .........................................................................................................................26
2.1.4 THE PATCH VIEW .............................................................................................................................28
2.1.4.1 Dragging a Block onto the Patch View ....................................................................................28
2.1.4.2 Status ........................................................................................................................................28
2.1.5 CONNECTING BLOCKS ......................................................................................................................29
2.1.6 MESSAGE CONSOLE VIEW ................................................................................................................29
2.1.7 OTHER VIEWS ...................................................................................................................................30
2.1.7.1 Status Bar .................................................................................................................................30
2.1.7.2 Navigator .................................................................................................................................31
2.1.7.3 Open File Tabs .........................................................................................................................31
2.1.8 THE MENU BAR ................................................................................................................................32
2.1.8.1 The File Menu ..........................................................................................................................32
2.1.8.2 The Edit Menu ..........................................................................................................................32
2.1.8.2.1 Order ................................................................................................................................................ 33
2.1.8.2.2 Design .............................................................................................................................................. 33
2.1.8.2.3 Orientation ....................................................................................................................................... 33
2.1.8.2.4 Rotate ............................................................................................................................................... 33
2.1.8.2.5 Locate ............................................................................................................................................... 33
User Manual 2
2.1.8.2.6 Activate ............................................................................................................................................ 33
2.1.9 THE VIEW MENU ..............................................................................................................................34
2.1.10 THE SYSTEM MENU ........................................................................................................................34
2.1.11 THE TOOLS MENU ..........................................................................................................................35
2.1.11.1 Profiling .................................................................................................................................35
2.1.11.2 Kernel Properties ...................................................................................................................36
2.1.11.3 External Tools ........................................................................................................................36
2.1.11.4 Options ...................................................................................................................................36
2.1.12 THE WINDOW MENU ......................................................................................................................37
2.1.12.1 Windows .................................................................................................................................38
2.1.12.2 The Help Menu .......................................................................................................................39
2.1.13 TOOLBARS ......................................................................................................................................40
2.1.13.1 The Main Toolbar ..................................................................................................................40
2.1.13.2 The Window Toolbar ..............................................................................................................40
2.1.13.3 The System Toolbar ................................................................................................................40
2.1.13.4 The Design Toolbar ...............................................................................................................41
2.1.14 MORE INFORMATION ......................................................................................................................41
2.1.15 THE DEVELOPMENT PROCESS .........................................................................................................41
2.1.15.1 Initialisation Phase ................................................................................................................42
2.1.15.2 Execution................................................................................................................................42
2.2 BIOMOBIUS™ GUI DESIGNER ENVIRONMENT ........................................................................43
2.2.1 THE PALETTE ....................................................................................................................................44
2.2.1.1 Controls ...................................................................................................................................44
2.2.1.2 Outputs .....................................................................................................................................45
2.2.1.3 Static Items ...............................................................................................................................49
2.2.2 THE EDITOR PANE ............................................................................................................................50
2.2.2.1 Editor Pane Toolbar ................................................................................................................50
2.2.2.2 GUI Sheets ...............................................................................................................................51
2.2.3 THE CONFIGURATION PANE ..............................................................................................................52
2.2.3.1 Component View ......................................................................................................................52
2.2.3.1.1 Bounds ............................................................................................................................................. 52
2.2.3.1.2 EyesWeb .......................................................................................................................................... 53
2.2.3.1.3 Appearance ....................................................................................................................................... 54
2.2.3.1.5 Z-Order............................................................................................................................................. 56
2.2.3.1.6 Textbox Appearance (slider) ............................................................................................................ 56
2.2.3.1.7 Parameters (outputs only) ................................................................................................................. 56
2.2.3.2 GUI View ................................................................................................................................57
2.2.3.3 EyesWeb Kernel Runtime .........................................................................................................57
2.2.3.4 Dialog ......................................................................................................................................58
2.2.3.5 Menu ........................................................................................................................................58
2.2.3.6 Toolbar.....................................................................................................................................60
2.2.3.7 Tooltips ....................................................................................................................................60
2.2.3.8 Data Logging ...........................................................................................................................61
2.2.3.9 Sheets .......................................................................................................................................61
2.2.3.10 Selected Sheet.........................................................................................................................63
2.2.4 THE MENU BAR ................................................................................................................................63
2.2.4.1 The File Menu ..........................................................................................................................64
2.2.4.1.1 Import .Eywx Patch .......................................................................................................................... 64
2.2.4.2 The Edit Menu ..........................................................................................................................64
2.2.4.3 The View Menu ........................................................................................................................64
2.2.4.5 GUI Preferences - General Screen ..........................................................................................64
2.2.4.6 GUI Preferences - Appearance Screen ....................................................................................65
2.2.4.7 UI Preferences - Shortcuts Screen ...........................................................................................65
2.2.4.8 UI Preferences - About Screen .................................................................................................66
2.2.5 THE TOOLS MENU ............................................................................................................................66
2.2.5.1 The Help Menu .........................................................................................................................67
User Manual 3
2.2.5.2 About ........................................................................................................................................67
2.2.6 THE GUI DESIGNER TOOLBAR .........................................................................................................68
2.2.7 GUI DESIGNER PREFERENCES ..........................................................................................................69
2.3 EYESWEB KERNEL RUNTIME SERVER ......................................................................................70
2.3.1 STARTING THE KERNEL RUNTIME SERVER .......................................................................................70
3. USING BIOMOBIUS ..............................................................................................................................73
3.1 BLOCKS, CATALOGS AND LIBRARIES ...................................................................................................73
3.2 BIOMOBIUS TUTORIALS ....................................................................................................................75
3.3 SAMPLES..............................................................................................................................................76
APPENDIX A - EYESWEB CONTROL PANEL TOOL........................................................................78
User Manual 4
INTRODUCTION to BioMOBIUS
User Manual 5
1.1 Overview of the User Manual
1.1.1 What is it?
This overview is your starting point - it provides a brief description of the user manual.
The product documentation consists of this primary User Manual, Developer Guide and
supplementary documentation available on the website:
http://biomobius.trilcentre.org/.
The user should first read the Guide to Documentation - it describes how this
manual relates to the rest of the product documentation that is installed with the
software component of the BioMOBIUS™ Research Platform.
1.1.3 How to useThis User Manual is divided into three sections – Introduction to
BioMOBIUS; BioMOBIUS Tools and Utilities; Catalogs, Libraries and Samples.
The user is advised to read the sections in this order and to refer to the glossary in
Appendix B for clarification of terms and abbreviations.
User Manual 6
the user may derive most benefit from the supplementary documentation and the user
is encouraged to read this document after completing this User Manual.
Further details on the EyesWeb product and sample applications are available on the
EyesWeb website:
http://www.eyesweb.org.
Finally, the user is advised to regularly check the announcements section of the
BioMOBIUS™ website for block, patch, tool and documentation updates. The user is also
encouraged to read and contribute to the support online forum and to send any
feedback and support requests to
biomobius.support@trilcentre.org.
User Manual 7
1.2. Overview of BioMOBIUS
1.2.1 What is BioMOBIUS™?
BioMOBIUS™ is a portfolio of hardware and software dedicated to the rapid creation of
information technology solutions for biomedical research. The use of sensors, cameras,
computers and other information technology is an essential enabler for many types of
medical care and clinical research. BioMOBIUS™ supports the creation of solutions,
combinations of hardware and software which monitor and report upon the health and
activities of patients and research subjects.
BioMOBIUS™ aims to radically decrease the time and effort spent by researchers on the
creation of technology and applications. While hardware and software are essential
elements of much research, they are enablers, rather than central to the research itself.
By saving the time spent on technical development, there is more time available for core
research and therapy.
User Manual 8
________________________________________________________
Example: Gait Analysis
A research project into gait instability, as part of the TRIL Centre, required detailed
information about the distribution of force across the sole of the foot and about the
centre of mass and centre of gravity of the subject.
A solution was built using BioMOBIUS™ which captured this information using a floor
sensor, SHIMMER kinematic sensors, and webcams. This information was presented
graphically to the therapist.
_________________________________________________________________
User Manual 9
Figure 2 - The Gait system in the GUI Designer
Figure 2 displays a typical BioMOBIUS™ GUI application screen. This contains a
graphical representation of the subject with the collected sensor data.
Finally, Figure 3 below shows a segment from the EyesWeb GDE patch which is used to
collect the data from the pressure mat and SHIMMER sensors, process it and send on to
the GUI application for display.
User Manual 10
Figure 3 – A segment of the Gait system in the GDE
User Manual 11
1.3. Architecture
1.3.1 High Level Architecture of BioMOBIUS
User Manual 12
flow, and the resultant application resembles a flowchart. The execution of blocks within
a patch may be controlled using schedulers or using event handlers, such as presenting
new data to the input of a block. Figure 5 below, for example, shows a patch which
extracts a figure from its background. It includes blocks for image capture, image
processing, display, etc.
1.3.2.2 Blocks
Blocks are the functional elements which are combined on a patch. A block can have
one or more inputs, one or more outputs, and some internal functionality as depicted in
Figure 6. It may also have some parameters which can be adjusted to change its
behaviour during either patch design or execution. A Graphical User Interface (GUI) can
be built to allow modification of these parameters in a more user friendly interface
during runtime.
Parameter Pin
Output Pin
Input Pins
User Manual 13
The BioMOBIUS™/EyesWeb environment includes catalogs of blocks which can be re-
used to create new patches. These blocks cover a wide spectrum of functionality
including mathematical operations, image processing, display and user interface control
blocks, interfaces to hardware, etc.
Many of the blocks have been created by the EyesWeb initiative at the University of
Genoa, and so have a performing arts/music emphasis. In order to meet the needs of
TRIL research initiatives which focus on clinical research and independent ageing, a new
suite of blocks has also been created, covering functions such as gait processing,
biosignals and hardware device drivers.
1.3.3.1 Wizards
Two common tasks for BioMOBIUS™ developers are the creation of new functional
blocks and of new catalogs in which to store the blocks. The application development
environment provides wizards to simplify the creation of new blocks and new catalogs.
Both wizards run in the Visual Studio environment.
The wizards are described in more detail in the Extending BioMOBIUS section.
User Manual 14
Interface Designer tool. This tool takes a completed patch as input and enables the
developer to rapidly create a user interface with the appropriate input and output
components connected to inputs, parameters and outputs of blocks within the patch.
User Manual 15
1.4 Installation
If you wish to use BioMOBIUS as is – i.e. you do not intend developing additional
components - then the only requirement is:
32-bit Windows XP Pro
For developing new BioMOBIUS™ blocks and applications, the core infrastructure
required is:
32-bit Windows XP Pro
BioMOBIUS™ (go to download section of http://biomobius.trilcentre.org/ for
download)
EYESWEB SDK (version of which has to match EyesWeb version included in
BioMOBIUS™)
Visual Studio 2005 C++ professional with Service Pack 1 installed.
1.4.2 Installation
1.4.2.1 Step 1
Download the current version of the BioMOBIUS™ installer from the following web site:
http://biomobius.trilcentre.org/
User Manual 16
The file size is approx 135 Megabytes. Download times varying according to your
bandwidth. Approximate download times are:
Connection Speed Time - minutes
256Kbps 47
512 Kbps 23
1.024 Mbps 12
1.544 Mbps (DS1,T1) 08
2.048 Mbps (E!, ISDN-32) 06
1.4.2.2 Step 2
Run the installer “BioMOBIUS_setup_x.x”.
The install process will prompt if it detects that there is an existing version of
BioMOBIUS installed. The recommendation is that there should only be a single version
of BioMOBIUS installed on a PC at any one time.
Depending on the existing system components installed on your computer, you may be
asked to restart the computer. Please do so to complete the installation process when
asked to.
BioMOBIUS is now ready for use. Step3 describes an extra installation step – it is
required only if you intend developing new components to extend the functionality of
BioMOBIUS.
1.4.2.3 Step 3
If you intend developing new components or extending BioMOBIUS then you must
install the EyesWeb SDK. The current EyesWeb SDK is available from the Developers
section of the BioMOBIUS website: biomobius.trilcentre.org. Download the SDK, click on
the EyesWeb XMI SDK setup_x.x.x.x application icon and follow the instructions to
install. If you do not install the SDK in the default folder (c:\SDK\EyesWeb XMI SDK)
then refer to the Developer Guide for details on how to adjust your development
environment.
Technical Note
A windows service is installed by default during the installation process.
In BioMOBIUS version 1.0 it is called „eyesweb‟. In version 2.0 it is called
„biomobius2.0_service‟.
Select the following to start the service -
User Manual 17
BioMOBIUS Tools & Utilities
User Manual 18
This section provides detailed user guides for the EyesWeb GDE and the BioMOBIUS GUI
Designer tools, and also describes the Kernel and BioMOBIUS Runtime environments.
Note that there are quick guides to the GDE and GUI tools available as part of the
supplementary documentation but the user is encouraged to read the detailed user
guides in this manual if they intend developing their own patches and GUI applications.
User Manual 19
Library View
properties
view
message
patch view
console
Figure 9 - The EyesWeb GDE main view
User Manual 20
Figure 10 - The top level catalogs
A search window option is available to help the user find a particular block. This search
function matches the search query against the block name; its effectiveness relies to a
large degree on the naming of the blocks themselves.
User Manual 21
Figure 12 -The Search bar
Having found the block which you want to use, simply drag it across onto the patch
view area of the GDE workspace.
User Manual 22
Setting label for
OutputInterval setting
User Manual 23
changed immediately by the system; if you change the settings one by one, the changes
are applied one by one as well.
User Manual 24
arrive at these pins. However, if you wish to concatenate three strings, an extra input
pin can be put in place by increasing this setting from 2 to 3.
Appearance settings
Signature settings
Scheduling settings
Block-specific settings
Detailed description of
settings
User Manual 25
2.1.3 Description Sheet
This second sheet of the properties view contains administrative and descriptive
information about the block. This includes
The short description, including label (name), class, inputs, outputs and
parameters
The long description, including all the short description values, plus catalog,
full path, textual descriptions of the block and each pin, etc.
The credits, with information about the developers of the block
The software licence
Figure 15 - Credits
Licence
Credits
User Manual 26
Figure 17 - the software licence
User Manual 27
2.1.4 The Patch View
The patch view is the largest element of the GDE workspace. This is where you drag the
blocks to, in order to link them together to assemble a patch.
Note that the assembly of a patch takes place at design time. During runtime, the
patch cannot be modified, although some parameters of the constituent blocks may be
modifiable (depending on the nature of the blocks).
Parameter pin
Output pin
Input pin
2.1.4.2 Status
Once a block is visible on the patch view:
Hovering the mouse pointer over the block causes the status bar to display label, class
and catalog information for the block.
Hovering the mouse pointer over a pin (pointer becomes a small upward-pointing arrow)
causes pin type, name and datatype information to appear in the status bar.
User Manual 28
2.1.5 Connecting Blocks
Blocks can be linked to one another by piping the output pin of one block to the input or
parameter pin of another block. This is done by bringing the mouse pointer close to the
output pin (a small upward-pointing arrow appears), clicking and then dragging it to the
input or parameter pin. A line appears as you drag the mouse pointer.
In figure 20 below, the output pins of two text input blocks are bound to the inputs of a
text concatenation block. That block then joins the two texts together, and sends the
result, via its output pin, to the input pin of a text display block. The values „one‟ and
„two‟ are set with the Params sheet of the two text input blocks.
User Manual 29
Figure 22 - Message console example
The activity of the message console can be adjusted using the ToolsMessages menu
(see the Menu Bar section below for details).
Status Bar
Search
Navigator
Figure 23 - Additional views
User Manual 30
or a pin – placing the mouse pointer over a block or pin in the patch view makes
relevant information appear in the status bar.
2.1.7.2 Navigator
The navigator shows a schematic of which part of the overall patch view is currently
visible. If the patch view is very large (e.g. for a complex patch), or zoomed in very
close, the navigator shows where the visible area is, relative to the rest of the patch
view, by providing a rectangular outline. This outline can be dragged, in order to rapidly
move around the patch view.
User Manual 31
2.1.8 The Menu Bar
The GDE offers the usual menus to the user:
File
Edit
View
System
Tools
Window
Help
In many cases, not all menu options are available at all times. For example, you must
have at least two blocks selected in order to invoke the EditDesign command, which
aligns the edges of selected blocks.
The status bar provides information about many menu items when you hover the
mouse over the menu item.
Note: In addition to the usual menus, as outlined above, the Menu Bar also sometimes
shows an „eye‟ icon, which can be used to manage the windows in which patches appear
on the patch view. This is duplicated by the Window menu.
User Manual 32
Figure 25 – The Edit menu
Undo, Redo, Cut, Copy, Paste, Delete and Select all are all standard controls. Some
extra controls are listed below:
2.1.8.2.1 Order
This control allows you to move selected blocks on top of others on the patch view. This
is useful where several blocks occupy the same patch view real-estate. This is analogous
to the CSS attribute „z-index‟.
2.1.8.2.2 Design
This allows you to align selected blocks. At least two blocks must be selected. They can
be aligned by top edge, left edge, etc.
2.1.8.2.3 Orientation
This allows you to set the orientation of a single block. Left-to-Right (the default) means
that the input pins for the block are on the left hand edge, and the output pins are on
the right hand edge. Other alternatives are Right-to-Left, Top-Down and Bottom-Up.
These are useful if the chain of blocks in a patch is very long, and needs to wrap.
2.1.8.2.4 Rotate
This allows you to rotate a single block through 90 or 180 degrees.
2.1.8.2.5 Locate
This useful function finds the selected block in the catalog view. While you can invoke
this command with more than one block selected, it only works for one of those blocks.
2.1.8.2.6 Activate
This changes the activation status of the selected block.
User Manual 33
2.1.9 The View Menu
This makes the various views of the GDE visible or invisible. It consists of a series of
checkboxes; these refer to the various views described above and toolbars described
later. The view menu also allows you to zoom in and out of the patch view.
User Manual 34
2.1.11 The Tools Menu
The tools menu allows access to several settings which impact on the operation of the
underlying EyesWeb server. It also enables or disables performance profiling of blocks,
which records their performance in great detail, and supports the integration of external
applications into to GDE.
2.1.11.1 Profiling
This turns performance profiling on or off. When profiling is turned on, a „profiling‟ sheet
appears in the Properties view. Performance profiling is available at the block level, as
well as for the patch as a whole.
User Manual 35
2.1.11.2 Kernel Properties
This allows you to export the properties of the EyesWeb kernel on which the GDE is
running. It also allows you to import a set of kernel properties. A third and final option is
to reset the current kernel properties to the default values.
2.1.11.4 Options
Options gives you access to a range of options governing the activity of the GDE:
▪ General: settings governing opening, closing and saving patches.
▪ Editor: settings governing the grid on the patch view, and some default
values.
▪ Catalog View: settings for filters for how to select blocks in the Catalog view.
▪ Messages: settings to configure which messages appear in the message
console and how/where/whether they are logged to a file.
▪ Search: settings to configure the fields included in the search function.
▪ Advanced: settings controlling threading, catalog class enable/disable, and
various kernel settings.
User Manual 36
Figure 30 – Options
User Manual 37
Figure 31 – The Window menu
2.1.12.1 Windows
Windows opens a dialog window that allows you to select one or more patches and then
Activate/ Save/ Close/ Cascade/ Tile/ minimise them.
User Manual 38
2.1.12.2 The Help Menu
The Help Menu has only one option: About.
This pops up a dialog with general information about the system. Dedicated screens
show the software license and provide information about the development team.
User Manual 39
2.1.13 Toolbars
The EyesWeb GDE offers several toolbars. These are made visible and invisible using the
View Menu. The ticked items in the illustration below are all toolbars.
Figure 34 – Toolbars
User Manual 40
Figure 37 – The System toolbar
Same width Makes the smaller block the same width as the larger one.
Same height Makes the smaller block the same height as the larger one.
Same size Makes the smaller block the same width and same height as
the larger one.
Information about the internal structure of a block is available in the Developer Guide.
User Manual 41
instance of the block is created this allows block parameters and variables to be
set.
2. Run time (also referred to as Production time) during which the patch is
read-only and the system activates the blocks which make up the patch. The
running of the patch can be started and stopped during run time; the patch
remains in run time until it is next edited.
The EyesWeb environment also carries out a series of operations during the
initialisation phase between design time and run time, to support the development of
patches.
2.1.15.2 Execution
Once initialization has been performed, the system enters run time but execution does
not start yet. Actual execution is started by choosing the GDE SystemStart menu
command, and is signalled to all modules by calling their Start() method.
Now the patch is running and the schedulers periodically activate their corresponding
modules. The activation sequence is implied by the logical order of the interconnections
between blocks, i.e. by the patch topology. If block A has an outgoing connection
towards block B, then block A will be executed before block B.
Execution continues until the user stops it. Again, this is signalled to all modules by
calling their Stop() method; the system remains at run time, even if the patch is not
being executed. The patch may be started and stopped any number of times. It only
leaves runtime when it is unlocked to return to design time. This last operation is
signalled to all blocks by the system calling their Done() method.
It is worth noting that the system can go through many start/stop phases while
remaining at run time, and modules should be built accordingly: after the Init()/Check()
methods are called, there can be an indeterminate number of calls to Start/Stop, before
the patch is de-initialized (Done()). Also, it should be kept in mind that modules must
keep their state during the different Start/Stop phases, sort of a resume/pause
sequence. The re-initialization is performed only after the patch is unlocked and then
locked again (this results in a call to the Done() method and then to the Init() and
Check() methods).
Further details on the internal structure and lifecycle of an EyesWeb block are available
in the Developer Guide.
User Manual 42
2.2 BioMOBIUS™ GUI Designer Environment
The BioMOBIUS™ GUI Designer is a companion application to the EyesWeb GDE that
facilitates the creation of user interfaces for patches. User interfaces create a neat
interface between the user and the BioMOBIUS platform and allow non-technical users
to use the BioMOBIUS platform without understanding the underlying functionality.
A GUI application is designed and bound (linked) to a patch using the BioMOBIUS™
GUI Designer. When the GUI is designed; this GUI standalone application can be
executed using the EyesWeb runtime kernel engine and the GUI Designer runtime. The
user is unaware of the underlying EyesWeb patch and runtime environments.
The following section describes the components of the UI Designer Environment. A
tutorial on how to use the GUI Designer Environment can be found in the Tutorials
documentation and a number of sample GUI applications are provided in the
c:\BioMOBIUS_Workspace\GUI folder.
A GUI application may include several sheets (frames) of user interface components,
including
Input controls such as text boxes, radio buttons, sliders, etc.
Outputs such as text output, progress bars, image output, etc.
Static items such as explanatory text, boxes and other shapes.
The core function of the BioMOBIUS™ GUI Designer is the design of a suitable user
interface to interact with a patch and binding the input and output pins of that patch to
controls and displays on the user interface The GUI can then be used to route input data
from the user to the patch, and to route output information from the patch to the user.
The output file generated by the GUI Designer is an XML script file which is interpreted
and executed by the BioMOBIUS GUI runtime.
The GUI Designer includes a graphical environment for building the user interface. It
consists of three main parts or panes – the palette, the editor pane and the
configuration pane, depicted in Figure 39.
User Manual 43
Configuration
Pane
Menu Bar
Toolbar
Palette
Editor Pane
Figure 39 – The GUI Designer environment
2.2.1.1 Controls
Controls are bound to the input pins of the patch. They allow the user to provide some
input to the patch while it is running. The available controls are shown below:
User Manual 44
Figure 40 – Controls Palette
Button: This triggers an event. It is typically bound to an event generator in the patch,
such as a Bang.
Checkbox: This allows the user to control some activity of the patch, by turning it on or
off (setting it to true or false).
ComboBox: This allows the user to select from a number of options using a pull-down
menu control.
RadioGroup: This allows the user to select just one option from a number of options.
Select file: This allows the user to browse to a file on his local machine; it returns the
full path to the file.
Slider: This allows the user to adjust a numerical value, by sliding the button along the
control with the mouse.
Text: This allows the user to enter some text.
Note: Some of the controls (buttons, checkboxes) support the use of tooltips, which
appear when the user hovers the mouse over the control.
2.2.1.2 Outputs
The palette includes a selection of different output types, which can be used to display
the results of the output pins of the patch/ block/ sub-patch. The type of output chosen
must be appropriate to display the data type of the output pin to which it is bound.
User Manual 45
Figure 41 – Output Palette
Image: displays the results of image processing. This output must be bound to an
image. You can set the width and height of the display.
Level: displays a numeric value. You can set the minimum and maximum values; these
should be appropriate for the output pin; so, for example, if your output pin produces a
value between zero and one, a scale of 1 to 100 for the level output will not show any
meaningful information to the end user.
Oscilloscope: The oscilloscope graph statically displays all the data in a single matrix
on a single static graph. When a new matrix is passed to the graph, the graph is
refreshed with the new matrix data. This graph can display single or multiple columns of
data. This graph is useful for displaying non-streaming data, such as performance trends
in a report.
The oscilloscope graph, reads each column of the input matrix as a single vector.
Therefore, multiple columns of data will be displayed as multiple vectors on the graph.
The oscilloscope graph maps the values of each vector element against the y-axis.
Elements from each vector are distributed equally along the x-axis of the graph;
therefore, if a vector has 3 elements the 1st element will be displayed on the far left of
the graph, the 2nd element will be displayed in the middle of the graph, and the 3rd
element will be displayed on the far end of the graph.
User Manual 46
Note 1: Data from the 1st column in the matrix is always displayed in green. All other
columns will be displayed in white.
Note 2: Unlike the X(t) and Y(x) graphs (which link data from previous matrices); the
oscilloscope graph creates a new graph for each new matrix which is it receives.
Note 3: This graph will not display the 1st matrix that is passed to it. It is therefore
recommended to pass a dummy matrix to the graph to initialise the graphic widget in
the GUI application.
Apr Jun
Feb May
Mar
Jan
Figure 4 displays the data from Table 1; a 4-column table describing the performance
of 4 products over a period of 6 months. Therefore, this graph displays 4 data vectors,
with 6 values in each vector dispersed equally (in 6 sections) across the x-axis.
X(t) Graph: The X(t) graph dynamically plots the data passed to it against time. It can
display single or multiple streams of data. This graph is used to display continuous data,
such as streaming data from sensors.
t=2 0 4 5 6 7 8
Individual values in data
Table 2
stream
Data must be provided to the X(t) graph, as a series of 1-dimensional matrices, although
this graph can display data from a stream of integers (effectively a 1 x 1 matrix). Each
column of the input matrix is treated as a single data stream. Therefore, multiple
columns of data will be displayed as multiple data streams on the graph. The X(t) graph
User Manual 47
maps the values of each matrix element against the y-axis. The data is sampled at a
rate set by the “time interval” parameter.
Note 1: Data from the 1st column in the matrix is always displayed in green. All other
columns will be displayed in white.
Note 2: The X(t) updates the graphs at the sampling rate defined by the “time interval”
parameter.
Note 3: This graph will not display the 1st matrix that is passed to it. It is therefore
recommended to pass a dummy matrix to the graph to initialise the graph.
Figure 5 displays the data from Table 2; a 6-column table, of 1-row matrices. Each
column represents the output from a single sensor. Therefore, this graph displays 6
data streams. The values of each element of the columns are mapped on the y-axis
and sampled at 10ms.
Y(x) Graph: The Y(x) graph plots (x, y) pairs of a data on a 2-dimensional plot. It can
display single or multiple streams of data. This graph can be used to dynamically
illustrate the movement of object(s) in 2D dimensional space.
Location 2 2 2 2 2 2
3 1 2 3 4 7 8
(x,y) pairs in single data stream
Table 3
Data must be provided to the matrix as a (m x 2) matrix. Each column of the input
matrix is treated as a single (x,y) pair of data, when the 1st row of the (x,y) pair is
mapped on the x-axis and the 2nd row of the (x,y) pair is mapped on the y-axis.
Multiple columns of data will be displayed as multiple data streams on the graph.
User Manual 48
Note 1: Data from the 1st column in the matrix is always displayed in green. All other
columns will be displayed in white.
Note 2: The values on the Y(x) graph disappear after a period of time set by “time
interval” parameter.
Note 3: This graph will not display the 1st matrix that is passed to it. It is therefore
recommended to pass a dummy matrix to the graph to initialise the graph.
Figure 6 displays the data from Table 3; which contains the (x,y) coordinates of 6
objects in a 2-dimensional space. This is 6-column table, of 2-row matrices;
therefore, this graph displays 6 data streams. The first 3 locations of Object 1, are
highlighted in this figure
General Note: If you attempt to bind a block output pin to an inappropriate output on
the GUI, the system may crash showing the error in Figure 42.
User Manual 49
to user input or patch behaviour. Static items are important to inform the users of the
GUI as to the function of the GUI and its component parts.
User Manual 50
Figure 44 - The Editor Pane Toolbar
Log: This allows the user to enable logging of the UI output. Alternatively,
logging can take place to a database; this is configured using the DB option.
User Manual 51
Figure 45 – GUI Sheets
2.2.3.1.1 Bounds
The Bounds section defines the location and the size of the component on the GUI
sheet.
User Manual 52
X: The offset between the top left corner of the component and the left hand edge of
the sheet.
Y: The offset between the top left corner of the component and the top edge of the
sheet.
Width: The width of the component, in pixels.
Height: The height of the component, in pixels.
2.2.3.1.2 EyesWeb
This section defines the patch pin to which the component is bound. To use it, click the
component, then click the „parameter‟ field, which will originally show „Not Linked’. Note
that the parameter field may be called „output‟ rather than „parameter‟, if the component
you are binding is an output, rather than a control. Select the block and the pin to which
the component is to be bound. The parameter field will now show the pin to which it is
bound.
This section does not appear for static items.
User Manual 53
Figure 48 - Interface to select EyesWeb Output
2.2.3.1.3 Appearance
This section defines the cosmetic characteristics of the component.
Static Item and Output Appearance Settings
Background colour: the background color of the component.
Outline colour: The color of the line around the component.
Fill colour: The color with which the component will be filled. This appears for static
shapes such as rectangles and ellipses.
Text colour: The color of the text (if any) in the component.
Font: The font family to be used for any text.
Multiline: Whether or not scrollbars should enable multiple lines of I/O. Only appears
where applicable.
Text: The text label to be shown. Does not appear for many components, but is critical
for static text and Hyperlinks.
Stroke thickness: The weight of an output line in some outputs (e.g. oscilloscope,
graphs).
Stroke colour: The colour of an output line in some outputs (e.g. oscilloscope,
graphs).
Tick colour: The colour of an output tick in some outputs (e.g. oscilloscope, graphs).
X and Y ticks: The number of ticks used in the oscilloscope and graph outputs.
Toolbar visible: Whether or not the internal toolbar for the oscilloscope and graphs is
to be visible.
User Manual 54
Style: for the level output, a choice between analog meter style and various vertical or
horizontal level indicators. For the progress indicator output, a choice of horizontal and
vertical progress bars, segmented or smooth.
Minimum colour, peak colour, maximum colour: Style colours for the level output.
Progress colour: The colour of the progress bar in a progress output.
URL: The URL to which a hyperlink static item points.
Thickness: The weight of a line static item.
Image path: The path to an image static item.
Rounded Corners size: The level of rounding of the corners of a rectangle static item.
The higher the value, the more rounded the corners.
Justification: The justification of text in a text static item (many options, including left,
right, centred, top left, etc.).
Control Appearance Settings
These are settings that may appear for controls, over and above those listed
above for Outputs/Static Items.
User Manual 55
Track colour: The color of the track in the slider control.
Tooltip: The tooltip settings for a component allow you to associate some tooltip text
with the component. For some controls and outputs, tooltips don‟t work. The colour,
font, etc. of tooltips is set at the GUI level (in the GUI view).
Tooltip text: the text to appear in the tooltip.
Note that the button control has two tooltip settings, one in Appearance and one in
Tooltip.
2.2.3.1.5 Z-Order
Every component has z-Order settings. These define how „close to the front‟ a
component is displayed. Where two or more components exist in the same area of a
GUI sheet, the z-Order defines which component is actually visible. A component can be
placed „behind‟ all others, „in front of‟ all others, or moved „forward‟ or „backward‟ during
design time.
The four settings are
▪ Bring to front
▪ Bring forward
▪ Send backward
▪ Send to back
User Manual 56
Min vert axis value: The lowest value on the vertical axis for an oscilloscope or graph
output.
Max vert axis value: The highest value on the vertical axis for an oscilloscope or
graph output.
Vert axis autoscale: Whether the vertical axis should be scaled automatically to show
all values (nothing „off the scale‟) for an oscilloscope or graph output.
Sample matrix: Whether to read in values from the matrix a row at a time or a column
at a time for an oscilloscope or graph output.
User Manual 57
multiple GUIs are connecting to the same server and same underlying patch – then start
a new patch for each GUI).
Connection timeout: Sets the amount of time that a GUI should wait for
communication with the server, before concluding that the server is unavailable.
2.2.3.4 Dialog
The Dialog section provides settings for the overall GUI screen; the box in which the
GUI is drawn.
2.2.3.5 Menu
The Menu section provides settings for pull-down user menus within the GUI.
User Manual 58
Figure 52 – Menu Editor
Menu items can be bound to patch pins in a manner similar to controls. Figure 53 shows
a trivial example with two menus, each with various integer values to choose from. The
values are bound to the input pins of a block:
User Manual 59
Figure 53 – Binding Menu Items
2.2.3.6 Toolbar
The Toolbar section controls the presence of the various parts of the Editor Pane
Toolbar on the GUI.
2.2.3.7 Tooltips
This section configures the appearance of tooltips for all components of the GUI.
User Manual 60
2.2.3.8 Data Logging
This section configures the logging of the messages produced by the EyesWeb console
as the patch runs.
2.2.3.9 Sheets
This section enables the addition of new sheets to the GUI, and how the sheet tabs are
displayed.
User Manual 61
Figure 57 – Sheets Settings
User Manual 62
2.2.3.10 Selected Sheet
This section configures the activity of the currently selected sheet (i.e. the sheet which
is visible to the user of the UI Designer, and appears „in front of‟ the other sheets).
User Manual 63
2.2.4.1 The File Menu
The File menu consists of the commonplace actions available including: New, Open,
Recent Files, Save, Save as, and Quit. This menu also includes an option to bind to an
EyesWeb patch: Import .Eywx Patch
User Manual 64
Figure 62 – General Screen
User Manual 65
Figure 64 – Shortcuts Screen
User Manual 66
components, please see the Palette section.
2.2.5.2 About
This opens the About screen of the GUI Designer Preferences area, shown in Figure 66.
User Manual 67
Figure 66 – The About screen
The GUI Designer Toolbar provides convenient buttons for frequently-used GUI Designer
operations. These include – New, Open, Save, Cut, Copy, Paste, Undo, Redo, and
Import Patch.
User Manual 68
2.2.7 GUI Designer Preferences
The GUI Designer Preferences are accessed via the „wrench‟ at top right of the screen.
User Manual 69
2.3 EyesWeb Kernel Runtime Server
The EyesWeb Kernel Runtime Server is a standalone component of the BioMOBIUS™
framework and is required to execute EyesWeb patches outside of the EyesWeb GDE.
When a user creates a BioMOBIUS GUI Designer application, the application must
connect to an EyesWeb patch as it runs. The Kernel Runtime Server provides both the
runtime environment for the patch and the necessary communication channel between
GUI Runtime environment and the EyesWeb patch.
User Manual 70
For further information on the Kernel Runtime Server - how to configure it and
troubleshoot related issues; please refer to the Support section of the
http://biomobius.trilcentre.org/ website.
User Manual 71
Using BioMOBIUS
User Manual 72
3. Using BioMOBIUS
This section provides some practical information on using the platform. It starts with a
brief description of how the default block catalogs and libraries are organised. This
follows with a very brief tutorial that gives the user some hands on instruction in how to
create a simple patch and GUI application. Finally, the user is introduced to some of the
sample applications that are provided with BioMOBIUS.
User Manual 73
Legacy – provided for to support patches created with earlier versions of EyesWeb. The
user is discouraged from using these blocks.
Steinberg Technologies – contains blocks for audio procession based on the ASIO
API.
Base – contains the main signal processing blocks for audio, video, etc.
System – collection of blocks used to input and output data from hardware and system
devices.
National Instruments – blocks to read and write to devices using the general purpose
I/O specification.
3D – blocks used to manage a three dimensional space.
BioMOBIUS Catalogs – these catalogs contain blocks developed specifically for
biomedical research. They are described fully in the Block Reference Document pdf.
One additional feature of a catalog is that all the blocks that constitute a catalog are
physically compiled into a single DLL file. So registering a catalog is the mechanism by
which blocks are added or updated in the GDE.
The library view on the other hand groups blocks according to their inherent
functionality i.e. what they do rather than what they use. Figure 70 illustrates the library
view. This is a more logical view.
User Manual 74
o BioMOBIUS – contains all blocks from the BioMOBIUS catalogs arranged by
functionality.
o DataStructures – collections and conversion blocks.
o Deprecated – provided for backwards compatibility and not to be used in new
patches.
o FileSystem – currently contains a single block for determining file paths.
o FlowAndControlStructures – blocks providing the equivalent of switch
statements, flipflop state change, etc.
o Geometric – blocks that generate and manipulate geopmetric shapes.
o ImageAndVideo – large library for image rendering, analysis and output.
o Math – generate matrix and scalar values, filter transforms, math operations.
o Operations – general comparison and threshold and logical operations.
o Peripherals – blocks that interface with system hardware and network devices.
o String – contains generator, formatting and converter blocks.
o TimeAndDate – provides standard time and date manipulation.
o TimeSeries – blocks that support a time based datatype.
Note that a block may appear in more than one library – for example BioMOBIUS math
blocks are listed under BioMOBIUS and also the Math libraries. Also, there are some
ambiguities in terms of some blocks and the libraries in which they reside – finding such
blocks is best done using the block search facility in the GDE.
A short description popup appears when the user moves the mouse over a block in the
catalog or library view. In addition, there are two documents provided which detail the
EyesWeb and BioMOBIUS blocks. These are available by selecting:
Start->All Programs ->BioMOBIUSx.x ->EyesWeb-Links ->EyesWeb Blocks
Start->All Programs ->BioMOBIUSx.x ->BioMOBIUS Block Documentation
Should the user wish to develop a new catalog of blocks – for example to support a new
type of hardware device, the BioMOBIUS Developer Guide provides all the necessary
information to accomplish this task.
User Manual 75
creation of a sample BioMOBIUS GUI application from the ground up. This tutorial is
described in the Developer Guide.
3.3 Samples
The standard installation provides the user with a number of samples which
demonstrate some basic capabilities of the BioMOBIUS platform. The patches are
located in the „C:\biomobius_workspace\Patches‟ folder and the corresponding GUI
applications are located in the „C:\biomobius_workspace\GUI‟ folder.
The user may first wish to examine the patches within the EyesWeb GDE and then run
the corresponding GUI application using the runtime environments.
The steps involved are:
1. Click on the sample patch and the GDE opens automatically.
2. Run the patch within the GDE
3. Stop the patch and close the GDE
4. Start the Kernel Runtime service
5. Start the GUI application either within the GUI Designer or within the BioMOBIUS
GUI Runtime environment.
Refer to the BioMOBIUS tools section of this document for details on how to run the
tools and runtime environments.
Suggested sample patches and GUI applications for the user‟s perusal are:
GUItoGDETest - very simple application that tells the underlying patch to increment an
integer value. Its purpose is to provide a simple mechanism to test the communication
paths between the two runtime environments.
Applause – A little more complex, the underlying patch accepts data from the default
system audio device i.e. connected microphone, calculates and buffers the max
amplitude and sends this value to the GUI application for display.
Oscilloscope – generates a complex waveform in the patch which is then filtered three
ways using the FIRFilter block and passed to the GUI application for display.
User Manual 76
Appendix A
User Manual 77
Appendix A - EyesWeb Control Panel Tool
The EyesWeb Control Panel may be accessed by double clicking on the file
EywControlPanel.cpl situated in the standard BioMOBIUS™ installation directory.
The EyesWeb control panel provides a means to specify how EyesWeb virtual devices
are mapped to the physical hardware devices available on the current PC.
User Manual 78
Figure 72 - The EyesWeb Virtual Device mapping
After these operations, the new virtual device, may be referred to as ”InputCamera” in
all patches by setting the Device parameter value of the video input blocks as shown in
Figure 73.
User Manual 79
Appendix B
User Manual 80
Appendix B Glossary of Terms
Term Description
Biosignal Short hand of biological signal, which is generally used to
describe any measurable human characteristic such as speech or
motion.
Block A code component created in Visual Studio and used in the GDE
to perform a particular function – e.g. to capture data from an
input device, perform some mathematical function or display
data on an output device.
Catalog A catalog is the code repository for a collection of blocks. In the
EyesWeb GDE, the catalog view displays all the blocks that
belong to a particular catalog. Within Visual Studio, a catalog is a
VC++ project with each block corresponding to a class. The
project is built to create a DLL, which must be registered with
EyesWeb in order to use the blocks.
EyesWeb A platform created by the University of Genoa to enable
computational modelling of human physical behaviour.
BioMOBIUS ™ A framework that enables the development and use of both
hardware and software components for biomedical research.
BioMOBIUS™ A GUI development tool that enables the user to design an
Graphical User application to control a patch and view its output. The resultant
Interface application is called a GUI application.
Designer
BioMOBIUS™ A Windows console application that supports the execution of a
GUI Runtime BioMOBIUS™ application outside of the designer tool. Typically, a
BioMOBIUS™ application is first developed and tested within the
BioMOBIUS™ Designer tool. Thereafter, the BioMOBIUS™
Runtime is used to run the application as a Windows executable
in conjunction with the Kernel Runtime component.
EyesWeb GDE A Graphical Development Environment created by the University
of Genoa as part of its EyesWeb offering. It is the platform on
which BioMOBIUS™ is built. It is used to develop software
components to capture behavioural data such as audio,
movement, etc.
GDE Graphical Development Environment - see EyesWeb GDE.
GUI Graphical User Interface, an interface presented to a user to
simplify their interaction with a system by use of graphical tools.
GUI Application Within the BioMOBIUS™ platform context, a GUI application is a
Windows executable that interfaces with an EyesWeb patch as it
runs. It provides an interface to the user allowing him/her to
control the running of the patch and the patch I/O.
User Manual 81
Kernel The central software component of a computer system. In
BioMOBIUS™, the kernel refers to the minimum code required to
run an EyesWeb patch, i.e. running a patch outside of the GDE.
Library A grouping of blocks that perform some similar functions e.g.
Math operations or BioMOBIUS™ I/O. Libraries are used to
provide convenient block lookup within the GDE.
Kernel Runtime The EyesWeb Kernel Runtime is a Windows component which
Server supports the execution of EyesWeb patches outside of the
EyesWeb GDE. It is used in conjunction with the BioMOBIUS™
Runtime to execute GUI applications and Patches as if they are
native Windows applications.
Patch A collection of EyesWeb blocks that perform a specific function –
e.g. collect data from an input device, manipulate it and output
to an output device. A patch may be executed within the
EyesWeb GDE or by the EyesWeb Kernel Runtime.
SHIMMER Sensing Health with Intelligence, Modularity, Mobility and
Experimental Reusability. A multi-functioning, intelligent, mobile
hardware device developed by Intel and used to collect data in
the area of biomedical research. The sensing capability of
SHIMMER can be extended through the addition of various
biomedical sensor add-on boards. SHIMMER interfaces with
BioMOBIUS™ software components using wired or wireless
protocols. Additional information can be found at http://shimmer-
research.com/wordpress/?page_id=20
User Manual 82