| Pintaudi Giorgio wrote: |  Hello! 
Just a little question about the ODB hotlinks. Is it possible to open a hotlink  
to a single element in and ODB array? |  
  
 
Yes it is with the now preferred function db_watch(). Following program will open a hot link to the /Experiment/Run number: 
 
 
 
#include <stdio.h> 
#include "midas.h" 
 
int run_number; 
 
void run_number_changed(HNDLE hDB, HNDLE hKey, int i, void *info) 
{    
   int run_number, size; 
    
   /* get run number */    
   size = sizeof(run_number);    
   db_get_data(hDB, hKey, &run_number, &size, TID_INT);       
   printf("Run number is %d\n", run_number); 
} 
 
main() 
{ 
HNDLE hKey; 
 
  /* connect to experiment */ 
  cm_connect_experiment("", "", "ODB Test", NULL); 
 
  /* open hot link to run number */ 
  db_find_key(1, 0, "/runinfo/run number", &hKey); 
  db_watch(1, hKey, run_number_changed, NULL); 
 
  /* enter idle loop */ 
  while (cm_yield(1000); != RPC_SHUTDOWN); 
 
  cm_disconnect_experiment(); 
  return 1; 
} |