implemented configuring at startup via cfg file. Implemented RUN_FINITE, RUN_INFINITE, RUN_TEST modes.
This commit is contained in:
BIN
BF_companion
BIN
BF_companion
Binary file not shown.
BIN
build/main.o
BIN
build/main.o
Binary file not shown.
49
main.c
49
main.c
@ -702,20 +702,8 @@ int main(int argc, char** argv) {
|
||||
int32_t err = X502_ERR_OK;
|
||||
uint32_t ver;
|
||||
t_x502_hnd hnd = NULL;
|
||||
#ifndef _WIN32
|
||||
struct sigaction sa;
|
||||
memset(&sa, 0, sizeof(sa));
|
||||
// В ОС Linux устанавливаем свой обработчик на сигнал закрытия,
|
||||
// чтобы завершить сбор корректно //
|
||||
sa.sa_handler = f_abort_handler;
|
||||
sigaction(SIGTERM, &sa, NULL);
|
||||
sigaction(SIGINT, &sa, NULL);
|
||||
sigaction(SIGABRT, &sa, NULL);
|
||||
#endif
|
||||
#ifdef _WIN32
|
||||
// для вывода русских букв в консоль для ОС Windows в CP1251 без перевода в OEM //
|
||||
setlocale(LC_CTYPE, "");
|
||||
#endif
|
||||
|
||||
|
||||
// читаем имя командного файла из аргументов CLI
|
||||
const char* cmd_filename = "default.cmd";
|
||||
if (argc > 1 && argv[1] != NULL && argv[1][0] != '\0') {
|
||||
@ -842,8 +830,32 @@ int main(int argc, char** argv) {
|
||||
// освобождаем описатель
|
||||
X502_Free(hnd);
|
||||
return 0;
|
||||
|
||||
}else if (state.run_mode == RUN_MODE_INF){
|
||||
state.run_I = 0;
|
||||
char tmp_data_filename[] = " ";
|
||||
struct timespec ts;
|
||||
uint32_t max_total_words = 0;
|
||||
uint32_t *inp_buff = malloc(1024*100*1024*2*4);
|
||||
while (1){ //should be infinite. because it is RUN_MODE_INF
|
||||
//while(state.run_I < state.runs_N){
|
||||
max_total_words = 10000000;
|
||||
timespec_get(&ts, TIME_UTC);
|
||||
// sprintf(&tmp_data_filename, "tmp/received_data_%ld.%ld.csv", ts.tv_sec, ts.tv_nsec);
|
||||
// sprintf(&logfilename, "tmp/received_data_%ld.%ld.csv", ts.tv_sec, ts.tv_nsec);
|
||||
//sprintf(&logfilename, "data/received_data_%ld.csv", seconds);
|
||||
snprintf(tmp_data_filename, sizeof(tmp_data_filename), "tmp/received_data_%ld.%ld.csv", ts.tv_sec, ts.tv_nsec);
|
||||
printf("%u dumping to file: %s\n", (unsigned)state.run_I, tmp_data_filename);
|
||||
receive_to_file(hnd, tmp_data_filename, inp_buff, max_total_words, state.run_length);
|
||||
state.run_I++;
|
||||
}
|
||||
}
|
||||
free(inp_buff);
|
||||
X502_Close(hnd);
|
||||
// освобождаем описатель
|
||||
X502_Free(hnd);
|
||||
return 0;
|
||||
|
||||
}else{ //TEST mode as default
|
||||
|
||||
|
||||
|
||||
@ -1023,10 +1035,11 @@ int main(int argc, char** argv) {
|
||||
// освобождаем описатель
|
||||
X502_Free(hnd);
|
||||
return 0;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
return -1;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user