[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Tsp-devel] Personnalisation d'un provider TSP
From: |
Arquer Stephane |
Subject: |
[Tsp-devel] Personnalisation d'un provider TSP |
Date: |
Thu, 16 Oct 2008 09:52:44 +0200 |
Bonjour,
Je suis en train de personnaliser un provider sur la base de l'exemple stub
server.
Je veux ajouter la possibilité d'utiliser les requêtes async_sample_read et
_write , mais j'obtiens le msg suivant coté client:
Async read refused (or not handled) by provider.
Y a-t-il une autre chose à faire pour utiliser ces requêtes ?
Une autre question, l'utilisation de :
TSP_datapool_get_reverse_list(cthis->datapool,&nb_symbols, &ptr_index);
retourne le nombre et la liste des pgi des variables demandées par les clients
mais ces données ne sont pas mise à jour lors des deconnexions de ceux-ci.
Est-ce normal ?
Sa.
GLU_handle_t* TSP_GLU_create(double baseFrequency) {
/* create a default GLU */
GLU_handle_create(&tsp_GLU,"LV_Demeter", GLU_SERVER_TYPE_ACTIVE,
baseFrequency);
tsp_GLU->initialize = &TSP_GLU_init;
tsp_GLU->run = &TSP_GLU_thread;
tsp_GLU->get_ssi_list = &TSP_GLU_get_ssi_list;
tsp_GLU->get_ssei_list_fromPGI = &TSP_GLU_get_ssei_list_fromPGI;
tsp_GLU->async_read = &TSP_GLU_async_sample_read;
tsp_GLU->async_write = &TSP_GLU_async_sample_write;
return tsp_GLU;
} /* GLU_stub_create */
int TSP_GLU_async_sample_read(GLU_handle_t* glu, int provider_global_index,
void* value_ptr, uint32_t* value_size) {
GLU_handle_t* cthis = (GLU_handle_t*) glu;
int retcode = TSP_STATUS_NOK;
void* data;
unsigned char * ptr_octet = NULL;
STRACE_DEBUG("PROVIDER want to AsyncRead : pgi <%d> (value_size
allowed=%d)",provider_global_index,*value_size);
/* try to read */
/* PGI 0 is a pseudo time */
if (0 == provider_global_index) {
*((double*)value_ptr) = (double)(my_time) /
(double)(cthis->get_base_frequency(cthis));
retcode = TSP_STATUS_OK;
} else if ((provider_global_index > 0) && (provider_global_index <
nbTspSymbols)) {
ptr_octet = (unsigned char
*)TAB_pgi_addr_DataPool[provider_global_index];
memcpy(value_ptr, (unsigned char *)ptr_octet, sizeof(double));
retcode = TSP_STATUS_OK;
} else {
STRACE_INFO("BB_GLU : pgi = %d is not valid
provider_global_index",provider_global_index);
}
return retcode;
} /* end of TSP_GLU_async_sample_read */
- [Tsp-devel] Personnalisation d'un provider TSP,
Arquer Stephane <=