Files
E502_ADC_BFfirmware/src/l502_user_process.h

88 lines
1.9 KiB
C

/** @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
/** @} */