#define MAX_TIME_SYNC_RETRY_TIME 5
static uint8_t g_time_sync_retry_time = 0;
+
+#define PY_SRV_VER_4 "PY_SRV_V4"
+#define PY_SRV_VER_5 "PY_SRV_V5"
+#define PY_SRV_VER_6 "PY_SRV_V6"
+
+static uint8_t g_py_ver = 4;
+
+
static struct tcp_msg_t *unpack_tlv_format(char *rx_buffer, int length)
{
char temp[8]={0};
{
p = MSG_SPLIT_CHAR2;
}
- char* s = NULL;
- for (s = strtok(buf,p); s!=NULL;s=strtok(NULL,p))
+ char *pchStrTmpIn = nullptr;
+ char *s = nullptr;
+ for (s = strtok_r(buf,p,&pchStrTmpIn); s!=NULL;s=strtok_r(NULL,p,&pchStrTmpIn))
{
if((strncmp(s,"pyVer",5) == 0) && (strlen(s)> 5))
{
memset(runtime->cat1_runtime.pyVer,0,sizeof(runtime->cat1_runtime.pyVer));
strcpy_s(runtime->cat1_runtime.pyVer,sizeof(runtime->cat1_runtime.pyVer),ptmp);
}
+ if (strncmp(ptmp,"PY_SRV_V",8)==0 && strlen(ptmp)>8)
+ {
+ int pyver = atoi(ptmp+8);
+ if ( pyver > 0 ) g_py_ver = pyver;
+ }
}else if ((strncmp(s,"modemVer",8) == 0) && (strlen(s)> 8))
{
return -2;
}
char* p = MSG_SPLIT_CHAR;
- if (strstr(buf,MSG_SPLIT_CHAR2) != NULL)
+ switch(g_py_ver)
{
- p = MSG_SPLIT_CHAR2;
+ case 5:
+ case 6:
+ p = MSG_SPLIT_CHAR2;
+ break;
+ case 4:
+ default:
+ break;
}
+ char netstat[20]="0,10,0,10";
+
+ char *pchStrTmpIn = NULL;
char* s = NULL;
char* ppbuf = NULL;
- for (s = strtok(buf,p); s!=NULL;s=strtok(NULL,p))
+ for (s = strtok_r(buf,p,&pchStrTmpIn); s!=NULL;s=strtok_r(NULL,p,&pchStrTmpIn))
{
// PRINT("%s\r\n",s );
if(strncmp(s,"imei:",5) == 0)
}
continue;
}
+
+ if(g_py_ver == 6 && strncmp(s,"net:",4) == 0)
+ {
+ ppbuf = s+4;
+ /**
+ * 0,10,0,10
+ * voice_stat 语音网络状态:1,注冊本地网络,5注册漫游网络,其他不通,
+ * voice_rat, 语音网络类型: 0 GSM ;1 GSM COMPACT ;2 UTRAN ;3 GSM wEGPRS ; 4 UTRAN wHSDPA ;5 UTRAN wHSUPA ;
+ * 6 UTRAN wHSDPA HSUPA ;7 E_UTRAN ;8 UTRAN HSPAP ;9 E_UTRAN_CA ;10 NONE
+ * data_stat, 数据网络状态
+ * data_rat 数据网络类型
+ *
+ */
+ memset(netstat,0,sizeof(netstat));
+ strcpy_s(netstat,sizeof(netstat),ppbuf);
+ }
}
+
+
+ if(g_py_ver == 6 )
+ {
+ int idx=0;
+ pchStrTmpIn=NULL;
+ for (s = strtok_r(netstat,",",&pchStrTmpIn); s!=NULL;s=strtok_r(NULL,",",&pchStrTmpIn))
+ {
+ switch(idx)
+ {
+ case 2:
+ runtime->cat1_runtime.network_on = atoi(s) ;
+ break;
+ case 3:
+ runtime->cat1_runtime.cat1_network_type = atoi(s);
+ break;
+ case 0:
+ case 1:
+ default:
+ break;
+ }
+ idx++;
+ }
+ }
+
if (update > 0)
return 0;
else
{
PRINT("time_sync_func\n");
- cat1_gettime();
+ cat1_getsignal();
if(osTimerIsRunning(g_timer_time_sync)==1 && g_time_synced == 1 )
{
- osStatus_t ret = osTimerStop(g_timer_time_sync);
- WEARABLE_LOGI(WEARABLE_LOG_MODULE_MAIN_SERVICE,"cat1 g_time_synced == 1 stop timer , ret %d\n",ret);
+ // osStatus_t ret = osTimerStop(g_timer_time_sync);
+ // WEARABLE_LOGI(WEARABLE_LOG_MODULE_MAIN_SERVICE,"cat1 g_time_synced == 1 stop timer , ret %d\n",ret);
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_MAIN_SERVICE,"cat1 g_time_synced == 1 stop timer \n");
+ return ;
}else{
g_time_sync_retry_time ++;
}
if( g_time_sync_retry_time >= MAX_TIME_SYNC_RETRY_TIME)
{
- osStatus_t ret = osTimerStop(g_timer_time_sync);
- WEARABLE_LOGI(WEARABLE_LOG_MODULE_MAIN_SERVICE,"cat1 g_time_sync_retry_time >= %d stop timer ,ret %d\n",MAX_TIME_SYNC_RETRY_TIME,ret);
-
+ // osStatus_t ret = osTimerStop(g_timer_time_sync);
+ // WEARABLE_LOGI(WEARABLE_LOG_MODULE_MAIN_SERVICE,"cat1 g_time_sync_retry_time >= %d stop timer ,ret %d\n",MAX_TIME_SYNC_RETRY_TIME,ret);
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_MAIN_SERVICE,"cat1 g_time_sync_retry_time >= %d stop timer \n",MAX_TIME_SYNC_RETRY_TIME);
+ return ;
}
+ cat1_gettime();
+
}
void restart_time_sync(void)
//"BOOTUP,pyVer,PY_SRV_V4,modemVer,EG810MCNLAR06A01M08_VOLTE_OCPU_QPY_BETA0312"
if(strstr(msg->buffer,"BOOTUP")!=NULL)
{
- cat1_getsignal();
cat1_handle_version_msg(msg);
+ cat1_getsignal();
restart_time_sync();
}
import ql_fs
import pm
PROJECT_NAME = "Cat1SlipUDPService"
-PROJECT_VERSION = "PY_SRV_V5"
+PROJECT_VERSION = "PY_SRV_V6"
CONFIG_JSON="/usr/system_config.json"
CURRENT_APP_TYPE="pysrv"
# UDP_CMD_GET_RECV_NETWORKSTAT
simstat = sim.getStatus()
imei = modem.getDevImei()
- netstat = net.getSignal(1)
+ netstat = "0,10,0,10"
+ netstat_ = net.getState()
+ if netstat_ != -1 :
+ netstat = "{},{},{},{}".format(netstat_[0][0],netstat_[0][3],netstat_[1][0],netstat_[1][3])
+ # ([voice_state, voice_lac, voice_cid, voice_rat, voice_reject_cause, voice_psc], [data_state, data_lac, data_cid, data_rat, data_reject_cause, data_psc])
operator = net.operatorName()
signal = net.csqQueryPoll()
print("imei:{0},sim:{1},oper:{2},signal:{3},net:{4}".format(imei,simstat,operator,signal,netstat))