TUM-Logo

libRASCH

 

Home
 

General

About libRASCH/News
Design
Screen shots
Sample programs (with source code)
License
 

Download

libRASCH
Tools
 

Documentation

User
Developer
 

Resources

Mailing list
Supported Formats
Plugins
Status
Links
 
Contact
About this site
 
Last updated
Tue Mar 27 23:03:50 2007
Handle recordings

A.3. Handle recordings

A.3.1. C Version

//
#include <stdio.h>
#include <ra.h>

int main(int argc, char *argv[])
{
    ra_handle ra;
    value_handle vh;
    meas_handle meas;
    rec_handle rec;
    long l, num_dev, num_ch;

    /* initialize libRASCH */
    ra = ra_lib_init();
    if (ra == NULL)
    {
        printf("error initializing libRASCH\n");
        return -1;
    }

    /* open measurement */
    meas = ra_meas_open(ra, argv[1], 0);
    if (meas == NULL)
    {
        printf("can't open measurement %s\n", argv[1]);
        return -1;
    }

    /* get root recording */
    rec = ra_rec_get_first(meas, 0);
    if (rec == NULL)
    {
        printf("can't get recording-handle\n");
        return -1;
    }

    /* get some infos about recording */
    num_dev = num_ch = 0;
    vh = ra_value_malloc();
    if (ra_info_get(rec, RA_INFO_REC_GEN_NUM_DEVICES_L, vh) == 0)
        num_dev = ra_value_get_long(vh);
    if (ra_info_get(rec, RA_INFO_REC_GEN_NUM_CHANNEL_L, vh) == 0)
        num_ch = ra_value_get_long(vh);
    if (ra_info_get(rec, RA_INFO_REC_GEN_NAME_C, vh) == 0)
        printf("measurement %s  --  ", ra_value_get_string(vh));
    if (ra_info_get(rec, RA_INFO_REC_GEN_DATE_C, vh) == 0)
        printf("recorded at %s  --  ", ra_value_get_string(vh));
    printf("#devices=%d  #channels=%d\n", num_dev, num_ch);

    /* print name for every device */
    printf("infos about the recording devices used:\n");
    for (l = 0; l < num_dev; l++)
    {
        /* set number of device from which the info is wanted */
        ra_value_set_number(vh, l);
        if (ra_info_get(rec, RA_INFO_REC_DEV_HW_NAME_C, vh) == 0)
            printf("  device #%d: %s\n", l,
                   ra_value_get_string(vh));
    }
    printf("\n");

    /* print name and unit of every channel */
    printf("infos about the channels:\n");
    for (l = 0; l < num_ch; l++)
    {
        /* set number of channel */
        ra_value_set_number(vh, l);
        if (ra_info_get(rec, RA_INFO_REC_CH_NAME_C, vh) == 0)
            printf("  ch #%d: %s", l, ra_value_get_string(vh));
        if (ra_info_get(rec, RA_INFO_REC_CH_UNIT_C, vh) == 0)
            printf(" [%s]", ra_value_get_string(vh));
        printf("\n");
    }
    printf("\n");

    /* close */
    ra_value_free(vh);
    ra_meas_close(meas);
    ra_lib_close(ra);

    return 0;
}                               /* main() */

//

measurement 100s  --  recorded at 00.00.0  --  #devices=0
#channels=2
infos about the recording devices used:

infos about the channels:
  ch #0: MLII []
  ch #1: V5 []


A.3.2. Perl Version

#
use strict;
use RASCH;

# initialize libRASCH
my $ra = new RASCH or die "error initializing libRASCH\n";

# open measurement
my $meas = $ra->open_meas($ARGV[0], 0) or
    die "can't open measurement $ARGV[0]\n";

# get root recording
my $rec = $meas->get_first_rec(0) or
    die "can't get root recording\n";

# get some infos about recording
my $v = $rec->get_info(info => 'rec_num_devices');
my $num_dev = $v->value();
$v = $rec->get_info(info => 'rec_num_channel');
my $num_ch = $v->value();
$v = $rec->get_info(info => 'rec_name');
my $rec_name = $v->value();
$v = $rec->get_info(info => 'rec_date');
my $rec_date = $v->value;
print "measurement $rec_name  --  recorded at $rec_date" .
    "  --  #devices=$num_dev  #channels=$num_ch\n";

# print name for every device
print "infos about the recording devices used:\n";
for (my $i = 0; $i < $num_dev; $i++)
{
    $v = $rec->get_info(dev => $i, info => 'dev_hw_name');
    my $name = $v->value();
    print "  device #$i: $name\n";
}
print "\n";
	
# print name for every channel
print "infos about the channels:\n";
for (my $i = 0; $i < $num_ch; $i++)
{
    $v = $rec->get_info(ch => $i, info => 'ch_name');
    my $name = $v->value();
    $v = $rec->get_info(ch => $i, info => 'ch_unit');
    my $unit = $v->value();
    print "  channel #$i: $name [$unit]\n";
}
print "\n";

exit 0;
#

measurement 100s  --  recorded at 00.00.0  --  #devices=
#channels=2
infos about the recording devices used:

infos about the channels:
  channel #0: MLII []
  channel #1: V5 []


A.3.3. Python Version

#
import sys
from RASCH import *

# initialize libRASCH
ra = RASCH()
if not ra:
    print "can't initialize libRASCH"
    sys.exit()

# open measurement
meas = ra.open_meas(sys.argv[1], 0)
if not meas:
    print "can't open measurement", sys.argv[1]
    sys.exit()

# get root recording
rec = meas.get_first_session_rec(0)
if not rec:
    print "can't get root recording"
    sys.exit()

# get some infos about recording
[num_dev, n, d] = rec.get_info(info='rec_num_devices')
[num_ch, n, d] = rec.get_info(info='rec_num_channel')
[rec_name, n, d] = rec.get_info(info='rec_name')
[rec_date, n, d] = rec.get_info(info='rec_date')
print "measurement", rec_name, " --  recorded at", rec_date,       " --  #devices =", num_dev, " #channels =", num_ch

# print name for every device
print "infos about the recording devices used:"
if num_dev > 0:
    for i in range(num_dev):
        [name, v, d] = rec.get_info(dev=i, info='dev_hw_name')
        print "  device #%d: %s" % (i, name)
print ""
	
# print name for every channel
print "infos about the channels:";
if num_ch > 0:
    for i in range(num_ch):
        [name, n, d] = rec.get_info(ch=i, info='ch_name')
        [unit, n, d] = rec.get_info(ch=i, info='ch_unit')
        print "  channel #%d: %s [%s]" % (i, name, unit)
print "";
    
#

measurement 100s  --  recorded at 00.00.0  --  #devices =
None  #channels = 2
infos about the recording devices used:

infos about the channels:
  channel #0: MLII []
  channel #1: V5 []


A.3.4. Matlab/Octave Version

rasch@rasch:~> octave
GNU Octave, version 2.1.50 (i686-pc-linux-gnu).
...

octave:1> ra=ra_lib_init
ra = 145016952
octave:2> meas=ra_meas_open(ra, '/home/rasch/ecgs/AT011030_rdi.ART', 0)
meas = 145243840
octave:3> rec=ra_rec_get_first(meas, 0)
rec = 145420840
octave:4> num_ch=ra_rec_get_info(rec, 'rec_num_channel')
num_ch = 5
octave:5> rec_name=ra_rec_get_info(rec, 'rec_name')
rec_name = AT011030_rdi
octave:6> rec_date=ra_rec_get_info(rec, 'rec_date')
rec_date = 30.10.2001
octave:7> for i=0:(num_ch-1)
> name=ra_ch_get_info(rec, i, 'ch_name')
> unit=ra_ch_get_info(rec, i, 'ch_unit')
> endfor
name = EKGX
unit = uV
name = EKGY
unit = uV
name = EKGZ
unit = uV
name = ABP
unit = mmHg
name = RESP
unit = uV
octave:8>