tsp-devel
[Top][All Lists]
Advanced

[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 */






reply via email to

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