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
Open measurement

A.2. Open measurement

A.2.1. C Version

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

int main(int argc, char *argv[])
{
    ra_handle ra;
    value_handle vh;
    meas_handle meas;

    /* initialize libRASCH */
    ra = ra_lib_init();
    if ((ra == NULL)
        || (ra_lib_get_error(ra, NULL, 0) != RA_ERR_NONE))
    {
        if (!ra)
            printf("error initializing libRASCH\n");
        else
        {
            char err_t[200];
            long err_num;

            err_num = ra_lib_get_error(ra, err_t, 200);
            printf("while initializing libRASCH, error #%d "
                   "occured\n  %s\n", err_num, err_t);

            ra_lib_close(ra);
        }
        return -1;
    }

    /* open measurement */
    meas = ra_meas_open(ra, argv[1], 0);
    if (meas == NULL)
    {
        char err_t[200];
        long err_num;

        err_num = ra_lib_get_error(ra, err_t, 200);
        printf("can't open measurement %s\nerror #%d: %s\n",
               argv[1], err_num, err_t);
        ra_lib_close(ra);
        return -1;
    }

    /* get some infos */
    vh = ra_value_malloc();
    if (ra_info_get(meas, RA_INFO_NUM_SESSIONS_L, vh) == 0)
        printf("%s (%s): %d\n", ra_value_get_name(vh),
               ra_value_get_desc(vh), ra_value_get_long(vh));
    if (ra_info_get(meas, RA_INFO_MAX_SAMPLERATE_D, vh) == 0)
        printf("%s (%s): %f\n", ra_value_get_name(vh),
               ra_value_get_desc(vh), ra_value_get_double(vh));

    /* get all measurement-object infos */
    if (ra_info_get(meas, RA_INFO_NUM_OBJ_INFOS_L, vh) == 0)
    {
        long l;
        long n = ra_value_get_long(vh);

        for (l = 0; l < n; l++)
        {
            ra_info_get_by_idx(meas, RA_INFO_OBJECT, l, vh);
            printf("%s (%s): ", ra_value_get_name(vh),
                   ra_value_get_desc(vh));
            switch (ra_value_get_type(vh))
            {
            case RA_VALUE_TYPE_LONG:
                printf("%d\n", ra_value_get_long(vh));
                break;
            case RA_VALUE_TYPE_DOUBLE:
                printf("%f\n", ra_value_get_double(vh));
                break;
            case RA_VALUE_TYPE_CHAR:
                printf("%s\n", ra_value_get_string(vh));
                break;
            default:
                printf("not supported type\n");
                break;
            }
        }
    }

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

    return 0;
}                               /* main() */

//

#sessions (): 1
max. samplerate (maximum samplrate used in measurement):
360.000000
ID (Patient-ID): 100s

A.2.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 some infos
my $v = $meas->get_info(info => 'num_sessions');
print $v->name() . ' (' . $v->desc() . '): ' . $v->value() ."\n" if (defined($v));
$v = $meas->get_info(info => 'max_samplerate');
print $v->name() . ' (' . $v->desc() . '): ' . $v->value() ."\n" if (defined($v));

# get all measurement-object infos
$v = $meas->get_info(info => 'num_obj_infos');
my $num = $v->value();
for (my $i = 0; $i < $num; $i++)
{
    $v = $meas->get_info_idx(index => $i);
    print $v->name() . ' (' . $v->desc() . '): ' . $v->value() ."\n" if (defined($v));
}

exit 0;
#

#sessions (): 1
max. samplerate (maximum samplrate used in measurement): 360

A.2.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 some infos
[value, name, desc] = meas.get_info(info='num_sessions')
if value:
    print name, "("+desc+"):", value
[value, name, desc] = meas.get_info(info='max_samplerate')
if value:
    print name, "("+desc+"):", value

# get all measurement-object infos
[num, n, d] = meas.get_info(info='num_obj_infos')
for i in range(num):
    [value, name, desc] = meas.get_info_idx(index=i)
    if value:
        print name, "("+desc+"):", value

#

#sessions (): 1
max. samplerate (maximum samplrate used in measurement): 360.0
ID (Patient-ID): 100s

A.2.4. Matlab/Octave Version

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

octave:1> ra=ra_lib_init
ra = 145016232
octave:2> meas=ra_meas_open(ra, '/home/rasch/ecgs/AT011030_rdi.ART', 0)
meas = 145244032
octave:3> [v, n, d]=ra_meas_get_info(meas, 'num_sessions')
v = 1
n = #sessions
d =
octave:4> [v, n, d]=ra_meas_get_info(meas, 'max_samplerate')
v = 1600
n = max. samplerate
d = maximum samplrate used in measurement
octave:5> num=ra_meas_get_info(meas, 'num_obj_infos')
num = 7
octave:6> for i=0:(num-1)
> [v,n,d]=ra_info_get_by_idx(meas, 'meas', i)
> endfor
v = A.
n = Name
d = name of the person measured
v = T.
n = Forename
d = forename of the person measured
v = 16.01.1955
n = Birthday
d = birthday of the person measured
v = male
n = gender
d = gender of the person measured
v = 46
n = Age
d = age of the person measured
v = 196
n = Height
d = height of the person measured in cm
v = 99
n = Weight
d = weight of the person measured in kg
octave:7>