From f93e7c4a9927e96f9bc508c26649e9ff4a3f6f26 Mon Sep 17 00:00:00 2001 From: ha7ilm Date: Sun, 5 Mar 2017 17:21:38 +0100 Subject: [PATCH] Octave figures are now written into PNGs --- csdr.c | 2 +- libcsdr.c | 8 +++++++- libcsdr.h | 3 ++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/csdr.c b/csdr.c index 2ad9773..5281bed 100644 --- a/csdr.c +++ b/csdr.c @@ -2376,7 +2376,7 @@ int main(int argc, char *argv[]) timing_recovery_state_t state = timing_recovery_init(algorithm, decimation, add_q); int debug_i=0; - state.debug_force = !!debug_n; //should remove that later + state.debug_writefiles = state.debug_force = !!debug_n; //should remove that later FREAD_C; for(;;) { diff --git a/libcsdr.c b/libcsdr.c index 0f058d8..3e99e8c 100644 --- a/libcsdr.c +++ b/libcsdr.c @@ -1644,8 +1644,9 @@ void pll_cc(pll_t* p, complexf* input, float* output_dphase, complexf* output_nc } } -void octave_plot_point_on_cplxsig(complexf* signal, int signal_size, float error, int index, int points_size, ...) +void octave_plot_point_on_cplxsig(complexf* signal, int signal_size, float error, int index, int writefiles, int points_size, ...) { + static int figure_output_counter = 0; int* points_z = (int*)malloc(sizeof(int)*points_size); int* points_color = (int*)malloc(sizeof(int)*points_size); va_list vl; @@ -1655,6 +1656,7 @@ void octave_plot_point_on_cplxsig(complexf* signal, int signal_size, float error points_z[i] = va_arg(vl, int); points_color[i] = va_arg(vl, int); } + if(writefiles && !figure_output_counter) fprintf(stderr, "cf=figure();\n"); fprintf(stderr, "N = %d;\nisig = [", signal_size); for(int i=0;idecimation_rate*2, error, current_bitstart_index, + state->debug_writefiles, 3, //number of points to draw below: num_samples_halfbit * 1, 'r', num_samples_halfbit * 2, 'r', @@ -1781,6 +1786,7 @@ void timing_recovery_cc(complexf* input, complexf* output, int input_size, timin octave_plot_point_on_cplxsig(input+current_bitstart_index, state->decimation_rate*2, error, current_bitstart_index, + state->debug_writefiles, 3, num_samples_quarterbit * 1, 'r', num_samples_quarterbit * 2, 'r', diff --git a/libcsdr.h b/libcsdr.h index 4c758cc..f6195a3 100644 --- a/libcsdr.h +++ b/libcsdr.h @@ -306,6 +306,7 @@ typedef struct timing_recovery_state_s int debug_phase; int debug_count; int debug_force; + int debug_writefiles; } timing_recovery_state_t; timing_recovery_state_t timing_recovery_init(timing_recovery_algorithm_t algorithm, int decimation_rate, int use_q); @@ -313,4 +314,4 @@ void timing_recovery_cc(complexf* input, complexf* output, int input_length, tim timing_recovery_algorithm_t timing_recovery_get_algorithm_from_string(char* input); char* timing_recovery_get_string_from_algorithm(timing_recovery_algorithm_t algorithm); void timing_recovery_trigger_debug(timing_recovery_state_t* state, int debug_phase); -void octave_plot_point_on_cplxsig(complexf* signal, int signal_size, float error, int index, int points_size, ...); +void octave_plot_point_on_cplxsig(complexf* signal, int signal_size, float error, int index, int writefiles, int points_size, ...);