tsp-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE : [Tsp-devel] Black board dynamique


From: PAGNOT, Robert
Subject: RE : [Tsp-devel] Black board dynamique
Date: Thu, 8 Jun 2006 17:46:01 +0200

Juste une ch-tite question de Java-Bob :

Z-êtes pas en train de reinventer la "marvellous but never implemented" 
fonction TSP des groupes asynchrones (packets contenant des couples ID/VALEUR 
uniquement quand VALEUR change au niveau PROVIDER) ?

Auquel cas, BB ou PP, Ton Seriallink Pourri n'est pas submergé par des packets 
cycliques ...

A+

        Robert

-----Original Message-----
From: Erk [mailto:address@hidden
Sent: Thursday, June 08, 2006 5:13 PM
To: Transport Sample Protocol development list
Subject: Re: [Tsp-devel] Black board dynamique


2006/6/8, dufy <address@hidden>:
> Bonjour les amis du TSP (Train Sans Péage)
>
>  J'aimerais tester un petit provider TSP qui passe par le blackboard (Jusque
> la facile !)
>  Mais j'ai la contrainte suivante : Mon Provider peut connaitre la liste des
> symboles possibles, mais il ne devra les mettre à jour QUE si elles sont
> demandées.
>  (Il y plein de symboles potentiels, et leur lecture passe par un canal très
> limité, un port série ....).
>
>  Comment puis-je faire docteur, pour avoir par le BB une info mise à jour
> par le générique TSP_BB_Provider qu'un client vient de lui demander le
> symbole "toto" ?
>
>  Merci d'avance, mais il n'y pas d'urgence pour me répondre. C'est juste de
> la curiosité.
>
>  Y++

Si j'ai tout bien compris ca va etre assez facile vu que...

C'est [presque] deja ce qui se passe :))

1) Recopie des symboles demandes par un provider

Le BB provider n'est pas tellement differents des autres
a savoir qu'il ne recopie le datapool que les variables
demandees grace a la fonction magique
>>>>>>>>>>>>
    /*
     * Refresh the [reverse list of consumed symbols]
     * Must be call at each step in case of new samples wanted
     */
    TSP_datapool_get_reverse_list
(this->datapool,&nb_consumed_symbols, &ptr_consumed_index);
>>>>>>>>>>>>>

ajoutee par un certain Y. D. bien connu de nos services.

Ensuite c'est trivial, puisqu'on boucle sur la liste des symboles DEMANDES:
>>>>>>>>>>
/* PUSH des valeurs directement dans le datapool */
    for(i = 0 ; i <  nb_consumed_symbols ; ++i) {
      /* retrieve the pgi of the consumed symbol */
      pgi = ptr_consumed_index[i];
      item.time                  = glu_time;
      item.provider_global_index = pgi;
      /* we return a double value even if
       * the blackboard type is different
       * since TSP only knows double ... till now */
      *((double*)item.raw_value) =
bb_double_of(value_by_pgi[pgi],bbdatadesc_by_pgi[pgi]->type);
      TSP_datapool_push_next_item(this->datapool, &item);
    }
    TSP_datapool_push_commit(this->datapool, glu_time, GLU_GET_NEW_ITEM);
>>>>>>>>>>>>

Cette fonction est tres bien sauf que la liste des symboles demandes
est plutot la liste des symboles demandes "au moins une fois un jour"...
c'est a dire que cette liste ne decroit jamais et cumule les symboles


a noter que juste avant le bb_provider aura mis a jour son image locale
de Blackbaord (shadow_bb)

>>>>>>>
/*
 * Update shadow BB data zone
 */
bb_shadow_update_data(shadow_bb,the_bb);
>>>>>>>>

Donc a noter que dans ce cas "nominal"
il y 2 espace memoire separes:

the_bb qui est la SHM qui est le Blackboard utilise par l'appli
shadow_bb qui est image locale du blakboard pour que le bb_provider
puisse distribuer tranquillement une copie "coherente" du vrai BB.


>  Comment puis-je faire docteur, pour avoir par le BB une info mise à jour
> par le générique TSP_BB_Provider qu'un client vient de lui demander le
> symbole "toto" ?

Donc si ton probleme est de faire remonter a l'appli la liste des symboles
demandes, et bien je vois 2 solutions:

1) rajouter (dans la meme SHM) pour chaque donnees publiee dans le BB
    des "meta-informations" que tu viendrais mettre a jour dans
    la boucle du BB_provider dans ton cas un tableau d'entier indiquant
    si oui ou non la variable est "demandee".

2) utiliser la message queue du Blackboard pour envoyer un message
   bb_provider ---> appli utilisant le BB
   qui contiennent la liste des symboles blackboard demandes
   en les specifiants par leur bbidx (index dans le tableau BB_DATADESC)

La 2ieme solution est probablemen t plus efficace car ton appli pourra
n'iterer que sur la liste des symboles demandes.

Quoiqu'il en soit si tu dois faire ca je ne suis pas sur que le Blackboard
soit ton meilleur ami.

En fait ton besoin me semble proche d'un besoin assez recurrent
qui est les symboles calcules...

Ca demande plus d'explications donc je ferais un mail plus long une
autre fois...
--
Erk


_______________________________________________
Tsp-devel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/tsp-devel

---------------------------------------------------------

CE COURRIER ELECTRONIQUE EST A USAGE STRICTEMENT INFORMATIF ET NE SAURAIT 
ENGAGER DE QUELQUE MANIERE QUE CE SOIT EADS ASTRIUM SAS, NI SES FILIALES.

SI UNE ERREUR DE TRANSMISSION OU UNE ADRESSE ERRONEE A MAL DIRIGE CE COURRIER, 
MERCI D'EN INFORMER L'EXPEDITEUR EN LUI FAISANT UNE REPONSE PAR COURRIER 
ELECTRONIQUE DES RECEPTION. SI VOUS N'ETES PAS LE DESTINATAIRE DE CE COURRIER, 
VOUS NE DEVEZ PAS L'UTILISER, LE CONSERVER, EN FAIRE ETAT, LE DISTRIBUER, LE 
COPIER, L'IMPRIMER OU EN REVELER LE CONTENU A UNE TIERCE PARTIE.



This email is for information only and will not bind EADS Astrium SAS in any 
contract or obligation, nor its subsidiaries.

If you have received it in error, please notify the sender by return email. If 
you are not the addressee of this email, you must not use, keep, disseminate, 
copy, print or otherwise deal with it.

---------------------------------------------------------




reply via email to

[Prev in Thread] Current Thread [Next in Thread]