Explorar o código

1、添加4G模组sim卡热拔插功能(需要4G卡座硬件支持);2、优化了4G、WIFI及有线网口的切换逻辑。

liyuezong hai 1 ano
pai
achega
05df7452e3
Modificáronse 4 ficheiros con 20 adicións e 8 borrados
  1. BIN=BIN
      cust_data/qt/rgb_lcd/Qt_Test
  2. 2 0
      pro/config/cfg.h
  3. 12 2
      pro/src/Cellular.c
  4. 6 6
      pro/src/sqlite_handle.c

BIN=BIN
cust_data/qt/rgb_lcd/Qt_Test


+ 2 - 0
pro/config/cfg.h

@@ -457,6 +457,8 @@
 
     #define USE_Cellular
 
+    #define BRD_MAX                             8
+
 #elif defined PRJ_DUALWIRES_AC_I3_O2
     #define LANGUAGE                            0           //chinese
     #define SMPLE_TIME                          30          //ms

+ 12 - 2
pro/src/Cellular.c

@@ -369,7 +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_QSIMDET,        "=1,1"},
         {AT_CMD_CPIN,       "?"},
         {AT_CMD_CREG,       "?"},
         //{AT_CMD_CGDCONT,    ""},
@@ -722,6 +722,11 @@ static int cell_init(cell_handle_t *h)
 
         r = send_cmd(h, p[i].cmd, p[i].para, NULL, 0);
         if(r!=AT_OK) {
+            if (p[i].cmd==AT_CMD_AT)
+            {
+                   port_deinit(h);
+                   port_init(h);
+            }
             break;
         }
     }
@@ -1574,7 +1579,7 @@ static void* cellular_thread(void *arg)
     char rxbuf[BUF_LEN];
     thread_handle_t *th=(thread_handle_t*)arg;
     cell_handle_t *h=(cell_handle_t*)th->arg;
-
+    int nlinkedflag=0;
     port_init(h);
     while (th->quit==0) {
         cnt++;
@@ -1602,6 +1607,10 @@ static void* cellular_thread(void *arg)
             }
             else
             {
+                if (nlinkedflag == 1)
+                {
+                    nic_set(NIC_USB, 0);
+                }
                  reset_var(h);
                  if (cnt - prelinkcnt >= 60)
                  {
@@ -1610,6 +1619,7 @@ static void* cellular_thread(void *arg)
                  }
             }
 
+            nlinkedflag=h->all.stat.linked;
         }
         else
         {

+ 6 - 6
pro/src/sqlite_handle.c

@@ -4297,25 +4297,25 @@ int dev_sensor_Alarm_send_message(GlobalDeviceManager* globalDeviceManger,Global
         switch (_AlarmType)
         {
         case SENSOR_VAL1_UPPER:
-            sprintf(AlarmText, "%s |$温度$|$%s$", __globalPowerTemp->sensor_name, language_alarm_Up[languagesID]);
+            sprintf(AlarmText, "%s |$温度$| $%s$", __globalPowerTemp->sensor_name, language_alarm_Up[languagesID]);
             if(ss->Cur_sensor_info.val1>LIMIT_HOF(ss->over_manager.sensor_val1_upper_threshold)) {
                 limit_flag = 1;
             }
             break;
         case SENSOR_VAL1_LOWER:
-            sprintf(AlarmText, "%s |$温度$|$%s$", __globalPowerTemp->sensor_name, language_alarm_Down[languagesID]);
+            sprintf(AlarmText, "%s |$温度$| $%s$", __globalPowerTemp->sensor_name, language_alarm_Down[languagesID]);
             if(ss->Cur_sensor_info.val1<LIMIT_LOF(ss->over_manager.sensor_val1_upper_threshold)) {
                 limit_flag = 1;
             }
             break;
         case SENSOR_VAL2_UPPER:
-            sprintf(AlarmText, "%s |$湿度$|$%s$", __globalPowerTemp->sensor_name, language_alarm_Up[languagesID]);
+            sprintf(AlarmText, "%s |$湿度$| $%s$", __globalPowerTemp->sensor_name, language_alarm_Up[languagesID]);
             if(ss->Cur_sensor_info.val2>LIMIT_HOF(ss->over_manager.sensor_val2_upper_threshold)) {
                 limit_flag = 1;
             }
             break;
         case SENSOR_VAL2_LOWER:
-            sprintf(AlarmText, "%s |$湿度$|$%s$", __globalPowerTemp->sensor_name, language_alarm_Down[languagesID]);
+            sprintf(AlarmText, "%s |$湿度$| $%s$", __globalPowerTemp->sensor_name, language_alarm_Down[languagesID]);
             if(ss->Cur_sensor_info.val2<LIMIT_LOF(ss->over_manager.sensor_val2_upper_threshold)) {
                 limit_flag = 1;
             }
@@ -4332,13 +4332,13 @@ int dev_sensor_Alarm_send_message(GlobalDeviceManager* globalDeviceManger,Global
         switch (_AlarmType)
         {
         case SENSOR_VAL1_UPPER:
-            sprintf(AlarmText, "%s |$温度$|$%s$", __globalPowerTemp->sensor_name, language_alarm_Up[languagesID]);
+            sprintf(AlarmText, "%s |$温度$| $%s$", __globalPowerTemp->sensor_name, language_alarm_Up[languagesID]);
             if(ss->Cur_sensor_info.val1>LIMIT_HOF(ss->over_manager.sensor_val1_upper_threshold)) {
                 limit_flag = 1;
             }
             break;
         case SENSOR_VAL1_LOWER:
-            sprintf(AlarmText, "%s |$温度$|$%s$", __globalPowerTemp->sensor_name, language_alarm_Down[languagesID]);
+            sprintf(AlarmText, "%s |$温度$| $%s$", __globalPowerTemp->sensor_name, language_alarm_Down[languagesID]);
             if(ss->Cur_sensor_info.val1<LIMIT_LOF(ss->over_manager.sensor_val1_upper_threshold)) {
                 limit_flag = 1;
             }