Browse Source

【JM-V3.0.0.3】JM-CAN优化软件

CHENJIE-PC\QiXiang_CHENJIE 3 years ago
parent
commit
76ab3965c8
9 changed files with 1170 additions and 1191 deletions
  1. 2 2
      inc/AppConfig.h
  2. 140 151
      inc/AppSignal.h
  3. 180 181
      inc/hal_module_adapter.h
  4. 3 4
      src/AppFunc.c
  5. 282 298
      src/AppSignal.c
  6. 2 4
      src/AppTaskCan.c
  7. 151 148
      src/AppTaskMain.c
  8. 80 79
      src/bsp_custom.c
  9. 330 324
      src/hal_module_adapter.c

+ 2 - 2
inc/AppConfig.h

@@ -11,9 +11,9 @@
 #define BMS_MANUFACTURE (3)            //BMS制造商表示1-超力源,2-美顺,3-金茂卡车项目
 #define BMS_INFO (1)                   //1-1表示超力源4830,1-2表示超力源6060,2-1表示美顺6455
 #define DATA_MODULE_TYPE (1)           //1表示NB模块,2表示4G cat1
-#define EOLSTATE (1)                   //1表示下线检测跳过,使用默认值,0表示使用下线检测
+#define EOLSTATE (0)                   //1表示下线检测跳过,使用默认值,0表示使用下线检测
 #define DEFAULT_SN "JMTEST00000000001" //默认上传的SN编码
-#define APPSWVERSION 0x03000002        //数据模块软件版本号
+#define APPSWVERSION 0x03000003        //数据模块软件版本号
 
 #define TCP_ADD "iotp.fast-fun.cn" //数据上传的地址
 #define TCP_PORT 8712              //数据上传的端口

+ 140 - 151
inc/AppSignal.h

@@ -18,178 +18,167 @@ extern BOOL canSNMsgLostFlag;
 extern BOOL canSNMsgRxCmpltFlag;
 extern BOOL canVINMsgRxCmpltFlag;
 
-
 //extern declear the UINT8 vars
 
-extern UINT8    TcpErrorcount;
-extern UINT8    TCPWorkState;
-extern UINT8    TcpSendLen; 
-extern UINT8    GpsFlag;
-extern UINT8   PadInterrupt ;
-extern UINT8 	Lockstatus;
-
+extern UINT8 TcpErrorcount;
+extern UINT8 TCPWorkState;
+extern UINT8 TcpSendLen;
+extern UINT8 GpsFlag;
+extern UINT8 PadInterrupt;
+extern UINT8 Lockstatus;
 
 //declear the UINT16 vars
-extern UINT16	nbHwVersion;
-extern UINT16   ErrorNum[5];
+extern UINT16 nbHwVersion;
+extern UINT16 ErrorNum[5];
 
 //declear the UINT32 vars
-extern UINT32	nbSwVersion ;
-extern volatile UINT32  TimeCounter;
-
+extern UINT32 nbSwVersion;
+extern volatile UINT32 TimeCounter;
 
 //declear other vars
 extern osMutexId_t Error_Mutex;
 extern QueueHandle_t GpsRecvHandle;
 extern QueueHandle_t UartWriteCmdHandle;
+extern QueueHandle_t CanRecvHandle;
 extern AppConfigDataType AppNVMData;
 extern AppDataBody AppDataInfo;
-extern AppSocketConnectionContext socContext;  //网络连接状态
-extern process_app 		    gProcess_app;
+extern AppSocketConnectionContext socContext; //网络连接状态
+extern process_app gProcess_app;
 
-extern	UINT32	COMInTable[133];
+extern UINT32 COMInTable[133];
 extern UINT8 canRxShortError[133];
 extern UINT8 canRxLongError[133];
 extern UINT8 canRxErrorCounter[133];
 extern UINT8 canRxFlag[133];
-extern UINT8	UDSService[2] ;           //uds 服务
-extern UINT8	UDSSubService[2] ;       // uds 子服务
-extern UINT8	UDSSubServiceActionCode[2] ;  // uds 子服务状态
-extern UINT8   GpsData[16] ;                  //GPS 数据缓存区
-extern UINT16  updateDifferDataPackageCounter;  //差分包升级计数器
-extern BOOL downloadReady;   
-extern UINT8 	UDSSwitch;              //下线检测标志位
-
-
+extern UINT8 UDSService[2];                   //uds 服务
+extern UINT8 UDSSubService[2];                // uds 子服务
+extern UINT8 UDSSubServiceActionCode[2];      // uds 子服务状态
+extern UINT8 GpsData[16];                     //GPS 数据缓存区
+extern UINT16 updateDifferDataPackageCounter; //差分包升级计数器
+extern BOOL downloadReady;
+extern UINT8 UDSSwitch; //下线检测标志位
 
 //declear the UINT8 vars
-extern  UINT8   csq;
-extern	UINT8	bmsStatus;
-extern	UINT8	bmsErrClass;
-extern	UINT8	chrgConctStatus;
-extern	UINT8	highVolPwrDwnReq;
-extern	UINT8	chrgStatus;
-extern	UINT8	bmsErrNum;
-extern	UINT8	bmsLife;
-extern	UINT8	battSoc;
-extern	UINT8	maxCellTemp;
-extern	UINT8	minCellTemp;
-extern	UINT8	avgCellTemp;
-extern	UINT8	maxVolSubsysCode;
-extern	UINT8	minVolSubsysCode;
-extern	UINT8	maxTempSubsysCode;
-extern	UINT8	maxTempCellCode;
-extern	UINT8	minTempSubsysCode;
-extern	UINT8	minTempCellCode;
-extern	UINT8	numOfChrgableSubsys;
-extern	UINT8	lengthOfChrgableSysCode;
-extern	UINT8	chrgableSysCode;
-extern	UINT8	chrgableSubsysCode;
-extern	UINT8	numOfCellTemp;
-extern	UINT8	numOfBattErr;
-extern	UINT8	battCellTemp[CELL_TEMP_NUM];
-extern	UINT8	mainPosRlyStatus;
-extern	UINT8	preRlyStatus;
-extern	UINT8	mainNegRlyStatus;
-extern	UINT8	thrRlyStatus;
-extern	UINT8	ptc1RlyStatus;
-extern	UINT8	airCondRlyStatus;
-extern	UINT8	dcChrg1PosRlyStatus;
-extern	UINT8	dcChrg1NegRlyStatus;
-extern	UINT8	dcChrg2PosRlyStatus;
-extern	UINT8	dcChrg2NegRlyStatus;
-extern	UINT8	heatPosRlyStatus;
-extern	UINT8	heatNegRlyStatus;
-extern	UINT8	coolRlyStatus;
-extern	UINT8	ptc2RlyStatus;
-extern	UINT8	mainPosRlyErrStatus;
-extern	UINT8	preRlyErrStatus;
-extern	UINT8	mainNegRlyErrStatus;
-extern	UINT8	thrRlyErrStatus;
-extern	UINT8	ptc1RlyErrStatus;
-extern	UINT8	airCondRlyErrStatus;
-extern	UINT8	dcChrg1PosRlyErrStatus;
-extern	UINT8	dcChrg1NegRlyErrStatus;
-extern	UINT8	dcChrg2PosRlyErrStatus;
-extern	UINT8	dcChrg2NegRlyErrStatus;
-extern	UINT8	heatPosRlyErrStatus;
-extern	UINT8	heatNegRlyErrStatus;
-extern	UINT8	coolRlyErrStatus;
-extern	UINT8	ptc2RlyErrStatus;
-extern	UINT8	battSOH;
-extern	UINT8	SN[24];
-extern	UINT8	bmsHVOn;
-extern	UINT8	acRelayStatus;
-extern	UINT8	ptcRelayStatus;
-extern	UINT8	mainRelayStatus;
-extern	UINT8	preRelayStatus;
-extern	UINT8	ptc2RelayStatus;
-extern	UINT8	acRelayErrorStatus;
-extern	UINT8	ptcRelayErrorStatus;
-extern	UINT8	mainRelayErrorStatus;
-extern	UINT8	preRelayErrorStatus;
-extern	UINT8	hvLockErrorStatus;
-extern	UINT8	ptc2RelayErrorStatus;
-extern	UINT8	ebcStatus;
-extern	UINT8	ebcAskHVOn;
-extern	UINT8	ebcAskHVOff;
-extern	UINT8	retainLockSignal;
-extern	UINT8	dischargeLockSignal;
-extern	UINT8	chargeLockSignal;
-extern	UINT8	errorClass;
-extern	UINT8	errorCode1;
-extern	UINT8	errorCode2;
-extern	UINT8	chargeFlag;
-extern	UINT8	exchangeBattAirPressure;
-extern	UINT8	lifeSignal;
-extern	UINT8	vehicleStatus;
-extern	UINT8	currentGearPosition;
-extern	UINT8	parkingBreakStatus;
-extern	UINT8	breakingStatus;
-extern	UINT8	VIN[17];
-extern	UINT8	frontBreakingPressure;
-extern	UINT8	backBreakingPressure;
-extern	UINT8	frontBreakingPressureErrorStatus;
-extern	UINT8	backBreakingPressureErrorStatus;
-extern	UINT8	dcdcErrorClass;
-extern	UINT8	dcdcWorkStatus;
-extern	UINT8	mainElectricityErrorClass;
-extern	UINT8	pumpWorkStatus;
-extern	UINT8	elecAirCompressorErrorStatus;
-extern	UINT8	elecAirCompressorWrokStatus;
-
-
+extern UINT8 csq;
+extern UINT8 bmsStatus;
+extern UINT8 bmsErrClass;
+extern UINT8 chrgConctStatus;
+extern UINT8 highVolPwrDwnReq;
+extern UINT8 chrgStatus;
+extern UINT8 bmsErrNum;
+extern UINT8 bmsLife;
+extern UINT8 battSoc;
+extern UINT8 maxCellTemp;
+extern UINT8 minCellTemp;
+extern UINT8 avgCellTemp;
+extern UINT8 maxVolSubsysCode;
+extern UINT8 minVolSubsysCode;
+extern UINT8 maxTempSubsysCode;
+extern UINT8 maxTempCellCode;
+extern UINT8 minTempSubsysCode;
+extern UINT8 minTempCellCode;
+extern UINT8 numOfChrgableSubsys;
+extern UINT8 lengthOfChrgableSysCode;
+extern UINT8 chrgableSysCode;
+extern UINT8 chrgableSubsysCode;
+extern UINT8 numOfCellTemp;
+extern UINT8 numOfBattErr;
+extern UINT8 battCellTemp[CELL_TEMP_NUM];
+extern UINT8 mainPosRlyStatus;
+extern UINT8 preRlyStatus;
+extern UINT8 mainNegRlyStatus;
+extern UINT8 thrRlyStatus;
+extern UINT8 ptc1RlyStatus;
+extern UINT8 airCondRlyStatus;
+extern UINT8 dcChrg1PosRlyStatus;
+extern UINT8 dcChrg1NegRlyStatus;
+extern UINT8 dcChrg2PosRlyStatus;
+extern UINT8 dcChrg2NegRlyStatus;
+extern UINT8 heatPosRlyStatus;
+extern UINT8 heatNegRlyStatus;
+extern UINT8 coolRlyStatus;
+extern UINT8 ptc2RlyStatus;
+extern UINT8 mainPosRlyErrStatus;
+extern UINT8 preRlyErrStatus;
+extern UINT8 mainNegRlyErrStatus;
+extern UINT8 thrRlyErrStatus;
+extern UINT8 ptc1RlyErrStatus;
+extern UINT8 airCondRlyErrStatus;
+extern UINT8 dcChrg1PosRlyErrStatus;
+extern UINT8 dcChrg1NegRlyErrStatus;
+extern UINT8 dcChrg2PosRlyErrStatus;
+extern UINT8 dcChrg2NegRlyErrStatus;
+extern UINT8 heatPosRlyErrStatus;
+extern UINT8 heatNegRlyErrStatus;
+extern UINT8 coolRlyErrStatus;
+extern UINT8 ptc2RlyErrStatus;
+extern UINT8 battSOH;
+extern UINT8 SN[24];
+extern UINT8 bmsHVOn;
+extern UINT8 acRelayStatus;
+extern UINT8 ptcRelayStatus;
+extern UINT8 mainRelayStatus;
+extern UINT8 preRelayStatus;
+extern UINT8 ptc2RelayStatus;
+extern UINT8 acRelayErrorStatus;
+extern UINT8 ptcRelayErrorStatus;
+extern UINT8 mainRelayErrorStatus;
+extern UINT8 preRelayErrorStatus;
+extern UINT8 hvLockErrorStatus;
+extern UINT8 ptc2RelayErrorStatus;
+extern UINT8 ebcStatus;
+extern UINT8 ebcAskHVOn;
+extern UINT8 ebcAskHVOff;
+extern UINT8 retainLockSignal;
+extern UINT8 dischargeLockSignal;
+extern UINT8 chargeLockSignal;
+extern UINT8 errorClass;
+extern UINT8 errorCode1;
+extern UINT8 errorCode2;
+extern UINT8 chargeFlag;
+extern UINT8 exchangeBattAirPressure;
+extern UINT8 lifeSignal;
+extern UINT8 vehicleStatus;
+extern UINT8 currentGearPosition;
+extern UINT8 parkingBreakStatus;
+extern UINT8 breakingStatus;
+extern UINT8 VIN[17];
+extern UINT8 frontBreakingPressure;
+extern UINT8 backBreakingPressure;
+extern UINT8 frontBreakingPressureErrorStatus;
+extern UINT8 backBreakingPressureErrorStatus;
+extern UINT8 dcdcErrorClass;
+extern UINT8 dcdcWorkStatus;
+extern UINT8 mainElectricityErrorClass;
+extern UINT8 pumpWorkStatus;
+extern UINT8 elecAirCompressorErrorStatus;
+extern UINT8 elecAirCompressorWrokStatus;
 
 //declear the UINT16 vars
-extern	UINT16	maxChrgCurrAllowed;
-extern	UINT16	maxDischrgCurrAllowed;
-extern	UINT16	packTotalVol;
-extern	UINT16	packTotalCurr;
-extern	UINT16	insulationR;
-extern	UINT16	maxCellVol;
-extern	UINT16	minCellVol;
-extern	UINT16	maxVolCellCode;
-extern	UINT16	minVoCelllCode;
-extern	UINT16	numOfCells;
-extern	UINT16	battCellU[CELL_NUM];
-extern	UINT16	vcuDCVol;
-
-
+extern UINT16 maxChrgCurrAllowed;
+extern UINT16 maxDischrgCurrAllowed;
+extern UINT16 packTotalVol;
+extern UINT16 packTotalCurr;
+extern UINT16 insulationR;
+extern UINT16 maxCellVol;
+extern UINT16 minCellVol;
+extern UINT16 maxVolCellCode;
+extern UINT16 minVoCelllCode;
+extern UINT16 numOfCells;
+extern UINT16 battCellU[CELL_NUM];
+extern UINT16 vcuDCVol;
 
 //declear the UINT32 vars
-extern	UINT32	accChrgAh;
-extern	UINT32	accDischrgAh;
-extern	UINT32	accChrgkWh;
-extern	UINT32	accDischrgkWh;
-extern	UINT32	accRecvryChrgAh;
-extern	UINT32	accRecvryChrgkWh;
-extern	UINT32	accStationChrgAh;
-extern	UINT32	accStationChrgkWh;
-extern	UINT32	accGunChrgAh;
-extern	UINT32	accGunChrgkWh;
-extern	UINT32	sglChrgAh;
-extern	UINT32	sglChrgkWh;
-extern	UINT32	ODO;
-
-
-
+extern UINT32 accChrgAh;
+extern UINT32 accDischrgAh;
+extern UINT32 accChrgkWh;
+extern UINT32 accDischrgkWh;
+extern UINT32 accRecvryChrgAh;
+extern UINT32 accRecvryChrgkWh;
+extern UINT32 accStationChrgAh;
+extern UINT32 accStationChrgkWh;
+extern UINT32 accGunChrgAh;
+extern UINT32 accGunChrgkWh;
+extern UINT32 sglChrgAh;
+extern UINT32 sglChrgkWh;
+extern UINT32 ODO;

+ 180 - 181
inc/hal_module_adapter.h

@@ -1,8 +1,9 @@
-#ifndef  HAL_MODULE_ADAPTER_H
-#define  HAL_MODULE_ADAPTER_H
+#ifndef HAL_MODULE_ADAPTER_H
+#define HAL_MODULE_ADAPTER_H
 
 #ifdef __cplusplus
-extern "C" {
+extern "C"
+{
 #endif
 #include "commontypedef.h"
 #include "sensor.h"
@@ -11,197 +12,195 @@ extern "C" {
 #define USING_PRINTF
 #define DEBUGLOG
 
-#define GPS_DATA_RECV_BUFFER_SIZE     						(1024)
-
-#define I2C_INT1_REQ_BITMAP    								 (0x1)
-#define I2C_INT2_REQ_BITMAP    								 (0x2)
-
-
-#define ADC_REQ_BITMAP_VBAT    							       (0x01)
-#define ADC_REQ_BITMAP_TEMP   							       (0x02)
-#define ADC_REQ_BITMAP_CH1								 (0x04)
-#define ADC_REQ_BITMAP_CH2								 (0x08)
-#define ADC_REQ_BITMAP_CH30								 (0x10)
-#define ADC_REQ_BITMAP_CH31								 (0x20)
-#define ADC_REQ_BITMAP_CH4								 (0x40)
-#define ADC_REQ_BITMAP_VBAT_CALI					 			(0x80)
-#define ADC_REQ_BITMAP_INRES_CALI					 			(0x100)
-#define ADC_GET_RESULT_TIMOUT 								 (2000)
-typedef enum
-{ 
- FAST_CHARGE_TEMP = 1, 
- NORMAL_CHARGE_TEMP,
- OTHER_TEMP_1,
- OTHER_TEMP_2,
- VBAT
-}ADC_CHANNEL_TYPE;
-typedef enum _ntc_channel
-{
-    NTC_Channel1 ,	         
-    NTC_Channel2 ,                
-    NTC_Channel30 ,               
-    NTC_Channel31 ,               
-    NTC_Channel4 ,               
-    NTC_Channel4_VbatCali ,           
-    NTC_Channel4_InresCali ,           
-    NTC_ChannelMax	
-} ntc_channel_t;
-
-typedef enum{
-	LED_SOC_0,
-	LED_SOC_1,
-	LED_SOC_2,
-	LED_SOC_3,
-	LED_MAX_INX
-}ledInx_t;
-
-typedef enum
-{
-	AON_IO = 0,
-	NORMAL_IO = 1,
-}IOType;
-
-typedef enum{
-	LED_TURN_ON,
-	LED_TURN_OFF
-}ledStaus_t;
-
-typedef struct
-{
-    UINT32 request;
-    UINT32 param[7];
-}adcReqMsg;
-
-typedef struct
-{
-    void * dataPtr;
-    UINT32 len;
-}gpsReqMsg;
-
-
-typedef struct
-{
-    UINT32 event;
-    UINT32 value;
-} i2c_recv_msgqueue_obj_t;
-
-
-typedef struct _led_pin_config
-{
-    INT32  pinPort; 
-    INT32  pinInx; 
-    INT32  padInx;
-    pad_mux_t padMutex;
-} led_pin_config_t;
-
-typedef enum
-{
-	STD_PACK ,
-	EXT_PACK ,
-	PACK_MAX
-}PackType;
-
-typedef struct _can_initType
-{
-	INT32 baudrate; 
-	INT16 mode;
-	
-	INT8 TxStdIDH; 
-	/*
+#define GPS_DATA_RECV_BUFFER_SIZE (1024)
+
+#define I2C_INT1_REQ_BITMAP (0x1)
+#define I2C_INT2_REQ_BITMAP (0x2)
+
+#define ADC_REQ_BITMAP_VBAT (0x01)
+#define ADC_REQ_BITMAP_TEMP (0x02)
+#define ADC_REQ_BITMAP_CH1 (0x04)
+#define ADC_REQ_BITMAP_CH2 (0x08)
+#define ADC_REQ_BITMAP_CH30 (0x10)
+#define ADC_REQ_BITMAP_CH31 (0x20)
+#define ADC_REQ_BITMAP_CH4 (0x40)
+#define ADC_REQ_BITMAP_VBAT_CALI (0x80)
+#define ADC_REQ_BITMAP_INRES_CALI (0x100)
+#define ADC_GET_RESULT_TIMOUT (2000)
+	typedef enum
+	{
+		FAST_CHARGE_TEMP = 1,
+		NORMAL_CHARGE_TEMP,
+		OTHER_TEMP_1,
+		OTHER_TEMP_2,
+		VBAT
+	} ADC_CHANNEL_TYPE;
+	typedef enum _ntc_channel
+	{
+		NTC_Channel1,
+		NTC_Channel2,
+		NTC_Channel30,
+		NTC_Channel31,
+		NTC_Channel4,
+		NTC_Channel4_VbatCali,
+		NTC_Channel4_InresCali,
+		NTC_ChannelMax
+	} ntc_channel_t;
+
+	typedef enum
+	{
+		LED_SOC_0,
+		LED_SOC_1,
+		LED_SOC_2,
+		LED_SOC_3,
+		LED_MAX_INX
+	} ledInx_t;
+
+	typedef enum
+	{
+		AON_IO = 0,
+		NORMAL_IO = 1,
+	} IOType;
+
+	typedef enum
+	{
+		LED_TURN_ON,
+		LED_TURN_OFF
+	} ledStaus_t;
+
+	typedef struct
+	{
+		UINT32 request;
+		UINT32 param[7];
+	} adcReqMsg;
+
+	typedef struct
+	{
+		void *dataPtr;
+		UINT32 len;
+	} gpsReqMsg;
+
+	typedef struct
+	{
+		UINT32 event;
+		UINT32 value;
+	} i2c_recv_msgqueue_obj_t;
+
+	typedef struct _led_pin_config
+	{
+		INT32 pinPort;
+		INT32 pinInx;
+		INT32 padInx;
+		pad_mux_t padMutex;
+	} led_pin_config_t;
+
+	typedef enum
+	{
+		STD_PACK,
+		EXT_PACK,
+		PACK_MAX
+	} PackType;
+
+	typedef struct _can_initType
+	{
+		INT32 baudrate;
+		INT16 mode;
+
+		INT8 TxStdIDH;
+		/*
 		std : sid0 - sid2 ->bit5-bit7
 		ext :eid17: bit1 
 		ext: eid16 :bit0
 	*/
-	INT8 TxStdIDL; 
-	
-	INT8 TxExtIDH;
-	INT8 TxExtIDL;
-	
-	INT8 RxStdIDH[6];
-	INT8 RxStdIDL[6]; 
-
-	INT8 RxExtIDH[6]; 
-	INT8 RxExtIDL[6];
-	
-	PackType packType; //0   STID; 1 EXTID;
-}Can_InitType;
-
-typedef struct _Can_TxMsgType
-{
-    UINT16 stdIDH; 
-	UINT16 stdIDL;
-    UINT8 DLC;
-    UINT8 Data[8];
-}Can_TxMsgType;
-typedef struct UTC8Time_Type
-{
-    UINT16 year; 
-	UINT8 month; 
-	UINT8 day; 
-	UINT8 hour; 
-	UINT8 minute; 
-	UINT8 second; 
-}UTC8TimeType;
+		INT8 TxStdIDL;
+
+		INT8 TxExtIDH;
+		INT8 TxExtIDL;
+
+		INT8 RxStdIDH[6];
+		INT8 RxStdIDL[6];
+
+		INT8 RxExtIDH[6];
+		INT8 RxExtIDL[6];
+
+		PackType packType; //0   STID; 1 EXTID;
+	} Can_InitType;
+
+	typedef struct _Can_TxMsgType
+	{
+		UINT16 stdIDH;
+		UINT16 stdIDL;
+		UINT8 DLC;
+		UINT8 Data[8];
+	} Can_TxMsgType;
+	typedef struct UTC8Time_Type
+	{
+		UINT16 year;
+		UINT8 month;
+		UINT8 day;
+		UINT8 hour;
+		UINT8 minute;
+		UINT8 second;
+	} UTC8TimeType;
 #ifdef BL_FILE_LOG
-typedef enum
-{
-	BL_LEVEL0, 
-	BL_LEVEL1, 
-	BL_LEVEL2, 
-	BL_LEVEL3, 
-}BlLogLevel;
+	typedef enum
+	{
+		BL_LEVEL0,
+		BL_LEVEL1,
+		BL_LEVEL2,
+		BL_LEVEL3,
+	} BlLogLevel;
 #endif
-typedef struct CAN_Msg_Type
-{
-	UINT32 Id;	
-	UINT8  DLC;
-	UINT8  Data[8];
-}CAN_Msg_Type;
-typedef void (*posGGACallBack )(UINT8 res, UINT8 * params);
-void PowerPinConfig(IOType iotype);
-void relayConfigInit(void);
-void relayControl(BOOL onOrOff);
-
-void posGGAServiceStop( void);
-void posGGAReset(void);
-
-
-void NetSocDisplay(ledInx_t  Inx , ledStaus_t status);
-void FaultDisplay(ledStaus_t status);
-
-INT32 AdcSendReq(UINT32 req,UINT32 * param , UINT8 len ,UINT32 timeout);
-INT32 AdcTaskInit(void);
-
-void CanSPIHandler(ARM_SPI_SignalEvent_t cb_event,UINT8 mode,UINT8 dataBits, UINT32 spiRate );
+	typedef struct CAN_Msg_Type
+	{
+		UINT32 Id;
+		UINT8 DLC;
+		UINT8 Data[8];
+	} CAN_Msg_Type;
+	typedef void (*posGGACallBack)(UINT8 res, UINT8 *params);
+	void PowerPinConfig(IOType iotype);
+	void relayConfigInit(void);
+	void relayControl(BOOL onOrOff);
+
+	void posGGAServiceStop(void);
+	void posGGAReset(void);
+
+	void NetSocDisplay(ledInx_t Inx, ledStaus_t status);
+	void FaultDisplay(ledStaus_t status);
+
+	INT32 AdcSendReq(UINT32 req, UINT32 *param, UINT8 len, UINT32 timeout);
+	INT32 AdcTaskInit(void);
+
+	void CanSPIHandler(ARM_SPI_SignalEvent_t cb_event, UINT8 mode, UINT8 dataBits, UINT32 spiRate);
 #if 1
-UINT8 CanTriggerEvtInit(void);
-void CanWaitEvt(UINT32 timeout);
-void CanTiggerEvt(UINT8 cmd);
+	UINT8 CanTriggerEvtInit(void);
+	void CanWaitEvt(UINT32 timeout);
+	void CanTiggerEvt(UINT8 cmd);
 #endif
-INT32 CAN_WriteReg(UINT8 addr, UINT8 value);
-INT32 CAN_ReadReg(UINT8 reg, UINT8 len, UINT8 *buf);
-void HAL_Can_Init(Can_InitType param);
-void HAL_Can_Sleep(void);
-INT32 HAL_Can_Reset(void);
-INT8 HAL_Can_Transmit(CAN_Msg_Type Can_TxMsg);
-UINT8  HAL_Can_Receive(CAN_Msg_Type* CanRxMsgBuffer);
-void UTCToBeijing(UTC8TimeType* UTC8Time,unsigned int UTCyear,unsigned char UTCmonth,unsigned char UTCday,unsigned int UTChour,unsigned char UTCminute,unsigned char UTCsecond);
-BOOL NB_ADC_Get(UINT32* adcValue, ADC_CHANNEL_TYPE adcChannel);
+	INT32 CAN_WriteReg(UINT8 addr, UINT8 value);
+	INT32 CAN_ReadReg(UINT8 reg, UINT8 len, UINT8 *buf);
+	void HAL_Can_Init(Can_InitType param);
+	void HAL_Can_Sleep(void);
+	INT32 HAL_Can_Reset(void);
+	INT8 HAL_Can_Transmit(CAN_Msg_Type Can_TxMsg);
+	UINT8 HAL_Can_Receive(CAN_Msg_Type *CanRxMsgBuffer);
+	void UTCToBeijing(UTC8TimeType *UTC8Time, unsigned int UTCyear, unsigned char UTCmonth, unsigned char UTCday, unsigned int UTChour, unsigned char UTCminute, unsigned char UTCsecond);
+	BOOL NB_ADC_Get(UINT32 *adcValue, ADC_CHANNEL_TYPE adcChannel);
 
 #ifdef DEBUGLOG
-void Debug_Del_Logfile(void);
-void Debug_Read_Logfile(UINT8 * rbuf,UINT16 FileSize);
-void Debug_printf(const UINT8 *format, ...);
-UINT16 Debug_GetSize();
+	void Debug_Del_Logfile(void);
+	void Debug_Read_Logfile(UINT8 *rbuf, UINT16 FileSize);
+	void Debug_printf(const UINT8 *format, ...);
+	UINT16 Debug_GetSize();
 #endif
 #ifdef BL_FILE_LOG
-void bluejoy_printf(BlLogLevel level, const UINT8 *format, ...);
-void bluejoy_read_logfile(void);
-void bluejoy_del_logfile(void);
+	void bluejoy_printf(BlLogLevel level, const UINT8 *format, ...);
+	void bluejoy_read_logfile(void);
+	void bluejoy_del_logfile(void);
 #endif
-extern void GsensorInit(void);
-extern void GsensorI2CHandler(ARM_I2C_SignalEvent_t cb_event);
-extern void GsensorI2CCallback(UINT32 event);
+	extern void GsensorInit(void);
+	extern void GsensorI2CHandler(ARM_I2C_SignalEvent_t cb_event);
+	extern void GsensorI2CCallback(UINT32 event);
 #ifdef __cplusplus
 }
 #endif

+ 3 - 4
src/AppFunc.c

@@ -758,7 +758,7 @@ void Fota_Func(UINT8 *DataPtr, INT32 connectId)
 				memset(Data_Read_Buffer, 0x00, Fota_S.Fota_Recv_Data_Len);
 				BSP_QSPI_Read_Safe(Data_Read_Buffer, Fota_S.Fota_Flash_Addres + Fota_S.Fota_Current_Addres, Fota_S.Fota_Recv_Data_Len);
 				Data_Read_Crc = Fota_crc_chk(Data_Read_Buffer, Fota_S.Fota_Recv_Data_Len);
-#ifdef USING_PRINTF
+#ifdef USING_PRINTF1
 				printf("Data_Read_Buffer:\n");
 				for (int i = 0; i < Fota_S.Fota_Recv_Data_Len; i++)
 				{
@@ -2007,7 +2007,7 @@ void DecodeFunction(UINT32 ID, UINT8 *rawData)
 void canRxDiagnose(void)
 {
 
-	//printf("timer in = %d\n",TimeCounter);
+	//printf("timer in = %d\n", TimeCounter);
 
 	if (TimeCounter % 1 == 0) //period <=100ms
 	{
@@ -2834,7 +2834,6 @@ void canRxMsgSetInvalidValue(UINT32 ID)
 		packTotalVol = 0xFFFF;
 		packTotalCurr = 0xFFFF;
 		insulationR = 0xFFFF;
-		printf("set the defalut value\n");
 		break;
 	case 0x18FF51F3:
 		maxCellVol = 0xFFFF;
@@ -4384,7 +4383,7 @@ void TcpDataAssemble(UINT8 Tcptype, UINT8 *SendBuffer, UTC8TimeType UTC8TimeTcp)
 		*(SendBuffer + 0x31) = (packTotalCurr & 0xFF);
 		*(SendBuffer + 0x32) = ((insulationR >> 8) & 0xFF); //uint16	��Ե����
 		*(SendBuffer + 0x33) = (insulationR & 0xFF);
-#ifdef USING_PRINTF
+#ifdef USING_PRINTF1
 		printf("[%d]soh:\n", __LINE__);
 		for (UINT8 i = 0; i < 8; i++)
 		{

+ 282 - 298
src/AppSignal.c

@@ -2,7 +2,7 @@
  *
  * Copy right:   2021-, Copyrigths of RLWL Ltd.
  * File name:    AppSignal.c
- * Description:  Global variable definition c file,此文件存放App使用到的全局变量
+ * Description:  Global variable definition c file,锟斤拷锟侥硷拷锟斤拷锟紸pp使锟矫碉拷锟斤拷全锟街憋拷锟斤拷
  * History:      Rev3.0   2021-07-06
  *
  ****************************************************************************/
@@ -15,323 +15,307 @@ BOOL canSNMsgLostFlag = false;
 BOOL canSNMsgRxCmpltFlag = false;
 BOOL canVINMsgRxCmpltFlag = false;
 
-
-
-UINT8   TcpErrorcount=0;            //Error count TCP联网错误计数
-UINT8   TCPWorkState = 0;           //Tcp工作状态,0-表示发送,1-表示应答,2-表示监听以及心跳发送
-UINT8 	TcpSendLen = 0;             //Tcp send status Tcp发送状态
-UINT8 	PosFlag = 0;                //定位信息是否有效标志位
-UINT8   GpsFlag = 0;                  //GPS 数据有效标志位
-UINT8   PadInterrupt = 0x00;           //每个bit代表一个中断标志
-UINT8 	Lockstatus = 0x00;
+UINT8 TcpErrorcount = 0;   //Error count TCP锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟�
+UINT8 TCPWorkState = 0;    //Tcp锟斤拷锟斤拷状态锟斤拷0-锟斤拷示锟斤拷锟酵o拷1-锟斤拷示应锟斤拷2-锟斤拷示锟斤拷锟斤拷锟皆硷拷锟斤拷锟斤拷锟斤拷锟斤拷
+UINT8 TcpSendLen = 0;      //Tcp send status Tcp锟斤拷锟斤拷状态
+UINT8 PosFlag = 0;         //锟斤拷位锟斤拷息锟角凤拷锟斤拷效锟斤拷志位
+UINT8 GpsFlag = 0;         //GPS 锟斤拷锟斤拷锟斤拷效锟斤拷志位
+UINT8 PadInterrupt = 0x00; //每锟斤拷bit锟斤拷锟斤拷一锟斤拷锟叫断憋拷志
+UINT8 Lockstatus = 0x00;
 
 /**declear the uint16 vars**/
-UINT16	nbHwVersion = 0xFFFF;   //数据模块硬件状态
-UINT16  ErrorNum[5]={0};        //Error array,故障数组
+UINT16 nbHwVersion = 0xFFFF; //锟斤拷锟斤拷模锟斤拷硬锟斤拷状态
+UINT16 ErrorNum[5] = {0};    //Error array锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷
 
 /**declear the uint32 vars**/
-UINT32	nbSwVersion = 0xFFFFFFFF;       // 数据模块软件状态
-volatile UINT32  TimeCounter = 0x00;             //主任务定时器计数
+UINT32 nbSwVersion = 0xFFFFFFFF;    // 锟斤拷锟斤拷模锟斤拷锟斤拷锟斤拷状态
+volatile UINT32 TimeCounter = 0x00; //锟斤拷锟斤拷锟斤拷时锟斤拷锟斤拷锟斤拷
 
 /**declear the Handle vars**/
-osMutexId_t Error_Mutex = NULL;         //故障互锁句柄
-QueueHandle_t GpsRecvHandle = NULL;     //定位信息队列句柄
-QueueHandle_t UartWriteCmdHandle = NULL;//Uart写命令队列句柄
-
-/**declear other vars**/   
-
-AppConfigDataType           AppNVMData;
+osMutexId_t Error_Mutex = NULL;          //锟斤拷锟较伙拷锟斤拷锟斤拷锟�
+QueueHandle_t GpsRecvHandle = NULL;      //锟斤拷位锟斤拷息锟斤拷锟叫撅拷锟�
+QueueHandle_t UartWriteCmdHandle = NULL; //Uart写锟斤拷锟斤拷锟斤拷芯锟斤拷
+QueueHandle_t CanRecvHandle = NULL;
 
-AppDataBody                 AppDataInfo;
+/**declear other vars**/
 
-AppSocketConnectionContext  socContext = {-1,0};  //网络连接状态
+AppConfigDataType AppNVMData;
 
-process_app 		        gProcess_app; //全局工作状态
+AppDataBody AppDataInfo;
 
+AppSocketConnectionContext socContext = {-1, 0}; //锟斤拷锟斤拷锟斤拷锟斤拷状态
 
-UINT32	COMInTable[133]	=	
-{
-0x18FF06F3,
-0x18FF07F3,
-0x18FF30F3,
-0x18FF51F3,
-0x18FF52F3,
-0x18FF53F3,
-0x18FF54F3,
-0x1801FBF3,
-0x1802FBF3,
-0x1803FBF3,
-0x1804FBF3,
-0x1805FBF3,
-0x1806FBF3,
-0x1807FBF3,
-0x1808FBF3,
-0x1809FBF3,
-0x180AFBF3,
-0x180BFBF3,
-0x180CFBF3,
-0x180DFBF3,
-0x180EFBF3,
-0x180FFBF3,
-0x1810FBF3,
-0x1811FBF3,
-0x1812FBF3,
-0x1813FBF3,
-0x1814FBF3,
-0x1815FBF3,
-0x1816FBF3,
-0x1817FBF3,
-0x1818FBF3,
-0x1819FBF3,
-0x181AFBF3,
-0x181BFBF3,
-0x181CFBF3,
-0x181DFBF3,
-0x181EFBF3,
-0x181FFBF3,
-0x1820FBF3,
-0x1821FBF3,
-0x1822FBF3,
-0x1823FBF3,
-0x1824FBF3,
-0x1825FBF3,
-0x1826FBF3,
-0x1827FBF3,
-0x1828FBF3,
-0x1829FBF3,
-0x182AFBF3,
-0x182BFBF3,
-0x182CFBF3,
-0x182DFBF3,
-0x182EFBF3,
-0x182FFBF3,
-0x1830FBF3,
-0x1831FBF3,
-0x1832FBF3,
-0x1833FBF3,
-0x1834FBF3,
-0x1835FBF3,
-0x1836FBF3,
-0x1837FBF3,
-0x1838FBF3,
-0x1839FBF3,
-0x183AFBF3,
-0x183BFBF3,
-0x183CFBF3,
-0x183DFBF3,
-0x183EFBF3,
-0x183FFBF3,
-0x1840FBF3,
-0x1841FBF3,
-0x1842FBF3,
-0x1843FBF3,
-0x1844FBF3,
-0x1845FBF3,
-0x1846FBF3,
-0x1847FBF3,
-0x1848FBF3,
-0x1849FBF3,
-0x184AFBF3,
-0x184BFBF3,
-0x184CFBF3,
-0x184DFBF3,
-0x184EFBF3,
-0x184FFBF3,
-0x1850FBF3,
-0x1851FBF3,
-0x1852FBF3,
-0x1853FBF3,
-0x1854FBF3,
-0x1855FBF3,
-0x1856FBF3,
-0x1857FBF3,
-0x1858FBF3,
-0x1859FBF3,
-0x185AFBF3,
-0x185BFBF3,
-0x185CFBF3,
-0x185DFBF3,
-0x185EFBF3,
-0x185FFBF3,
-0x1860FBF3,
-0x18A0FBF3,
-0x18A1FBF3,
-0x18A2FBF3,
-0x18A3FBF3,
-0x18A4FBF3,
-0x18A5FBF3,
-0x18A6FBF3,
-0x18FF08F3,
-0x18FF60F3,
-0x18FF61F3,
-0x18FF62F3,
-0x18FF63F3,
-0x18FF64F3,
-0x18FF65F3,
-0x18FF66F3,
-0x18FF67F3,
-0x18FF68F3,
-0x18FF69F3,
-0x18FF10D0,
-0x18FF20EF,
-0x18FF14A3,
-0x18FF11F4,
-0x18FF09D0,
-0x18FEF1D0,
-0x18FF55D0,
-0x18FEAE17,
-0x18FEC117,
-0x18FF15A0,
-0x18FF16A1,
-0x18FF17A2
-};
-
+process_app gProcess_app; //全锟街癸拷锟斤拷状态
 
+UINT32 COMInTable[133] =
+    {
+        0x18FF06F3,
+        0x18FF07F3,
+        0x18FF30F3,
+        0x18FF51F3,
+        0x18FF52F3,
+        0x18FF53F3,
+        0x18FF54F3,
+        0x1801FBF3,
+        0x1802FBF3,
+        0x1803FBF3,
+        0x1804FBF3,
+        0x1805FBF3,
+        0x1806FBF3,
+        0x1807FBF3,
+        0x1808FBF3,
+        0x1809FBF3,
+        0x180AFBF3,
+        0x180BFBF3,
+        0x180CFBF3,
+        0x180DFBF3,
+        0x180EFBF3,
+        0x180FFBF3,
+        0x1810FBF3,
+        0x1811FBF3,
+        0x1812FBF3,
+        0x1813FBF3,
+        0x1814FBF3,
+        0x1815FBF3,
+        0x1816FBF3,
+        0x1817FBF3,
+        0x1818FBF3,
+        0x1819FBF3,
+        0x181AFBF3,
+        0x181BFBF3,
+        0x181CFBF3,
+        0x181DFBF3,
+        0x181EFBF3,
+        0x181FFBF3,
+        0x1820FBF3,
+        0x1821FBF3,
+        0x1822FBF3,
+        0x1823FBF3,
+        0x1824FBF3,
+        0x1825FBF3,
+        0x1826FBF3,
+        0x1827FBF3,
+        0x1828FBF3,
+        0x1829FBF3,
+        0x182AFBF3,
+        0x182BFBF3,
+        0x182CFBF3,
+        0x182DFBF3,
+        0x182EFBF3,
+        0x182FFBF3,
+        0x1830FBF3,
+        0x1831FBF3,
+        0x1832FBF3,
+        0x1833FBF3,
+        0x1834FBF3,
+        0x1835FBF3,
+        0x1836FBF3,
+        0x1837FBF3,
+        0x1838FBF3,
+        0x1839FBF3,
+        0x183AFBF3,
+        0x183BFBF3,
+        0x183CFBF3,
+        0x183DFBF3,
+        0x183EFBF3,
+        0x183FFBF3,
+        0x1840FBF3,
+        0x1841FBF3,
+        0x1842FBF3,
+        0x1843FBF3,
+        0x1844FBF3,
+        0x1845FBF3,
+        0x1846FBF3,
+        0x1847FBF3,
+        0x1848FBF3,
+        0x1849FBF3,
+        0x184AFBF3,
+        0x184BFBF3,
+        0x184CFBF3,
+        0x184DFBF3,
+        0x184EFBF3,
+        0x184FFBF3,
+        0x1850FBF3,
+        0x1851FBF3,
+        0x1852FBF3,
+        0x1853FBF3,
+        0x1854FBF3,
+        0x1855FBF3,
+        0x1856FBF3,
+        0x1857FBF3,
+        0x1858FBF3,
+        0x1859FBF3,
+        0x185AFBF3,
+        0x185BFBF3,
+        0x185CFBF3,
+        0x185DFBF3,
+        0x185EFBF3,
+        0x185FFBF3,
+        0x1860FBF3,
+        0x18A0FBF3,
+        0x18A1FBF3,
+        0x18A2FBF3,
+        0x18A3FBF3,
+        0x18A4FBF3,
+        0x18A5FBF3,
+        0x18A6FBF3,
+        0x18FF08F3,
+        0x18FF60F3,
+        0x18FF61F3,
+        0x18FF62F3,
+        0x18FF63F3,
+        0x18FF64F3,
+        0x18FF65F3,
+        0x18FF66F3,
+        0x18FF67F3,
+        0x18FF68F3,
+        0x18FF69F3,
+        0x18FF10D0,
+        0x18FF20EF,
+        0x18FF14A3,
+        0x18FF11F4,
+        0x18FF09D0,
+        0x18FEF1D0,
+        0x18FF55D0,
+        0x18FEAE17,
+        0x18FEC117,
+        0x18FF15A0,
+        0x18FF16A1,
+        0x18FF17A2};
 
 UINT8 canRxShortError[133] = {0};
 UINT8 canRxLongError[133] = {0};
 UINT8 canRxErrorCounter[133] = {0};
 UINT8 canRxFlag[133] = {0};
-UINT8	UDSService[2] = {0};           //uds 服务
-UINT8	UDSSubService[2]  = {0};       // uds 子服务
-UINT8	UDSSubServiceActionCode[2]  = {0};  // uds 子服务状态
-UINT8   GpsData[16] = {0};                  //GPS 数据缓存区
-UINT16  updateDifferDataPackageCounter = 0;  //差分包升级计数器
-BOOL downloadReady = FALSE; 
-UINT8 	UDSSwitch = 0;              //下线检测标志位
-
-
-
-
-
+UINT8 UDSService[2] = {0};                 //uds 锟斤拷锟斤拷
+UINT8 UDSSubService[2] = {0};              // uds 锟接凤拷锟斤拷
+UINT8 UDSSubServiceActionCode[2] = {0};    // uds 锟接凤拷锟斤拷状态
+UINT8 GpsData[16] = {0};                   //GPS 锟斤拷锟捷伙拷锟斤拷锟斤拷
+UINT16 updateDifferDataPackageCounter = 0; //锟斤拷职锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟�
+BOOL downloadReady = FALSE;
+UINT8 UDSSwitch = 0; //锟斤拷锟竭硷拷锟斤拷志位
 
 //declear the UINT8 vars
-UINT8   csq = 0x00;
-UINT8	bmsStatus= 0xFF;
-UINT8	bmsErrClass= 0xFF;
-UINT8	chrgConctStatus= 0xFF;
-UINT8	highVolPwrDwnReq= 0xFF;
-UINT8	chrgStatus= 0xFF;
-UINT8	bmsErrNum= 0xFF;
-UINT8	bmsLife= 0xFF;
-UINT8	battSoc= 0xFF;
-UINT8	maxCellTemp= 0xFF;
-UINT8	minCellTemp= 0xFF;
-UINT8	avgCellTemp= 0xFF;
-UINT8	maxVolSubsysCode= 0xFF;
-UINT8	minVolSubsysCode= 0xFF;
-UINT8	maxTempSubsysCode= 0xFF;
-UINT8	maxTempCellCode= 0xFF;
-UINT8	minTempSubsysCode= 0xFF;
-UINT8	minTempCellCode= 0xFF;
-UINT8	numOfChrgableSubsys= 0xFF;
-UINT8	lengthOfChrgableSysCode= 0xFF;
-UINT8	chrgableSysCode= 0xFF;
-UINT8	chrgableSubsysCode= 0xFF;
-UINT8	numOfBattErr= 0xFF;
-UINT8	battCellTemp[CELL_TEMP_NUM] = {0xFF};
-UINT8	mainPosRlyStatus= 0xFF;
-UINT8	preRlyStatus= 0xFF;
-UINT8	mainNegRlyStatus= 0xFF;
-UINT8	thrRlyStatus= 0xFF;
-UINT8	ptc1RlyStatus= 0xFF;
-UINT8	airCondRlyStatus= 0xFF;
-UINT8	dcChrg1PosRlyStatus= 0xFF;
-UINT8	dcChrg1NegRlyStatus= 0xFF;
-UINT8	dcChrg2PosRlyStatus= 0xFF;
-UINT8	dcChrg2NegRlyStatus= 0xFF;
-UINT8	heatPosRlyStatus= 0xFF;
-UINT8	heatNegRlyStatus= 0xFF;
-UINT8	coolRlyStatus= 0xFF;
-UINT8	ptc2RlyStatus= 0xFF;
-UINT8	mainPosRlyErrStatus= 0xFF;
-UINT8	preRlyErrStatus= 0xFF;
-UINT8	mainNegRlyErrStatus= 0xFF;
-UINT8	thrRlyErrStatus= 0xFF;
-UINT8	ptc1RlyErrStatus= 0xFF;
-UINT8	airCondRlyErrStatus= 0xFF;
-UINT8	dcChrg1PosRlyErrStatus= 0xFF;
-UINT8	dcChrg1NegRlyErrStatus= 0xFF;
-UINT8	dcChrg2PosRlyErrStatus= 0xFF;
-UINT8	dcChrg2NegRlyErrStatus= 0xFF;
-UINT8	heatPosRlyErrStatus= 0xFF;
-UINT8	heatNegRlyErrStatus= 0xFF;
-UINT8	coolRlyErrStatus= 0xFF;
-UINT8	ptc2RlyErrStatus= 0xFF;
-UINT8	battSOH= 0xFF;
-UINT8	SN[24] = {0xFF};
-UINT8	bmsHVOn= 0xFF;
-UINT8	acRelayStatus= 0xFF;
-UINT8	ptcRelayStatus= 0xFF;
-UINT8	mainRelayStatus= 0xFF;
-UINT8	preRelayStatus= 0xFF;
-UINT8	ptc2RelayStatus= 0xFF;
-UINT8	acRelayErrorStatus= 0xFF;
-UINT8	ptcRelayErrorStatus= 0xFF;
-UINT8	mainRelayErrorStatus= 0xFF;
-UINT8	preRelayErrorStatus= 0xFF;
-UINT8	hvLockErrorStatus= 0xFF;
-UINT8	ptc2RelayErrorStatus= 0xFF;
-UINT8	ebcStatus= 0xFF;
-UINT8	ebcAskHVOn= 0xFF;
-UINT8	ebcAskHVOff= 0xFF;
-UINT8	retainLockSignal= 0xFF;
-UINT8	dischargeLockSignal= 0xFF;
-UINT8	chargeLockSignal= 0xFF;
-UINT8	errorClass= 0xFF;
-UINT8	errorCode1= 0xFF;
-UINT8	errorCode2= 0xFF;
-UINT8	chargeFlag= 0xFF;
-UINT8	exchangeBattAirPressure= 0xFF;
-UINT8	lifeSignal= 0xFF;
-UINT8	vehicleStatus= 0xFF;
-UINT8	currentGearPosition= 0xFF;
-UINT8	parkingBreakStatus= 0xFF;
-UINT8	breakingStatus= 0xFF;
-UINT8	VIN[17] = {0xFF};
-UINT8	frontBreakingPressure= 0xFF;
-UINT8	backBreakingPressure= 0xFF;
-UINT8	frontBreakingPressureErrorStatus= 0xFF;
-UINT8	backBreakingPressureErrorStatus= 0xFF;
-UINT8	dcdcErrorClass= 0xFF;
-UINT8	dcdcWorkStatus= 0xFF;
-UINT8	mainElectricityErrorClass= 0xFF;
-UINT8	pumpWorkStatus= 0xFF;
-UINT8	elecAirCompressorErrorStatus= 0xFF;
-UINT8	elecAirCompressorWrokStatus= 0xFF;
-UINT8   numOfCellTemp = CELL_TEMP_NUM;
+UINT8 csq = 0x00;
+UINT8 bmsStatus = 0xFF;
+UINT8 bmsErrClass = 0xFF;
+UINT8 chrgConctStatus = 0xFF;
+UINT8 highVolPwrDwnReq = 0xFF;
+UINT8 chrgStatus = 0xFF;
+UINT8 bmsErrNum = 0xFF;
+UINT8 bmsLife = 0xFF;
+UINT8 battSoc = 0xFF;
+UINT8 maxCellTemp = 0xFF;
+UINT8 minCellTemp = 0xFF;
+UINT8 avgCellTemp = 0xFF;
+UINT8 maxVolSubsysCode = 0xFF;
+UINT8 minVolSubsysCode = 0xFF;
+UINT8 maxTempSubsysCode = 0xFF;
+UINT8 maxTempCellCode = 0xFF;
+UINT8 minTempSubsysCode = 0xFF;
+UINT8 minTempCellCode = 0xFF;
+UINT8 numOfChrgableSubsys = 0xFF;
+UINT8 lengthOfChrgableSysCode = 0xFF;
+UINT8 chrgableSysCode = 0xFF;
+UINT8 chrgableSubsysCode = 0xFF;
+UINT8 numOfBattErr = 0xFF;
+UINT8 battCellTemp[CELL_TEMP_NUM] = {0xFF};
+UINT8 mainPosRlyStatus = 0xFF;
+UINT8 preRlyStatus = 0xFF;
+UINT8 mainNegRlyStatus = 0xFF;
+UINT8 thrRlyStatus = 0xFF;
+UINT8 ptc1RlyStatus = 0xFF;
+UINT8 airCondRlyStatus = 0xFF;
+UINT8 dcChrg1PosRlyStatus = 0xFF;
+UINT8 dcChrg1NegRlyStatus = 0xFF;
+UINT8 dcChrg2PosRlyStatus = 0xFF;
+UINT8 dcChrg2NegRlyStatus = 0xFF;
+UINT8 heatPosRlyStatus = 0xFF;
+UINT8 heatNegRlyStatus = 0xFF;
+UINT8 coolRlyStatus = 0xFF;
+UINT8 ptc2RlyStatus = 0xFF;
+UINT8 mainPosRlyErrStatus = 0xFF;
+UINT8 preRlyErrStatus = 0xFF;
+UINT8 mainNegRlyErrStatus = 0xFF;
+UINT8 thrRlyErrStatus = 0xFF;
+UINT8 ptc1RlyErrStatus = 0xFF;
+UINT8 airCondRlyErrStatus = 0xFF;
+UINT8 dcChrg1PosRlyErrStatus = 0xFF;
+UINT8 dcChrg1NegRlyErrStatus = 0xFF;
+UINT8 dcChrg2PosRlyErrStatus = 0xFF;
+UINT8 dcChrg2NegRlyErrStatus = 0xFF;
+UINT8 heatPosRlyErrStatus = 0xFF;
+UINT8 heatNegRlyErrStatus = 0xFF;
+UINT8 coolRlyErrStatus = 0xFF;
+UINT8 ptc2RlyErrStatus = 0xFF;
+UINT8 battSOH = 0xFF;
+UINT8 SN[24] = {0xFF};
+UINT8 bmsHVOn = 0xFF;
+UINT8 acRelayStatus = 0xFF;
+UINT8 ptcRelayStatus = 0xFF;
+UINT8 mainRelayStatus = 0xFF;
+UINT8 preRelayStatus = 0xFF;
+UINT8 ptc2RelayStatus = 0xFF;
+UINT8 acRelayErrorStatus = 0xFF;
+UINT8 ptcRelayErrorStatus = 0xFF;
+UINT8 mainRelayErrorStatus = 0xFF;
+UINT8 preRelayErrorStatus = 0xFF;
+UINT8 hvLockErrorStatus = 0xFF;
+UINT8 ptc2RelayErrorStatus = 0xFF;
+UINT8 ebcStatus = 0xFF;
+UINT8 ebcAskHVOn = 0xFF;
+UINT8 ebcAskHVOff = 0xFF;
+UINT8 retainLockSignal = 0xFF;
+UINT8 dischargeLockSignal = 0xFF;
+UINT8 chargeLockSignal = 0xFF;
+UINT8 errorClass = 0xFF;
+UINT8 errorCode1 = 0xFF;
+UINT8 errorCode2 = 0xFF;
+UINT8 chargeFlag = 0xFF;
+UINT8 exchangeBattAirPressure = 0xFF;
+UINT8 lifeSignal = 0xFF;
+UINT8 vehicleStatus = 0xFF;
+UINT8 currentGearPosition = 0xFF;
+UINT8 parkingBreakStatus = 0xFF;
+UINT8 breakingStatus = 0xFF;
+UINT8 VIN[17] = {0xFF};
+UINT8 frontBreakingPressure = 0xFF;
+UINT8 backBreakingPressure = 0xFF;
+UINT8 frontBreakingPressureErrorStatus = 0xFF;
+UINT8 backBreakingPressureErrorStatus = 0xFF;
+UINT8 dcdcErrorClass = 0xFF;
+UINT8 dcdcWorkStatus = 0xFF;
+UINT8 mainElectricityErrorClass = 0xFF;
+UINT8 pumpWorkStatus = 0xFF;
+UINT8 elecAirCompressorErrorStatus = 0xFF;
+UINT8 elecAirCompressorWrokStatus = 0xFF;
+UINT8 numOfCellTemp = CELL_TEMP_NUM;
 
 //declear the UINT16 vars
-UINT16	maxChrgCurrAllowed = 0xFFFF;
-UINT16	maxDischrgCurrAllowed = 0xFFFF;
-UINT16	packTotalVol = 0xFFFF;
-UINT16	packTotalCurr = 0xFFFF;
-UINT16	insulationR = 0xFFFF;
-UINT16	maxCellVol = 0xFFFF;
-UINT16	minCellVol = 0xFFFF;
-UINT16	maxVolCellCode = 0xFFFF;
-UINT16	minVoCelllCode = 0xFFFF;
-UINT16	battCellU[384] = {0xFFFF};
-UINT16	vcuDCVol = 0xFFFF;
-UINT16  numOfCells = CELL_NUM;
-
+UINT16 maxChrgCurrAllowed = 0xFFFF;
+UINT16 maxDischrgCurrAllowed = 0xFFFF;
+UINT16 packTotalVol = 0xFFFF;
+UINT16 packTotalCurr = 0xFFFF;
+UINT16 insulationR = 0xFFFF;
+UINT16 maxCellVol = 0xFFFF;
+UINT16 minCellVol = 0xFFFF;
+UINT16 maxVolCellCode = 0xFFFF;
+UINT16 minVoCelllCode = 0xFFFF;
+UINT16 battCellU[384] = {0xFFFF};
+UINT16 vcuDCVol = 0xFFFF;
+UINT16 numOfCells = CELL_NUM;
 
 //declear the UINT32 vars
-UINT32	accChrgAh= 0xFFFFFFFF;
-UINT32	accDischrgAh= 0xFFFFFFFF;
-UINT32	accChrgkWh= 0xFFFFFFFF;
-UINT32	accDischrgkWh= 0xFFFFFFFF;
-UINT32	accRecvryChrgAh= 0xFFFFFFFF;
-UINT32	accRecvryChrgkWh= 0xFFFFFFFF;
-UINT32	accStationChrgAh= 0xFFFFFFFF;
-UINT32	accStationChrgkWh= 0xFFFFFFFF;
-UINT32	accGunChrgAh= 0xFFFFFFFF;
-UINT32	accGunChrgkWh= 0xFFFFFFFF;
-UINT32	sglChrgAh= 0xFFFFFFFF;
-UINT32	sglChrgkWh= 0xFFFFFFFF;
-UINT32	ODO= 0xFFFFFFFF;
-
-
-
-
-
+UINT32 accChrgAh = 0xFFFFFFFF;
+UINT32 accDischrgAh = 0xFFFFFFFF;
+UINT32 accChrgkWh = 0xFFFFFFFF;
+UINT32 accDischrgkWh = 0xFFFFFFFF;
+UINT32 accRecvryChrgAh = 0xFFFFFFFF;
+UINT32 accRecvryChrgkWh = 0xFFFFFFFF;
+UINT32 accStationChrgAh = 0xFFFFFFFF;
+UINT32 accStationChrgkWh = 0xFFFFFFFF;
+UINT32 accGunChrgAh = 0xFFFFFFFF;
+UINT32 accGunChrgkWh = 0xFFFFFFFF;
+UINT32 sglChrgAh = 0xFFFFFFFF;
+UINT32 sglChrgkWh = 0xFFFFFFFF;
+UINT32 ODO = 0xFFFFFFFF;

+ 2 - 4
src/AppTaskCan.c

@@ -15,7 +15,6 @@ static UINT8 gProcess_Can_Rx_TaskStack[PROC_CAN_RX_TASK_STACK_SIZE];
 static process_CAN gProcess_CAN_Task = PROCESS_CAN_STATE_IDLE;
 #define PROC_CAN_STATE_SWITCH(a) (gProcess_CAN_Task = a)
 static void CanDecodeTask(void *arg);
-QueueHandle_t CanRecvHandle = NULL;
 static osThreadId_t CanDecodeTaskId = NULL;
 void AppTaskCanInit(void *arg)
 {
@@ -42,7 +41,7 @@ static void CanTask()
 	UINT8 ConvertCounter = 0;
 	if (CanRecvHandle == NULL)
 	{
-		CanRecvHandle = osMessageQueueNew(50, sizeof(CAN_Msg_Type), NULL);
+		CanRecvHandle = osMessageQueueNew(100, sizeof(CAN_Msg_Type), NULL);
 	}
 	PROC_CAN_STATE_SWITCH(PROCESS_CAN_STATE_INIT);
 	if (CanDecodeTaskId == NULL)
@@ -119,7 +118,7 @@ static void CanTask()
 						{
 							osStatus_t ret = osMessageQueuePut(CanRecvHandle, &(CanRxMsg[i]), 0, 0);
 							//CanMsgCounter++;
-							printf("can receive ret=\t%d,ID=\t%d\n", ret, CanRxMsg[i].Id);
+							//printf("can receive ret=\t%d,ID=\t%x\n", ret, CanRxMsg[i].Id);
 						}
 					}
 					else
@@ -173,7 +172,6 @@ static void CanDecodeTask(void *arg)
 		if (ret == 0)
 		{
 			DecodeFunction(CanRxMsg.Id, CanRxMsg.Data);
-			//printf("can decode ret=\t%d,ID=\t%d\n", ret, CanRxMsg.Id);
 		}
 	}
 }

+ 151 - 148
src/AppTaskMain.c

@@ -8,12 +8,12 @@
  ****************************************************************************/
 #include "AppTaskMain.h"
 
-static StaticTask_t           gProcess_Main_Task_t;
-static UINT8                  gProcess_Main_TaskStack[PROC_MAIN_TASK_STACK_SIZE];
-static osThreadId_t           MainTaskId = NULL;
-static process_Main 		    gProcess_Main_Task;
-#define PROC_MAIN_STATE_SWITCH(a)  (gProcess_Main_Task = a)
-#define PROC_APP_STATE_SWITCH(a)  (gProcess_app = a)
+static StaticTask_t gProcess_Main_Task_t;
+static UINT8 gProcess_Main_TaskStack[PROC_MAIN_TASK_STACK_SIZE];
+static osThreadId_t MainTaskId = NULL;
+static process_Main gProcess_Main_Task;
+#define PROC_MAIN_STATE_SWITCH(a) (gProcess_Main_Task = a)
+#define PROC_APP_STATE_SWITCH(a) (gProcess_app = a)
 static volatile BOOL WorkTimerEnd = FALSE;
 static volatile BOOL SleepTimerEnd = FALSE;
 void monitor_timer_callback(TimerHandle_t xTimer);
@@ -27,130 +27,134 @@ static void appAfterSlp1(void *pdata, slpManLpState state);
 static void appBeforeSlp2(void *pdata, slpManLpState state);
 static void appAfterSlp2(void *pdata, slpManLpState state);
 
-UINT8 MainSlpHandler          = 0xff;//主线程睡眠句柄
-static void MainTask(void* arg)
+UINT8 MainSlpHandler = 0xff; //主线程睡眠句柄
+static void MainTask(void *arg)
 {
-	
+
     UINT8 PadInterrupt_clrCounter = 0;
     TimerHandle_t monitor_timer = NULL;
     TimerHandle_t work_timer = NULL;
     TimerHandle_t sleep_timer = NULL;
     monitor_timer = xTimerCreate("monitor_timer", 100 / portTICK_RATE_MS, pdTRUE, NULL, monitor_timer_callback);
-    work_timer    = xTimerCreate("work_timer", 5*60*1000 / portTICK_RATE_MS, pdTRUE, NULL, work_timer_callback);
-    sleep_timer   = xTimerCreate("sleep_timer", 60*60*1000 / portTICK_RATE_MS, pdTRUE, NULL, sleep_timer_callback);
+    work_timer = xTimerCreate("work_timer", 5 * 60 * 1000 / portTICK_RATE_MS, pdTRUE, NULL, work_timer_callback);
+    sleep_timer = xTimerCreate("sleep_timer", 60 * 60 * 1000 / portTICK_RATE_MS, pdTRUE, NULL, sleep_timer_callback);
     PROC_MAIN_STATE_SWITCH(PROCESS_STATE_IDLE);
-    slpManSetPmuSleepMode(true,SLP_HIB_STATE,false);
-    slpManApplyPlatVoteHandle("MainSlp",&MainSlpHandler);
-    slpManPlatVoteDisableSleep(MainSlpHandler, SLP_SLP1_STATE);//禁用SLEEP1休眠
+    slpManSetPmuSleepMode(true, SLP_HIB_STATE, false);
+    slpManApplyPlatVoteHandle("MainSlp", &MainSlpHandler);
+    slpManPlatVoteDisableSleep(MainSlpHandler, SLP_SLP1_STATE); //禁用SLEEP1休眠
     UINT32 inParam = 0xAABBCCDD;
-    slpManRegisterUsrdefinedBackupCb(appBeforeHib,&inParam,SLPMAN_HIBERNATE_STATE);
-    slpManRegisterUsrdefinedRestoreCb(appAfterHib,NULL,SLPMAN_HIBERNATE_STATE);
-    slpManRegisterUsrdefinedBackupCb(appBeforeSlp1,NULL,SLPMAN_SLEEP1_STATE);
-    slpManRegisterUsrdefinedRestoreCb(appAfterSlp1,NULL,SLPMAN_SLEEP1_STATE);
-    slpManRegisterUsrdefinedBackupCb(appBeforeSlp2,NULL,SLPMAN_SLEEP2_STATE);
-    slpManRegisterUsrdefinedRestoreCb(appAfterSlp2,NULL,SLPMAN_SLEEP2_STATE);
+    slpManRegisterUsrdefinedBackupCb(appBeforeHib, &inParam, SLPMAN_HIBERNATE_STATE);
+    slpManRegisterUsrdefinedRestoreCb(appAfterHib, NULL, SLPMAN_HIBERNATE_STATE);
+    slpManRegisterUsrdefinedBackupCb(appBeforeSlp1, NULL, SLPMAN_SLEEP1_STATE);
+    slpManRegisterUsrdefinedRestoreCb(appAfterSlp1, NULL, SLPMAN_SLEEP1_STATE);
+    slpManRegisterUsrdefinedBackupCb(appBeforeSlp2, NULL, SLPMAN_SLEEP2_STATE);
+    slpManRegisterUsrdefinedRestoreCb(appAfterSlp2, NULL, SLPMAN_SLEEP2_STATE);
     slpManWakeSrc_e Wakeup_source;
-    Wakeup_source =  slpManGetWakeupSrc();//获取唤醒源
+    Wakeup_source = slpManGetWakeupSrc(); //获取唤醒源
     //配置文件及运行数据加载
-    if(Error_Mutex == NULL)
+    if (Error_Mutex == NULL)
     {
         Error_Mutex = osMutexNew(NULL);
     }
     LoadAppConfig();
-    
-    if(Wakeup_source ==0)
+
+    if (Wakeup_source == 0)
     {
         AppDataInfo.appDataModify = TRUE;
         AppDataInfo.SysReStartCount = AppDataInfo.SysReStartCount + 1;
     }
     xTimerStart(monitor_timer, 0);
-    while(true)
+    UINT32 DignoseCounter = 0;
+    while (true)
     {
-        switch(gProcess_Main_Task)
+        switch (gProcess_Main_Task)
         {
-            case PROCESS_STATE_IDLE:
-            {
-                LoadAppData();
-                PROC_APP_STATE_SWITCH(IDLE);
-                xTimerStart(work_timer, 0);
-                PROC_MAIN_STATE_SWITCH(PROCESS_STATE_WORK);
-                break;
-            }
-            case PROCESS_STATE_WORK:
+        case PROCESS_STATE_IDLE:
+        {
+            LoadAppData();
+            PROC_APP_STATE_SWITCH(IDLE);
+            xTimerStart(work_timer, 0);
+            PROC_MAIN_STATE_SWITCH(PROCESS_STATE_WORK);
+            break;
+        }
+        case PROCESS_STATE_WORK:
+        {
+            osDelay(10);
+            PROC_APP_STATE_SWITCH(WORK);
+            //canTxTest();
+            if (TimeCounter != DignoseCounter)
             {
-                osDelay(100);
-                PROC_APP_STATE_SWITCH(WORK);
-                //canTxTest();
                 canRxDiagnose();
-                //printf("%d\n",TimeCounter);
-                //状态转换延时
-                if(TimeCounter%10==0)
+                DignoseCounter = TimeCounter;
+                if (TimeCounter % 10 == 0)
                 {
-                    //BattWorkDelayFunc(battWorkState);
-                    #ifdef USING_PRINTF1
-                        printf("[%d]%x - %x - %x\n",__LINE__,WorkTimerEnd,TCPWorkState,PadInterrupt);
-                    #endif
+                    // UINT32 space = osMessageQueueGetSpace(CanRecvHandle);
+                    // printf("space=\t%d\n", space);
+//BattWorkDelayFunc(battWorkState);
+#ifdef USING_PRINTF1
+                    printf("[%d]%x - %x - %x\n", __LINE__, WorkTimerEnd, TCPWorkState, PadInterrupt);
+#endif
                     //if(strcmp(AppNVMData.battSN,SN)!=0&&SN[0]!=0xFF&&SN[0]!=0x00&&SN[15]!=0xFF&&SN[15]!=0x00)
-                    if(canSNMsgRxCmpltFlag == true && canSNMsgLostFlag == false)
-                    {                   
-                        if(snCodeCompare(AppNVMData.battSN, SN))
-                        {                        	
-                        	AppNVMData.battSN[0] = 'T';//truck
-	                        AppNVMData.battSN[1] = 'J';//金茂电池包
-	                        AppNVMData.battSN[2] = 'M';
-	                        AppNVMData.battSN[3] = 'C';//宁德时代电芯
-	                        AppNVMData.battSN[4] = 'L';
-                        	MEMCPY(&(AppNVMData.battSN[5]),SN,12);
-                        	AppNVMData.EOLState=1;
-                        	AppNVMData.appDataModify = TRUE;
-                        	// printf("AppNVMData.battSN = ");
-		                    // for(int j =0;j<17;j++)
-		                    // 	printf("%x\t",AppNVMData.battSN[j]);
-							// printf("\n\n");
-						}                        
+                    if (canSNMsgRxCmpltFlag == true && canSNMsgLostFlag == false)
+                    {
+                        if (snCodeCompare(AppNVMData.battSN, SN))
+                        {
+                            AppNVMData.battSN[0] = 'T'; //truck
+                            AppNVMData.battSN[1] = 'J'; //金茂电池包
+                            AppNVMData.battSN[2] = 'M';
+                            AppNVMData.battSN[3] = 'C'; //宁德时代电芯
+                            AppNVMData.battSN[4] = 'L';
+                            MEMCPY(&(AppNVMData.battSN[5]), SN, 12);
+                            AppNVMData.EOLState = 1;
+                            AppNVMData.appDataModify = TRUE;
+                            // printf("AppNVMData.battSN = ");
+                            // for(int j =0;j<17;j++)
+                            // 	printf("%x\t",AppNVMData.battSN[j]);
+                            // printf("\n\n");
+                        }
                     }
-                    if(canVINMsgRxCmpltFlag ==TRUE)
+                    if (canVINMsgRxCmpltFlag == TRUE)
                     {
-                        if(VINCodeCompare(AppDataInfo.VIN, VIN))
+                        if (VINCodeCompare(AppDataInfo.VIN, VIN))
                         {
-                            MEMCPY(AppDataInfo.VIN,VIN,17);
+                            MEMCPY(AppDataInfo.VIN, VIN, 17);
                             AppNVMData.appDataModify = TRUE;
                         }
-                    }                    
+                    }
                 }
-                if(AppDataInfo.appDataModify)
+                if (AppDataInfo.appDataModify)
                 {
                     SaveAppData();
                 }
-                if(AppNVMData.appDataModify)
+                if (AppNVMData.appDataModify)
                 {
                     SaveAppConfig();
                 }
-                if((WorkTimerEnd==TRUE)&&(TCPWorkState==0x00)&&(PadInterrupt==0x00))//从工作转换为监听的条件
+                if ((WorkTimerEnd == TRUE) && (TCPWorkState == 0x00) && (PadInterrupt == 0x00)) //从工作转换为监听的条件
                 {
-                    #ifdef USING_PRINTF
-                        printf("[%d]sleep\n",__LINE__);
-                    #endif
+#ifdef USING_PRINTF
+                    printf("[%d]sleep\n", __LINE__);
+#endif
                     PROC_MAIN_STATE_SWITCH(PROCESS_STATE_LISTEN);
-                    xTimerStop(work_timer,0);
+                    xTimerStop(work_timer, 0);
                     xTimerStart(sleep_timer, 0);
                     WorkTimerEnd = FALSE;
                     NVIC_EnableIRQ(PadWakeup1_IRQn);
                     break;
                 }
-                if(TcpErrorcount>=10 && UDSSwitch ==0)
+                if (TcpErrorcount >= 10 && UDSSwitch == 0)
                 {
                     AppDataInfo.appDataModify = true;
-                    AppDataInfo.SysReStartCount = AppDataInfo.SysReStartCount +1;
-                    if(AppDataInfo.SysReStartCount>=0xfffe)
+                    AppDataInfo.SysReStartCount = AppDataInfo.SysReStartCount + 1;
+                    if (AppDataInfo.SysReStartCount >= 0xfffe)
                     {
                         AppDataInfo.SysReStartCount = 0;
                     }
-                    if(AppNVMData.appDataModify)
+                    if (AppNVMData.appDataModify)
                     {
                         SaveAppConfig();
                     }
-                    if(AppDataInfo.appDataModify)
+                    if (AppDataInfo.appDataModify)
                     {
                         SaveAppData();
                     }
@@ -158,13 +162,13 @@ static void MainTask(void* arg)
                     osDelay(1000);
                     EC_SystemReset();
                 }
-                if(NB_Fota_update_flag)
+                if (NB_Fota_update_flag)
                 {
-                    if(AppDataInfo.appDataModify)
+                    if (AppDataInfo.appDataModify)
                     {
                         SaveAppData();
                     }
-                    if(AppNVMData.appDataModify)
+                    if (AppNVMData.appDataModify)
                     {
                         SaveAppConfig();
                     }
@@ -172,80 +176,81 @@ static void MainTask(void* arg)
                     osDelay(1000);
                     EC_SystemReset();
                 }
-                break;
             }
-            case PROCESS_STATE_LISTEN:
+            break;
+        }
+        case PROCESS_STATE_LISTEN:
+        {
+            PROC_APP_STATE_SWITCH(LISTEN);
+            osDelay(100);
+            if (PadInterrupt != 0x00)
             {
-                PROC_APP_STATE_SWITCH(LISTEN);
-                osDelay(100);
-                if(PadInterrupt!=0x00)
-                {
-                    PadInterrupt_clrCounter++;
-                    PadInterrupt = 0x00;
-                }
-                if(AppDataInfo.appDataModify)
-                {
-                    SaveAppData();
-                }
-                if(AppNVMData.appDataModify)
-                {
-                    SaveAppConfig();
-                }
-                if((SleepTimerEnd)||(TCPWorkState==1)||(PadInterrupt_clrCounter>=1))//从监听转换为工作的条件
-                {
-                    #ifdef USING_PRINTF
-                        printf("[%d]wake up\n",__LINE__);
-                    #endif
-                    PROC_MAIN_STATE_SWITCH(PROCESS_STATE_IDLE);
-                    xTimerStop(sleep_timer,0);
-                    SleepTimerEnd = FALSE;
-                    PadInterrupt = 0x00;
-                    PadInterrupt_clrCounter = 0;
-                    NVIC_DisableIRQ(PadWakeup1_IRQn);
-                    break;
-                }
-                break;
+                PadInterrupt_clrCounter++;
+                PadInterrupt = 0x00;
             }
-            default:
+            if (AppDataInfo.appDataModify)
             {
+                SaveAppData();
+            }
+            if (AppNVMData.appDataModify)
+            {
+                SaveAppConfig();
+            }
+            if ((SleepTimerEnd) || (TCPWorkState == 1) || (PadInterrupt_clrCounter >= 1)) //从监听转换为工作的条件
+            {
+#ifdef USING_PRINTF
+                printf("[%d]wake up\n", __LINE__);
+#endif
                 PROC_MAIN_STATE_SWITCH(PROCESS_STATE_IDLE);
+                xTimerStop(sleep_timer, 0);
+                SleepTimerEnd = FALSE;
+                PadInterrupt = 0x00;
+                PadInterrupt_clrCounter = 0;
+                NVIC_DisableIRQ(PadWakeup1_IRQn);
                 break;
             }
+            break;
+        }
+        default:
+        {
+            PROC_MAIN_STATE_SWITCH(PROCESS_STATE_IDLE);
+            break;
+        }
         }
     }
 }
 void monitor_timer_callback(TimerHandle_t xTimer)
 {
     TimeCounter++;
-    if(TimeCounter>0xFFFFFFF0)
+    if (TimeCounter > 0xFFFFFFF0)
     {
-        TimeCounter=0;
+        TimeCounter = 0;
     }
 }
 void work_timer_callback(TimerHandle_t xTimer)
 {
-    #ifdef USING_PRINTF
-        printf("work_timer_callback\n");
-    #endif
+#ifdef USING_PRINTF
+    printf("work_timer_callback\n");
+#endif
     WorkTimerEnd = true;
 }
 void sleep_timer_callback(TimerHandle_t xTimer)
 {
-    #ifdef USING_PRINTF
-        printf("sleep_timer_callback\n");
-    #endif
+#ifdef USING_PRINTF
+    printf("sleep_timer_callback\n");
+#endif
     SleepTimerEnd = true;
 }
 void AppTaskMainInit(void *arg)
 {
-    #ifndef USING_PRINTF
-    if(BSP_GetPlatConfigItemValue(PLAT_CONFIG_ITEM_LOG_CONTROL) != 0)
+#ifndef USING_PRINTF
+    if (BSP_GetPlatConfigItemValue(PLAT_CONFIG_ITEM_LOG_CONTROL) != 0)
     {
         HAL_UART_RecvFlowControl(false);
     }
-    #endif
+#endif
     osThreadAttr_t task_attr;
-    memset(&task_attr,0,sizeof(task_attr));
+    memset(&task_attr, 0, sizeof(task_attr));
     memset(gProcess_Main_TaskStack, 0xA5, PROC_MAIN_TASK_STACK_SIZE);
     task_attr.name = "Main_Task";
     task_attr.stack_mem = gProcess_Main_TaskStack;
@@ -254,7 +259,6 @@ void AppTaskMainInit(void *arg)
     task_attr.cb_mem = &gProcess_Main_Task_t;
     task_attr.cb_size = sizeof(StaticTask_t);
     MainTaskId = osThreadNew(MainTask, NULL, &task_attr);
-
 }
 void AppTaskMainDeInit(void *arg)
 {
@@ -266,41 +270,40 @@ static void appBeforeHib(void *pdata, slpManLpState state)
 {
     uint32_t *p_param = (uint32_t *)pdata;
 
-    #ifdef USING_PRINTF
-        printf("Before Hibernate:%d \n",state);
-    #endif
-	slpManAONIOLatchEn(AonIOLatch_Enable);
-
+#ifdef USING_PRINTF
+    printf("Before Hibernate:%d \n", state);
+#endif
+    slpManAONIOLatchEn(AonIOLatch_Enable);
 }
 static void appAfterHib(void *pdata, slpManLpState state)
 {
-    #ifdef USING_PRINTF
-        printf("Try Hibernate Failed:%d \n",state);
-    #endif
+#ifdef USING_PRINTF
+    printf("Try Hibernate Failed:%d \n", state);
+#endif
 }
 static void appBeforeSlp1(void *pdata, slpManLpState state)
 {
-    #ifdef USING_PRINTF
-        printf("Before Sleep1:%d \n",state);
-    #endif
-	slpManAONIOLatchEn(AonIOLatch_Enable);
+#ifdef USING_PRINTF
+    printf("Before Sleep1:%d \n", state);
+#endif
+    slpManAONIOLatchEn(AonIOLatch_Enable);
 }
 static void appAfterSlp1(void *pdata, slpManLpState state)
 {
-    #ifdef USING_PRINTF
-        printf("After Sleep1:%d \n",state);
-    #endif
+#ifdef USING_PRINTF
+    printf("After Sleep1:%d \n", state);
+#endif
 }
 static void appBeforeSlp2(void *pdata, slpManLpState state)
 {
-    #ifdef USING_PRINTF
-        printf("before sleep2:%d \n",state);
-    #endif
-	slpManAONIOLatchEn(AonIOLatch_Enable);
+#ifdef USING_PRINTF
+    printf("before sleep2:%d \n", state);
+#endif
+    slpManAONIOLatchEn(AonIOLatch_Enable);
 }
 static void appAfterSlp2(void *pdata, slpManLpState state)
 {
-    #ifdef USING_PRINTF
-        printf("sleep2 failed:%d \n",state);
-    #endif
+#ifdef USING_PRINTF
+    printf("sleep2 failed:%d \n", state);
+#endif
 }

+ 80 - 79
src/bsp_custom.c

@@ -14,9 +14,9 @@
 #include "plat_config.h"
 #include "debug_log.h"
 #include "os_exception.h"
-#if (WDT_FEATURE_ENABLE==1)
+#if (WDT_FEATURE_ENABLE == 1)
 #include "wdt_ec616.h"
-#define WDT_TIMEOUT_VALUE     (20)            // in unit of second, shall be less than 256s
+#define WDT_TIMEOUT_VALUE (20) // in unit of second, shall be less than 256s
 #endif
 #include "AppSignal.h"
 #ifdef BL_FILE_LOG
@@ -51,7 +51,7 @@ extern ARM_DRIVER_USART Driver_USART1;
  */
 static void SetPrintUart(usart_port_t port)
 {
-    if(port == PORT_USART_0)
+    if (port == PORT_USART_0)
     {
 #if (RTE_UART0)
         UsartPrintHandle = &CREATE_SYMBOL(Driver_USART, 0);
@@ -61,7 +61,7 @@ static void SetPrintUart(usart_port_t port)
         GPR_SWReset(GPR_ResetUART0Func);
 #endif
     }
-    else if(port == PORT_USART_1)
+    else if (port == PORT_USART_1)
     {
 #if (RTE_UART1)
         UsartPrintHandle = &CREATE_SYMBOL(Driver_USART, 1);
@@ -72,22 +72,22 @@ static void SetPrintUart(usart_port_t port)
 #endif
     }
 
-    if(UsartPrintHandle == NULL)
+    if (UsartPrintHandle == NULL)
         return;
 
     UsartPrintHandle->Initialize(NULL);
     UsartPrintHandle->PowerControl(ARM_POWER_FULL);
     UsartPrintHandle->Control(ARM_USART_MODE_ASYNCHRONOUS | ARM_USART_DATA_BITS_8 |
-                        ARM_USART_PARITY_NONE       | ARM_USART_STOP_BITS_1 |
-                        ARM_USART_FLOW_CONTROL_NONE, 115200ul);
+                                  ARM_USART_PARITY_NONE | ARM_USART_STOP_BITS_1 |
+                                  ARM_USART_FLOW_CONTROL_NONE,
+                              115200ul);
 }
 
-
 #if LOW_POWER_AT_TEST
 slpManSlpState_t CheckUsrdefSlpStatus(void)
 {
     slpManSlpState_t status = SLP_HIB_STATE;
-    if((slpManGetWakeupPinValue() & (0x1<<1)) == 0)         // pad2 value is low
+    if ((slpManGetWakeupPinValue() & (0x1 << 1)) == 0) // pad2 value is low
         status = SLP_IDLE_STATE;
     else
         status = SLP_HIB_STATE;
@@ -101,38 +101,38 @@ slpManSlpState_t CheckUsrdefSlpStatus(void)
   \brief      CheckLockOutState
   \param     void
  */
-void CheckLockOutState(void){
-	if((slpManGetWakeupPinValue() & (0x1<<2)) == 0)
+void CheckLockOutState(void)
+{
+    if ((slpManGetWakeupPinValue() & (0x1 << 2)) == 0)
     {
-		#ifdef USING_PRINTF
-			printf("LOCK_OUT DOWN\r\n");
-		#endif	
+#ifdef USING_PRINTF
+        printf("LOCK_OUT DOWN\r\n");
+#endif
         Lockstatus = true;
-		 #ifdef BL_FILE_LOG
-			 lockoutState=1;
-		#endif
-	}
+#ifdef BL_FILE_LOG
+        lockoutState = 1;
+#endif
+    }
     else
     {
         Lockstatus = false;
-		#ifdef USING_PRINTF
-			printf("LOCK_OUT UP\r\n");
-		#endif	
-		 #ifdef BL_FILE_LOG
-			 lockoutState=0;
-		#endif
-	}
+#ifdef USING_PRINTF
+        printf("LOCK_OUT UP\r\n");
+#endif
+#ifdef BL_FILE_LOG
+        lockoutState = 0;
+#endif
+    }
 }
 
-
 static void PMU_WakeupPadInit(void)
 {
     const padWakeupSettings_t cfg =
-    {
-        false, true,             // group0 posedge, negedge
-        true, true,             // group1 posedge, negedge
-        true, true,             // group2 posedge, negedge
-    };
+        {
+            false, true, // group0 posedge, negedge
+            true, true,  // group1 posedge, negedge
+            true, true,  // group2 posedge, negedge
+        };
 
     slpManSetWakeupPad(cfg);
 }
@@ -157,17 +157,18 @@ void NMI_Handler()
 {
     ECOMM_TRACE(UNILOG_PLA_APP, enter_NMI_handler, P_ERROR, 0, "WDT timeout!!! Enter NMI Handler!!!");
     // If we have been in exception handler excecution, we shall resume it.
-    if(is_in_excep_handler())
+    if (is_in_excep_handler())
     {
         WDT_Stop();
     }
     else
     {
-        if(BSP_GetPlatConfigItemValue(PLAT_CONFIG_ITEM_FAULT_ACTION) == EXCEP_OPTION_SILENT_RESET)
+        if (BSP_GetPlatConfigItemValue(PLAT_CONFIG_ITEM_FAULT_ACTION) == EXCEP_OPTION_SILENT_RESET)
         {
             ResetReasonWrite(RESET_REASON_WDT);
             EC_SystemReset();
-            while(1);
+            while (1)
+                ;
         }
         else
         {
@@ -186,7 +187,7 @@ void BSP_CustomInit(void)
 {
     extern void mpu_init(void);
     mpu_init();
-	
+
     GPR_SetUartClk();
     relayConfigInit();
 
@@ -194,15 +195,15 @@ void BSP_CustomInit(void)
     //slpManRegisterUsrSlpDepthCb(CheckUsrdefSlpStatus);  //暂时屏蔽Rx拉低不允许睡眠的操作
 #endif
 
-    plat_config_raw_flash_t* rawFlashPlatConfig;
+    plat_config_raw_flash_t *rawFlashPlatConfig;
 
     BSP_LoadPlatConfigFromRawFlash();
     rawFlashPlatConfig = BSP_GetRawFlashPlatConfig();
 #if 1
 #ifdef USING_PRINTF
-	SetPrintUart(PORT_USART_0);
+    SetPrintUart(PORT_USART_0);
 #else
-    if(rawFlashPlatConfig && (rawFlashPlatConfig->logControl != 0 ))
+    if (rawFlashPlatConfig && (rawFlashPlatConfig->logControl != 0))
     {
         SetUnilogUart(PORT_USART_0, rawFlashPlatConfig->uartBaudRate, true);
         uniLogInitStart(UART_0_FOR_UNILOG);
@@ -211,36 +212,36 @@ void BSP_CustomInit(void)
 #endif
 #endif
 #if (WDT_FEATURE_ENABLE == 1)
-    if(BSP_GetPlatConfigItemValue(PLAT_CONFIG_ITEM_START_WDT))
+    if (BSP_GetPlatConfigItemValue(PLAT_CONFIG_ITEM_START_WDT))
     {
         BSP_WdtInit();
         WDT_Start();
     }
 #endif
-	slpManGetPMUSettings();				
+    slpManGetPMUSettings();
 
-	PMU_WakeupPadInit();
-	NVIC_EnableIRQ(PadWakeup0_IRQn);//can
-	NVIC_DisableIRQ(PadWakeup1_IRQn);//rx
-	NVIC_EnableIRQ(PadWakeup2_IRQn);//lock
-	NVIC_DisableIRQ(PadWakeup3_IRQn);//gsensor
-	NVIC_DisableIRQ(PadWakeup4_IRQn);//gsensor
-	NVIC_EnableIRQ(PadWakeup5_IRQn);//wakeup2
-	CheckLockOutState();
-	slpManStartWaitATTimer();
+    PMU_WakeupPadInit();
+    NVIC_EnableIRQ(PadWakeup0_IRQn);  //can
+    NVIC_DisableIRQ(PadWakeup1_IRQn); //rx
+    NVIC_EnableIRQ(PadWakeup2_IRQn);  //lock
+    NVIC_DisableIRQ(PadWakeup3_IRQn); //gsensor
+    NVIC_DisableIRQ(PadWakeup4_IRQn); //gsensor
+    NVIC_EnableIRQ(PadWakeup5_IRQn);  //wakeup2
+    CheckLockOutState();
+    slpManStartWaitATTimer();
 
-	CanSPIHandler(NULL,ARM_SPI_CPOL0_CPHA0,8,200000U);
+    CanSPIHandler(NULL, ARM_SPI_CPOL0_CPHA0, 8, 200000U);
 
-	slpManAONIOPowerOn();
-	PowerPinConfig(AON_IO);
-	PowerPinConfig(NORMAL_IO);
-	posGGAReset();
-	GPSUsartHandler(9600);
-	NetSocDisplay(LED_SOC_0,LED_TURN_ON);
-	NetSocDisplay(LED_SOC_1,LED_TURN_ON);
-	NetSocDisplay(LED_SOC_2,LED_TURN_ON);
-	NetSocDisplay(LED_SOC_3,LED_TURN_ON);
-	FaultDisplay(LED_TURN_ON);
+    slpManAONIOPowerOn();
+    PowerPinConfig(AON_IO);
+    PowerPinConfig(NORMAL_IO);
+    posGGAReset();
+    GPSUsartHandler(9600);
+    NetSocDisplay(LED_SOC_0, LED_TURN_ON);
+    NetSocDisplay(LED_SOC_1, LED_TURN_ON);
+    NetSocDisplay(LED_SOC_2, LED_TURN_ON);
+    NetSocDisplay(LED_SOC_3, LED_TURN_ON);
+    FaultDisplay(LED_TURN_ON);
 }
 
 /**
@@ -250,79 +251,79 @@ void BSP_CustomInit(void)
  */
 void Pad0_WakeupIntHandler(void)
 {
-    if(slpManExtIntPreProcess(PadWakeup0_IRQn)==false)
+    if (slpManExtIntPreProcess(PadWakeup0_IRQn) == false)
     {
         return;
     }
     else
     {
-        setbit(PadInterrupt,0);
+        setbit(PadInterrupt, 0);
     }
-    #ifdef USING_PRINTF1
-        printf("-[%d]-[%s]\n",__LINE__, __FUNCTION__);
-    #endif
+#ifdef USING_PRINTF1
+    printf("-[%d]-[%s]\n", __LINE__, __FUNCTION__);
+#endif
 }
 
 void Pad1_WakeupIntHandler(void)
 {
-    if(slpManExtIntPreProcess(PadWakeup1_IRQn)==false)
+    if (slpManExtIntPreProcess(PadWakeup1_IRQn) == false)
     {
         return;
     }
     else
     {
-        #ifdef USING_PRINTF1
-        printf("-[%d]\n",__LINE__);
-        #endif
-        setbit(PadInterrupt,1);
+#ifdef USING_PRINTF1
+        printf("-[%d]\n", __LINE__);
+#endif
+        setbit(PadInterrupt, 1);
     }
 }
 
 void Pad2_WakeupIntHandler(void)
 {
-     CheckLockOutState();
-    if(slpManExtIntPreProcess(PadWakeup2_IRQn)==false)
+    CheckLockOutState();
+    if (slpManExtIntPreProcess(PadWakeup2_IRQn) == false)
     {
         return;
     }
     else
     {
-        setbit(PadInterrupt,2);
+        setbit(PadInterrupt, 2);
     }
 }
 
 void Pad3_WakeupIntHandler(void)
 {
-    if(slpManExtIntPreProcess(PadWakeup3_IRQn)==false)
+    if (slpManExtIntPreProcess(PadWakeup3_IRQn) == false)
     {
         return;
     }
     else
     {
-        setbit(PadInterrupt,3);
+        setbit(PadInterrupt, 3);
     }
 }
 
 void Pad4_WakeupIntHandler(void)
 {
-    if(slpManExtIntPreProcess(PadWakeup4_IRQn)==false)
+    if (slpManExtIntPreProcess(PadWakeup4_IRQn) == false)
     {
         return;
     }
     else
     {
-        setbit(PadInterrupt,4);
+        setbit(PadInterrupt, 4);
     }
 }
 
 void Pad5_WakeupIntHandler(void)
 {
-    if(slpManExtIntPreProcess(PadWakeup5_IRQn)==false)
+    if (slpManExtIntPreProcess(PadWakeup5_IRQn) == false)
     {
         return;
     }
     else
     {
-        setbit(PadInterrupt,5);
+        setbit(PadInterrupt, 5);
     }
 }

File diff suppressed because it is too large
+ 330 - 324
src/hal_module_adapter.c


Some files were not shown because too many files changed in this diff