Commit 8e698101 authored by hu's avatar hu

调整气压server逻辑,调整大G最大值,增加小G个数-20个,调整EEP块分配

parent 352472da
No preview for this file type
This source diff could not be displayed because it is too large. You can view the blob instead.
project .intvect 1536 project .intvect 1536
project .text 317516 project .text 317660
project .rodata 411087 project .rodata 411071
project .secinfo 120 project .secinfo 120
project .syscall 6 project .syscall 6
project .romdata 9029 project .romdata 9029
......
#include "Data_AirPressure.h" #include "Data_AirPressure.h"
#include "Gauges.h" #include "Gauges.h"
#include "GaugesInterface.h"
#include "CAN_Communication_Matrix.h" #include "CAN_Communication_Matrix.h"
#include "RTE_ADC.h" #include "RTE_ADC.h"
#include "Common_Interface.h" #include "Common_Interface.h"
//断码显示 DataStruct DataStrGas1;
//------------------------------------------- DataStruct DataStrGas2;
//344 - 3.1.2.FRONT/REAR空气计显示 DataStruct DataStrWET;
//342 - 3.3. FRONT/REAR气压指针
//-------------------------------------------
#define PRI_ID 0
#define SEC_ID 1
#define TableLenMax 6u
#define EnTable 0 // 0 - 计算 1 - 查表
#define VALID_TIME 100 // 2S
static struct
{
uint8_t SumCnt ;
uint32_t Voltage ;
uint16_t Result ;
} AirPressureFilter[2u] ;
static struct
{
uint16_t VoltageTable[TableLenMax] ;
uint16_t kPaTable[TableLenMax] ;
uint16_t slopeTable[TableLenMax - 1 ] ;// 100倍的
uint16_t ResultkPa[2u] ; // 100倍的
uint16_t AvrVoltage[2u] ;
uint8_t Valid[2u] ;
uint8_t CurSeg[2u] ;
uint8_t ValidTimer[2u] ;
uint8_t InvalidTimer[2u] ;
} AirPressureVariable ;
static void Calc_AirPressure_Table(uint16_t Voltage, uint16_t * kPa);
static uint16_t Get_AirPressure_AdC_Filter(uint8_t ID);
static uint8_t CalAirPressure_CurSeg(uint8_t ID, uint8_t Valid, uint16_t Voltage);
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
* Function Name : AirPressure_KL30_Init * Function Name : AirPressure_KL30_Init
* Description : * Description :
...@@ -53,55 +18,41 @@ static uint8_t CalAirPressure_CurSeg(uint8_t ID, uint8_t Valid, uint16_t Voltage ...@@ -53,55 +18,41 @@ static uint8_t CalAirPressure_CurSeg(uint8_t ID, uint8_t Valid, uint16_t Voltage
* onther : Table固化 斜率同时固化 * onther : Table固化 斜率同时固化
--------------------------------------------------------------------------*/ --------------------------------------------------------------------------*/
void AirPressure_KL30_Init(void) void AirPressure_KL30_Init(void)
{}
void AirPressure_KL15_ON_Init(void)
{ {
uint8_t i = 0 ; uint8_t i = 0u;
uint32_t u32slope = 0 ; /*气压1结构体初始化*/
AirPressureVariable.VoltageTable[ 0 ] = 500 ; DataStrGas1.Count = 0u;
AirPressureVariable.kPaTable[ 0 ] = 0 ; for (i = 0; i < 15u; i++)
AirPressureVariable.VoltageTable[ 1 ] = 1750 ;
AirPressureVariable.kPaTable[ 1 ] = 500 ;
AirPressureVariable.VoltageTable[ 2 ] = 1960 ;
AirPressureVariable.kPaTable[ 2 ] = 583 ;
AirPressureVariable.VoltageTable[ 3 ] = 2000 ;
AirPressureVariable.kPaTable[ 3 ] = 600 ;
AirPressureVariable.VoltageTable[ 4 ] = 3000 ;
AirPressureVariable.kPaTable[ 4 ] = 1000 ;
AirPressureVariable.VoltageTable[ 5 ] = 4250 ;
AirPressureVariable.kPaTable[ 5 ] = 1500 ;
for (i = 0; i < (TableLenMax - 1); i ++)
{ {
/*100倍 斜率*/ DataStrGas1.DataBuf[i] = 0u;
u32slope = AirPressureVariable.kPaTable[ i + 1] - AirPressureVariable.kPaTable[ i ];
u32slope *= 100 ;
u32slope /= (AirPressureVariable.VoltageTable[ i + 1 ] - AirPressureVariable.VoltageTable[ i ]);
AirPressureVariable.slopeTable[i] = u32slope ;
} }
DataStrGas1.DataDisplay = 0u;
DataStrGas1.Valid = 0u;
DataStrGas1.LostTimer = 0u;
DataStrGas1.Status = 0u;
for (i = 0; i < 2; i ++) /*气压2结构体初始化*/
DataStrGas2.Count = 0u;
for (i = 0; i < 15u; i++)
{ {
AirPressureFilter[ i ].SumCnt = 0 ; DataStrGas2.DataBuf[i] = 0u;
AirPressureFilter[ i ].Voltage = 0 ;
AirPressureFilter[ i ].Result = 0 ;
AirPressureVariable.ResultkPa[ i ] = 0 ;
AirPressureVariable.Valid[ i ] = 0 ;
AirPressureVariable.ValidTimer[ i ] = 0 ;
AirPressureVariable.InvalidTimer[ i ] = 0 ;
} }
DataStrGas2.DataDisplay = 0u;
DataStrGas2.Valid = 0u;
DataStrGas2.LostTimer = 0u;
DataStrGas2.Status = 0u;
/*wet 气压结构体初始化*/
DataStrWET.Count = 0u;
} for (i = 0; i < 15u; i++)
void AirPressure_KL15_ON_Init(void) {
{ DataStrWET.DataBuf[i] = 0u;
}
DataStrWET.DataDisplay = 0u;
DataStrWET.Valid = 0u;
DataStrWET.LostTimer = 0u;
} }
void AirPressure_KL15_OFF_Init(void) void AirPressure_KL15_OFF_Init(void)
{ {
...@@ -125,289 +76,305 @@ void AirPressure_Sleep_Init(void) ...@@ -125,289 +76,305 @@ void AirPressure_Sleep_Init(void)
--------------------------------------------------------------------------*/ --------------------------------------------------------------------------*/
void AirPressure_Processing_Service(void) void AirPressure_Processing_Service(void)
{ {
uint8_t i = 0 ; Data_Gas1_Processing_Service();
Data_Gas2_Processing_Service();
Data_WET_Processing_Service();
SetGaugesPara(PRIGasGauges, DataStrGas1.DataDisplay);
SetGaugesPara(SECGasGauges, DataStrGas2.DataDisplay);
SetGaugesPara(WETGasGauges, DataStrWET.DataDisplay);
}
/*-------------------------------------------------------------------------
* Function Name : Data_Gas1_Processing_Service
* Description : 气压1
* Input : None
* Output : None
* Return : None
* onther : None
--------------------------------------------------------------------------*/
void Data_Gas1_Processing_Service(void)
{
uint32_t Gas_Value = 0u;
uint32_t data = 0u;
AirPressure_AdcData_Filter(); if ((K_Line_Set.K_Line_LID42 == 0x00) || (K_Line_Set.K_Line_LID42 == 0x02))
{
Gas_Value = RTE_Read_PRIMARY_AIR_Voltage();
}
else if ((K_Line_Set.K_Line_LID42 == 0x01) || (K_Line_Set.K_Line_LID42 == 0x03))
{
Gas_Value = RTE_Read_SECONDARY_AIR_Voltage();
}
for (i = 0; i < 2; i ++) if ((Common_Get_IG_Sts_Valid() == 1u) && (Common_Get_IG_Sts() == COMMON_POWER_ON))
{ {
AirPressureVariable.AvrVoltage[ i ] = Get_AirPressure_AdC_Filter(i) ; if ((Gas_Value < 500u) || (Gas_Value > 4250u))
if ((AirPressureVariable.AvrVoltage[ i ] < 500) || (AirPressureVariable.AvrVoltage[ i ] > 4250) )
{ {
if (AirPressureVariable.InvalidTimer[ i ] < VALID_TIME) if (DataStrGas1.LostTimer < 200u)
{ {
//2s if (DataStrGas1.Valid == 1u)
AirPressureVariable.InvalidTimer[ i ] ++ ; {
DataStrGas1.LostTimer++;
} }
else else
{ {
AirPressureVariable.ValidTimer[ i ] = 0 ; DataStrGas1.Count = 0u;
AirPressureVariable.Valid[i] = 0 ; DataStrGas1.DataDisplay = 0u;
DataStrGas1.LostTimer = 200u;
}
}
else
{
DataStrGas1.Valid = 0u;
DataStrGas1.Count = 0u;
DataStrGas1.DataDisplay = 0u;
DataStrGas1.Status = 1u;
} }
} }
else else
{ {
if (AirPressureVariable.ValidTimer[ i ] < VALID_TIME) DataStrGas1.Status = 0u;
DataStrGas1.LostTimer = 0u;
if (DataStrGas1.Valid == 0u)
{ {
AirPressureVariable.ValidTimer[ i ] ++ ; DataStrGas1.DataDisplay = Gas_Value;
DataStrGas1.Valid = 1u;
} }
else else
{ {
AirPressureVariable.InvalidTimer[ i ] = 0 ; if (DataStrGas1.Count >= 15)
AirPressureVariable.Valid[i] = 1 ; {
DataStrGas1.Count = 0u;
App_SortNByte(DataStrGas1.DataBuf, 5u);
App_SortNByte(DataStrGas1.DataBuf + 5u, 5u);
App_SortNByte(DataStrGas1.DataBuf + 10u, 5u);
data = (DataStrGas1.DataBuf[2u] + DataStrGas1.DataBuf[7u] + DataStrGas1.DataBuf[12u]);
data = data / 3u;
DataStrGas1.DataDisplay = (uint16_t)data;
}
else
{
DataStrGas1.Count++;
DataStrGas1.DataBuf[DataStrGas1.Count - 1u] = Gas_Value;
}
} }
} }
}
Calc_AirPressure_Table(AirPressureVariable.AvrVoltage[i], (uint16_t *)&AirPressureVariable.ResultkPa[i]); else
{
AirPressureVariable.CurSeg[ i ] = CalAirPressure_CurSeg(i, AirPressureVariable.Valid[i], AirPressureVariable.AvrVoltage[ i ]); DataStrGas1.Count = 0u;
DataStrGas1.DataDisplay = 0u;
DataStrGas1.Valid = 0u;
DataStrGas1.LostTimer = 0u;
DataStrGas1.Status = 0u;
} }
} }
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
* Function Name : Calc_AirPressure_Table * Function Name : Data_Gas2_Processing_Service
* Description : 电压 转为 压力 * Description : 气压2
* Input : None * Input : None
* Output : None * Output : None
* Return : None * Return : None
* onther : None * onther : None
--------------------------------------------------------------------------*/ --------------------------------------------------------------------------*/
static void Calc_AirPressure_Table(uint16_t Voltage, uint16_t * kPa) void Data_Gas2_Processing_Service(void)
{ {
uint8_t i = 0 ; uint32_t Gas_Value = 0u;
uint8_t Index = 0 ; uint32_t data = 0u;
uint32_t u32Result = 0 ;
#if EnTable if ((K_Line_Set.K_Line_LID42 == 0x00) || (K_Line_Set.K_Line_LID42 == 0x02))
if (Voltage <= AirPressureVariable.VoltageTable[ 0 ])
{ {
u32Result = AirPressureVariable.kPaTable[ 0 ] ; Gas_Value = RTE_Read_SECONDARY_AIR_Voltage();
} }
else if (Voltage >= AirPressureVariable.VoltageTable[ TableLenMax - 1 ]) else if ((K_Line_Set.K_Line_LID42 == 0x01) || (K_Line_Set.K_Line_LID42 == 0x03))
{ {
u32Result = AirPressureVariable.kPaTable[ TableLenMax - 1 ] ; Gas_Value = RTE_Read_PRIMARY_AIR_Voltage();
} }
else
{ if ((Common_Get_IG_Sts_Valid() == 1u) && (Common_Get_IG_Sts() == COMMON_POWER_ON))
for (i = 0; i < TableLenMax; i ++ )
{ {
if (Voltage < AirPressureVariable.VoltageTable[ i ]) if ((Gas_Value < 500u) || (Gas_Value > 4250u))
{ {
Index = i ; if (DataStrGas2.LostTimer < 200u)
break ;
}
}
if ((Index < 1) || (Index > (TableLenMax - 1)) )
{ {
//err if (DataStrGas2.Valid == 1u)
while (1)
{ {
; DataStrGas2.LostTimer++;
} }
else
{
DataStrGas2.Count = 0u;
DataStrGas2.DataDisplay = 0u;
DataStrGas2.LostTimer = 200u;
} }
//y=kx + b
Voltage -= AirPressureVariable.VoltageTable[Index - 1] ;
u32Result = AirPressureVariable.slopeTable[Index - 1] * Voltage ;
u32Result += 50 ;
u32Result /= 100 ;
u32Result += AirPressureVariable.kPaTable[ Index - 1 ] ;
} }
#else else
if (Voltage <= AirPressureVariable.VoltageTable[ 0 ])
{ {
u32Result = AirPressureVariable.kPaTable[ 0 ] ; DataStrGas2.Valid = 0u;
DataStrGas2.Count = 0u;
DataStrGas2.DataDisplay = 0u;
DataStrGas2.Status = 1u;
}
} }
else if (Voltage >= AirPressureVariable.VoltageTable[ TableLenMax - 1 ]) else
{
DataStrGas2.Status = 0u;
DataStrGas2.LostTimer = 0u;
if (DataStrGas2.Valid == 0u)
{ {
u32Result = AirPressureVariable.kPaTable[ TableLenMax - 1 ] ; DataStrGas2.DataDisplay = Gas_Value;
DataStrGas2.Valid = 1u;
} }
else else
{ {
//指示刻度 = (输入电压– 0.5) / 0.0025 if (DataStrGas2.Count >= 15)
if (Voltage >= 500)
{ {
Voltage -= 500 ; DataStrGas2.Count = 0u;
App_SortNByte(DataStrGas2.DataBuf, 5u);
App_SortNByte(DataStrGas2.DataBuf + 5u, 5u);
App_SortNByte(DataStrGas2.DataBuf + 10u, 5u);
data = (DataStrGas2.DataBuf[2u] + DataStrGas2.DataBuf[7u] + DataStrGas2.DataBuf[12u]);
data = data / 3u;
DataStrGas2.DataDisplay = (uint16_t)data;
} }
else
u32Result = Voltage ; {
u32Result *= 10 ; DataStrGas2.Count++;
u32Result /= 25 ; DataStrGas2.DataBuf[DataStrGas2.Count - 1u] = Gas_Value;
}
}
}
}
else
{
DataStrGas2.Count = 0u;
DataStrGas2.DataDisplay = 0u;
DataStrGas2.Valid = 0u;
DataStrGas2.LostTimer = 0u;
DataStrGas2.Status = 0u;
} }
#endif
*kPa = (uint16_t)u32Result ;
} }
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
* Function Name : AirPressure_AdcData_Filter * Function Name : Data_WET_Processing_Service
* Description : 主负气压输入数据滤波 - 主函数周期调用 * Description : WET 气压
* Input : None * Input : None
* Output : None * Output : None
* Return : None * Return : None
* onther : None * onther : None
--------------------------------------------------------------------------*/ --------------------------------------------------------------------------*/
void AirPressure_AdcData_Filter(void) void Data_WET_Processing_Service(void)
{ {
uint8_t u8PriValid = 0 ; uint32_t Gas_Value = 0u;
uint8_t u8SecValid = 0 ; uint32_t data = 0u;
uint16_t PriVoltage = 0 ;
uint16_t SecVoltage = 0 ;
if ((K_Line_Set.K_Line_LID42 == 0x00) || (K_Line_Set.K_Line_LID42 == 0x02)) if ((K_Line_Set.K_Line_LID42 == 0x00) || (K_Line_Set.K_Line_LID42 == 0x02))
{ {
u8PriValid = RTE_Read_PRIMARY_AIR_Valid(); Gas_Value = 0u;
u8SecValid = RTE_Read_SECONDARY_AIR_Valid();
} }
else if ((K_Line_Set.K_Line_LID42 == 0x01) || (K_Line_Set.K_Line_LID42 == 0x03)) else if ((K_Line_Set.K_Line_LID42 == 0x01) || (K_Line_Set.K_Line_LID42 == 0x03))
{ {
u8PriValid = RTE_Read_SECONDARY_AIR_Valid(); Gas_Value = 0u;
u8SecValid = RTE_Read_PRIMARY_AIR_Valid();
} }
if (u8PriValid) if ((Common_Get_IG_Sts_Valid() == 1u) && (Common_Get_IG_Sts() == COMMON_POWER_ON))
{
if ((Gas_Value < 500u) || (Gas_Value > 4250u))
{ {
if (AirPressureFilter[PRI_ID].SumCnt < 10) if (DataStrWET.LostTimer < 200u)
{ {
AirPressureFilter[PRI_ID].SumCnt ++ ; if (DataStrWET.Valid == 1u)
PriVoltage = RTE_Read_PRIMARY_AIR_Voltage() ; {
AirPressureFilter[PRI_ID].Voltage += PriVoltage ; DataStrWET.LostTimer++;
PriVoltage = (uint16_t)(AirPressureFilter[PRI_ID].Voltage / AirPressureFilter[PRI_ID].SumCnt) ;
} }
else else
{ {
AirPressureFilter[PRI_ID].SumCnt = 0 ; DataStrWET.Count = 0u;
AirPressureFilter[PRI_ID].Voltage = 0 ; DataStrWET.DataDisplay = 0u;
PriVoltage = RTE_Read_PRIMARY_AIR_Voltage() ; DataStrWET.LostTimer = 200u;
AirPressureFilter[PRI_ID].SumCnt ++ ;
AirPressureFilter[PRI_ID].Voltage += PriVoltage ;
PriVoltage = (uint16_t)(AirPressureFilter[PRI_ID].Voltage / AirPressureFilter[PRI_ID].SumCnt) ;
} }
AirPressureFilter[PRI_ID].Result = PriVoltage ;
} }
else else
{ {
AirPressureFilter[PRI_ID].SumCnt = 0 ; DataStrWET.Valid = 0u;
AirPressureFilter[PRI_ID].Voltage = 0 ; DataStrWET.Count = 0u;
PriVoltage = 0 ; DataStrWET.DataDisplay = 0u;
} }
if (u8SecValid)
{
if (AirPressureFilter[SEC_ID].SumCnt < 10)
{
AirPressureFilter[SEC_ID].SumCnt ++ ;
SecVoltage = RTE_Read_SECONDARY_AIR_Voltage() ;
AirPressureFilter[SEC_ID].Voltage += SecVoltage ;
SecVoltage = (uint16_t)(AirPressureFilter[SEC_ID].Voltage / AirPressureFilter[SEC_ID].SumCnt) ;
} }
else else
{ {
AirPressureFilter[SEC_ID].SumCnt = 0 ; DataStrWET.LostTimer = 0u;
AirPressureFilter[SEC_ID].Voltage = 0 ; if (DataStrWET.Valid == 0u)
SecVoltage = RTE_Read_SECONDARY_AIR_Voltage() ; {
AirPressureFilter[SEC_ID].SumCnt ++ ; DataStrWET.DataDisplay = Gas_Value;
AirPressureFilter[SEC_ID].Voltage += SecVoltage ; DataStrWET.Valid = 1u;
SecVoltage = (uint16_t)(AirPressureFilter[SEC_ID].Voltage / AirPressureFilter[SEC_ID].SumCnt) ;
}
AirPressureFilter[SEC_ID].Result = SecVoltage ;
} }
else else
{ {
AirPressureFilter[SEC_ID].SumCnt = 0 ; if (DataStrWET.Count >= 15)
AirPressureFilter[SEC_ID].Voltage = 0 ;
SecVoltage = 0 ;
}
}
/*-------------------------------------------------------------------------
* Function Name : CalAirPressure_CurSeg
* Description : 计算主负气压显示段
* Input : None
* Output : None
* Return : None
* onther : None
--------------------------------------------------------------------------*/
static uint8_t CalAirPressure_CurSeg(uint8_t ID, uint8_t Valid, uint16_t Voltage)
{
uint8_t u8Result = 0 ;
if (Valid)
{ {
DataStrWET.Count = 0u;
App_SortNByte(DataStrWET.DataBuf, 5u);
App_SortNByte(DataStrWET.DataBuf + 5u, 5u);
App_SortNByte(DataStrWET.DataBuf + 10u, 5u);
data = (DataStrWET.DataBuf[2u] + DataStrWET.DataBuf[7u] + DataStrWET.DataBuf[12u]);
data = data / 3u;
DataStrWET.DataDisplay = (uint16_t)data;
} }
else else
{ {
DataStrWET.Count++;
DataStrWET.DataBuf[DataStrWET.Count - 1u] = Gas_Value;
}
}
} }
if (ID == PRI_ID)
{
SetGaugesPara(PRIGasGauges, Voltage);
u8Result = GetGaugesCurrentPos(PRIGasGauges) ;
} }
else else
{ {
SetGaugesPara(SECGasGauges, Voltage); DataStrWET.Count = 0u;
u8Result = GetGaugesCurrentPos(SECGasGauges) ; DataStrWET.DataDisplay = 0u;
DataStrWET.Valid = 0u;
DataStrWET.LostTimer = 0u;
} }
return u8Result ;
}
/*-------------------------------------------------------------------------
* Function Name : Get_AirPressure_AdC_Filter
* Description : 主负气压滤波后结果
* Input : None
* Output : None
* Return : None
* onther : None
--------------------------------------------------------------------------*/
static uint16_t Get_AirPressure_AdC_Filter(uint8_t ID)
{
uint16_t u16Result ;
u16Result = AirPressureFilter[ID].Result ;
return u16Result ;
} }
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
* Function Name : AirPressure_Get_kPa * Function Name : Common_Get_Air1_Valid
* Description : 压力值 kPa * Description : 获取气压 1 的有效性
* Input : None * Input : None
* Output : None * Output : None
* Return : None * Return : None
* onther : None * onther : None
--------------------------------------------------------------------------*/ --------------------------------------------------------------------------*/
uint16_t AirPressure_Get_kPa(uint8_t ID) uint8_t Common_Get_Air1_Valid(void)
{ {
uint16_t u16Result = 0u; return DataStrGas1.Valid;
u16Result = AirPressureVariable.ResultkPa[ID];
return u16Result;
} }
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
* Function Name : AirPressure_Get_Valid * Function Name : Common_Get_Air2_Valid
* Description : * Description : 获取气压 2 的有效性
* Input : None * Input : None
* Output : None * Output : None
* Return : None * Return : None
* onther : None * onther : None
--------------------------------------------------------------------------*/ --------------------------------------------------------------------------*/
uint8_t AirPressure_Get_Valid(uint8_t ID) uint8_t Common_Get_Air2_Valid(void)
{ {
uint8_t u8Result = 0u; return DataStrGas2.Valid;
u8Result = AirPressureVariable.Valid[ID];
return u8Result ;
} }
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
* Function Name : AirPressure_Get_CurSeg * Function Name : Common_Get_WET_Valid
* Description : 当前显示段 * Description : 获取 WET 有效性
* Input : None * Input : None
* Output : None * Output : None
* Return : None * Return : None
* onther : None * onther : None
--------------------------------------------------------------------------*/ --------------------------------------------------------------------------*/
uint8_t AirPressure_Get_CurSeg(uint8_t ID) uint8_t Common_Get_WET_Valid(void)
{ {
return AirPressureVariable.CurSeg[ ID ] ; return DataStrWET.Valid;
} }
\ No newline at end of file
#ifndef DATA_AIRPRESSURE_H #ifndef DATA_AIRPRESSURE_H
#define DATA_AIRPRESSURE_H #define DATA_AIRPRESSURE_H
#include "GaugesInterface.h"
#include "TYW_stdint.h" #include "TYW_stdint.h"
extern DataStruct DataStrGas1;
extern DataStruct DataStrGas2;
extern DataStruct DataStrWET;
extern void AirPressure_KL30_Init(void); extern void AirPressure_KL30_Init(void);
extern void AirPressure_KL15_ON_Init(void); extern void AirPressure_KL15_ON_Init(void);
...@@ -13,12 +15,11 @@ extern void AirPressure_Wakeup_Init(void); ...@@ -13,12 +15,11 @@ extern void AirPressure_Wakeup_Init(void);
extern void AirPressure_Sleep_Init(void); extern void AirPressure_Sleep_Init(void);
extern void AirPressure_Processing_Service(void); extern void AirPressure_Processing_Service(void);
void Data_Gas1_Processing_Service(void);
extern uint16_t AirPressure_Get_kPa(uint8_t ID); void Data_Gas2_Processing_Service(void);
extern uint8_t AirPressure_Get_Valid(uint8_t ID); void Data_WET_Processing_Service(void);
extern void AirPressure_AdcData_Filter(void) ; uint8_t Common_Get_Air1_Valid(void);
extern uint8_t AirPressure_Get_CurSeg(uint8_t ID); uint8_t Common_Get_Air2_Valid(void);
uint8_t Common_Get_WET_Valid(void);
#endif #endif
\ No newline at end of file
...@@ -41,7 +41,7 @@ void Data_User_Mileage_KL30Init(void) ...@@ -41,7 +41,7 @@ void Data_User_Mileage_KL30Init(void)
Func.Get_Sys_IG_Sts = Common_Get_IG_Sts; Func.Get_Sys_IG_Sts = Common_Get_IG_Sts;
Func.Get_Act_V_Speed_Valid = Common_Get_Act_V_Speed_Valid; Func.Get_Act_V_Speed_Valid = Common_Get_Act_V_Speed_Valid;
Func.Get_Act_V_Speed = Common_Get_Act_V_Speed; Func.Get_Act_V_Speed = Common_Get_Act_V_Speed;
Func.Get_TireSize = 1; Func.Get_TireSize = ( void * )0;
Func.EEPromWrite_Cbk = Data_User_EEPROM_Write; //暂时未设置 Func.EEPromWrite_Cbk = Data_User_EEPROM_Write; //暂时未设置
Data_Mileage_KL30_Init(DataMilleageBuf, &MileInit, &Func); Data_Mileage_KL30_Init(DataMilleageBuf, &MileInit, &Func);
...@@ -52,20 +52,20 @@ void Data_User_Mileage_KL30Init(void) ...@@ -52,20 +52,20 @@ void Data_User_Mileage_KL30Init(void)
Data_User_EEPROM_Read(EEPROM_BLOCK_TRIP_STAMP, TempBuf + 3, 4); Data_User_EEPROM_Read(EEPROM_BLOCK_TRIP_STAMP, TempBuf + 3, 4);
TripInit[EM_TRIP_A].Stamp = TempBuf[3]; TripInit[EM_TRIP_A].Stamp = TempBuf[3];
TripInit[EM_TRIP_A].MaxValue = 99999; TripInit[EM_TRIP_A].MaxValue = 9999999u;
TripInit[EM_TRIP_A].IsRestart = 1u; TripInit[EM_TRIP_A].IsRestart = 1u;
TripInit[EM_TRIP_B].Stamp = TempBuf[4]; TripInit[EM_TRIP_B].Stamp = TempBuf[4];
TripInit[EM_TRIP_B].MaxValue = 99999; TripInit[EM_TRIP_B].MaxValue = 9999999u;
TripInit[EM_TRIP_B].IsRestart = 1u; TripInit[EM_TRIP_B].IsRestart = 1u;
TripInit[EM_TRIP_C].Stamp = TempBuf[5]; TripInit[EM_TRIP_C].Stamp = TempBuf[5];
TripInit[EM_TRIP_C].MaxValue = 99999; TripInit[EM_TRIP_C].MaxValue = 99999;
TripInit[EM_TRIP_C].IsRestart = 0u; TripInit[EM_TRIP_C].IsRestart = 1u;
TripInit[EM_TRIP_D].Stamp = TempBuf[6]; TripInit[EM_TRIP_D].Stamp = TempBuf[6];
TripInit[EM_TRIP_D].MaxValue = 99999; TripInit[EM_TRIP_D].MaxValue = 99999;
TripInit[EM_TRIP_D].IsRestart = 0u; TripInit[EM_TRIP_D].IsRestart = 1u;
Data_Trip_KL30_Init(DataTripBuf, TripInit, EM_TRIP_MAX, Func.EEPromWrite_Cbk); Data_Trip_KL30_Init(DataTripBuf, TripInit, EM_TRIP_MAX, Func.EEPromWrite_Cbk);
} }
...@@ -77,7 +77,7 @@ void Data_User_Mileage_KL15Init(void) ...@@ -77,7 +77,7 @@ void Data_User_Mileage_KL15Init(void)
Func.Get_Sys_IG_Sts = Common_Get_IG_Sts; Func.Get_Sys_IG_Sts = Common_Get_IG_Sts;
Func.Get_Act_V_Speed_Valid = Common_Get_Act_V_Speed_Valid; Func.Get_Act_V_Speed_Valid = Common_Get_Act_V_Speed_Valid;
Func.Get_Act_V_Speed = Common_Get_Act_V_Speed; Func.Get_Act_V_Speed = Common_Get_Act_V_Speed;
Func.Get_TireSize = 1; Func.Get_TireSize = ( void * )0;
Func.EEPromWrite_Cbk = Data_User_EEPROM_Write; //暂时未设置 Func.EEPromWrite_Cbk = Data_User_EEPROM_Write; //暂时未设置
Data_Mileage_Wakeup_Init(DataMilleageBuf, &Func); Data_Mileage_Wakeup_Init(DataMilleageBuf, &Func);
......
...@@ -115,7 +115,8 @@ static void Data_Voltmeter_2_Gui(void) ...@@ -115,7 +115,8 @@ static void Data_Voltmeter_2_Gui(void)
VoltmeterVariable.AvrVoltage = Get_VoltFilter(); VoltmeterVariable.AvrVoltage = Get_VoltFilter();
VoltmeterVariable.AvrVoltage += 800u;/*增加二极管压降补偿*/ VoltmeterVariable.AvrVoltage += 800u;/*增加二极管压降补偿*/
if ((VoltmeterVariable.AvrVoltage >= 17000) && (VoltmeterVariable.AvrVoltage <= 30500))
if ((VoltmeterVariable.AvrVoltage >= 17000u) && (VoltmeterVariable.AvrVoltage <= 30500u))
{ {
VoltmeterVariable.Valid = 1 ; VoltmeterVariable.Valid = 1 ;
VoltmeterVariable.Timer = 0 ; VoltmeterVariable.Timer = 0 ;
...@@ -136,6 +137,7 @@ static void Data_Voltmeter_2_Gui(void) ...@@ -136,6 +137,7 @@ static void Data_Voltmeter_2_Gui(void)
if (VoltmeterVariable.Valid) if (VoltmeterVariable.Valid)
{ {
VoltmeterVariable.AvrVoltage /= 10u;
SetGaugesPara(VoltGauges, VoltmeterVariable.AvrVoltage); SetGaugesPara(VoltGauges, VoltmeterVariable.AvrVoltage);
u8GuiMode = GetGaugesCurrentPos(VoltGauges); u8GuiMode = GetGaugesCurrentPos(VoltGauges);
} }
......
...@@ -434,16 +434,9 @@ void GaugeMoveing(uint8_t GaugesNum) ...@@ -434,16 +434,9 @@ void GaugeMoveing(uint8_t GaugesNum)
} }
} }
} }
/*电压放大倍数不同,单独处理*/
if (GaugesNum == VoltGauges)
{
MoveTypePara = 100u;
}
else
{
MoveTypePara = 10u; MoveTypePara = 10u;
} }
}
else else
{ {
if (ModeGaugesTestFlag[GaugesNum] && tmp) if (ModeGaugesTestFlag[GaugesNum] && tmp)
......
...@@ -41,8 +41,8 @@ static const uint16_t GaugesDataInInit[GaugesTotal][3][25] = ...@@ -41,8 +41,8 @@ static const uint16_t GaugesDataInInit[GaugesTotal][3][25] =
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0} { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0}
}, },
/*电池电压*/ /*电池电压*/
{ {0, 17000, 19000, 20000, 21000, 22000, 23000, 24000, 25000, 26000, 27000, 28000, 29000, 30000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, { {0, 1700, 1900, 2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 18500, 19500, 20500, 21500, 22500, 23500, 24500, 25500, 26500, 27500, 28500, 29500, 30500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 1850, 1950, 2050, 2150, 2250, 2350, 2450, 2550, 2650, 2750, 2850, 2950, 3050, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
}, },
......
...@@ -29,11 +29,6 @@ typedef struct ...@@ -29,11 +29,6 @@ typedef struct
uint8_t Status; uint8_t Status;
} DataStruct; } DataStruct;
extern DataStruct DataStrGas1;
extern DataStruct DataStrGas2;
extern DataStruct DataStrVoltage;
extern uint16_t RealDataIn[GaugesTotal]; extern uint16_t RealDataIn[GaugesTotal];
extern void SetGaugesPara(uint8_t GaugesID, uint16_t GaugesVal); /* 传递表头参数 */ extern void SetGaugesPara(uint8_t GaugesID, uint16_t GaugesVal); /* 传递表头参数 */
extern void UserGaugeSchedule(void);/*在主循环中调用*/ extern void UserGaugeSchedule(void);/*在主循环中调用*/
......
...@@ -104,7 +104,6 @@ Power_Status_t Power_KL30_Init ( void ) ...@@ -104,7 +104,6 @@ Power_Status_t Power_KL30_Init ( void )
RTE_PWM_Init(); RTE_PWM_Init();
/*按键部分 杨真东维护结束*/ /*按键部分 杨真东维护结束*/
AirPressure_KL30_Init();
/*报警调度初始化*/ /*报警调度初始化*/
Popup_Scheduler_Init(); Popup_Scheduler_Init();
/*报警调度初始化*/ /*报警调度初始化*/
...@@ -222,13 +221,16 @@ void Power_IG_ON_Init(void) ...@@ -222,13 +221,16 @@ void Power_IG_ON_Init(void)
UserGaugeK15Init() ;/*仪表IGON调用*/ UserGaugeK15Init() ;/*仪表IGON调用*/
/*end*/ /*end*/
/*5s不按按键计时清零*/ /*5s不按按键计时清零*/
//LongTimeNoKey_Operation_TimeRest(); //LongTimeNoKey_Operation_TimeRest();
CD4051B_KL15Init(); CD4051B_KL15Init();
GUI_Display_KL15_ON_Init(); GUI_Display_KL15_ON_Init();
/*气压1 气压2 WET气压数据初始化*/
AirPressure_KL15_ON_Init();
} }
Power_Status_t Power_Stay_ON(void) Power_Status_t Power_Stay_ON(void)
{ {
Power_Status_t u8PowerSts; Power_Status_t u8PowerSts;
......
...@@ -1042,12 +1042,12 @@ void Seg_Display_Service(void) ...@@ -1042,12 +1042,12 @@ void Seg_Display_Service(void)
if (Ign_Time < 3100) if (Ign_Time < 3100)
{ {
SEG_PRI_Display(GetGaugesCurrentPos(PRIGasGauges), GUI_DISP_MODE_NORMAL, 7u); // PRI气压格 SEG_PRI_Display (GetGaugesCurrentPos(PRIGasGauges), GUI_DISP_MODE_NORMAL, 7u); // PRI气压格
SEG_SEC_Display(GetGaugesCurrentPos(SECGasGauges), GUI_DISP_MODE_NORMAL, 7u); // SEC气压格 SEG_SEC_Display (GetGaugesCurrentPos(SECGasGauges), GUI_DISP_MODE_NORMAL, 7u); // SEC气压格
SEG_Coolant_Display(GetGaugesCurrentPos(TempGauges), GUI_DISP_MODE_NORMAL, 7u); //水温格 SEG_Coolant_Display (GetGaugesCurrentPos(TempGauges), GUI_DISP_MODE_NORMAL, 7u); // 水温格
SEG_Fuel_Display(GetGaugesCurrentPos(TempGauges), GUI_DISP_MODE_NORMAL, 7u); //燃油格 SEG_Fuel_Display (GetGaugesCurrentPos(TempGauges), GUI_DISP_MODE_NORMAL, 7u); // 燃油格
SEG_Tacho_Display(GetGaugesCurrentPos(RevGauges), GUI_DISP_MODE_NORMAL, 7u); //转速格 SEG_Tacho_Display (GetGaugesCurrentPos(RevGauges), GUI_DISP_MODE_NORMAL, 7u); // 转速格
SEG_VehicleSpeed_Display(GetGaugesCurrentPos(VehGauges), GUI_DISP_MODE_NORMAL, 7u); //车速格 SEG_VehicleSpeed_Display(GetGaugesCurrentPos(VehGauges), GUI_DISP_MODE_NORMAL, 7u); // 车速格
/*车速数字 暂时没有变化,只是全部点亮*/ /*车速数字 暂时没有变化,只是全部点亮*/
Seg_Digit_1_Disp(12); Seg_Digit_1_Disp(12);
...@@ -1060,21 +1060,21 @@ void Seg_Display_Service(void) ...@@ -1060,21 +1060,21 @@ void Seg_Display_Service(void)
{ {
GaugesTimer = 15u; GaugesTimer = 15u;
if (AirPressure_Get_Valid(0)) if (Common_Get_Air1_Valid())
{ {
SEG_PRI_Display(AirPressure_Get_CurSeg(0), GUI_DISP_MODE_NORMAL, 7u); // PRI气压格 SEG_PRI_Display(GetGaugesCurrentPos(PRIGasGauges), GUI_DISP_MODE_NORMAL, 7u); // PRI气压格
} }
else else
{ {
SEG_PRI_Display(AirPressure_Get_CurSeg(0), GUI_DISP_MODE_INVALID, 7u); // PRI气压格 SEG_PRI_Display(GetGaugesCurrentPos(PRIGasGauges), GUI_DISP_MODE_INVALID, 7u); // PRI气压格
} }
if (AirPressure_Get_Valid(1)) if (Common_Get_Air2_Valid())
{ {
SEG_SEC_Display(AirPressure_Get_CurSeg(1), GUI_DISP_MODE_NORMAL, 7u); // SEC气压格 SEG_SEC_Display(GetGaugesCurrentPos(SECGasGauges), GUI_DISP_MODE_NORMAL, 7u); // SEC气压格
} }
else else
{ {
SEG_SEC_Display(AirPressure_Get_CurSeg(1), GUI_DISP_MODE_INVALID, 7u); // SEC气压格 SEG_SEC_Display(GetGaugesCurrentPos(SECGasGauges), GUI_DISP_MODE_INVALID, 7u); // SEC气压格
} }
if (Coolant_Get_Valid()) if (Coolant_Get_Valid())
...@@ -1123,8 +1123,8 @@ void Seg_Display_Service(void) ...@@ -1123,8 +1123,8 @@ void Seg_Display_Service(void)
{ {
SEG_A25_Disp(0u); //左侧弧线 SEG_A25_Disp(0u); //左侧弧线
SEG_C25_Disp(0u); //右侧弧线 SEG_C25_Disp(0u); //右侧弧线
SEG_PRI_Display(AirPressure_Get_CurSeg(0), GUI_DISP_MODE_BLANK, 0u); // PRI气压格 SEG_PRI_Display(GetGaugesCurrentPos(PRIGasGauges), GUI_DISP_MODE_BLANK, 0u); // PRI气压格
SEG_SEC_Display(AirPressure_Get_CurSeg(1), GUI_DISP_MODE_BLANK, 0u); // SEC气压格 SEG_SEC_Display(GetGaugesCurrentPos(SECGasGauges), GUI_DISP_MODE_BLANK, 0u); // SEC气压格
SEG_Coolant_Display(Coolant_Get_CurSeg(), GUI_DISP_MODE_BLANK, 0u); //水温格 SEG_Coolant_Display(Coolant_Get_CurSeg(), GUI_DISP_MODE_BLANK, 0u); //水温格
SEG_Fuel_Display(Fuel_Get_CurSeg(), GUI_DISP_MODE_BLANK, 0u); //燃油格 SEG_Fuel_Display(Fuel_Get_CurSeg(), GUI_DISP_MODE_BLANK, 0u); //燃油格
SEG_Tacho_Display(Tacho_Get_CurSeg(), GUI_DISP_MODE_BLANK, 0u); //转速格 SEG_Tacho_Display(Tacho_Get_CurSeg(), GUI_DISP_MODE_BLANK, 0u); //转速格
......
...@@ -68,8 +68,8 @@ void Can_Set_Buff_18FEAE17(uint8_t CopyData []) ...@@ -68,8 +68,8 @@ void Can_Set_Buff_18FEAE17(uint8_t CopyData [])
{ {
MsgMap.Data[ i ] = 0xff ; MsgMap.Data[ i ] = 0xff ;
} }
MsgMap.bit.Service_Brake_Circuit1_AirPressure = (uint8_t)(AirPressure_Get_kPa(0) >> 3) ; //MsgMap.bit.Service_Brake_Circuit1_AirPressure = (uint8_t)(AirPressure_Get_kPa(0) >> 3) ;
MsgMap.bit.Service_Brake_Circuit2_AirPressure = (uint8_t)(AirPressure_Get_kPa(1) >> 3) ; //MsgMap.bit.Service_Brake_Circuit2_AirPressure = (uint8_t)(AirPressure_Get_kPa(1) >> 3) ;
if (RTE_Read_KL30_Valid()) if (RTE_Read_KL30_Valid())
{ {
......
...@@ -50,9 +50,9 @@ static const EEPROM_Block_st_t g_stEEPROMBlockTable[] = ...@@ -50,9 +50,9 @@ static const EEPROM_Block_st_t g_stEEPROMBlockTable[] =
{0xFF200580UL, 0xFF20067FUL, EEPROM_BLOCK5_BUFFER_SIZE, g_u32EEPROMBlock5Buffer,}, {0xFF200580UL, 0xFF20067FUL, EEPROM_BLOCK5_BUFFER_SIZE, g_u32EEPROMBlock5Buffer,},
{0xFF200680UL, 0xFF200A7FUL, EEPROM_BLOCK6_BUFFER_SIZE, g_u32EEPROMBlock6Buffer,}, {0xFF200680UL, 0xFF200A7FUL, EEPROM_BLOCK6_BUFFER_SIZE, g_u32EEPROMBlock6Buffer,},
{0xFF200A80UL, 0xFF200F7FUL, EEPROM_BLOCK7_BUFFER_SIZE, g_u32EEPROMBlock7Buffer,}, {0xFF200A80UL, 0xFF200F7FUL, EEPROM_BLOCK7_BUFFER_SIZE, g_u32EEPROMBlock7Buffer,},
{0xFF200F80UL, 0xFF20197FUL, EEPROM_BLOCK8_BUFFER_SIZE, g_u32EEPROMBlock8Buffer,}, {0xFF200F80UL, 0xFF20377FUL, EEPROM_BLOCK8_BUFFER_SIZE, g_u32EEPROMBlock8Buffer,},
{0xFF201980UL, 0xFF2019FFUL, EEPROM_BLOCK9_BUFFER_SIZE, g_u32EEPROMBlock9Buffer,}, {0xFF203780UL, 0xFF2037FFUL, EEPROM_BLOCK9_BUFFER_SIZE, g_u32EEPROMBlock9Buffer,},
{0xFF201A00UL, 0xFF201AFFUL, EEPROM_BLOCK10_BUFFER_SIZE, g_u32EEPROMBlock10Buffer,}, {0xFF203800UL, 0xFF2038FFUL, EEPROM_BLOCK10_BUFFER_SIZE, g_u32EEPROMBlock10Buffer,},
}; };
/**************************************************************************** /****************************************************************************
......
...@@ -46,7 +46,7 @@ enum g_enEEPROMBlockName ...@@ -46,7 +46,7 @@ enum g_enEEPROMBlockName
#define EEPROM_BLOCK_UDS_DTC_SIZE (76U)/*Life:20.0W*/ #define EEPROM_BLOCK_UDS_DTC_SIZE (76U)/*Life:20.0W*/
#define EEPROM_BLOCK_ODO_SIZE (4U)/*Life:1000.0W*/ #define EEPROM_BLOCK_ODO_SIZE (4U)/*Life:1000.0W*/
#define EEPROM_BLOCK_ODO_STAMP_SIZE (8U)/*Life:1000.0W*/ #define EEPROM_BLOCK_ODO_STAMP_SIZE (8U)/*Life:1000.0W*/
#define EEPROM_BLOCK_TRIP_STAMP_SIZE (16U)/*Life:1000.0W*/ #define EEPROM_BLOCK_TRIP_STAMP_SIZE (80U)/*Life:1000.0W*/
#define EEPROM_BLOCK_SERVICE_INFO_SIZE (56U)/*Life:20.0W*/ #define EEPROM_BLOCK_SERVICE_INFO_SIZE (56U)/*Life:20.0W*/
#define EEPROM_BLOCK_EOL_K_LINE_SIZE (64U)/*Life:20.0W*/ #define EEPROM_BLOCK_EOL_K_LINE_SIZE (64U)/*Life:20.0W*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment