/*========================================================================================================== Copyright (c) 2021, Quectel Wireless Solutions Co., Ltd. All rights reserved. Quectel Wireless Solutions Proprietary and Confidential. ===========================================================================================================*/ /*New version does not need NTP sync*/ #include #include #include #include "ql_application.h" #include "ql_log.h" #include "ql_gnss.h" #include "ql_rtos.h" #include "ql_ntp.h" #include "ql_data_call.h" #include "sockets.h" #include "netdb.h" #include "app_inc.h" #include "../../../../ql-config/config/board_features.h" // 新增宏定义(原代码中未定义) #define GNSS_FAST_MODE_HOLD_TIME (5 * 60 * 1000) // FAST模式持续5分钟后切SLOW // Global variables gnss_mode_t g_gnss_mode = GNSS_MODE_SLOW; // Default SLOW mode (power save) gps_location_info_t g_gps_location = {0}; // Global GPS position structure // ====== SLOW MODE 卫星搜索控制(新逻辑) ====== static volatile int g_gnss_sat_count = 0; // 当前可见卫星数量(从GSV解析) static u8 gnss_is_open = 0; // 新逻辑使用的常量 #define GNSS_SEARCH_INTERVAL 900 // 固定搜索间隔:15分钟 = 900秒 #define GNSS_MAX_SEARCH_TIME 180 // 最大搜索时间:3分钟 = 180秒 #define GNSS_SAT_CHECK_TIMEOUT_60 30 // 60秒卫星检测超时 #define GNSS_SAT_CHECK_TIMEOUT_90 60 // 60秒卫星检测超时 #define GNSS_SAT_MIN_COUNT 4 // 1分钟时要求的最小卫星数 u8 get_gnss_open_status(void) { return gnss_is_open; } /*============================================================================ * NMEA parsing function:From $--GGA sentence extract lat/lon/FS * Input: nmea_data - NMEA raw data * Output: Return 1 on success, Return 0 on failure * * NMEA format: $--GGA,