* @Author: penglei 1624952103@qq.com
* @Date: 2025-02-14 10:30:32
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2025-09-13 18:29:26
+ * @LastEditTime: 2025-09-30 11:19:47
* @FilePath: /sdk615/code/sdk/zhihui/drivers/gnss/service/gnss_ble_service.h
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
// void do_gnss_http_server_send_data(int cmd,int *data,uint32_t len);
errcode_t uapi_gnss_http_server_init(void);
errcode_t uapi_gnss_http_server_deinit(void);
-void do_gnss_http_server_send_data(int cmd,char *data,uint32_t len);
+int do_gnss_http_server_send_data(int cmd,char *data,uint32_t len);
// 返回值: 过期返回0,有效返回剩余时间的分钟数,错误返回-1
int gnss_check_agnss_status(void);
if (result == HTTP_SUCCESS && response_code == 200) {
// 更新状态为下载中
g_download_status = 1; // 开始下载进度 10%
- printf("Status: 1 (开始处理数据 10%%) - 异步发送到处理队列\n");
+ printf("Status: 1 (开始处理数据 10%%)\n");
// 异步发送有效数据到接收任务进行处理
if (data_len > 0 && response_data) {
- printf("发送 %d 字节数据到异步处理队列\n", data_len);
+ // printf("发送 %d 字节数据到异步处理队列\n", data_len);
do_gnss_http_server_recv_data(GNSS_HTTP_SERVICE_CMD_AGNSS_RECV, response_data, data_len);
}
// 发送完成信号到接收任务
- printf("发送数据接收完成信号\n");
+ // printf("发送数据接收完成信号\n");
do_gnss_http_server_recv_data(GNSS_HTTP_SERVICE_CMD_AGNSS_RECV, NULL, 0);
} else {
// HTTP请求失败,设置失败状态
return 0;
}
-// AGNSSæ\95°æ\8d®å¼\82æ¥ç´¯ç§¯å\87½æ\95° - ä¼\98å\8c\96为é«\98æ\80§è\83½é\9d\9eé\98»å¡\9eå¤\84ç\90\86
+// AGNSSæ\95°æ\8d®å¤\84ç\90\86å\87½æ\95°
static void agnss_accumulate_data(const char *data, size_t len)
{
// 验证输入数据
return;
}
- printf("异步累积数据: %zu bytes (当前缓冲区: %zu bytes)\n", len, g_agnss_response_size);
-
// 检查数据是否以JSON开始(简单验证)
if (g_agnss_response_size == 0) {
// 第一个数据包,检查是否以 { 开始
}
-void do_gnss_http_server_send_data(int cmd,char *data,uint32_t len)
+int do_gnss_http_server_send_data(int cmd,char *data,uint32_t len)
{
errcode_t ret;
gnss_http_data_mail_t send_data = {0};
if(send_data.data == NULL)
{
PRINT("malloc failed\n");
- return;
+ return -1;
}
memcpy_s(send_data.data,len,data,len);
}
if (ret != OSAL_SUCCESS) {
PRINT("Error gnss Check MSG 0x send failed! err=0x%x! \r\n", ret);
}
+ return ret;
}
void do_gnss_http_server_recv_data(int cmd,char *data,uint32_t len)
{
if (mail.data == NULL) {
// 数据接收完成,处理完整的响应
- printf("=== AGNSS数据接收完成,开始异步处理完整响应 ===\n");
+ printf("AGNSS data reception completed, processing response...\n");
agnss_process_complete_response();
} else {
// 异步处理接收到的数据片段
- printf("=== 异步处理AGNSS数据片段: %d bytes ===\n", mail.len);
+ // printf("=== 异步处理AGNSS数据片段: %d bytes ===\n", mail.len);
// 快速累积数据,避免阻塞接收队列
agnss_accumulate_data(mail.data, mail.len);
// 释放消息队列中的数据内存
free(mail.data);
- printf("数据片段处理完成,继续等待更多数据或完成信号\n");
+ // printf("数据片段处理完成,继续等待更多数据或完成信号\n");
}
}
}
// 2. 发送AGNSS下载命令
PRINT("Sending AGNSS download command...\r\n");
- do_gnss_http_server_send_data(GNSS_HTTP_SERVICE_CMD_DOWNLOAD_AGNSS, NULL, 0);
+ int ret = do_gnss_http_server_send_data(GNSS_HTTP_SERVICE_CMD_DOWNLOAD_AGNSS, NULL, 0);
+ if(ret != 0)
+ {
+ do_gnss_http_server_send_data(GNSS_HTTP_SERVICE_CMD_DOWNLOAD_AGNSS, NULL, 0);
+ }
PRINT("AGNSS download command sent successfully\r\n");
PRINT("uapi_gnss_start_agnss_download: AGNSS download started successfully\r\n");
PRINT("startup_post_init_task !\r\n");
#ifdef BOARD_LEINIAO
- // uapi_get_file_data(FACTORY_TEST_MODE_PATH,&factory_test_flag,1);
+ uapi_get_file_data(FACTORY_TEST_MODE_PATH,&factory_test_flag,1);
char path[40] = {0};
uint16_t delay_time = 1500;
custom_stop_play_audio();
if(factory_test_flag)
- {
factory_set_recoder_streamType();
- }
+ else
+ uapi_ln_http_server_init();
-#ifdef CUSTOM_UTILS
- if(!custom_get_factory_test_flag())
-#endif
- uapi_ln_http_server_init();
-
-
#ifdef SUPPORT_PPP_SERVICE
uint32_t baudrate = get_ppp_baudrate_from_config_model();
if(baudrate != 0)