diff --git a/BF_companion b/BF_companion index 45b53ac..f8369dc 100755 Binary files a/BF_companion and b/BF_companion differ diff --git a/build/main.o b/build/main.o index c323d52..a38643b 100644 Binary files a/build/main.o and b/build/main.o differ diff --git a/main.c b/main.c index a8f5515..b65bb87 100644 --- a/main.c +++ b/main.c @@ -151,7 +151,8 @@ typedef enum { typedef enum { BF_MODE_TRANSPARENT = 0, - BF_MODE_AVG = 1 + BF_MODE_AVG = 1, + BF_MODE_FFT = 2 } bf_mode_t; typedef enum { @@ -222,7 +223,9 @@ static void parse_cmd_file(const char* filename, main_state* st) { if (strcmp(value, "TRANSPARENT") == 0) { st->BF_mode = BF_MODE_TRANSPARENT; } else if (strcmp(value, "AVG") == 0) { - st->BF_mode = BF_MODE_AVG; + st->BF_mode = BF_MODE_AVG; + } else if (strcmp(value, "FFT") == 0) { + st->BF_mode = BF_MODE_FFT; } else { st->BF_mode = BF_MODE_TRANSPARENT; // default on mismatch } @@ -837,7 +840,25 @@ int main(int argc, char** argv) { printf("Streams start err: %d \n", streams_start_Err); - if (state.run_mode == RUN_MODE_FINITE){ + if (state.run_mode == RUN_MODE_FINITE){ + if (state.BF_mode == BF_MODE_TRANSPARENT){ + printf("\nStart transparent mode\n"); + BF_exec_cmd_simple(hnd, 0x8007, 10, 1); //start transparent + }else if(state.BF_mode == BF_MODE_FFT){ + printf("\nStart FFt mode\n"); + BF_exec_cmd_simple(hnd, 0x8008, 2, 1); //start averaging + }else if(state.BF_mode == BF_MODE_AVG){ + printf("\nStart AVG mode\n"); + BF_exec_cmd_simple(hnd, 0x8009, 2, 1); //start averaging + } + X502_StreamsStop(hnd); + X502_StreamsStart(hnd); + + + // for(uint32_t wait_i = 1e6; wait_i; --wait_i){;} + + printf("\nFlushed from receiving buff: %d\n", X502_FlushRcv_buff(hnd)); + state.run_I = 0; char tmp_data_filename[256]; struct timespec ts; @@ -851,7 +872,9 @@ int main(int argc, char** argv) { //sprintf(&logfilename, "data/received_data_%ld.csv", seconds); snprintf(tmp_data_filename, sizeof(tmp_data_filename), "%s/received_data_%ld.%ld.csv", state.data_path, ts.tv_sec, ts.tv_nsec); printf("%u/%u dumping to file: %s\n", (unsigned)state.run_I, (unsigned)state.runs_N, tmp_data_filename); - receive_to_file(hnd, tmp_data_filename, inp_buff, max_total_words, state.run_length); + receive_to_file(hnd, tmp_data_filename, inp_buff, max_total_words, state.run_length); + X502_StreamsStop(hnd); + X502_StreamsStart(hnd); state.run_I++; } @@ -862,6 +885,25 @@ int main(int argc, char** argv) { return 0; }else if (state.run_mode == RUN_MODE_INF){ + if (state.BF_mode == BF_MODE_TRANSPARENT){ + printf("\nStart transparent mode\n"); + BF_exec_cmd_simple(hnd, 0x8007, 10, 1); //start transparent + }else if(state.BF_mode == BF_MODE_FFT){ + printf("\nStart FFt mode\n"); + BF_exec_cmd_simple(hnd, 0x8008, 2, 1); //start averaging + }else if(state.BF_mode == BF_MODE_AVG){ + printf("\nStart AVG mode\n"); + BF_exec_cmd_simple(hnd, 0x8009, 2, 1); //start averaging + } + X502_StreamsStop(hnd); + X502_StreamsStart(hnd); + + + // for(uint32_t wait_i = 1e6; wait_i; --wait_i){;} + + printf("\nFlushed from receiving buff: %d\n", X502_FlushRcv_buff(hnd)); + + state.run_I = 0; char tmp_data_filename[256]; struct timespec ts;