Bio Informatics – Genome mapping

Softlab Project – Measurements Tool
Project name:
Project Moderator: Oren Shirak & Dan Nussinson.
Project description: A software....
1. Shay Dan: Writing interfaces for the devices that are
participating in the sweep, such as Yokogawa & Agilenet.
2. Yevgeny Petrilin : Managing software end-user interface,
which includes usage of both of the interfaces written by
Shadi and Shay in order to handle program I/O via GUI and
present it in a convenient structure for the user
3. Shadi Ibrahim: Handling DAQmx (Main device, see
explanation below) I/O.
Project short summary:
Daq- is the main device that is capable to measure input (Voltage, current…),
this device has 16 channels for measuring input and 2 channels for generating output,
The main purpose of the project is to create an application that manages
generating output (voltage, current ...) via multiple number of devices including the
main device, and measuring; in real time; the output that these devices generate,
afterwards the application suggests a number of mode in which it represents the data
to the end user; mainly it is done via dynamic graph which is being processed in real
The application suggests a various ways of determining measurement
procedure (defined as sweep in the following requirements), such as procedure mode
of operation; the rate of the processing, the limits, how many times it will be
processed and what devices are participating in the procedure.
Along with that the application offers a comfortable interface in order to
present the procedure results.
DAQ: Data Acquisition is the sampling of the real world to generate data that can be
manipulated by a computer. Data acquisition typically involves acquisition of signals
and waveforms and processing the signals to obtain desired information. The
components of data acquisition systems include appropriate sensors that convert any
measurement parameter to an electrical signal, which is acquired by data acquisition
Data Acquisition device: is a self-powered system that communicated with a computer
through a standard or proprietary interface. As a boxed alternative to plug-in boards,
this type of system offers I/O channels, an electrical environment, and
versatility/speed in adapting to different applications.
GPIB: General Purpose Interface Bus defines the electrical, functional, and
software specifications of an interfacing system to connect PCs to programmable
Sweep: A continuous change of a parameter in an electronic system. Most often it
refers to a frequency sweep or the sweep of a voltage.
Amplitude sweeps are often used to characterize the transfer characteristics of a
device: does a voltage increase on the input give a corresponding output voltage
increase. An example of the use of sweeps is for the measurement of relative accuracy
of an A/D converter.
Difference measurement: A DAQ feature that enables a process of reading two
parallel channels, the measurement is the difference in voltage between the two wires:
any voltage common to both wires is removed.
Using differential inputs can reduce noise picked up by the signal leads. For each
input signal there are two signal wires. A third connector allows the signals to be
referenced to ground.
GUI: Graphical user interface: s a type of user interface used for interaction with a
computer or other media formats which employs graphical images, widgets, along
with text to represent the information and actions available to a user. The actions are
usually performed through direct manipulation of the graphical elements.
Project Requirements:
Functional requirements:
-DAQ related:
req.1: The application should be able to read input from the DAQ buffer.
req.2: The application should be able to write arrays of various sizes in the DAQ
output buffer.
req.3: The application should synchronize both reading and writing tasks in order to
associate data accordingly.
req.4: The application can read up to 16 channels's input in regular mode and up to 8
channels in DIFF mode at the same time.
req.5: The data should be gathered from the buffer each times it is filled by DAQ in
order to insure minimal overhead expense, which might lead to device low
performance and inaccurate calculation.
req.6: Data gathering must not be delayed till there is no place in the buffer for new
data samples.
req.7: Data should be passed to GUI via parallel threads in order to avoid delaying
urgent DAQ interrupts or scheduling new tasks for the DAQ.
req.8: DAQ output channels should be reset when a user is done using the application.
req.9: Data gathered from the DAQ buffer should be stored.
-GPIB related:
req.1: Application should be able to communicate with the devices listed below; the
application should be able to forward write-tasks to these devices.
req.2: Application should identify all the connected devices to the pc at run time.
Ease of use requirements:
req.1: the user should be able to set sweep details: source device, limits, rate
(up/down), increment, number of sweeps, details of the participating devices, and
units for viewing results.
req.2: User should be able to store/load sweep configuration for anytime reuse.
req.3: User should be able to change the manner of the data graphical presentation at
sweep run time.
req.4: User should be able to change sweep rate or direction at run time.
req.5: User should be able to pause/ resume sweep.
req.6: User should be able to stop sweep.
Look & Feel requirements:
req.1: User should be able to see sweep processing graphically.
req.2: The application include separate tables/panel for different configurations;
source configuration panel, additional outputs, DAQ channels which are participating
in the sweep and the sweep-runtime graph.
Safety requirements:
req.1: The arrays should be filled to with continuous point's values, 2 consecutive
points written into the DAQ buffer should not have the difference of a default static
coefficient set according to DAQ capabilities.
Achieved Requirements:
Functional requirements:
-DAQ related:
req.1-4: An Interface for DAQ is written, this interface include basic functions for
writing/reading data from DAQ, The read function receives an array of channels to be
assigned per call, theoretically it should work for 16 channel, it has been tested so far
on 4, it is caller responsibility to send an order to read from no more than 16 channels
from DAQ.
The interface includes write function which allows caller to write various size arrays
into DAQ.
In case the write function is called, calling the read function is always done
afterwards, and it's synchronized with write rate, in order not encounter any loss of
written data.
req.5-7: DAQ read/write rate can exceed a regular PC's processing rate, therefore in
order not to suffer loss of data, written samples are stored locally in DAQ buffer and
gathered each time its count reach a static limit set in the application, since reading
big chunks of buffer cost much less time than reading each sample on time,
application is able to copy and process all the data written into the DAQ buffer by the
read function, this is done via DAQ interrupts, in case these interrupts are called in
context of each other it'll be nest so there would be no data loss.
req.8: The application initiates a simple DAQ write task which resets DAQ outputs
before exiting.
req.9: Data passed from DAQ interface back to the caller are stored in local file
according to specified file name in GUI.
-GPIB related:
Req.1-2: An interface for HP3634A Agilent and Yokogawa has been written;
HP3634A interface includes:
-A function for writing constant value (instructing device to generate specific output)
-A function that resets the device.
Yokogawa interface includes:
-A function for writing array of values (instructing device to generate specific set of
output values at a given rate)
-A function that resets the device.
-A function that reads device status via GPIB.
Ease of use requirements:
Req.1-2: implemented.
Req.3: The user can use to show the results in a graph, he can choose to draw results
of any of the input devices participating in the sweep, compared to either the source
device or time.
Req.4: An option to change rate is added to the GUI, application stops the sweep and
starts another one with the details of the end point of the previous sweep along with
the new rate.
Req.5-6: Implemented.
Look & Feel requirements:
Req.1-2: implemented.
Safety requirements:
req.1: A simple fast writing task is performed before starting main write task initiated
by method caller, this simple task calls DAQ write function sequentially with set of
output values that start with DAQ output in real time and end with the real task start
values, the jump between each sequent values is big enough to insure device steady