#include <unistd.h>
#include <sys/stat.h>
#include <errno.h>
+#include "errcode.h"
#include "imsl_vad.h"
#include "media_thread_adapt.h"
#include "ln_api.h"
static uint32_t ln_memory_info_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd);
static uint32_t ln_folder_size_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd);
+//帧率控制相关AT命令函数声明
+static uint32_t ln_set_fps_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd);
+static uint32_t ln_get_fps_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd);
+
/* 内存查看辅助函数 - 使用MemoryManager接口 */
/* 将 PCM 文件按 10ms(160点) 分帧喂给 VAD 并打印结果 */
printf("deviceVersion: %s\n", deviceVersion);
return ERRCODE_SUCC;
}
+
+/* AT^LN_SET_FPS - 设置帧率 */
+static uint32_t ln_set_fps_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
+{
+ VAD_UNUSED(strCommonCmd);
+
+ if (para == NULL || paraLen == 0) {
+ printf("[LN][SET_FPS] Error: No parameter provided\n");
+ printf("Usage: AT^LN_SET_FPS=<fps_value>\n");
+ printf("Example: AT^LN_SET_FPS=60\n");
+ return ERRCODE_FAIL;
+ }
+
+ // 解析参数
+ char fps_str[16] = {0};
+ if (paraLen >= sizeof(fps_str)) {
+ printf("[LN][SET_FPS] Error: Parameter too long\n");
+ return ERRCODE_FAIL;
+ }
+
+ memcpy(fps_str, para, paraLen);
+ fps_str[paraLen] = '\0';
+
+ // 转换为整数
+ int fps_value = atoi(fps_str);
+
+ // 验证帧率范围 (1-120 FPS)
+ if (fps_value < 1 || fps_value > 120) {
+ printf("[LN][SET_FPS] Error: FPS value must be between 1 and 120, got: %d\n", fps_value);
+ return ERRCODE_FAIL;
+ }
+
+ printf("[LN][SET_FPS] Setting FPS to: %d\n", fps_value);
+
+ // 调用统一的C接口设置帧率
+ do_set_fps((uint32_t)fps_value);
+ printf("[LN][SET_FPS] Successfully set FPS to: %d\n", fps_value);
+ return ERRCODE_SUCC;
+}
+
+/* AT^LN_GET_FPS - 获取当前帧率 */
+static uint32_t ln_get_fps_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
+{
+ VAD_UNUSED(para);
+ VAD_UNUSED(paraLen);
+ VAD_UNUSED(strCommonCmd);
+
+ printf("[LN][GET_FPS] Getting current FPS...\n");
+
+ // 调用统一的C接口获取帧率
+ uint32_t current_fps = do_get_fps();
+ printf("[LN][GET_FPS] Current FPS: %u\n", current_fps);
+ return ERRCODE_SUCC;
+}
static const at_cmd_table_t g_ln_api_cmd[] = {
/* ----------------------------------- VAD ---------------------------------- */
{(char *)"AT^VAD_INIT", vad_init, (char *)"初始化 VAD"},
{(char *)"AT^LN_GET_DEVICE_MODEL", ln_get_device_model_at, (char *)"获取设备model: AT^LN_GET_DEVICE_MODEL"},
//获取设备version
{(char *)"AT^LN_GET_DEVICE_VERSION", ln_get_device_version_at, (char *)"获取设备version: AT^LN_GET_DEVICE_VERSION"},
+
+ //帧率控制
+ {(char *)"AT^LN_SET_FPS", ln_set_fps_at, (char *)"设置帧率: AT^LN_SET_FPS=<fps_value>"},
+ {(char *)"AT^LN_GET_FPS", ln_get_fps_at, (char *)"获取当前帧率: AT^LN_GET_FPS"},
};