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}](page-img1.png) |
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 .
|