瀏覽代碼

1、调整4G异常处理,删除CFUN软重启功能(会导致4G模组串口通信失败)

liyuezong 1 年之前
父節點
當前提交
8c0fe2d751
共有 1 個文件被更改,包括 29 次插入 和 17 次删除
  1. 29 17
      pro/src/Cellular.c

+ 29 - 17
pro/src/Cellular.c

@@ -369,6 +369,7 @@ static at_cmd_t all_cmd[AT_CMD_MAX]={
 at_para_t init_para[]={
         {AT_CMD_AT,         ""},
         {AT_CMD_ATE,        "0"},
+        {AT_CMD_QSIMDET,        "=1,0"},
         {AT_CMD_CPIN,       "?"},
         {AT_CMD_CREG,       "?"},
         //{AT_CMD_CGDCONT,    ""},
@@ -633,10 +634,10 @@ static int send_cmd(cell_handle_t *h, int cmd, char *para, char *rcv, int rcvlen
                     if (pcmd->err && strlen(pcmd->err) && strstr(pbuf, pcmd->err))
                     {
                          // 指令不通则重置模块
-                        if (cmd != AT_CMD_CFUN && cmd != AT_CMD_QIDEACT )
-                        {
-                            cell_reset(h);
-                        }
+                       // if (cmd != AT_CMD_CFUN && cmd != AT_CMD_QIDEACT )
+                       // {
+                        //    cell_reset(h);
+                      //  }
                         return AT_ERR;
                     }
                 }
@@ -646,11 +647,11 @@ static int send_cmd(cell_handle_t *h, int cmd, char *para, char *rcv, int rcvlen
         }
     }
     //AT不通重启串口
-    if (cmd != AT_CMD_QIDEACT && cmd != AT_CMD_CFUN )
-    {
-        port_deinit(h);
-        port_init(h);
-    }
+   // if (cmd != AT_CMD_QIDEACT && cmd != AT_CMD_CFUN )
+  //  {
+   //     port_deinit(h);
+    //    port_init(h);
+   // }
 
     return AT_TOUT;
 }
@@ -683,13 +684,18 @@ static int send_data(cell_handle_t *h, void *data, int len, int timeout)
 ////////////////////////////////////////////////////////////////////////////
 static int cell_reset(cell_handle_t *h)
 {
-     reset_var(h);
-    int r;
-    r = send_cmd(h, AT_CMD_CFUN, "=1,1", NULL, 0);
+    int r=AT_OK;
+   // r = send_cmd(h, AT_CMD_CFUN, "=1,1", NULL, 0);
    // if(r==AT_OK) {
       //  h->stat = AT_STAT_UNINIT;
     //}
-    sleep(5);//等待模块复位完成
+   //sleep(5);//等待模块复位完成
+
+  // if (r == AT_OK)
+  // {
+   //    port_deinit(h);
+    //   port_init(h);
+  // }
 
     return (r==AT_OK)?0:-1;
 }
@@ -722,6 +728,7 @@ static int cell_init(cell_handle_t *h)
 
     if(r==0) {
         h->stat = AT_STAT_INITED;
+        nic_set(NIC_USB, 1);
         cell_get_info(h, &h->all.info);
     }
 
@@ -1593,11 +1600,16 @@ static void* cellular_thread(void *arg)
             {
                 prelinkcnt = cnt;
             }
-            if (cnt -prelinkcnt >=60 && h->all.stat.linked == 0)
+            else
             {
-                prelinkcnt = cnt;
-                cell_reset(h);
+                 reset_var(h);
+                 if (cnt - prelinkcnt >= 60)
+                 {
+                     prelinkcnt = cnt;
+                     cell_reset(h);
+                 }
             }
+
         }
         else
         {
@@ -1645,7 +1657,7 @@ int cellular_init(void)
         h->pcell = &h->dm->_globalDevInfo.cell;
         strcpy( h->prod_id,h->dm->_globalDevInfo.product.number);
        // h->lck = lock_d_init();
-        nic_set(NIC_USB, 1);
+        //nic_set(NIC_USB, 1);
 
        dev_SMS_get(h->dm->db, h->pcell);