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
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 }