[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Tsp-devel] RE : tsp_provider
From: |
Arquer Stephane |
Subject: |
[Tsp-devel] RE : tsp_provider |
Date: |
Thu, 25 Sep 2008 09:07:32 +0200 |
Salut Eric,
Je me suis permis de t'écrire directement car j'avais posté un message sur
TSP_devel mais j'ai l'impression qu'il n'est pas passé.
Je travaille effectivement avec la doc TSP programming Tutorial et surtout avec
l'exemple Stub_Server qui est une très bonne illustration.
Merci pour test conseils.
Salutations.
sa
>
> Arquer Stephane <address@hidden> a écrit :
>
> > Bonjour ,
> >
> > Je suis en train de créer un provider TSP personnalisé afin
> d'éviter
> > des problèmes de publication de doubles dans le BlackBoard
> TSP qui
> > provoquent des accès mémoire sur des adresses non alignées. Pour
> > cela je m'inspire de l'exemple Stub Server.
>
> Tu pourrais aussi patcher le bb provider pour qu'il ne publie
> aucun double/float ? Ou encore plus radicalement interdire la
> publication de ces types au sein de tes BB embarqué.
>
> > La récupération des valeurs est donc faite par la fonction
> > STUB_GLU_thread qui recopie toutes les valeurs à la
> fréquence désirée.
>
> OK.
>
> > Le fait de recopier toutes les variables systématiquement ne peut-il
> > pas poser de problème dans le cas d'un grand nombre de variable ?
>
> Si bien sûr :=)
> Néanmoins dans un prog temps réel (i.e. le provider)
> il est parfois utile de faire _toujours_ la même chose
> à chaque cycle.
> De cette façon si ça passe une fois ça passera toujours.
>
> > Existe-t-il un mécanisme pour copier uniquement les variables qui
> > ont changé ?
>
> Le provider décide strictement tout seul de la manière
> dont il mets à jour le datapool. Via les fonctions
>
> TSP_datapool_push_next_item
> http://www.ts2p.org/tsp/API_doc/html/group__TSP__DatapoolLib.html#ga3
> et
> TSP_datapool_push_commit
> http://www.ts2p.org/tsp/API_doc/html/group__TSP__DatapoolLib.html#ga4
>
> Pour chaque item tu renseignes:
> http://www.ts2p.org/tsp/API_doc/html/structglu__item__t.html
> int32_t provider_global_index The PGI of the concerned sample.
> void * raw_value Pointer to the raw sample value.
> uint32_t size The size of the pointer to be copied.
> time_stamp_t time The GLU timestamp.
>
> Donc tu peux si tu le souhaites ne mettre à jour dans le
> datapool que ce TU SAIS qui a changé (il n'y que celui qui
> écrit le provider qui sais ça TSP n'en sait rien, et en fait
> il s'en fout :=)
>
> En revanche TSP t'offre un autre moyen d'optimiser un peu
> plus les copies c'est le fait que TSP peut te donner la liste
> des symboles _EFFECTIVEMENT_ consommés, c'est-à-dire qu'au
> moins 1 consumer a demandé.
>
> C'est la fonction
> TSP_datapool_get_reverse_list
> http://www.ts2p.org/tsp/API_doc/html/group__TSP__DatapoolLib.html#ga2
>
> tu peux donc ne mettre à jour en datapool que les variables
> demandées car les autres ne servent à rien, puisque aucun
> consumer ne les demande :=)
>
> As-tu jeté un oeil à ce doc:
> http://download.savannah.gnu.org/releases/tsp/documentations/t
sp_programming_tutorial-1.0.pdf
Si tu le trouves incomplet (ce qui est sûrement le cas)
ça vaudrait le coup d'essayer de le mettre à jour
le patch de doc est aussi accepté :-)
Sinon tu devrais poser ces questions sur tsp-devel afin que tout le monde en
profite?
- [Tsp-devel] RE : tsp_provider,
Arquer Stephane <=