Переглянути джерело

【V3.1.249.65】增加测试与发布版区分,增加系统状态转换标志

LAPTOP-EG88H5BE\86151 3 роки тому
батько
коміт
1052d4beeb

+ 11 - 9
inc/AppConfig.h

@@ -2,7 +2,7 @@
  * @Author       : ChenJie
  * @Date         : 2021-10-14 09:27:15
  * @LastEditors  : ChenJie
- * @LastEditTime : 2021-12-24 09:58:01
+ * @LastEditTime : 2021-12-29 10:13:44
  * @Description  : App Config H file 配置文件,可以针对不同参数进行更改
  * @FilePath     : \PLAT\project\ec616_0h00\apps\qx_app\inc\AppConfig.h
  */
@@ -14,15 +14,17 @@
 #define DATA_MODULE_TYPE (1)           // 1表示NB模块,2表示4G cat1
 #define EOLSTATE (0)                   // 1表示下线检测跳过,使用默认值,0表示使用下线检测
 #define DEFAULT_SN "RLTEST00000000001" //默认上传的SN编码
-#define APPSWVERSION 0x0301FA41        //数据模块软件版本号
-#define RELAYCONFIG 1                  //继电器配置
-#define TCP_ADD "iotp.fast-fun.cn"     //数据上传的地址
-#define TCP_PORT 8712                  //数据上传的端口
 
-#define NB_OTHER_TEMP_NUM (4)   // NB采集的温度个数
-#define HWVERSION 0x0102        //硬件主版本,现为V1.2板
-#define BLSWVERSION 0x01020000  // BootLoader版本号V1.2.0.0
-#define DRVSWVERSION 0x01050000 //驱动层版本号V1.4.0.0  驱动层1.5.0.0,增加了三轴
+#define APPSWRELEASE 0          //软件测试版本标志位,0-测试,1-发布
+#define APPSWVERSION 0x0301F941 //数据模块软件版本号
+
+#define RELAYCONFIG 1              //继电器配置
+#define TCP_ADD "iotp.fast-fun.cn" //数据上传的地址
+#define TCP_PORT 8712              //数据上传的端口
+#define NB_OTHER_TEMP_NUM (4)      // NB采集的温度个数
+#define HWVERSION 0x0102           //硬件主版本,现为V1.2板
+#define BLSWVERSION 0x01020000     // BootLoader版本号V1.2.0.0
+#define DRVSWVERSION 0x01050000    //驱动层版本号V1.4.0.0  驱动层1.5.0.0,增加了三轴
 
 #define APP_CONFIG_FILE_NAME "qxappconfig.nvm"
 #define APP_DATAINFO_FILE_NAME "qxappDataInfo3.nvm"

+ 2 - 1
inc/AppSignal.h

@@ -2,7 +2,7 @@
  * @Author       : ChenJie
  * @Date         : 2021-10-14 09:27:15
  * @LastEditors  : ChenJie
- * @LastEditTime : 2021-12-16 11:06:14
+ * @LastEditTime : 2021-12-29 10:36:02
  * @Description  : Global variable definition H file
  * @FilePath     : \PLAT\project\ec616_0h00\apps\qx_app\inc\AppSignal.h
  */
@@ -88,6 +88,7 @@ extern UINT16 ErrorNum[ErrorNumLength];
 extern UINT16 updateDifferDataPackageCounter;
 extern INT16 xyzData[3];
 extern UINT8 otherTempAvg;
+extern UINT8 UnSleepFlag;
 // declear the UINT32 vars
 extern UINT32 battBalanceoInfo;
 extern UINT32 battProtectState;

+ 1 - 0
inc/EmbeddedCoder_inc/BCUDisp.h

@@ -67,6 +67,7 @@ extern uint8_T   ihd_st_heatForceControl;
 extern uint8_T   ihd_st_EOLState;
 extern boolean_T ihd_flg_urtRecFlg;
 extern uint8_T   ihd_st_reSet;
+extern uint8_T ihd_st_heatStat;
 
 extern int16_T   sfmd_I_curr;                              /*处理后整包电流 */
 extern uint16_T  sfmd_T_modTMax;                          /*处理后模组温度最小 */

+ 2 - 1
src/AppSignal.c

@@ -3,7 +3,7 @@
  * @Date         : 2021-10-14 09:27:15
  * @Version      : V3.0
  * @LastEditors  : ChenJie
- * @LastEditTime : 2021-12-16 11:06:25
+ * @LastEditTime : 2021-12-29 10:35:24
  * @Description  : Global variable definition c file,此文件存放App使用到的全局变量
  * @FilePath     : \PLAT\project\ec616_0h00\apps\qx_app\src\AppSignal.c
  */
@@ -72,6 +72,7 @@ UINT8 UDSSwitch = 0;                    //下线检测标志位
 UINT8 UartInterruptcount = 0;           //串口中断累加值
 UINT8 UDSDialogMode = 01;               // UDS诊断模式
 UINT8 SysResetFlag = 0;
+UINT8 UnSleepFlag = 0; //不休眠标志位查看
 /**declear the uint16 vars**/
 UINT16 avrgCellVol = 0;                    //平均单体电压
 UINT16 battCellU[28] = {0};                //电池包单体电压

+ 6 - 3
src/AppTaskMain.c

@@ -3,7 +3,7 @@
  * @Date         : 2021-10-14 09:27:15
  * @Version      : V3.0
  * @LastEditors  : ChenJie
- * @LastEditTime : 2021-12-14 11:33:29
+ * @LastEditTime : 2021-12-29 10:55:45
  * @Description  : 主要负责:1.工作模式转换2.定时器定时3.定时保存运行数据4.异常状态重启
  * @FilePath     : \PLAT\project\ec616_0h00\apps\qx_app\src\AppTaskMain.c
  */
@@ -55,7 +55,7 @@ static void MainTask(void *arg)
     LastResetReasonNum = appGetLastResetReason();
     SysResetFlag = 1;
 #ifdef DEBUGLOG
-    Debug_printf("[%d,%d,%d]\n", Wakeup_source, AppDataInfo.SysReStartCount, LastResetReasonNum);
+    Debug_printf("[SysRoot,%d,%d]\n", AppDataInfo.SysReStartCount, LastResetReasonNum);
 #endif
     //配置文件及运行数据加载
     if (Error_Mutex == NULL)
@@ -113,6 +113,7 @@ static void MainTask(void *arg)
             }
             if ((BMS_Fota_update_flag != FALSE) || (TCPWorkState != 0x00) || (BattWorkStateDelay != BATT_IDLE_SYM) || (battWorkState != BATT_IDLE_SYM) || (PadInterrupt != 0x00) || (AvgBattTemp >= (45 + 40)))
             {
+                UnSleepFlag = ((BMS_Fota_update_flag != FALSE) << 5) | ((TCPWorkState != 0x00) << 4) | ((BattWorkStateDelay != BATT_IDLE_SYM) << 3) | ((battWorkState != BATT_IDLE_SYM) << 2) | ((PadInterrupt != 0x00) << 1) | (AvgBattTemp >= (45 + 40));
                 xTimerReset(work_timer, 0);
             }
             if ((TcpErrorcount >= 100 && getbit(PadInterrupt, 0) == 0x00 && battWorkState != BATT_CHARGE_SYM) || (NB_Fota_update_flag == TRUE))
@@ -185,7 +186,9 @@ static void MainTask(void *arg)
                 printf("WORK:%d,%d,%d\n", PadInterrupt_clrCounter, PadInterrupt, UartInterruptcount);
 #endif
 #ifdef DEBUGLOG
-                Debug_printf("WORK:%d,%d,%d\n", PadInterrupt_clrCounter, PadInterrupt, UartInterruptcount);
+                UINT8 WakeUpFlg = 0;
+                WakeUpFlg = ((SleepTimerEnd) << 3) | ((TCPWorkState == 1) << 2) | ((PadInterrupt_clrCounter >= 1) << 1) | (otherTempAvg > (50 + 40));
+                Debug_printf("WORK:%d,%d,%d,%d\n", PadInterrupt_clrCounter, PadInterrupt, UartInterruptcount, WakeUpFlg);
 #endif
                 PROC_MAIN_STATE_SWITCH(PROCESS_STATE_IDLE);
                 xTimerStop(sleep_timer, 0);

+ 13 - 4
src/AppTaskTcp.c

@@ -258,7 +258,12 @@ static void TcpDataInfoAssembleSend()
     {
         BattSendFreq = AppDataInfo.BattInfoSendFreqNomal;
         GpsSendFreq = AppDataInfo.PosInfoSendFreqHigh;
+#if APPSWRELEASE == 1
+        DebugFeq = BattSendFreq;
+#else
         DebugFeq = 1;
+#endif
+
         break;
     }
     default:
@@ -321,7 +326,11 @@ static void TcpDataInfoAssembleSend()
         *(SendBuffer + 35) = UTC8TimeTcp.minute & 0xFF;                      // mins-36
         *(SendBuffer + 36) = UTC8TimeTcp.second & 0xFF;                      // sec-37
         *(SendBuffer + 37) = csq;                                            //信号强度-38
-        *(SendBuffer + 38) = sfmd_st_fltLevel;                               //故障等级-39
+#if APPSWRELEASE == 1
+        *(SendBuffer + 38) = sfmd_st_fltLevel; //故障等级-39
+#else
+        *(SendBuffer + 38) = 0; //故障等级-39
+#endif
         if (osOK == osMutexAcquire(Error_Mutex, 100))
         {
             ErrorTemp = GetErrorNum((UINT16 *)ErrorNum, ErrorNumLength);
@@ -571,9 +580,9 @@ static void TcpDataInfoAssembleSend()
         static UINT8 Debugcounter = 0;
         if (Debugcounter % 5 == 0)
         {
-            sprintf((char *)rbuf, "A-%x,%d,%d,%x,%x,,%d,%d,,%d",
+            sprintf((char *)rbuf, "A-%x,%d,%d,%x,%x,,%d,%d,,%x",
                     battProtectState, AppDataInfo.RelayControl, chargerConnectState, BMSupdatestatus, PadInterrupt,
-                    AppDataInfo.ExpiryTimeArray[1], AppDataInfo.ExpiryTimeArray[2], SysResetFlag);
+                    AppDataInfo.ExpiryTimeArray[1], AppDataInfo.ExpiryTimeArray[2], UnSleepFlag);
         }
         else
         {
@@ -586,7 +595,7 @@ static void TcpDataInfoAssembleSend()
                     sfmd_I_curr, maxCellVol, minCellVol, sfmv_V_cellU[0], sfmv_V_cellU[1], sfmv_V_cellU[2],
                     cand_idx_cellNr, cand_Q_cellCap, ihd_tm_parkTime, sohd_Q_chrgEo,
                     pimd_V_ocv, pimd_R_ohm, pimd_R_polar, pimd_F_polar,
-                    pimv_V_cellOcv[0],pimv_V_cellOcv[1],pimv_V_cellOcv[2],pimv_R_cellOhm[0],pimv_R_cellOhm[1],pimv_R_cellOhm[2]);
+                    pimv_V_cellOcv[0], pimv_V_cellOcv[1], pimv_V_cellOcv[2], pimv_R_cellOhm[0], pimv_R_cellOhm[1], pimv_R_cellOhm[2]);
         }
         Debugcounter++;
         if (Debugcounter > 100)

+ 1 - 0
src/EmbeddedCoder_src/BCU.c

@@ -131,6 +131,7 @@ void BCU(void)
                     ihd_st_chrgMosControl = ChargeForbiddenControl == 0;
                     ihd_st_disChrgMosControl = DisChargeForbiddenControl == 0;
                     ihd_st_relayControl = RelayForbiddenControl == 0;
+					ihd_st_heatStat = battHeatEnableState;
                     // ihd_flg_DTCClear = 1;   //////clear
                     //调用算法
                     SFM();

+ 1 - 0
src/EmbeddedCoder_src/BCUDisp.c

@@ -66,6 +66,7 @@ uint8_T   ihd_st_heatForceControl;
 uint8_T   ihd_st_EOLState;
 boolean_T ihd_flg_urtRecFlg;
 uint8_T   ihd_st_reSet;
+uint8_T ihd_st_heatStat;
 
 int16_T   sfmd_I_curr;                              /*处理后整包电流 */
 uint16_T  sfmd_T_modTMax;                          /*处理后模组温度最小 */

+ 1 - 1
src/EmbeddedCoder_src/CDM.c

@@ -65,7 +65,7 @@ void CDM(void)
 	
 
     //放电使能----------------------------------------
-    if (ihd_st_workStat == 1) 
+    if (ihd_st_workStat == 1 && ihd_st_heatStat == 0) 
     { 
         for (i = 1; i < 2; i++)
         {

+ 2 - 2
src/EmbeddedCoder_src/PIM.c

@@ -71,7 +71,7 @@ void PIM(void)
 		pimn_st_workStat_Delay = 0;
     }
     //放电使能
-    if(pimn_st_workStat_Delay == 1)
+    if(pimn_st_workStat_Delay == 1 && ihd_st_heatStat == 0)
     {
         pimn_num_cnt = pimn_num_cnt + 1;
         //新增-------------------
@@ -185,7 +185,7 @@ void PIM(void)
         pimd_R_ohm   = 0;
         pimd_R_polar = 0;
         pimd_F_polar = 0;
-		pimn_flg_inval = 0;
+		pimn_flg_inval = 1;
 	}
 
 	//全部单体参数---------------------