diag: trace RTC synchronization and WSS clock state

This commit is contained in:
chenjintao
2026-10-26 11:55:40 +08:00
parent b2c78208bf
commit c53a117368
14 changed files with 439 additions and 4 deletions
+23 -3
View File
@@ -17,6 +17,7 @@
#include "quec_sockets.h"
#include "gps_app.h"
#include "quec_mfpr_api.h"
#include "../../../ql-config/config/talkingq_time_diag.h"
#define GPS_VIA_UART
@@ -415,6 +416,8 @@ void quec_gps_nw_status_monitor(void * argv)
{
int cid_num = 0;
struct sockaddr sockaddr = {0};
int last_type = -1, last_status = -1, last_rtc = -1;
int current_type, current_status, dns_ret;
while(1)
{
cid_num = quec_gps_get_cid_act();
@@ -429,13 +432,18 @@ void quec_gps_nw_status_monitor(void * argv)
memcpy(&gps_nw_ctx_ptr.gps_ip4_addr, &(((struct sockaddr_in *)&sockaddr)->sin_addr), sizeof(struct in_addr));
quec_rtos_task_sleep_s(2);
if(!ntp_dns_gain){
quec_gps_ntp_set_server(quec_gps_cfg->ntp_url);
dns_ret = quec_gps_ntp_set_server(quec_gps_cfg->ntp_url);
printf("[TIME-DIAG] gnss_ntp_dns cid=%d server=%.31s rc=%d ip=%.31s\r\n",
cid_num, quec_gps_cfg->ntp_url, dns_ret, get_ntp_server_ip());
ntp_dns_gain++;
}
/*限制成功激活pdp后ntp的同步次数*/
if((gps_nw_ctx_ptr.rtc_status !=1)&&(ntp_sync_cnt < 10))
{
get_ntp_time_internal();
printf("[TIME-DIAG] gnss_ntp_trigger cid=%d attempt=%u ntp_type=%d ntp_status=%d\r\n",
cid_num, (unsigned int)(unsigned char)ntp_sync_cnt + 1U,
get_ntp_time_type(), GetNTPStatus());
get_ntp_time_internal();
ntp_sync_cnt++;
GPS_LOGD("Ntp sync cnt:%d!!!",ntp_sync_cnt);
}
@@ -453,6 +461,15 @@ void quec_gps_nw_status_monitor(void * argv)
{
gps_nw_ctx_ptr.rtc_status = 1;
}
current_type = get_ntp_time_type();
current_status = GetNTPStatus();
if (current_type != last_type || current_status != last_status ||
gps_nw_ctx_ptr.rtc_status != last_rtc) {
talkingq_time_diag_trace("gnss-time-state");
last_type = current_type;
last_status = current_status;
last_rtc = gps_nw_ctx_ptr.rtc_status;
}
//RTI_LOG("Found an active pdp %d:%d:%d:%d:%d:%d!!!",tm.tm_year,tm.tm_mon,tm.tm_mday,tm.tm_hour,tm.tm_min,tm.tm_sec);
}
}
@@ -472,6 +489,7 @@ int quec_get_nw_status(void)
int gps_nw_active(void)
{
int cid_num = 0;
int dns_ret;
cid_num = quec_gps_get_cid_act();
struct sockaddr sockaddr = {0};
if(cid_num>0)
@@ -483,7 +501,9 @@ int gps_nw_active(void)
quec_soc_get_ipv4v6_local_addr(cid_num, AF_INET, &sockaddr);
memcpy(&gps_nw_ctx_ptr.gps_ip4_addr, &(((struct sockaddr_in *)&sockaddr)->sin_addr), sizeof(struct in_addr));
if(!ntp_dns_gain){
quec_gps_ntp_set_server(quec_gps_cfg->ntp_url);
dns_ret = quec_gps_ntp_set_server(quec_gps_cfg->ntp_url);
printf("[TIME-DIAG] gnss_ntp_dns cid=%d server=%.31s rc=%d ip=%.31s\r\n",
cid_num, quec_gps_cfg->ntp_url, dns_ret, get_ntp_server_ip());
ntp_dns_gain++;
}
GPS_LOGI("Found an active pdp!!!");