CHENJIE-PC\QiXiang_CHENJIE 4 yıl önce
ebeveyn
işleme
04b0dbe9b3
2 değiştirilmiş dosya ile 30 ekleme ve 12 silme
  1. 1 1
      inc/hal_module_adapter.h
  2. 29 11
      src/app.c

+ 1 - 1
inc/hal_module_adapter.h

@@ -7,7 +7,7 @@ extern "C" {
 #include "commontypedef.h"
 #include "sensor.h"
 #include "can.h"
-#define USING_PRINTF 
+//#define USING_PRINTF 
 #define GPS_DATA_RECV_BUFFER_SIZE     						(1024)
 
 #define I2C_INT1_REQ_BITMAP    								 (0x1)

+ 29 - 11
src/app.c

@@ -51,7 +51,7 @@ static INT32                    sockfd = -1;
 static UINT32                   gCellID = 0;
 int TcpconnectID = -1;
 volatile uint8_t Tcp_statuts = 0;
-
+//slpManTimerID_e Timer_ID;
 uint8_t Batt_Cell_Num = 17;//默认数值14、17
 uint8_t Batt_Cell_Num_2 ;//默认数值
 uint8_t Batt_Temp_Num = 7;//默认数值5、7
@@ -193,8 +193,8 @@ static void Main_Task(void* arg)
     uint32_t sleep_time_flag;
     int32_t inParam = 0xAABBCCDD;
     uint32_t Chrgend_Work_time = 180000;
-    uint32_t Wakeup_Work_time = 12000;
-    uint32_t Sleep_Time = 120000;
+    uint32_t Wakeup_Work_time = 6000;
+    uint32_t Sleep_Time = 300000;
     //上述参数应写入文件里
     slpManWakeSrc_e Wakeup_source;
     PROC_MAIN_STATE_SWITCH(PROCESS_STATE_IDLE);
@@ -246,7 +246,15 @@ static void Main_Task(void* arg)
     {
         PROC_MAIN_STATE_SWITCH(PROCESS_STATE_WORK);
     }
-
+    // if (Timer_ID!=7)
+    // {
+    //     PROC_MAIN_STATE_SWITCH(PROCESS_STATE_SLEEP);
+    // }
+    // else
+    // {
+    //     PROC_MAIN_STATE_SWITCH(PROCESS_STATE_IDLE);
+    // }
+    
     //线程初始化完成
     while (true)
     {
@@ -275,7 +283,7 @@ static void Main_Task(void* arg)
                     PROC_CAN_STATE_SWITCH(PROCESS_CAN_STATE_RECV);
                     Can_index = 0;
                 }
-                if (Tcp_index >=100)//Tcp 1s 调用一次
+                if (Tcp_index >=500)//Tcp 5s 调用一次
                 {
                     PROC_TCP_STATE_SWITCH(PROCESS_TCP_STATE_LINK);
                     Tcp_index = 0;
@@ -337,6 +345,10 @@ static void Main_Task(void* arg)
                 #ifdef USING_PRINTF
                     printf("which slpstate can go now :%d \n",slpstate);
                 #endif
+                for (int i = 0; i < 7; i++)
+                {
+                    slpManDeepSlpTimerDel(i);
+                }
                 slpManDeepSlpTimerStart(deepslpTimerID, Sleep_Time);
                 while(1)
                 {
@@ -939,6 +951,10 @@ static void sendQueueMsg(UINT32 msgId, UINT32 xTickstoWait)
         }
     }
 }
+// void slpManTimerCb(slpManTimerID_e ID)
+// {
+//     Timer_ID = ID;
+// }
 static INT32 socketRegisterPSUrcCallback(urcID_t eventID, void *param, UINT32 paramLen)
 {
     CmiSimImsiStr *imsi = NULL;
@@ -1142,7 +1158,7 @@ static void Tcp_Task(void* arg)
     uint32_t act;
     uint8_t NB_send_len;
     uint8_t Reconnect_Num = 0;
-    appSetEDRXSettingSync(0,5,0);
+    appSetEDRXSettingSync(0,5,1800000);
     appSetPSMSettingSync(1,3*60*60,10);
     slpManWakeSrc_e Wakeup_source;
     Wakeup_source =  slpManGetWakeupSrc();//获取唤醒源
@@ -1154,6 +1170,7 @@ static void Tcp_Task(void* arg)
     {
         Tcp_statuts = 1;
     }
+    appSetCFUN(1);
     while(true)
     {
         switch(gProcess_Tcp_Task)
@@ -1185,11 +1202,6 @@ static void Tcp_Task(void* arg)
                             #ifdef USING_PRINTF
                                 printf("TCP connect unresolved dns\n");
                             #endif
-                            // Tcp_statuts=0;
-                            // appSetCFUN(0);
-                            // osDelay(10);
-                            // appSetCFUN(1);
-                            // PSInitEventCallbackTable();
                         }
                         Tcp_statuts=2;
                         break;
@@ -1227,6 +1239,10 @@ static void Tcp_Task(void* arg)
                             }
                             if(Reconnect_Num>=20)
                             {
+                                appSetCFUN(0);
+                                osDelay(10);
+                                appSetCFUN(1);
+                                PSInitEventCallbackTable();
                                 Tcp_statuts=1;
                                 Reconnect_Num = 0;
                             }
@@ -1374,6 +1390,7 @@ static void Tcp_Task(void* arg)
                     printf("TCP_STATE_SLEEP\n");
                 #endif
                 Tcp_Sleep_Flag = TRUE;
+                appSetCFUN(0);
                 while(1)
                 {
                     osDelay(30000/portTICK_PERIOD_MS);
@@ -1391,6 +1408,7 @@ void Main_Task_Init()
         HAL_UART_RecvFlowControl(false);
     }
     #endif
+    //slpManDeepSlpTimerRegisterExpCb(slpManTimerCb);
     osThreadAttr_t task_attr;
     memset(&task_attr,0,sizeof(task_attr));
     memset(gProcess_Main_TaskStack, 0xA5, PROC_MAIN_TASK_STACK_SIZE);