logo.png

Activités :
..

Traitement :
producer
filter
consumer
gru-consumer

Objet :
Conf
Data
Home Up


Contents



1 Introduction

Cette page décrit l'activité 'ACTORS' faisant partie du domaine 'ACQUISITION'.

Cette activité implémente le découpage modulaire des codes d'acquisition.


2 Diagramme de flux

Figure: DIAGRAMME DE FLUX
\begin{figure}\centering
\includeImage[scale=0.7]{DF}
\end{figure}


2.1 Niveau n+1

L'activité se divise en 4 traitements :


2.2 Événements

L'activité réagit via les événements dits ``généric'' en provenance du traitement Narval.

Ces événements sont répercuté via un appel de fonction à chacun des traitements fils faisant parti du scénario chargé. L'API des acteurs ne diffère que par la fonction process_block. Cette dernière fonction est appelée en continue lorsque les acteurs sont dans l'état ``running''.

struct my_struct     *process_register               (unsigned int *error_code);
void process_config     (char *directory_path,        unsigned int *error_code);
void process_initialise (struct my_struct *algo_data, unsigned int *error_code);
void process_reset      (struct my_struct *algo_data, unsigned int *error_code);
void process_start      (struct my_struct *algo_data, unsigned int *error_code);
void process_stop       (struct my_struct *algo_data, unsigned int *error_code);
void process_pause      (struct my_struct *algo_data, unsigned int *error_code);
void process_resume     (struct my_struct *algo_data, unsigned int *error_code);
void process_unload     (struct my_struct *algo_data, unsigned int *error_code);

void process_block (struct my_struct *algo_data,

                    void *input_buffer,                       /* Producer */
                    unsigned int size_of_input_buffer,        /* & Filtre */

                    void *output_buffer,
                    unsigned int size_of_output_buffer,       /* Filtre & */
                    unsigned int *used_size_of_output_buffer, /* Consumer */

                    unsigned int *error_code);

Les acteurs enverrons eux des événement en destination des codes métiers.


3 Implémentation

Cf le répertoire  /svn/narval/Tags/misc_actors/version-1.6.4/ Les fichiers requis sont :

  • Pour le C
    • parameters.h
    • libexample_c.c

  • Pour le C++
    • my_class.h
    • base_class.h
    • my_class.cc
    • base_code.h
    • libexample_cpp.cc

Il s'agit de construire un bibliothèque partagée comme par exemple à l'aide de ce Makefile :

%.so:         %.o
        gcc -shared -o $@ $<

%.o:          %.c
        gcc -c -Wall -I. -I../include $<

Les acteurs utilisés pour l'expérience LC sont archivés sous CVS et rangés dans le répertoire ~/cvs/narval/actors_LC.

Home Up

This document is also available in PDF and PostScript format.



2016-02-15