implemented BF_exec_cmd_simple() and BF_exec_cmd_with_arr() functions

This commit is contained in:
2025-07-01 17:35:48 +03:00
parent d3d10dabaf
commit 9d2fb6760b
6 changed files with 1555 additions and 1455 deletions

View File

@ -147,8 +147,49 @@ void sport_tx_done(uint32_t* addr, uint32_t size) {
@param[in] cmd Структура с описанием принятой команды
******************************************************************************/
void usr_cmd_process(t_l502_bf_cmd *cmd) {
switch (cmd->code){
/*
Command template
case 0x800?:{
l502_cmd_done(rcv_code, rcv_data, rcv_data_length); //void l502_cmd_done (int32_t result, uint32_t *data, uint32_t size)
break;
}
*/
// typedef struct {
// uint16_t code; /**< Код команды из #t_l502_bf_cmd_code */
// uint16_t status; /**< Статус выполнения - в обработчике не изменяется */
// uint32_t param; /**< Параметр команды */
// int32_t result; /**< Код результата выполнения команды */
// uint32_t data_size; /**< Количество данных, переданных с командой или возвращенных с ответом в 32-битных словах */
// uint32_t data[L502_BF_CMD_DATA_SIZE_MAX]; /**< Данные, передаваемые с командой и/или в качестве результата */
// } t_l502_bf_cmd;
case 0x8001:{ //L502_BF_USR_CMD_CODE_ECHO
l502_cmd_done(cmd-> param, NULL, 0);
break;
}
case 0x8002:{ //L502_BF_USR_CMD_CODE_DATA_ECHO
uint32_t rcv_data[cmd->data_size];
for (uint32_t I = 0; I < (cmd -> data_size); ++I){
//rcv_data[I] = (cmd-> data)[I];
rcv_data[I] = I;
}
l502_cmd_done(cmd-> param, rcv_data, cmd->data_size);
break;
}
/*
case 0x8002:{
cmd-> result = cmd->param * 2;
uint32_t data[] = {0,1,2,3,4,5,6,5,4,3,2,1,0};
@ -159,9 +200,11 @@ void usr_cmd_process(t_l502_bf_cmd *cmd) {
uint32_t data[] = {6,5,4,3,2,1,0,1,2,3,4,5,6};
l502_cmd_done(cmd-> param*75, data, 13);
break;}
default:{
l502_cmd_done(1, 1, 1);
}
*/
default: {
l502_cmd_done(1, NULL, 0);
}
}
//l502_cmd_done(1, 1, 1);
//l502_cmd_done(L502_BF_ERR_UNSUP_CMD, NULL, 0);