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);
+//网络检测相关AT命令函数声明
+static uint32_t ln_check_internet_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd);
+static uint32_t ln_check_dns_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd);
+
/* 内存查看辅助函数 - 使用MemoryManager接口 */
/* 将 PCM 文件按 10ms(160点) 分帧喂给 VAD 并打印结果 */
}
}
+/* AT^LN_CHECK_INTERNET - 检测是否有外网连接 */
+static uint32_t ln_check_internet_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
+{
+ VAD_UNUSED(para);
+ VAD_UNUSED(paraLen);
+ VAD_UNUSED(strCommonCmd);
+
+ printf("[LN][CHECK_INTERNET] Checking internet connection...\n");
+
+ // 调用C接口检测网络连接
+ int result = check_internet_connection();
+
+ if (result == 1) {
+ printf("[LN][CHECK_INTERNET] Internet connection: AVAILABLE\n");
+ printf("+LN_CHECK_INTERNET: OK\n");
+ } else if (result == 0) {
+ printf("[LN][CHECK_INTERNET] Internet connection: NOT AVAILABLE\n");
+ printf("+LN_CHECK_INTERNET: NO_CONNECTION\n");
+ } else {
+ printf("[LN][CHECK_INTERNET] Internet connection: CHECK_FAILED\n");
+ printf("+LN_CHECK_INTERNET: ERROR\n");
+ return ERRCODE_FAIL;
+ }
+
+ return ERRCODE_SUCC;
+}
+
+/* AT^LN_CHECK_DNS - 检测DNS解析 */
+static uint32_t ln_check_dns_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
+{
+ VAD_UNUSED(strCommonCmd);
+
+ const char *hostname = "www.baidu.com"; // 默认测试主机
+
+ // 解析参数
+ if (para != NULL && paraLen > 0) {
+ char hostname_str[256] = {0};
+ if (paraLen >= sizeof(hostname_str)) {
+ printf("[LN][CHECK_DNS] Error: Hostname too long (max 255 characters)\n");
+ return ERRCODE_FAIL;
+ }
+
+ memcpy(hostname_str, para, paraLen);
+ hostname_str[paraLen] = '\0';
+ hostname = hostname_str;
+ }
+
+ printf("[LN][CHECK_DNS] Checking DNS resolution for: %s\n", hostname);
+
+ // 调用C接口检测DNS解析
+ int result = check_dns_resolution(hostname);
+
+ if (result == 1) {
+ printf("[LN][CHECK_DNS] DNS resolution: SUCCESS\n");
+ printf("+LN_CHECK_DNS: OK\n");
+ } else if (result == 0) {
+ printf("[LN][CHECK_DNS] DNS resolution: FAILED\n");
+ printf("+LN_CHECK_DNS: FAIL\n");
+ } else {
+ printf("[LN][CHECK_DNS] DNS resolution: ERROR\n");
+ printf("+LN_CHECK_DNS: ERROR\n");
+ return ERRCODE_FAIL;
+ }
+
+ 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_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"},
+
+ //网络检测
+ {(char *)"AT^LN_CHECK_INTERNET", ln_check_internet_at, (char *)"检测外网连接: AT^LN_CHECK_INTERNET"},
+ {(char *)"AT^LN_CHECK_DNS", ln_check_dns_at, (char *)"检测DNS解析: AT^LN_CHECK_DNS[=hostname]"},
};