/** @defgroup user_process Пользовательская обработка данных */ /***************************************************************************//** @addtogroup user_process @{ @file l502_user_process.h Файл содержит описания функций, которые предназначены для изменения пользователем для написания своих алгоритмов обработки данных и реализации пользовательских команд. ******************************************************************************/ //#define TX_BUFF_SIZE 100000 #define RAW_DATA_BUFF_SIZE 1000 #define AVG_BUFF_SIZE 1000 #define FFT_BUFF_SIZE 1000 //#define L502_SPORT_IN_BUF_SIZE (2048*1024) //#define TX_BUFF_SIZE (RAW_DATA_BUFF_SIZE + AVG_BUFF_SIZE + FFT_BUFF_SIZE + L502_SPORT_IN_BUF_SIZE) //should be large enough to fit all other buffers and raw data #define TX_BUFF_SIZE 10000 #ifndef L502_USER_PROCESS_H_ #define L502_USER_PROCESS_H_ enum buff_switch{ A = 0, B = 1, }; enum avg_state { STOPPED, STEP_RUNNING, STEP_COMPLETED, FULLY_COMPLETED, ENDED, }; enum cycle_state { CYCLE_UNKNOWN, CYCLE_STARTED, CYCLE_RUNNING, }; enum hdma_TX_state { FILLING, TODO_TX, TRANSMITTING, TX_DONE, BUFF_READY, DUMMY, }; enum dataprocessor_state { OFF, TRANSPARENT, AVG, AVG_DONE, FFT, FFT_DONE, }; /* struct dataprocessor_dypedef { uint8_t state; uint8_t state_next; uint8_t LFSM_state; // 0 -- waiting for it... ; 1 -- receiving LFSM data uint16_t average_N_max; uint16_t average_N; uint32_t TX_buff_I; uint32_t AVG_buff_I; uint32_t FFT_buff_I; }; */ uint32_t usr_in_proc_data(uint32_t* data, uint32_t size); uint32_t usr_out_proc_data(uint32_t* data, uint32_t size); void usr_cmd_process(t_l502_bf_cmd *cmd); #endif /** @} */