修复摄像头、科大讯飞、rcsp、彩屏仓等相关测试问题;

This commit is contained in:
huxi
2025-12-10 09:40:24 +08:00
parent bc195654bf
commit 719f612ab5
84 changed files with 3520 additions and 178 deletions
@@ -185,7 +185,7 @@ char *ifly_tts_format_text_data(void)
cJSON *cjson_business = NULL;
cJSON *cjson_data = NULL;
char *buf = net_iflytek_malloc(MAX_SPARKDESK_LEN);
char *buf = net_iflytek_malloc(MAX_SPARKDESK_LEN * 4); // 因base64编码比字符串要大,根据需要加大buf
mbedtls_base64_encode((unsigned char *)buf, MAX_SPARKDESK_LEN, (size_t *)&out_len, (unsigned char *)tts_info.param->text_res, strlen(tts_info.param->text_res) + 1);
//定义最长回答
@@ -1,7 +1,7 @@
#include "system/includes.h"
#include "gSensor/gSensor_manage.h"
#include "ble_fmy_modet.h"
#include "user_p11_cmd.h"
#if (TCFG_GSENSOR_ENABLE && TCFG_P11GSENSOR_EN)
#if GSENSOR_PRINTF_ENABLE
@@ -64,10 +64,13 @@ int JL_rcsp_extra_flash_cmd_resp(void *priv, u8 OpCode, u8 OpCode_SN, u8 *data,
}
break;
case JL_OPCODE_EXTRA_FLASH_INFO: // 0xD6 - 获取外部Flash信息
ret = rcsp_get_extra_flash_info(priv, data);
u8 *resp_data = NULL;
ret = rcsp_get_extra_flash_info(priv, &resp_data);
if (ret >= 0) {
u16 data_len = (u16) ret;
JL_CMD_response_send(OpCode, JL_PRO_STATUS_SUCCESS, OpCode_SN, data, data_len, 0, NULL);
JL_CMD_response_send(OpCode, JL_PRO_STATUS_SUCCESS, OpCode_SN, resp_data, data_len, 0, NULL);
free(resp_data);
resp_data = NULL;
ret = rcsp_extra_flash_opt_start();
} else {
JL_CMD_response_send(OpCode, JL_PRO_STATUS_FAIL, OpCode_SN, NULL, 0, 0, NULL);
@@ -1129,7 +1129,7 @@ static u16 get_communication_mtu(u16 expect_mtu)
@note
*/
/*----------------------------------------------------------------------------*/
int rcsp_get_extra_flash_info(void *priv, u8 *resp_data)
int rcsp_get_extra_flash_info(void *priv, u8 **p_resp_data)
{
struct RcspModel *rcspModel = (struct RcspModel *)priv;
int data_len = 0;
@@ -1151,6 +1151,13 @@ int rcsp_get_extra_flash_info(void *priv, u8 *resp_data)
u16 screen_height = 0;
get_cur_srreen_width_and_height(&screen_width, &screen_height);
u8 *resp_data = zalloc(sizeof(flash_size) + sizeof(fat_size) + sizeof(sys_type) + sizeof(g_eflash_state_flag) + \
sizeof(version) + sizeof(resp_mtu) + sizeof(sector) + sizeof(ver_len) + ver_len + \
sizeof(recv_mtu) + sizeof(screen_width) + sizeof(screen_height));
if (!resp_data) {
*p_resp_data = NULL;
return -1;
}
// 填充
data_len = 0; // 用作计数
data_len += rcsp_extra_flash_opt_data_fill(resp_data + data_len, (u8 *)&flash_size, sizeof(flash_size));
@@ -1168,6 +1175,7 @@ int rcsp_get_extra_flash_info(void *priv, u8 *resp_data)
data_len += rcsp_extra_flash_opt_data_fill(resp_data + data_len, (u8 *)&recv_mtu, sizeof(recv_mtu));
data_len += rcsp_extra_flash_opt_data_fill(resp_data + data_len, (u8 *)&screen_width, sizeof(screen_width));
data_len += rcsp_extra_flash_opt_data_fill(resp_data + data_len, (u8 *)&screen_height, sizeof(screen_height));
*p_resp_data = resp_data;
return data_len;
}
@@ -1744,54 +1752,61 @@ int rcsp_extra_flash_opt(u8 *param, u16 len, u8 OpCode, u8 OpCode_SN)
u8 offset = 0;
u8 opt_flag = param[offset++];
u8 state = param[offset++];
u8 *resp_buf = zalloc(100);
if (!resp_buf) {
return -1;
}
ASSERT(len <= 100);
memcpy(resp_buf, param, len);
switch (opt_flag) {
case CURR_SYSTEM_OPT_READ:
result = rcsp_extra_flash_read_opt(param, &len, offset, state);
result = rcsp_extra_flash_read_opt(resp_buf, &len, offset, state);
break;
case CURR_SYSTEM_OPT_WRITE:
result = rcsp_extra_flash_write_opt(param, &len, offset, state, OpCode);
result = rcsp_extra_flash_write_opt(resp_buf, &len, offset, state, OpCode);
break;
case CURR_SYSTEM_OPT_INSERT:
result = rcsp_extra_flash_insert_opt(param, &len, offset, state);
result = rcsp_extra_flash_insert_opt(resp_buf, &len, offset, state);
break;
case CURR_SYSTEM_OPT_DIAL:
result = rcsp_extra_flash_dial_opt(param, &len, offset, state);
result = rcsp_extra_flash_dial_opt(resp_buf, &len, offset, state);
break;
case CURR_SYSTEM_OPT_ERASE:
result = rcsp_extra_flash_erase_opt(param, &len, offset, state);
result = rcsp_extra_flash_erase_opt(resp_buf, &len, offset, state);
break;
case CURR_SYSTEM_OPT_DELETE:
result = rcsp_extra_flash_delete_opt(param, &len, offset, state);
result = rcsp_extra_flash_delete_opt(resp_buf, &len, offset, state);
break;
case CURR_SYSTEM_OPT_UPDATE_FAT:
result = rcsp_extra_flash_update_fat_opt(param, &len, offset, state);
result = rcsp_extra_flash_update_fat_opt(resp_buf, &len, offset, state);
break;
case CURR_SYSTEM_OPT_UPDATE_UI:
result = rcsp_extra_flash_update_ui_opt(param, &len, offset, state);
result = rcsp_extra_flash_update_ui_opt(resp_buf, &len, offset, state);
break;
case CURR_SYSTEM_OPT_TRAN_REPLY:
result = rcsp_extra_flash_update_state_to_app(param, &len, offset, state);
result = rcsp_extra_flash_update_state_to_app(resp_buf, &len, offset, state);
break;
case CURR_SYSTEM_OPT_UPDATE_FLAG:
result = rcsp_extra_flash_ota_update_state(param, &len, offset, state);
result = rcsp_extra_flash_ota_update_state(resp_buf, &len, offset, state);
break;
case CURR_SYSTEM_OPT_RESTORE:
result = rcsp_extra_flash_restore(param, &len, offset, state);
result = rcsp_extra_flash_restore(resp_buf, &len, offset, state);
break;
case CURR_SYSTEM_OPT_FILE_INFO_GET:
result = rcsp_extra_flash_file_info_get(param, &len, offset, state);
result = rcsp_extra_flash_file_info_get(resp_buf, &len, offset, state);
break;
case CURR_SYSTEM_OPT_REMAIN_SPACE:
result = rcsp_extra_flash_remain_space(param, &len, offset, state);
result = rcsp_extra_flash_remain_space(resp_buf, &len, offset, state);
break;
case CURR_SYSTEM_OPT_RES_SPACE:
result = rcsp_extra_flash_res_space(param, &len, offset, state);
result = rcsp_extra_flash_res_space(resp_buf, &len, offset, state);
break;
}
u16 resp_len = rcsp_extra_flash_opt_resp_data_get(param + 1, len, opt_flag, state) + 1;
rcsp_extra_flash_opt_resp(0, OpCode, OpCode_SN, param, resp_len);
u16 resp_len = rcsp_extra_flash_opt_resp_data_get(resp_buf + 1, len, opt_flag, state) + 1;
rcsp_extra_flash_opt_resp(0, OpCode, OpCode_SN, resp_buf, resp_len);
free(resp_buf);
return result;
}
@@ -13,12 +13,12 @@
int rcsp_extra_flash_opt(u8 *data, u16 len, u8 OpCode, u8 OpCode_SN);
//*----------------------------------------------------------------------------*/
/**@brief 填充表盘操作第一条命令的数据回复包
@param resp_data:数据回复包
@param resp_data:获取数据回复包
@return 负数-失败,正数-数据长度
@note
*/
/*----------------------------------------------------------------------------*/
int rcsp_get_extra_flash_info(void *priv, u8 *resp_data);
int rcsp_get_extra_flash_info(void *priv, u8 **p_resp_data);
//*----------------------------------------------------------------------------*/
/**@brief 外部flash开始操作
@param