tsp-devel
[Top][All Lists]
Advanced

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

Re: [Tsp-devel] PB Tsp_async_sample_read avec Rtems


From: Eric Noulard
Subject: Re: [Tsp-devel] PB Tsp_async_sample_read avec Rtems
Date: Tue, 29 Apr 2008 08:45:34 +0200

Le 28/04/08, Arquer Stephane<address@hidden> a écrit :
> Bonjour,
>
>  Je suis toujours embourbé avec mes soucis de portage sur Rtems, je tente 
> désespérement de faire fonctionner les requetes async_sample read et write.
>  Mon souci est le suivant, lors d'une requete async_sample_read  avec le 
> client request_generic la valeur retournée est toujours 0.000000, pourtant la 
> valeur est corretement récupérée la fonction tsp_rpc_svc.c : 
> _tsp_request_async_sample_read_1.


>  Mon problème semble venir de la conversion de cette valeur en caractère dans 
> le fonction tsp_rpc_1.

Le cast en char* dans tsp_rpc_svc.c est du code genere par rpcgen
(? éventuellement touillé à la main pour RTEMS ?) mais je doute
que le problème soit là, car sauf erreur de ma part ce cast ne doit pas
changer le contenu.

>  Je n'arrive pas à visualier la variable "local" qui récupère le retour de 
> _tsp_request_async_sample_read_1.


La variable 'local' est un _POINTEUR DE FONCTION_
tsp_rpc_svc.c.rtems:120
           char *(*local)(char *, struct svc_req *);

qui est positionné suivant la le type de requête:

tsp_rpc_svc.c.rtems:187--191
        case TSP_REQUEST_ASYNC_SAMPLE_READ:
                _xdr_argument = (xdrproc_t) xdr_TSP_async_sample_t;
                _xdr_result = (xdrproc_t) xdr_TSP_async_sample_t;
                local = (char *(*)(char *, struct svc_req *))
_tsp_request_async_sample_read_1;

ensuite on appelle cette fonction:
tsp_rpc_svc.c.rtems:214
           result = (*local)((char *)&argument, rqstp);
>
>  Quelqu'un aurait-il une piste ?
>

Est-ce que tu as pû tracer l'appel à
   BB_GLU_async_sample_read(GLU_handle_t* glu,
                         int provider_global_index, void* value_ptr, uint32_t* 
value_size)

qui est la fonction du GLU du BB provider qui est appelée lors d'un async_read?
tu dois pouvoir activer les traces de DEBUG/INFO qui suivantes:

STRACE_DEBUG("BB_PROVIDER want to AsyncRead : pgi <%d> (value_size
allowed=%d)",provider_global_index,*value_size);
STRACE_INFO("About to read from symbol <%s> value...",n);
[...]
STRACE_DEBUG("BB_PROVIDER After AsyncRead : value %f return
:%d",*((double*)value_ptr), retcode);

Ces traces nous permettront de savoir si l'appel async_read fonctionne
_JUSTE AVANT_ de retourner vers tsp_rpc_svc...

Quoiqu'il en soit notre async_read doit souffrir d'un pb d'indien car il est
"non typé"  en gros le consumer et le provider doivent convenir de
l'encodage des "valeur".

Envoies les traces (DEBUG et INFO) coté BB_Provvider ainsi que les mêmes
côté generic request, ensuite on verra mieux ce qui se passe.

-- 
Erk




reply via email to

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