bpminterface/save_signals.c

Go to the documentation of this file.
00001 
00006 #include <bpm/bpm_interface.h>
00007 #include <bpm/bpm_messages.h>
00008 #include <bpm/bpm_version.h>
00009 
00010 int save_signals( char *fname, bpmsignal_t *sigs, int num_evts ) {
00011 
00012   if ( ! fname  || ! sigs ) {
00013     bpm_error( "Invalid pointer in save_signals(...)",
00014                __FILE__, __LINE__ );
00015     return BPM_FAILURE;
00016   }
00017 
00018   /*--------------------------------------------------------------------------
00019     Loop over the events and bpms and save the waveforms
00020     --------------------------------------------------------------------------
00021   */
00022   
00023   int ibpm, ievt, s;
00024 
00025   FILE *f = fopen( fname, "w+" );
00026   if ( !f ) {
00027     bpm_error( "Unable to open file for writing in save_signals(...)",
00028                __FILE__, __LINE__ );
00029   }
00030 
00031   fprintf(f, "# Header (num_evts)\n%f %d\n", BPM_VERSION_VAL, num_evts);
00032 
00033   for (ievt = 0; ievt < num_evts; ievt++ ) {
00034     
00035     fprintf( f, "# Event %d\n%d ",  ievt, sigs[ievt].ns );
00036     
00037     for (s = 0; s < sigs[ievt].ns; s++ ) {
00038       
00039       fprintf(f, "%d ", sigs[ievt].wf[s] );
00040     }
00041     
00042     fprintf(f, "\n" );
00043     fflush(f);
00044   }
00045 
00046   fclose(f);
00047 
00048   return BPM_SUCCESS;
00049 }

Generated on Thu Jan 10 10:18:04 2008 for libbpm by  doxygen 1.5.1