Commit 3bdf9153 authored by wangxuhui's avatar wangxuhui

Merge branch 'dev' into 'master_dev'

Dev

See merge request !93
parents 4a07f805 bbf1d175
...@@ -393,6 +393,11 @@ ...@@ -393,6 +393,11 @@
<FileType>5</FileType> <FileType>5</FileType>
<FilePath>..\..\..\..\Source\System\main.h</FilePath> <FilePath>..\..\..\..\Source\System\main.h</FilePath>
</File> </File>
<File>
<FileName>Sys_Scheduler_Lib.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\Source\System\Sys_Scheduler_Lib.c</FilePath>
</File>
<File> <File>
<FileName>Sys_Scheduler.c</FileName> <FileName>Sys_Scheduler.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
...@@ -403,11 +408,6 @@ ...@@ -403,11 +408,6 @@
<FileType>5</FileType> <FileType>5</FileType>
<FilePath>..\..\..\..\Source\System\Sys_Scheduler.h</FilePath> <FilePath>..\..\..\..\Source\System\Sys_Scheduler.h</FilePath>
</File> </File>
<File>
<FileName>Sys_Scheduler_Lib.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\Source\System\Sys_Scheduler_Lib.c</FilePath>
</File>
<File> <File>
<FileName>Sys_Scheduler_Lib.h</FileName> <FileName>Sys_Scheduler_Lib.h</FileName>
<FileType>5</FileType> <FileType>5</FileType>
......
...@@ -132,7 +132,7 @@ const uint8_t user_opt_data[4] __attribute__((used)) __attribute__((section(".AR ...@@ -132,7 +132,7 @@ const uint8_t user_opt_data[4] __attribute__((used)) __attribute__((section(".AR
// <0x72=> VLVDH = 4.06V/3.98V, VLVDL = 2.75V ( interrupt & reset mode ) // <0x72=> VLVDH = 4.06V/3.98V, VLVDL = 2.75V ( interrupt & reset mode )
// <i> Please setting the item for interrupt & reset mode // <i> Please setting the item for interrupt & reset mode
// </h> // </h>
0x3B, 0x72,
/** /**
* @brief HOCO Control BYTE (FRQSEL) * @brief HOCO Control BYTE (FRQSEL)
......
#include "Backlight.h" #include "BackLight.h"
#include "Components.h" #include "Components.h"
typedef void (*SetPwm)(Light_uint16_t Pwm);
typedef Light_uint8_t (*SetPwmEnable)(void);
typedef Light_uint8_t (*SetPwmLevel)(void);
typedef Light_uint16_t (*NtcRes)(void);
typedef struct
{
SetPwm SetPwmCbk; /* 设置PWM回调函数 */
SetPwmEnable SetPwmEnCbk; /* 设置PWM使能回调函数 */
SetPwmLevel SetPwmLevelCbk; /* 背光等级回调函数 */
NtcRes NtcResCbk; /* 获取电阻值回调函数 */
} BackLightExtPara;
typedef struct
{
SetPwm SetPwmCbk; /* 设置PWM回调函数 */
SetPwmEnable SetPwmEnCbk; /* 设置PWM使能回调函数 */
SetPwmLevel SetPwmLevelCbk; /* 背光等级回调函数 */
NtcRes NtcResCbk;
Light_uint8_t BacklightEn; /* 背光使能 */
Light_uint16_t BacklightPwm; /* 背光PWM */
Light_uint16_t BacklightLevel; /* 背光等级 */
} _Backlight_Op;
_Backlight_Op Backlight_Operate;
#define BACK_LIGHT_Val_1 (( 100 * Backlight_Operate.BacklightPwm ) / 100 )
#define BACK_LIGHT_Val_2 (( 200 * Backlight_Operate.BacklightPwm ) / 100 )
#define BACK_LIGHT_Val_3 (( 400 * Backlight_Operate.BacklightPwm ) / 100 )
#define BACK_LIGHT_Val_4 (( 600 * Backlight_Operate.BacklightPwm ) / 100 )
#define BACK_LIGHT_Val_5 (( 800 * Backlight_Operate.BacklightPwm ) / 100 )
#define LIGHT_DATA_TIME 10u /*这里填写多长时间采集一个数据,单位ms*/ #define LIGHT_DATA_TIME 10u /*这里填写多长时间采集一个数据,单位ms*/
#define LIGHT_DATA_NUM 20u /*燃油电阻采集数据总数 最大255*/ #define LIGHT_DATA_NUM 20u /*燃油电阻采集数据总数 最大255*/
#define LIGHT_CAL_START 5u /*数据排序后取中间部分计算平均:起始*/ #define LIGHT_CAL_START 5u /*数据排序后取中间部分计算平均:起始*/
...@@ -45,532 +12,579 @@ Light_uint16_t NtcDataCount; ...@@ -45,532 +12,579 @@ Light_uint16_t NtcDataCount;
Light_uint16_t NtcData[LIGHT_DATA_NUM] = {0}; Light_uint16_t NtcData[LIGHT_DATA_NUM] = {0};
typedef struct typedef struct
{ {
Light_uint16_t Temperature; /* 温度 */ uint8_t u8Lvl;
Light_uint16_t Resistance; /* 阻值 */ uint8_t Pos_Lamp_Sts;
} _st_Backlight;
typedef struct uint16_t u16DialcurDuty;
uint16_t u16DialdestDuty;
uint16_t u16DialDampingTimer;
uint16_t u16TftcurDuty;
uint16_t u16TftdestDuty;
uint16_t u16TftDampingTimer;
uint8_t destFactor;
uint8_t curFactor;
uint16_t Ntc_Timer;
} _Back_Light_Struct;
_Back_Light_Struct g_stBL;
typedef enum
{ {
Light_uint16_t BacklightLevel; /* 背光等级 */ Light_Lvl_0 = 0,
Light_uint16_t BacklightDuty; /* 背光占空比 */ Light_Lvl_1,
} _st_BacklightLevel; Light_Lvl_2,
Light_Lvl_3,
#define Backlight_Max 10 Light_Lvl_4,
#define BacklightLevel_Max 5 Light_Lvl_5,
_st_Backlight BacklightTable[Backlight_Max] = Light_Lvl_6,
{ Light_Lvl_Max,
/*温度 阻值 */ }_BL_LVL_Enum;
{550, 2708},
{600, 2602}, void BackLight_Back_PWM_Init(void);
{650, 2500},
{700, 2043}, void BackLight_30_Init(void)
{750, 2310}, {
{800, 2221}, TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 20000, 64000000);
{850, 2136}, TimerM_PWM_CH_Output_init(TIMERM_COUNTER1, TIMERM_CHB, ActiveLevel_High);
{900, 2055}, BackLight_Set_Lvl(Light_Lvl_4);
{950, 1977}, g_stBL.curFactor = 100;
{1000, 1902}, }
};
_st_BacklightLevel BacklightLevelTable[BacklightLevel_Max] = void BackLight_15_Init(void)
{ {
/*背光等级 背光占空比 */ TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 20000, 64000000);
{1, 100}, TimerM_PWM_CH_Output_init(TIMERM_COUNTER1, TIMERM_CHB, ActiveLevel_High);
{2, 200}, g_stBL.curFactor = 100;
{3, 400}, }
{4, 600},
{5, 800},
void BackLight_WakeUp_Init(void)
{
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 20000, 64000000);
TimerM_PWM_CH_Output_init(TIMERM_COUNTER1, TIMERM_CHB, ActiveLevel_High);
g_stBL.curFactor = 100;
}
void BackLight_Sleep_Init(void)
{
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 0);
}
void BackLight_Back_PWM_Init(void)
{
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 20000, 64000000);
TimerM_PWM_CH_Output_init(TIMERM_COUNTER1, TIMERM_CHB, ActiveLevel_High);
}
uint16_t NTCDegreesBoard[] =
{
550,
600,
650,
700,
750,
800,
850,
900,
950,
1000,
}; };
void Data_Light_Res_service(Light_uint8_t deltaTime)//获取光感阻值,并做平均 uint16_t NTCResBoard[] =
{ {
uint16_t LightRes = 0; 27091,
uint8_t i, j; 22224,
uint32_t temp32; 18323,
static uint16_t timeCount = 0; 15184,
if (timeCount >= LIGHT_DATA_TIME) 12635,
10566,
8873,
7481,
6337,
5384,
};
/**
* @brief 实现数据的渐变效果
* 该函数用于更新当前值,使其逐渐接近目标值,渐变的步长由step参数控制。同时,通过timer参数来实现一定的延迟效果,
* 仅当计时器达到或超过预设的timedelay时,才会进行一次渐变操作。这有助于平滑数据的变化,避免突变。
* @param cur 当前值的指针,函数将更新这个值
* @param dest 目标值,当前值将逐渐变化到这个值
* @param step 每次变化的步长
* @param timer 计时器的指针,用于实现变化的延迟
* @param timedelay 延迟的时间阈值,当计时器达到或超过这个值时,才会进行变化
*/
void U16_Data_Gradient(Light_uint16_t *cur, Light_uint16_t dest, Light_uint16_t step, Light_uint16_t *timer, const Light_uint16_t timedelay)
{
if (*cur > dest)
{ {
timeCount = 0; if ((*cur - dest) > step)
if (NtcDataCount < LIGHT_DATA_NUM)
{ {
/*获取光敏电阻*/ if (*timer >= timedelay)
LightRes = ADC_Read_Signal(ADC_CH_LIGHT_SENSITIVE); // ADC_Read_Signal(ADC_CH_FUEL1);
/*四舍五入*/
if (LightRes < 32000)
{ {
if (LightRes % 10 >= 5) (*cur) -= step;
(*timer) = 0;
}
else
{ {
LightRes += 5; (*timer)++;
} }
} }
else else
{ {
LightRes = 32000; *cur = dest;
*timer = 0;
} }
}
/*由小到大插入数据*/ else
for (i = 0; i < NtcDataCount; i++)
{ {
if (LightRes < NtcData[i]) if ((dest - *cur) > step)
{ {
break; if (*timer >= timedelay)
} {
(*cur) += step;
(*timer) = 0;
} }
for (j = NtcDataCount; j > i; j--) else
{ {
NtcData[j] = NtcData[j - 1]; (*timer)++;
} }
NtcData[i] = LightRes;
NtcDataCount++;
} }
else else
{ {
/*一组数据采集完毕,取中间部分计算平均值*/ *cur = dest;
temp32 = 0; *timer = 0;
for (i = LIGHT_CAL_START; i < LIGHT_CAL_END; i++)
{
temp32 += NtcData[i];
}
LightR = (uint16_t) (temp32 / (LIGHT_CAL_END - LIGHT_CAL_START));
NtcDataCount = 0;
LightADCompleteFlg = 1;
} }
} }
timeCount += deltaTime; }
if(SYS_OPR_STAT_IGN_ON)
uint16_t NTC_Get_Degrees(uint16_t *ResBoard, uint16_t *DegreesBoard, uint8_t size, uint16_t input)
{
uint8_t i = 0;
uint16_t ret = 0;
uint32_t temp = 0;
if(input >= ResBoard[0])
{ {
if(Menu_Item_Select_Get(MENU_ITEM_SELECT_AUTO)) ret = DegreesBoard[0];
}
else if(input <= ResBoard[size-1])
{ {
if(LightADCompleteFlg) ret = DegreesBoard[size-1];
}
else
{ {
if(LightR <= 800) for(i=0; i<size-1; i++)
{ {
LightR_Status_Count++; if((input < ResBoard[i] )&&(input >= ResBoard[i+1]))
if(LightR_Status_Count>=150)
{ {
LightR_Status_Count = 0; temp = DegreesBoard[i+1] - DegreesBoard[i];
LightR_Status = 0; temp *= (ResBoard[i] - input);
temp /= (ResBoard[i] - ResBoard[i+1]);
temp += DegreesBoard[i];
ret = (uint16_t)temp;
break;
} }
} }
else if(LightR > 800)
{
LightR_Status_Count++;
if(LightR_Status_Count>=150)
{
LightR_Status_Count = 0;
LightR_Status = 1;
} }
return ret;
}
void BackLight_Get_curDuty(void)
{
uint16_t tftBL = 0;
uint16_t dialBL = 0;
uint16_t NTCDegrees = 0;
uint16_t NTCresistance = 0;
uint32_t wtemp = 0;
/* 获取NTC阻值 */
NTCresistance = ADC_Read_Signal(ADC_CH_NTC_TEMP);
/* 计算温度值 */
NTCDegrees = NTC_Get_Degrees(NTCResBoard ,NTCDegreesBoard, sizeof(NTCResBoard)/sizeof(uint16_t), NTCresistance);
if ( NTCDegrees < 650 )
{
g_stBL.destFactor = 100;
}
else if ( NTCDegrees <= 850 )
{
wtemp = (850 - NTCDegrees);
wtemp *= 3;
wtemp += 400;
wtemp /= 10;
g_stBL.destFactor = wtemp;
/* 85°为40%占空比,65°为100%占空比, 1°大概为3% */
} }
if(LightR_Status == 0) else
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_2); g_stBL.destFactor = 40;
} }
if ( (g_stBL.curFactor < g_stBL.destFactor) && (NTCDegrees < 750) )
{
if ( g_stBL.Ntc_Timer <= 400 )
g_stBL.Ntc_Timer++;
else else
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_5); g_stBL.Ntc_Timer = 0;
g_stBL.curFactor++;
} }
if ( g_stBL.curFactor >= g_stBL.destFactor )
g_stBL.curFactor = g_stBL.destFactor;
} }
else if ( g_stBL.curFactor > g_stBL.destFactor )
{
if ( g_stBL.Ntc_Timer <= 200 )
g_stBL.Ntc_Timer++;
else
{
g_stBL.Ntc_Timer = 0;
g_stBL.curFactor--;
} }
else if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_AUTO))
if ( g_stBL.curFactor <= g_stBL.destFactor )
g_stBL.curFactor = g_stBL.destFactor;
}
/* 背光等级 */
switch (g_stBL.u8Lvl)
{ {
if(Backlight_SetPwmLevel() == 1U) case Light_Lvl_0:
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_1); tftBL = 100;
break;
} }
else if(Backlight_SetPwmLevel() == 2U) case Light_Lvl_1:
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_2); tftBL = 200;
break;
} }
else if(Backlight_SetPwmLevel() == 3U) case Light_Lvl_2:
default:
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_3); tftBL = 400;
break;
} }
else if(Backlight_SetPwmLevel() == 4U) case Light_Lvl_3:
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_4); tftBL = 600;
break;
} }
else if(Backlight_SetPwmLevel() == 5U) case Light_Lvl_4:
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_5); tftBL = 800;
break;
} }
} }
else /* 两路PWM的时候再启用 */
#if 0
g_stBL.u16DialdestDuty = ( uint32_t )(( uint32_t )dialBL * ( uint32_t )g_stBL.curFactor / ( uint32_t )100);
if(g_stBL.u16DialdestDuty < 100)
{ {
BackLight_Process(); g_stBL.u16DialdestDuty = 100;
} }
if(g_stBL.u16DialcurDuty < 100)
{
g_stBL.u16DialcurDuty = g_stBL.u16DialdestDuty;
} }
else else
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 0); U16_Data_Gradient((uint16_t *)&g_stBL.u16DialcurDuty, g_stBL.u16DialdestDuty, 1u, (uint16_t *)&g_stBL.u16DialDampingTimer, 1u);
} }
}
#endif
/* 计算具体应该多少占空比 */
g_stBL.u16TftdestDuty = ( uint32_t )(( uint32_t )tftBL * ( uint32_t )g_stBL.curFactor / ( uint32_t )100);
/* 确保目标占空比不小于100 */
Light_uint16_t GetBacklightDutyByLevel(Light_uint16_t level) if(g_stBL.u16TftdestDuty < 100)
{
for (Light_uint8_t i = 0; i < BacklightLevel_Max; ++i)
{ {
if (BacklightLevelTable[i].BacklightLevel == level) g_stBL.u16TftdestDuty = 100;
}
/* 如果当前占空比小于100,那还是按照上次结果显示 */
if(g_stBL.u16TftcurDuty < 100)
{ {
return BacklightLevelTable[i].BacklightDuty; g_stBL.u16TftcurDuty = g_stBL.u16TftdestDuty;
} }
/* 逐步逼近目标占空比 */
else
{
U16_Data_Gradient((uint16_t *)&g_stBL.u16TftcurDuty, g_stBL.u16TftdestDuty, 1u, (uint16_t *)&g_stBL.u16DialDampingTimer, 1u);
} }
return 0;
}
/* 设置PWM回调函数 */
void Backlight_SetPwm(Light_uint16_t Pwm)
{
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, Pwm);
} }
/* 设置PWM使能回调函数 */ #if 0
Light_uint8_t Backlight_SetPwmEn(void) /* 此项目用不上 */
//10MS
void BackLight_Control(void)
{ {
uint16_t wtemp = 0;
return 1; if(SYS_OPR_STAT_HALT)
}
/* 背光等级回调函数 */
Light_uint8_t Backlight_SetPwmLevel(void)
{
Light_uint8_t Backlight_PwmLevel;
if(LightR > 0 && LightR <= 400)
{
Backlight_PwmLevel = 1U;
}
else if(LightR > 400 && LightR <= 800)
{ {
Backlight_PwmLevel = 2U; PWM_Channel_Set_Duty(5, 0);
PWM_Channel_Set_Duty(3, 0);
return;
} }
else if(LightR > 800 && LightR <= 1400)
if(Get_Core_StartStatus() == Soc_Startup)
{ {
Backlight_PwmLevel = 3U; PWM_Channel_Set_Duty(5, 0);
PWM_Channel_Set_Duty(3, 0);
return;
} }
else if(LightR > 1400 && LightR <= 2000)
BackLight_Get_curDuty();
if(Common_Get_IG_Sts() == COMMON_POWER_ON)
{ {
Backlight_PwmLevel = 4U; PWM_Channel_Set_Duty(5, g_stBL.u16DialcurDuty);
PWM_Channel_Set_Duty(3, g_stBL.u16TftcurDuty);
} }
else if(LightR > 2000 && LightR <= 2600) else
{ {
Backlight_PwmLevel = 5U; PWM_Channel_Set_Duty(5, 0);
PWM_Channel_Set_Duty(3, 0);
} }
return Backlight_PwmLevel;
}
/* 获取电阻值回调函数 */
Light_uint16_t Backlight_NtcRes(void)
{
Light_uint16_t u8NtcRes = ADC_Read_Signal(ADC_CH_NTC_TEMP);
return u8NtcRes;
} }
#endif
void Backlight_Init(BackLightExtPara *backlightInit) /* 获取当前背光等级 */
uint8_t BackLight_Get_Lvl(void )
{ {
Backlight_Operate.SetPwmCbk = backlightInit->SetPwmCbk; return g_stBL.u8Lvl;
Backlight_Operate.SetPwmEnCbk = backlightInit->SetPwmEnCbk;
Backlight_Operate.SetPwmLevelCbk = backlightInit->SetPwmLevelCbk;
Backlight_Operate.NtcResCbk = backlightInit->NtcResCbk;
} }
/* 设置当前背光等级 */
void Backlight_KL30_Wakeup_Init(void) void BackLight_Set_Lvl(Light_uint8_t lvl)
{ {
BackLightExtPara pFunc; g_stBL.u8Lvl = lvl;
pFunc.SetPwmCbk = Backlight_SetPwm;
pFunc.SetPwmEnCbk = Backlight_SetPwmEn;
pFunc.SetPwmLevelCbk = Backlight_SetPwmLevel;
pFunc.NtcResCbk = Backlight_NtcRes;
Backlight_Init(&pFunc);
} }
/** void Data_Light_Res_service(Light_uint8_t deltaTime)//获取光感阻值,并做平均
* 根据给定的背光表和输入电阻值,获取对应的温度值。
* 这个函数通过线性插值方法在背光表中查找与输入电阻最接近的温度值。
* @param backlightTable 背光表,包含电阻和对应温度的数组。
* @param size 背光表的大小,即数组的元素个数。
* @param input 输入的电阻值。
* @return 返回对应的温度值。
*/
Light_uint16_t Get_Ntc_Temp(_st_Backlight *backlightTable, Light_uint8_t size, Light_uint16_t input)
{ {
Light_uint16_t result = 0; uint16_t LightRes = 0U;
Light_uint32_t temp = 0; uint8_t i, j;
Light_uint8_t i = 0; uint32_t temp32;
static uint16_t timeCount = 0;
if (input >= backlightTable[0].Resistance) if (timeCount >= LIGHT_DATA_TIME)
{
result = backlightTable[0].Temperature;
}
else if (input <= backlightTable[size - 1].Resistance)
{ {
result = backlightTable[size - 1].Temperature; timeCount = 0;
} if (NtcDataCount < LIGHT_DATA_NUM)
else
{ {
for (i = 0; i < size - 1; i++) /*获取光敏电阻*/
LightRes = ADC_Read_Signal(ADC_CH_LIGHT_SENSITIVE); // ADC_Read_Signal(ADC_CH_FUEL1);
/*四舍五入*/
if (LightRes < 32000)
{ {
if ((input < backlightTable[i].Resistance) && (input >= backlightTable[i + 1].Resistance)) if (LightRes % 10 >= 5)
{ {
temp = backlightTable[i + 1].Temperature - backlightTable[i].Temperature; LightRes += 5;
temp *= (backlightTable[i].Resistance - input);
temp /= (backlightTable[i].Resistance - backlightTable[i + 1].Resistance);
temp += backlightTable[i].Temperature;
result = (Light_uint16_t)temp;
break;
} }
} }
else
{
LightRes = 32000;
} }
return result; /*由小到大插入数据*/
} for (i = 0; i < NtcDataCount; i++)
Light_uint16_t Get_Pwm_Factor_Optimized(Light_uint16_t CurrentTemp)
{
if (CurrentTemp >= 900)
{ {
return 10; if (LightRes < NtcData[i])
}
if (CurrentTemp >= 880 && CurrentTemp <= 890)
{ {
return 20; break;
} }
if (CurrentTemp >= 850 && CurrentTemp <= 860)
{
return 70;
} }
if (CurrentTemp >= 800 && CurrentTemp <= 830) for (j = NtcDataCount; j > i; j--)
{ {
return 75; NtcData[j] = NtcData[j - 1];
} }
if (CurrentTemp >= 750 && CurrentTemp <= 780) NtcData[i] = LightRes;
{ NtcDataCount++;
return 80;
} }
if (CurrentTemp >= 700 && CurrentTemp <= 730) else
{ {
return 85; /*一组数据采集完毕,取中间部分计算平均值*/
} temp32 = 0;
if (CurrentTemp >= 650 && CurrentTemp <= 680) for (i = LIGHT_CAL_START; i < LIGHT_CAL_END; i++)
{ {
return 90; temp32 += NtcData[i];
} }
if (CurrentTemp >= 600 && CurrentTemp <= 630) LightR = (uint16_t) (temp32 / (LIGHT_CAL_END - LIGHT_CAL_START));
{ NtcDataCount = 0;
return 95; LightADCompleteFlg = 1;
} }
if (CurrentTemp < 580)
{
return 100;
} }
timeCount += deltaTime;
return 100;
} }
typedef struct /* 背光等级回调函数 */
Light_uint8_t Backlight_GetPwmLevel(void)
{ {
Light_uint8_t destFactor; Light_uint8_t Backlight_PwmLevel;
Light_uint8_t curFactor;
Light_uint16_t NtcDelayTimer;
Light_uint16_t u16DialcurDuty;
Light_uint16_t u16DialdestDuty;
Light_uint16_t u16DialDampingTimer;
} _st_BacklightFactor_Ctrl;
_st_BacklightFactor_Ctrl BacklightFactorCtrl;
/** if(LightR > 0 && LightR <= 400)
* @brief 实现数据的渐变效果
* 该函数用于更新当前值,使其逐渐接近目标值,渐变的步长由step参数控制。同时,通过timer参数来实现一定的延迟效果,
* 仅当计时器达到或超过预设的timedelay时,才会进行一次渐变操作。这有助于平滑数据的变化,避免突变。
* @param cur 当前值的指针,函数将更新这个值
* @param dest 目标值,当前值将逐渐变化到这个值
* @param step 每次变化的步长
* @param timer 计时器的指针,用于实现变化的延迟
* @param timedelay 延迟的时间阈值,当计时器达到或超过这个值时,才会进行变化
*/
void U16_Data_Gradient(Light_uint16_t *cur, Light_uint16_t dest, Light_uint16_t step, Light_uint16_t *timer, const Light_uint16_t timedelay)
{
if (*cur > dest)
{
if ((*cur - dest) > step)
{
if (*timer >= timedelay)
{
(*cur) -= step;
(*timer) = 0;
}
else
{ {
(*timer)++; Backlight_PwmLevel = 1U;
}
} }
else else if(LightR > 400 && LightR <= 800)
{ {
*cur = dest; Backlight_PwmLevel = 2U;
*timer = 0;
}
} }
else else if(LightR > 800 && LightR <= 1400)
{
if ((dest - *cur) > step)
{
if (*timer >= timedelay)
{ {
(*cur) += step; Backlight_PwmLevel = 3U;
(*timer) = 0;
} }
else else if(LightR > 1400 && LightR <= 2000)
{ {
(*timer)++; Backlight_PwmLevel = 4U;
}
} }
else else if(LightR > 2000 && LightR <= 2600)
{ {
*cur = dest; Backlight_PwmLevel = 5U;
*timer = 0;
}
} }
return Backlight_PwmLevel;
} }
void BackLight_Service(void) /* 背光服务,10ms调用 */
void BackLight_Process(void)
{ {
if(SYS_OPR_STAT_IGN_ON)
Light_uint16_t CurrentTemp = 0;
Light_uint16_t Factor = 0;
if (Backlight_Operate.NtcResCbk != Backlight_NULL)
{ {
CurrentTemp = Get_Ntc_Temp(BacklightTable, sizeof(BacklightTable) / sizeof(Light_uint16_t), Backlight_Operate.NtcResCbk()); /* 自动模式,判断白天还是黑夜 */
} if(Menu_Item_Select_Get(MENU_ITEM_SELECT_AUTO))
else
{ {
CurrentTemp = 0XFFFF; /* 无效不执行NTC策略 */ if(LightADCompleteFlg)
} {
if(g_u8Display_Mode == ModeNIGHT)
/* 根据外部传入背光等级获取对应占空比 */
if (Backlight_Operate.SetPwmLevelCbk != Backlight_NULL)
{ {
Backlight_Operate.BacklightPwm = GetBacklightDutyByLevel(Backlight_Operate.SetPwmLevelCbk()); LightR_Status = 0U;
} }
else if(g_u8Display_Mode == ModeDAY)
if (Backlight_Operate.SetPwmEnCbk != Backlight_NULL)
{ {
Backlight_Operate.BacklightEn = Backlight_Operate.SetPwmEnCbk(); LightR_Status = 1U;
} }
if (Backlight_Operate.BacklightEn == 1) if(LightR <= 200)
{ {
LightR_Status_Count++;
if (CurrentTemp != 0XFFFF) if(LightR_Status_Count>=150)
{ {
LightR_Status_Count = 0;
BacklightFactorCtrl.destFactor = Get_Pwm_Factor_Optimized(CurrentTemp); LightR_Status = 0;
}
if ((BacklightFactorCtrl.curFactor < BacklightFactorCtrl.destFactor) && (CurrentTemp <= BacklightTable[0].Temperature)) }
else if(LightR > 200)
{ {
if (BacklightFactorCtrl.NtcDelayTimer <= 400) LightR_Status_Count++;
BacklightFactorCtrl.NtcDelayTimer++; if(LightR_Status_Count>=150)
else
{ {
BacklightFactorCtrl.NtcDelayTimer = 0; LightR_Status_Count = 0;
BacklightFactorCtrl.curFactor++; LightR_Status = 1;
} }
if (BacklightFactorCtrl.curFactor >= BacklightFactorCtrl.destFactor)
BacklightFactorCtrl.curFactor = BacklightFactorCtrl.destFactor;
} }
else if (BacklightFactorCtrl.curFactor > BacklightFactorCtrl.destFactor) /* 系统的意思是要当前背光等级基础上的80%和20%,不是直接设置背光 */
/*if(LightR_Status == 0)
{ {
if (BacklightFactorCtrl.NtcDelayTimer <= 200) BackLight_Set_Lvl(Light_Lvl_1);
BacklightFactorCtrl.NtcDelayTimer++; }
else else
{ {
BacklightFactorCtrl.NtcDelayTimer = 0; BackLight_Set_Lvl(Light_Lvl_4);
BacklightFactorCtrl.curFactor--; }*/
} if(LightR_Status == 0)
if (BacklightFactorCtrl.curFactor <= BacklightFactorCtrl.destFactor)
BacklightFactorCtrl.curFactor = BacklightFactorCtrl.destFactor;
}
BacklightFactorCtrl.u16DialdestDuty = Backlight_Operate.BacklightPwm * BacklightFactorCtrl.curFactor / 100;
if (BacklightFactorCtrl.u16DialdestDuty < 50)
{ {
BacklightFactorCtrl.u16DialdestDuty = 50; g_u8Display_Mode = ModeNIGHT;
} }
else if(LightR_Status == 1)
if (CurrentTemp <= BacklightTable[0].Temperature)
{ {
BacklightFactorCtrl.u16DialcurDuty = BacklightFactorCtrl.u16DialdestDuty; g_u8Display_Mode = ModeDAY;
} }
else }
}
/* 根据感光判断当前应该设置什么背光等级 */
else if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_AUTO))
{ {
if (BacklightFactorCtrl.u16DialcurDuty < 100) if(Backlight_GetPwmLevel() == 1U)
{ {
BacklightFactorCtrl.u16DialcurDuty = BacklightFactorCtrl.u16DialdestDuty; BackLight_Set_Lvl(Light_Lvl_0);
} }
else else if(Backlight_GetPwmLevel() == 2U)
{ {
U16_Data_Gradient((Light_uint16_t *)&BacklightFactorCtrl.u16DialcurDuty, BacklightFactorCtrl.u16DialdestDuty, 1u, (Light_uint16_t *)&BacklightFactorCtrl.u16DialDampingTimer, 1u); BackLight_Set_Lvl(Light_Lvl_1);
} }
else if(Backlight_GetPwmLevel() == 3U)
{
BackLight_Set_Lvl(Light_Lvl_2);
} }
Backlight_Operate.BacklightPwm = BacklightFactorCtrl.u16DialcurDuty; else if(Backlight_GetPwmLevel() == 4U)
{
// Backlight_Operate.SetPwmCbk(Backlight_Operate.BacklightPwm); BackLight_Set_Lvl(Light_Lvl_3);
} }
else else if(Backlight_GetPwmLevel() == 5U)
{ {
/* 无NTC策略 直接根据当前背光等级调整PWM */ BackLight_Set_Lvl(Light_Lvl_4);
Backlight_Operate.BacklightPwm = 100U;
// Backlight_Operate.SetPwmCbk(Backlight_Operate.BacklightPwm);
} }
} }
/* 菜单设置 */
else else
{
Backlight_Operate.BacklightPwm = 100U;
// Backlight_Operate.SetPwmCbk(0);
}
}
void BackLight_Process(void)
{
if(SYS_OPR_STAT_IGN_ON)
{ {
if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_5) == 1) if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_5) == 1)
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, (BACK_LIGHT_Val_5)); BackLight_Set_Lvl(Light_Lvl_4);
} }
else if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_4) == 1) else if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_4) == 1)
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_4); BackLight_Set_Lvl(Light_Lvl_3);
} }
else if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_3) == 1) else if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_3) == 1)
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_3); BackLight_Set_Lvl(Light_Lvl_2);
} }
else if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_2) == 1) else if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_2) == 1)
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_2); BackLight_Set_Lvl(Light_Lvl_1);
} }
else if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_1) == 1) else if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_1) == 1)
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_1); BackLight_Set_Lvl(Light_Lvl_0);
}
else
{
BackLight_Set_Lvl(Light_Lvl_3);
}
}
/* 数据处理,包括NTC功能 */
BackLight_Get_curDuty();
if(Menu_Item_Select_Get(MENU_ITEM_SELECT_AUTO))
{
uint16_t u16TftPwmBackShow = g_stBL.u16TftcurDuty ;
if(LightR_Status == 0)
{
u16TftPwmBackShow *= 20U;
u16TftPwmBackShow /= 100U;
}
else
{
u16TftPwmBackShow *= 80U;
u16TftPwmBackShow /= 100U;
}
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, u16TftPwmBackShow);
} }
else else
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_4); TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, g_stBL.u16TftcurDuty);
} }
} }
else else
......
...@@ -22,10 +22,22 @@ ...@@ -22,10 +22,22 @@
#endif /* NULL */ #endif /* NULL */
extern Light_uint16_t LightR_Status ; extern Light_uint16_t LightR_Status ;
void Backlight_KL30_Wakeup_Init(void);
void BackLight_Process(void); extern void BackLight_30_Init(void);
Light_uint8_t Backlight_SetPwmLevel(void);
extern void BackLight_Service(void); extern void BackLight_15_Init(void);
extern void BackLight_WakeUp_Init(void);
extern void BackLight_Sleep_Init(void);
extern void BackLight_Back_PWM_Init(void);
extern void BackLight_Set_Lvl(Light_uint8_t lvl);
extern void BackLight_Process(void);
extern Light_uint8_t Backlight_GetPwmLevel(void);
......
...@@ -160,7 +160,7 @@ TEXT_STRUCT TextPara[TEXT_NUM_TOTAL] = ...@@ -160,7 +160,7 @@ TEXT_STRUCT TextPara[TEXT_NUM_TOTAL] =
{TEXT_NUM_INFORMATION_HW, 0x4014, 0}, //23F 23E {TEXT_NUM_INFORMATION_HW, 0x4014, 0}, //23F 23E
{TEXT_NUM_INFORMATION_OS, 0x4015, 0}, {TEXT_NUM_INFORMATION_OS, 0x4015, 0},
{TEXT_NUM_INFORMATION_MCU, 0x4016, 0}, {TEXT_NUM_INFORMATION_MCU, 0x4016, 0},
{TEXT_NUM_ROAD_NAME, 0x4022, 0}, {TEXT_NUM_FAUULT_CODE, 0x4022, 0},
}; };
...@@ -173,6 +173,7 @@ uint8_t LastBlueToothName[20]; ...@@ -173,6 +173,7 @@ uint8_t LastBlueToothName[20];
uint8_t PhoneNumberTotal[20]; uint8_t PhoneNumberTotal[20];
uint8_t InformationOSVersion[20]; uint8_t InformationOSVersion[20];
uint8_t InformationMCUVersion[26]; uint8_t InformationMCUVersion[26];
uint8_t TextFaultCodeNum[10];
void TextService(void) void TextService(void)
{ {
...@@ -215,6 +216,7 @@ void TextService(void) ...@@ -215,6 +216,7 @@ void TextService(void)
memset(BlueToothName, 0, sizeof(BlueToothName)); memset(BlueToothName, 0, sizeof(BlueToothName));
memset(LastBlueToothName, 0, sizeof(LastBlueToothName)); memset(LastBlueToothName, 0, sizeof(LastBlueToothName));
memset(PhoneNumberTotal, 0, sizeof(PhoneNumberTotal)); memset(PhoneNumberTotal, 0, sizeof(PhoneNumberTotal));
memset(TextFaultCodeNum, 0, sizeof(TextFaultCodeNum));
for (uint8_t i = 0; i < sizeof(OSVersionASCLLList); i++) for (uint8_t i = 0; i < sizeof(OSVersionASCLLList); i++)
{ {
...@@ -253,8 +255,8 @@ void TextService(void) ...@@ -253,8 +255,8 @@ void TextService(void)
} }
} }
} }
if(Menu_Get_Current_Cursor_Information() == MENU_ITEM_BLUETOOTH_CONNECT) // if(Menu_Get_Current_Cursor_Information() == MENU_ITEM_BLUETOOTH_CONNECT)
{ // {
if (memcmp(LastBlueToothName, BlueToothPhoneData.BlueToothName, sizeof(LastBlueToothName)) != 0) if (memcmp(LastBlueToothName, BlueToothPhoneData.BlueToothName, sizeof(LastBlueToothName)) != 0)
{ {
for (uint8_t i = 0; i < sizeof(BlueToothPhoneData.BlueToothName); i++) for (uint8_t i = 0; i < sizeof(BlueToothPhoneData.BlueToothName); i++)
...@@ -265,7 +267,7 @@ void TextService(void) ...@@ -265,7 +267,7 @@ void TextService(void)
memcpy(LastBlueToothName, BlueToothPhoneData.BlueToothName, sizeof(LastBlueToothName)); memcpy(LastBlueToothName, BlueToothPhoneData.BlueToothName, sizeof(LastBlueToothName));
TextPara[TEXT_NUM_BLUETOOTH_NAME].Vaild = 0X01; TextPara[TEXT_NUM_BLUETOOTH_NAME].Vaild = 0X01;
} }
} // }
if (LastPhoneBookTotalCount != BlueToothPhoneData.PhoneBookTotalCount) if (LastPhoneBookTotalCount != BlueToothPhoneData.PhoneBookTotalCount)
{ {
uint8_t TempNumberCnts = 0; uint8_t TempNumberCnts = 0;
...@@ -284,6 +286,63 @@ void TextService(void) ...@@ -284,6 +286,63 @@ void TextService(void)
TextPara[TEXT_NUM_PHONE_NUMBER_TOTAL].Vaild = 0x01; TextPara[TEXT_NUM_PHONE_NUMBER_TOTAL].Vaild = 0x01;
LastPhoneBookTotalCount = BlueToothPhoneData.PhoneBookTotalCount; LastPhoneBookTotalCount = BlueToothPhoneData.PhoneBookTotalCount;
} }
if(CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_CH0_402_Msg_Count) == CAN_SIG_LOST)
{
;
}
else
{
uint8_t FaultCodeNumCnts = 0;
uint8_t FaultCodeHighNum = 0;
uint8_t FaultCodeMidNum = 0;
FaultCodeHighNum = Get_Current_Hight_FaultCode();
FaultCodeMidNum = Get_Current_Mid_FaultCode();
TextFaultCodeNum[FaultCodeNumCnts++] = 0x50;
TextFaultCodeNum[FaultCodeNumCnts++] = 0x00;
if((((FaultCodeHighNum)&(0xF0)) >> 4)<10)
{
TextFaultCodeNum[FaultCodeNumCnts++] = (((FaultCodeHighNum)&(0xF0)) >> 4) + 0x30;
TextFaultCodeNum[FaultCodeNumCnts++] = 0x00;
}
else
{
TextFaultCodeNum[FaultCodeNumCnts++] = ((((FaultCodeHighNum)&(0xF0)) >> 4) % 10) + 0x41;
TextFaultCodeNum[FaultCodeNumCnts++] = 0x00;
}
if((((FaultCodeHighNum)&(0x0F)))<10)
{
TextFaultCodeNum[FaultCodeNumCnts++] = ((FaultCodeHighNum)&(0x0F)) + 0x30;
TextFaultCodeNum[FaultCodeNumCnts++] = 0x00;
}
else
{
TextFaultCodeNum[FaultCodeNumCnts++] = (((FaultCodeHighNum)&(0x0F)) % 10) + 0x41;
TextFaultCodeNum[FaultCodeNumCnts++] = 0x00;
}
if((((FaultCodeMidNum)&(0xF0)) >> 4)<10)
{
TextFaultCodeNum[FaultCodeNumCnts++] = (((FaultCodeMidNum)&(0xF0)) >> 4) + 0x30;
TextFaultCodeNum[FaultCodeNumCnts++] = 0x00;
}
else
{
TextFaultCodeNum[FaultCodeNumCnts++] = ((((FaultCodeMidNum)&(0xF0)) >> 4) % 10) + 0x41;
TextFaultCodeNum[FaultCodeNumCnts++] = 0x00;
}
if((((FaultCodeMidNum)&(0x0F)))<10)
{
TextFaultCodeNum[FaultCodeNumCnts++] = ((FaultCodeMidNum)&(0x0F)) + 0x30;
TextFaultCodeNum[FaultCodeNumCnts++] = 0x00;
}
else
{
TextFaultCodeNum[FaultCodeNumCnts++] = (((FaultCodeMidNum)&(0x0F)) % 10) + 0x41;
TextFaultCodeNum[FaultCodeNumCnts++] = 0x00;
}
TextPara[TEXT_NUM_FAUULT_CODE].Vaild = 0x01;
}
} }
...@@ -13,7 +13,7 @@ typedef enum { ...@@ -13,7 +13,7 @@ typedef enum {
TEXT_NUM_INFORMATION_HW, TEXT_NUM_INFORMATION_HW,
TEXT_NUM_INFORMATION_OS, TEXT_NUM_INFORMATION_OS,
TEXT_NUM_INFORMATION_MCU, TEXT_NUM_INFORMATION_MCU,
TEXT_NUM_ROAD_NAME, TEXT_NUM_FAUULT_CODE,
TEXT_NUM_TOTAL, TEXT_NUM_TOTAL,
} TEXT_NUM_ENUM; } TEXT_NUM_ENUM;
...@@ -47,6 +47,7 @@ extern uint8_t BlueToothName[40]; ...@@ -47,6 +47,7 @@ extern uint8_t BlueToothName[40];
extern uint8_t PhoneNumberTotal[20]; extern uint8_t PhoneNumberTotal[20];
extern uint8_t InformationOSVersion[20]; extern uint8_t InformationOSVersion[20];
extern uint8_t InformationMCUVersion[26]; extern uint8_t InformationMCUVersion[26];
extern uint8_t TextFaultCodeNum[10];
extern TEXT_STRUCT TextPara[]; extern TEXT_STRUCT TextPara[];
#endif #endif
\ No newline at end of file
...@@ -118,7 +118,7 @@ void AMT630H_GUI_Fault_Information(void) ...@@ -118,7 +118,7 @@ void AMT630H_GUI_Fault_Information(void)
SetPagePic(GRAPHICS_PAGE_0, Pic_0097_334_163);/*current fault*/ SetPagePic(GRAPHICS_PAGE_0, Pic_0097_334_163);/*current fault*/
AMT630H_GUI_FaultCode(Get_FaultCode_Lost(),Get_FaultCode_Valid(),Get_Current_Hight_FaultCode(),Get_Current_Mid_FaultCode()); AMT630H_GUI_FaultCode(Get_FaultCode_Lost(),Get_FaultCode_Valid(),Get_Current_Hight_FaultCode(),Get_Current_Mid_FaultCode());
} }
/*蓝牙名称改为字库显示*/ /*os MCU版本*/
/* RGB 0 0 0 --- 黑*/ /* RGB 0 0 0 --- 黑*/
/* RGB 0XFF 0XFF 0XFF --- 白*/ /* RGB 0XFF 0XFF 0XFF --- 白*/
PackedTransfer_LabelsList( 0x8022,(uint8_t *)InformationOSVersion, 20); PackedTransfer_LabelsList( 0x8022,(uint8_t *)InformationOSVersion, 20);
...@@ -162,7 +162,7 @@ void AMT630H_GUI_Fault_Information(void) ...@@ -162,7 +162,7 @@ void AMT630H_GUI_Fault_Information(void)
SetPagePic(GRAPHICS_PAGE_0, Pic_0285_334_163);/*current fault*/ SetPagePic(GRAPHICS_PAGE_0, Pic_0285_334_163);/*current fault*/
AMT630H_GUI_FaultCode(Get_FaultCode_Lost(),Get_FaultCode_Valid(),Get_Current_Hight_FaultCode(),Get_Current_Mid_FaultCode()); AMT630H_GUI_FaultCode(Get_FaultCode_Lost(),Get_FaultCode_Valid(),Get_Current_Hight_FaultCode(),Get_Current_Mid_FaultCode());
} }
/*蓝牙名称改为字库显示*/ /*os MCU版本*/
/* RGB 0 0 0 --- 黑*/ /* RGB 0 0 0 --- 黑*/
/* RGB 0XFF 0XFF 0XFF --- 白*/ /* RGB 0XFF 0XFF 0XFF --- 白*/
PackedTransfer_LabelsList( 0x8022,(uint8_t *)InformationOSVersion, 20); PackedTransfer_LabelsList( 0x8022,(uint8_t *)InformationOSVersion, 20);
...@@ -170,7 +170,6 @@ void AMT630H_GUI_Fault_Information(void) ...@@ -170,7 +170,6 @@ void AMT630H_GUI_Fault_Information(void)
PackedTransfer_LabelsList( 0x9022,(uint8_t *)InformationMCUVersion, 26); PackedTransfer_LabelsList( 0x9022,(uint8_t *)InformationMCUVersion, 26);
SetPageText(GRAPHICS_PAGE_0, 0x9022, 567 , 356 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1)); SetPageText(GRAPHICS_PAGE_0, 0x9022, 567 , 356 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1));
} }
} }
...@@ -203,160 +202,29 @@ uint8_t FaultCodevalid_monitor = 2; ...@@ -203,160 +202,29 @@ uint8_t FaultCodevalid_monitor = 2;
/*故障码显示函数*/ /*故障码显示函数*/
static void AMT630H_GUI_FaultCode(uint8_t FaultCodeLost,uint8_t FaultCodevalid,uint8_t FaultCode_hight,uint8_t FaultCode_mid) static void AMT630H_GUI_FaultCode(uint8_t FaultCodeLost,uint8_t FaultCodevalid,uint8_t FaultCode_hight,uint8_t FaultCode_mid)
{ {
/*数字只有两组 历史故障和故障信息纵坐标不同*/
FaultCodevalid_monitor = FaultCodevalid;
if(FaultCodeLost == 1) if(FaultCodeLost == 1)
{ {
if(FaultCodevalid > 0) if(FaultCodevalid == 1)
{ {
DISPLAY_NUM_ST DisplayNumPara;
uint16_t frontnumber;
uint16_t midnumber;
frontnumber = FaultCode_hight;
midnumber = FaultCode_mid;
if(g_u8Display_Mode == ModeDAY) if(g_u8Display_Mode == ModeDAY)
{ {
SetPagePicFree(GRAPHICS_PAGE_0, Pic_0876_639_293, 610, 164);//当前故障码的P /*当前故障*/
SetPagePicFree(GRAPHICS_PAGE_0, Pic_0876_639_293, 610, 229);//历史故障码的P PackedTransfer_LabelsList( 0x6009,(uint8_t *)TextFaultCodeNum, 10);
/*当前故障码前两位显示*/ SetPageText(GRAPHICS_PAGE_0, 0x6009, 610 , 229 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1));
DisplayNumPara.NumList = NumbeList_FaultCode_day; /*历史故障*/
DisplayNumPara.x = 639; PackedTransfer_LabelsList( 0x6009,(uint8_t *)TextFaultCodeNum, 10);
DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 14; SetPageText(GRAPHICS_PAGE_0, 0x6009, 610 , 164 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1));
DisplayNumPara.y = 164;
DisplayNumPara.DecimalNum = 0;
DisplayNumPara.MinDigits = 2;
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, frontnumber);
/*当前故障码后两位显示*/
DisplayNumPara.NumList = NumbeList_FaultCode_day;
DisplayNumPara.x = 667;
DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 14;
DisplayNumPara.y = 164;
DisplayNumPara.DecimalNum = 0;
DisplayNumPara.MinDigits = 2;
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, midnumber);
/*历史故障码前两位显示*/
DisplayNumPara.NumList = NumbeList_FaultCode_day;
DisplayNumPara.x = 639;
DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 14;
DisplayNumPara.y = 229;
DisplayNumPara.DecimalNum = 0;
DisplayNumPara.MinDigits = 2;
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, frontnumber);
/*历史故障码后两位显示*/
DisplayNumPara.NumList = NumbeList_FaultCode_day;
DisplayNumPara.x = 667;
DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 14;
DisplayNumPara.y = 229;
DisplayNumPara.DecimalNum = 0;
DisplayNumPara.MinDigits = 2;
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, midnumber);
} }
else if(g_u8Display_Mode == ModeNIGHT) else if(g_u8Display_Mode == ModeNIGHT)
{ {
SetPagePicFree(GRAPHICS_PAGE_0, Pic_0912_639_293, 610, 164);//当前故障码的P /*当前故障*/
SetPagePicFree(GRAPHICS_PAGE_0, Pic_0912_639_293, 610, 229);//历史故障码的P PackedTransfer_LabelsList( 0x6009,(uint8_t *)TextFaultCodeNum, 10);
/*当前故障码前两位显示*/ SetPageText(GRAPHICS_PAGE_0, 0x6009, 610 , 229 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1));
DisplayNumPara.NumList = NumbeList_FaultCode_night; /*历史故障*/
DisplayNumPara.x = 639; PackedTransfer_LabelsList( 0x6009,(uint8_t *)TextFaultCodeNum, 10);
DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 14; SetPageText(GRAPHICS_PAGE_0, 0x6009, 610 , 164 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1));
DisplayNumPara.y = 164;
DisplayNumPara.DecimalNum = 0;
DisplayNumPara.MinDigits = 2;
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, frontnumber);
/*当前故障码后两位显示*/
DisplayNumPara.NumList = NumbeList_FaultCode_night;
DisplayNumPara.x = 667;
DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 14;
DisplayNumPara.y = 164;
DisplayNumPara.DecimalNum = 0;
DisplayNumPara.MinDigits = 2;
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, midnumber);
/*历史故障码前两位显示*/
DisplayNumPara.NumList = NumbeList_FaultCode_night;
DisplayNumPara.x = 639;
DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 14;
DisplayNumPara.y = 229;
DisplayNumPara.DecimalNum = 0;
DisplayNumPara.MinDigits = 2;
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, frontnumber);
/*历史故障码后两位显示*/
DisplayNumPara.NumList = NumbeList_FaultCode_night;
DisplayNumPara.x = 667;
DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 14;
DisplayNumPara.y = 229;
DisplayNumPara.DecimalNum = 0;
DisplayNumPara.MinDigits = 2;
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, midnumber);
}
}
else if(FaultCodevalid == 0)
{
/*显示P0000*/
if(g_u8Display_Mode == ModeDAY)
{
SetPagePicFree(GRAPHICS_PAGE_0, Pic_0876_639_293, 610, 164);//当前故障码的P
SetPagePicFree(GRAPHICS_PAGE_0, Pic_0876_639_293, 610, 229);//历史故障码的P
DISPLAY_NUM_ST DisplayNumPara;
/*当前故障码前两位显示*/
DisplayNumPara.NumList = NumbeList_FaultCode_day;
DisplayNumPara.x = 639;
DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 14;
DisplayNumPara.y = 164;
DisplayNumPara.DecimalNum = 0;
DisplayNumPara.MinDigits = 2;
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, 0);
/*当前故障码后两位显示*/
DisplayNumPara.NumList = NumbeList_FaultCode_day;
DisplayNumPara.x = 667;
DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 14;
DisplayNumPara.y = 164;
DisplayNumPara.DecimalNum = 0;
DisplayNumPara.MinDigits = 2;
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, 0);
/*历史故障码前两位显示*/
DisplayNumPara.NumList = NumbeList_FaultCode_day;
DisplayNumPara.x = 639;
DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 14;
DisplayNumPara.y = 229;
DisplayNumPara.DecimalNum = 0;
DisplayNumPara.MinDigits = 2;
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, 0);
/*历史故障码后两位显示*/
DisplayNumPara.NumList = NumbeList_FaultCode_day;
DisplayNumPara.x = 667;
DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 14;
DisplayNumPara.y = 229;
DisplayNumPara.DecimalNum = 0;
DisplayNumPara.MinDigits = 2;
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, 0);
}
else if(g_u8Display_Mode == ModeNIGHT)
{
/*显示P0000(直接贴图方式)*/
SetPagePic(GRAPHICS_PAGE_0, Pic_0900_610_164);
SetPagePic(GRAPHICS_PAGE_0, Pic_0901_625_164);
SetPagePic(GRAPHICS_PAGE_0, Pic_0901_639_164);
SetPagePic(GRAPHICS_PAGE_0, Pic_0901_653_164);
SetPagePic(GRAPHICS_PAGE_0, Pic_0901_667_164);
SetPagePic(GRAPHICS_PAGE_0, Pic_0900_610_229);
SetPagePic(GRAPHICS_PAGE_0, Pic_0901_625_229);
SetPagePic(GRAPHICS_PAGE_0, Pic_0901_639_229);
SetPagePic(GRAPHICS_PAGE_0, Pic_0901_653_229);
SetPagePic(GRAPHICS_PAGE_0, Pic_0901_667_229);
}
else
{
;
} }
} }
else
{
;
}
} }
else if(FaultCodeLost == 0) else if(FaultCodeLost == 0)
{ {
...@@ -671,7 +539,11 @@ static uint16_t Bluetooth_num_night[] = { ...@@ -671,7 +539,11 @@ static uint16_t Bluetooth_num_night[] = {
void AMT630H_GUI_Bluetooth_Information( uint8_t Connect_ON) void AMT630H_GUI_Bluetooth_Information( uint8_t Connect_ON)
{ {
uint8_t Contect_totalnumber; uint8_t Contect_totalnumber;
DISPLAY_NUM_ST DisplayNumPara;
uint16_t connect_personnumber;
connect_personnumber = BlueToothPhoneData.PhoneBookTotalCount;
Contect_totalnumber = 0; Contect_totalnumber = 0;
if(g_u8Display_Mode == ModeDAY) if(g_u8Display_Mode == ModeDAY)
{ {
if(g_u8Language == CH) if(g_u8Language == CH)
...@@ -762,67 +634,74 @@ void AMT630H_GUI_Bluetooth_Information( uint8_t Connect_ON) ...@@ -762,67 +634,74 @@ void AMT630H_GUI_Bluetooth_Information( uint8_t Connect_ON)
PackedTransfer_LabelsList( 0x5022,(uint8_t *)BlueToothName, 40); PackedTransfer_LabelsList( 0x5022,(uint8_t *)BlueToothName, 40);
SetPageText(GRAPHICS_PAGE_0, 0x5022, 570 , 165 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1)); SetPageText(GRAPHICS_PAGE_0, 0x5022, 570 , 165 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1));
} }
/*遍历同步联系人数组*/ if(BlueToothPhoneData.BlueToothSignalSate == BlueTooth_Connection)
if(PhoneNumberTotal[0] == 0)
{
Contect_totalnumber = 1;
}
else
{
for(int i=0 ; i<20 ; i++ )
{
if(PhoneNumberTotal[i] != 0)
{
Contect_totalnumber++;
}
else
{ {
break; /*同步联系人数字显示*/
}
}
}
/*同步联系人数字显示(字库版)*/
if(g_u8Display_Mode == ModeDAY) if(g_u8Display_Mode == ModeDAY)
{ {
if(Contect_totalnumber == 1) if((connect_personnumber >= 0)&&(connect_personnumber < 10))
{ {
SetPagePic(GRAPHICS_PAGE_0, Pic_0038_590_287); /*【括号】 一位数 */ SetPagePic(GRAPHICS_PAGE_0, Pic_0038_590_287); /*【括号】 一位数 */
PackedTransfer_LabelsList( 0x7000,(uint8_t *)PhoneNumberTotal, 20); DisplayNumPara.x = 605;
SetPageText(GRAPHICS_PAGE_0, 0x7000, 605 , 289 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1)); DisplayNumPara.MinDigits = 1;
} }
else if(Contect_totalnumber == 2) else if((connect_personnumber >= 10)&&(connect_personnumber < 100))
{ {
SetPagePic(GRAPHICS_PAGE_0, Pic_0039_583_287); /*【括号】 两位数 */ SetPagePic(GRAPHICS_PAGE_0, Pic_0039_583_287); /*【括号】 两位数 */
PackedTransfer_LabelsList( 0x7000,(uint8_t *)PhoneNumberTotal, 20); DisplayNumPara.x = 612;
SetPageText(GRAPHICS_PAGE_0, 0x7000, 590 , 285 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1)); DisplayNumPara.MinDigits = 2;
}
else
{
;
} }
// else if(Contect_totalnumber == 3) // else if(Contect_totalnumber == 3)
// { // {
// SetPagePic(GRAPHICS_PAGE_0, ); /*【括号】 三位数 */ // SetPagePic(GRAPHICS_PAGE_0, ); /*【括号】 三位数 */
// PackedTransfer_LabelsList( 0x4022,(uint8_t *)PhoneNumberTotal, 40); //
// SetPageText(GRAPHICS_PAGE_0, 0x4022, 570 , 165 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1));
// } // }
DisplayNumPara.NumList = Bluetooth_num_day;
DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 14;
DisplayNumPara.y = GROUP_PIC_USE_PSD_Y_POS;
DisplayNumPara.DecimalNum = 0;
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, connect_personnumber);
} }
else if(g_u8Display_Mode == ModeNIGHT) else if(g_u8Display_Mode == ModeNIGHT)
{ {
if(Contect_totalnumber == 1) if((connect_personnumber >= 0)&&(connect_personnumber < 10))
{ {
SetPagePic(GRAPHICS_PAGE_0, Pic_0223_590_287); /*【括号】 一位数 */ SetPagePic(GRAPHICS_PAGE_0, Pic_0223_590_287); /*【括号】 一位数 */
PackedTransfer_LabelsList( 0x7000,(uint8_t *)PhoneNumberTotal, 20); DisplayNumPara.x = 605;
SetPageText(GRAPHICS_PAGE_0, 0x7000, 605 , 289 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1)); DisplayNumPara.MinDigits = 1;
} }
else if(Contect_totalnumber == 2) else if((connect_personnumber >= 10)&&(connect_personnumber < 100))
{ {
SetPagePic(GRAPHICS_PAGE_0, Pic_0224_583_287); /*【括号】 两位数 */ SetPagePic(GRAPHICS_PAGE_0, Pic_0224_583_287); /*【括号】 两位数 */
PackedTransfer_LabelsList( 0x7000,(uint8_t *)PhoneNumberTotal, 20); DisplayNumPara.x = 612;
SetPageText(GRAPHICS_PAGE_0, 0x7000, 590 , 285 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1)); DisplayNumPara.MinDigits = 2;
}
else
{
;
} }
// else if(Contect_totalnumber == 3) // else if(Contect_totalnumber == 3)
// { // {
// SetPagePic(GRAPHICS_PAGE_0, ); /*【括号】 三位数 */ // SetPagePic(GRAPHICS_PAGE_0, ); /*【括号】 三位数 */ /* 同步联系人最大位数未确定*/
// PackedTransfer_LabelsList( 0x4022,(uint8_t *)PhoneNumberTotal, 40); //
// SetPageText(GRAPHICS_PAGE_0, 0x4022, 570 , 165 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1));
// } // }
DisplayNumPara.NumList = Bluetooth_num_night;
DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 14;
DisplayNumPara.y = GROUP_PIC_USE_PSD_Y_POS;
DisplayNumPara.DecimalNum = 0;
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, connect_personnumber);
}
}
else/*蓝牙未连接或蓝牙关闭时 同步联系人显示0*/
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0223_590_287);
SetPagePic(GRAPHICS_PAGE_0, Pic_0225_605_289);
} }
} }
...@@ -1729,14 +1608,14 @@ void AMT630H_GUI_Display_Mode_Setting(Menu_Item_en_t display_mode) /*图 显示 ...@@ -1729,14 +1608,14 @@ void AMT630H_GUI_Display_Mode_Setting(Menu_Item_en_t display_mode) /*图 显示
if(Menu_Item_Select_Get(MENU_ITEM_SELECT_AUTO) == 1) if(Menu_Item_Select_Get(MENU_ITEM_SELECT_AUTO) == 1)
{ {
g_u8Display_Mode_select = ModeATUO; g_u8Display_Mode_select = ModeATUO;
if(LightR_Status == 0) // if(LightR_Status == 0)
{ // {
g_u8Display_Mode = ModeNIGHT; // g_u8Display_Mode = ModeNIGHT;
} // }
else if(LightR_Status == 1) // else if(LightR_Status == 1)
{ // {
g_u8Display_Mode = ModeDAY; // g_u8Display_Mode = ModeDAY;
} // }
} }
else else
{ {
...@@ -1887,23 +1766,23 @@ void AMT630H_GUI_Backlight_Setting(Menu_Item_en_t back_mode) /*图 背光*/ ...@@ -1887,23 +1766,23 @@ void AMT630H_GUI_Backlight_Setting(Menu_Item_en_t back_mode) /*图 背光*/
if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_AUTO)) if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_AUTO))
{ {
g_u8Backlight_select = Backlight_ATUO ; g_u8Backlight_select = Backlight_ATUO ;
if(Backlight_SetPwmLevel() == 5) if(Backlight_GetPwmLevel() == 5)
{ {
g_u8Backlight = Backlight_5; g_u8Backlight = Backlight_5;
} }
else if(Backlight_SetPwmLevel() == 4) else if(Backlight_GetPwmLevel() == 4)
{ {
g_u8Backlight = Backlight_4; g_u8Backlight = Backlight_4;
} }
else if(Backlight_SetPwmLevel() == 3) else if(Backlight_GetPwmLevel() == 3)
{ {
g_u8Backlight = Backlight_3; g_u8Backlight = Backlight_3;
} }
else if(Backlight_SetPwmLevel() == 2) else if(Backlight_GetPwmLevel() == 2)
{ {
g_u8Backlight = Backlight_2; g_u8Backlight = Backlight_2;
} }
else if(Backlight_SetPwmLevel() == 1) else if(Backlight_GetPwmLevel() == 1)
{ {
g_u8Backlight = Backlight_1; g_u8Backlight = Backlight_1;
} }
...@@ -2048,23 +1927,23 @@ void AMT630H_GUI_Backlight_Setting(Menu_Item_en_t back_mode) /*图 背光*/ ...@@ -2048,23 +1927,23 @@ void AMT630H_GUI_Backlight_Setting(Menu_Item_en_t back_mode) /*图 背光*/
if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_AUTO)) if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_AUTO))
{ {
g_u8Backlight_select = Backlight_ATUO ; g_u8Backlight_select = Backlight_ATUO ;
if(Backlight_SetPwmLevel() == 5) if(Backlight_GetPwmLevel() == 5)
{ {
g_u8Backlight = Backlight_5; g_u8Backlight = Backlight_5;
} }
else if(Backlight_SetPwmLevel() == 4) else if(Backlight_GetPwmLevel() == 4)
{ {
g_u8Backlight = Backlight_4; g_u8Backlight = Backlight_4;
} }
else if(Backlight_SetPwmLevel() == 3) else if(Backlight_GetPwmLevel() == 3)
{ {
g_u8Backlight = Backlight_3; g_u8Backlight = Backlight_3;
} }
else if(Backlight_SetPwmLevel() == 2) else if(Backlight_GetPwmLevel() == 2)
{ {
g_u8Backlight = Backlight_2; g_u8Backlight = Backlight_2;
} }
else if(Backlight_SetPwmLevel() == 1) else if(Backlight_GetPwmLevel() == 1)
{ {
g_u8Backlight = Backlight_1; g_u8Backlight = Backlight_1;
} }
...@@ -2113,6 +1992,9 @@ static uint16_t Bluetooth_Connect_num_night[] = { ...@@ -2113,6 +1992,9 @@ static uint16_t Bluetooth_Connect_num_night[] = {
*/ */
void AMT630H_GUI_Bluetooth_Connect_Setting(Menu_Item_en_t select, uint8_t Connect_ON) void AMT630H_GUI_Bluetooth_Connect_Setting(Menu_Item_en_t select, uint8_t Connect_ON)
{ {
DISPLAY_NUM_ST DisplayNumPara;
uint16_t connect_personnumber;
connect_personnumber = BlueToothPhoneData.PhoneBookTotalCount;
uint8_t Contect_totalnumber; uint8_t Contect_totalnumber;
Contect_totalnumber = 0; Contect_totalnumber = 0;
if(g_u8Display_Mode == ModeDAY) if(g_u8Display_Mode == ModeDAY)
...@@ -2263,67 +2145,64 @@ void AMT630H_GUI_Bluetooth_Connect_Setting(Menu_Item_en_t select, uint8_t Connec ...@@ -2263,67 +2145,64 @@ void AMT630H_GUI_Bluetooth_Connect_Setting(Menu_Item_en_t select, uint8_t Connec
PackedTransfer_LabelsList( 0x5022,(uint8_t *)BlueToothName, 40); PackedTransfer_LabelsList( 0x5022,(uint8_t *)BlueToothName, 40);
SetPageText(GRAPHICS_PAGE_0, 0x5022, 570 , 165 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1)); SetPageText(GRAPHICS_PAGE_0, 0x5022, 570 , 165 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1));
} }
/*遍历同步联系人数组*/
if(PhoneNumberTotal[0] == 0) /*同步联系人数字显示*/
{
Contect_totalnumber = 1;
}
else
{
for(int i=0 ; i<20 ; i++ )
{
if(PhoneNumberTotal[i] != 0)
{
Contect_totalnumber++;
}
else
{
break;
}
}
}
/*同步联系人数字显示(字库版)*/
if(g_u8Display_Mode == ModeDAY) if(g_u8Display_Mode == ModeDAY)
{ {
if(Contect_totalnumber == 1) if((connect_personnumber >= 0)&&(connect_personnumber < 10))
{ {
SetPagePic(GRAPHICS_PAGE_0, Pic_0038_590_287); /*【括号】 一位数 */ SetPagePic(GRAPHICS_PAGE_0, Pic_0038_590_287); /*【括号】 一位数 */
PackedTransfer_LabelsList( 0x7000,(uint8_t *)PhoneNumberTotal, 20); DisplayNumPara.x = 605;
SetPageText(GRAPHICS_PAGE_0, 0x7000, 605 , 289 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1)); DisplayNumPara.MinDigits = 1;
} }
else if(Contect_totalnumber == 2) else if((connect_personnumber >= 10)&&(connect_personnumber < 100))
{ {
SetPagePic(GRAPHICS_PAGE_0, Pic_0039_583_287); /*【括号】 两位数 */ SetPagePic(GRAPHICS_PAGE_0, Pic_0039_583_287); /*【括号】 两位数 */
PackedTransfer_LabelsList( 0x7000,(uint8_t *)PhoneNumberTotal, 20); DisplayNumPara.x = 612;
SetPageText(GRAPHICS_PAGE_0, 0x7000, 590 , 285 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1)); DisplayNumPara.MinDigits = 2;
} }
// else if(Contect_totalnumber == 3) // else if(Contect_totalnumber == 3)
// { // {
// SetPagePic(GRAPHICS_PAGE_0, ); /*【括号】 三位数 */ // SetPagePic(GRAPHICS_PAGE_0, ); /*【括号】 三位数 */
// PackedTransfer_LabelsList( 0x4022,(uint8_t *)PhoneNumberTotal, 40); //
// SetPageText(GRAPHICS_PAGE_0, 0x4022, 570 , 165 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1));
// } // }
DisplayNumPara.NumList = Bluetooth_num_day;
DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 14;
DisplayNumPara.y = GROUP_PIC_USE_PSD_Y_POS;
DisplayNumPara.DecimalNum = 0;
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, connect_personnumber);
} }
else if(g_u8Display_Mode == ModeNIGHT) else if(g_u8Display_Mode == ModeNIGHT)
{ {
if(Contect_totalnumber == 1) if((connect_personnumber >= 0)&&(connect_personnumber < 10))
{ {
SetPagePic(GRAPHICS_PAGE_0, Pic_0223_590_287); /*【括号】 一位数 */ SetPagePic(GRAPHICS_PAGE_0, Pic_0223_590_287); /*【括号】 一位数 */
PackedTransfer_LabelsList( 0x7000,(uint8_t *)PhoneNumberTotal, 20); DisplayNumPara.x = 605;
SetPageText(GRAPHICS_PAGE_0, 0x7000, 605 , 289 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1)); DisplayNumPara.MinDigits = 1;
} }
else if(Contect_totalnumber == 2) else if((connect_personnumber >= 10)&&(connect_personnumber < 100))
{ {
SetPagePic(GRAPHICS_PAGE_0, Pic_0224_583_287); /*【括号】 两位数 */ SetPagePic(GRAPHICS_PAGE_0, Pic_0224_583_287); /*【括号】 两位数 */
PackedTransfer_LabelsList( 0x7000,(uint8_t *)PhoneNumberTotal, 20); DisplayNumPara.x = 612;
SetPageText(GRAPHICS_PAGE_0, 0x7000, 590 , 285 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1)); DisplayNumPara.MinDigits = 2;
}
else
{
;
} }
// else if(Contect_totalnumber == 3) // else if(Contect_totalnumber == 3)
// { // {
// SetPagePic(GRAPHICS_PAGE_0, ); /*【括号】 三位数 */ // SetPagePic(GRAPHICS_PAGE_0, ); /*【括号】 三位数 */
// PackedTransfer_LabelsList( 0x4022,(uint8_t *)PhoneNumberTotal, 40); //
// SetPageText(GRAPHICS_PAGE_0, 0x4022, 570 , 165 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1));
// } // }
DisplayNumPara.NumList = Bluetooth_num_night;
DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 14;
DisplayNumPara.y = GROUP_PIC_USE_PSD_Y_POS;
DisplayNumPara.DecimalNum = 0;
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, connect_personnumber);
} }
} }
...@@ -2852,7 +2731,7 @@ static const uint16_t NumbeList_PhoneConnect_ESpeed[] ={ ...@@ -2852,7 +2731,7 @@ static const uint16_t NumbeList_PhoneConnect_ESpeed[] ={
Pic_0394_64_554, Pic_0394_64_554,
}; };
static const uint16_t PICList_Fuel[] = { static const uint16_t PICList_Fuel[] = {
Pic_0562_315_473, Pic_0554_315_473,
Pic_0555_366_473, Pic_0555_366_473,
Pic_0556_426_473, Pic_0556_426_473,
Pic_0557_469_473, Pic_0557_469_473,
...@@ -2862,7 +2741,7 @@ static const uint16_t PICList_Fuel[] = { ...@@ -2862,7 +2741,7 @@ static const uint16_t PICList_Fuel[] = {
Pic_0561_623_473, Pic_0561_623_473,
}; };
static const uint16_t PICList_PhoneConnect_Fuel[] = { static const uint16_t PICList_PhoneConnect_Fuel[] = {
Pic_0414_76_536, Pic_0415_76_536,
Pic_0416_105_536, Pic_0416_105_536,
Pic_0417_134_536, Pic_0417_134_536,
Pic_0418_163_536, Pic_0418_163_536,
...@@ -3019,6 +2898,14 @@ static void AMT630H_GUI_PhoneConnect_Light() ...@@ -3019,6 +2898,14 @@ static void AMT630H_GUI_PhoneConnect_Light()
{ {
SetPagePic(GRAPHICS_PAGE_0, Pic_0468_819_486); SetPagePic(GRAPHICS_PAGE_0, Pic_0468_819_486);
} }
if(Get_TelltalesLedSts(em_LED_Coolant_Temperature))
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0436_981_528);
}
else
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0435_981_528);
}
} }
/* /*
*NAME : AMT630H_GUI_TIME() *NAME : AMT630H_GUI_TIME()
...@@ -3144,8 +3031,8 @@ static void AMT630H_GUI_Telephone() ...@@ -3144,8 +3031,8 @@ static void AMT630H_GUI_Telephone()
} }
if(TextPara[TEXT_NUM_PHONE_NUMBER].Vaild == 0X01) if(TextPara[TEXT_NUM_PHONE_NUMBER].Vaild == 0X01)
{ {
PackedTransfer_LabelsList( 0x4009,(uint8_t *)PhoneNumber, 40); PackedTransfer_LabelsList( 0x4022,(uint8_t *)PhoneNumber, 40);
SetPageText(GRAPHICS_PAGE_0, 0x4009, 54, 499, 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1)); SetPageText(GRAPHICS_PAGE_0, 0x4022, 54, 463, 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1));
} }
} }
else if(g_u8Display_Mode == ModeNIGHT) else if(g_u8Display_Mode == ModeNIGHT)
...@@ -3157,8 +3044,8 @@ static void AMT630H_GUI_Telephone() ...@@ -3157,8 +3044,8 @@ static void AMT630H_GUI_Telephone()
} }
if(TextPara[TEXT_NUM_PHONE_NUMBER].Vaild == 0X01) if(TextPara[TEXT_NUM_PHONE_NUMBER].Vaild == 0X01)
{ {
PackedTransfer_LabelsList( 0x4009,(uint8_t *)PhoneNumber, 40); PackedTransfer_LabelsList( 0x4022,(uint8_t *)PhoneNumber, 40);
SetPageText(GRAPHICS_PAGE_0, 0x4009, 54, 499, 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1)); SetPageText(GRAPHICS_PAGE_0, 0x4022, 54, 463, 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1));
} }
} }
...@@ -3175,8 +3062,8 @@ static void AMT630H_GUI_Telephone() ...@@ -3175,8 +3062,8 @@ static void AMT630H_GUI_Telephone()
} }
if(TextPara[TEXT_NUM_PHONE_NUMBER].Vaild == 0X01) if(TextPara[TEXT_NUM_PHONE_NUMBER].Vaild == 0X01)
{ {
PackedTransfer_LabelsList( 0x4009,(uint8_t *)PhoneNumber, 40); PackedTransfer_LabelsList( 0x4022,(uint8_t *)PhoneNumber, 40);
SetPageText(GRAPHICS_PAGE_0, 0x4009, 54, 499, 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1)); SetPageText(GRAPHICS_PAGE_0, 0x4022, 54, 463, 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1));
} }
} }
else if(g_u8Display_Mode == ModeNIGHT) else if(g_u8Display_Mode == ModeNIGHT)
...@@ -3188,8 +3075,8 @@ static void AMT630H_GUI_Telephone() ...@@ -3188,8 +3075,8 @@ static void AMT630H_GUI_Telephone()
} }
if(TextPara[TEXT_NUM_PHONE_NUMBER].Vaild == 0X01) if(TextPara[TEXT_NUM_PHONE_NUMBER].Vaild == 0X01)
{ {
PackedTransfer_LabelsList( 0x4009,(uint8_t *)PhoneNumber, 40); PackedTransfer_LabelsList( 0x4022,(uint8_t *)PhoneNumber, 40);
SetPageText(GRAPHICS_PAGE_0, 0x4009, 54, 499, 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1)); SetPageText(GRAPHICS_PAGE_0, 0x4022, 54, 463, 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1));
} }
} }
...@@ -3206,8 +3093,8 @@ static void AMT630H_GUI_Telephone() ...@@ -3206,8 +3093,8 @@ static void AMT630H_GUI_Telephone()
} }
if(TextPara[TEXT_NUM_PHONE_NUMBER].Vaild == 0X01) if(TextPara[TEXT_NUM_PHONE_NUMBER].Vaild == 0X01)
{ {
PackedTransfer_LabelsList( 0x4009,(uint8_t *)PhoneNumber, 40); PackedTransfer_LabelsList( 0x4022,(uint8_t *)PhoneNumber, 40);
SetPageText(GRAPHICS_PAGE_0, 0x4009, 54, 499, 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1)); SetPageText(GRAPHICS_PAGE_0, 0x4022, 54, 463, 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1));
} }
} }
else if(g_u8Display_Mode == ModeNIGHT) else if(g_u8Display_Mode == ModeNIGHT)
...@@ -3219,8 +3106,8 @@ static void AMT630H_GUI_Telephone() ...@@ -3219,8 +3106,8 @@ static void AMT630H_GUI_Telephone()
} }
if(TextPara[TEXT_NUM_PHONE_NUMBER].Vaild == 0X01) if(TextPara[TEXT_NUM_PHONE_NUMBER].Vaild == 0X01)
{ {
PackedTransfer_LabelsList( 0x4009,(uint8_t *)PhoneNumber, 40); PackedTransfer_LabelsList( 0x4022,(uint8_t *)PhoneNumber, 40);
SetPageText(GRAPHICS_PAGE_0, 0x4009, 54, 499, 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1)); SetPageText(GRAPHICS_PAGE_0, 0x4022, 54, 463, 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1));
} }
} }
} }
...@@ -3247,28 +3134,43 @@ static void AMT630H_GUI_PhoneConnect_Telephone() ...@@ -3247,28 +3134,43 @@ static void AMT630H_GUI_PhoneConnect_Telephone()
{ if(BlueToothPhoneData.BlueToothPhoneSate == Phone_Outgoing) { if(BlueToothPhoneData.BlueToothPhoneSate == Phone_Outgoing)
{ {
SetPagePic(GRAPHICS_PAGE_0, Pic_0451_751_555); SetPagePic(GRAPHICS_PAGE_0, Pic_0451_751_555);
if(TextPara[TEXT_NUM_BLUETOOTH_PHONENAME].Vaild == 0X01)
{
PackedTransfer_LabelsList( 0x4022,(uint8_t *)CurBlueToothPhoneName, 40);
SetPageText(GRAPHICS_PAGE_0, 0x4022, 786, 561, 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1));
}
if(TextPara[TEXT_NUM_PHONE_NUMBER].Vaild == 0X01) if(TextPara[TEXT_NUM_PHONE_NUMBER].Vaild == 0X01)
{ {
PackedTransfer_LabelsList( 0x4009,(uint8_t *)PhoneNumber, 40); PackedTransfer_LabelsList( 0x4022,(uint8_t *)PhoneNumber, 40);
SetPageText(GRAPHICS_PAGE_0, 0x4009, 786, 561, 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1)); SetPageText(GRAPHICS_PAGE_0, 0x4022, 786, 561, 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1));
} }
} }
else if(BlueToothPhoneData.BlueToothPhoneSate == Phone_Talking) else if(BlueToothPhoneData.BlueToothPhoneSate == Phone_Talking)
{ {
//SetPagePic(GRAPHICS_PAGE_0, Pic_0943_751_555); SetPagePic(GRAPHICS_PAGE_0, Pic_0943_751_555);
if(TextPara[TEXT_NUM_BLUETOOTH_PHONENAME].Vaild == 0X01)
{
PackedTransfer_LabelsList( 0x4022,(uint8_t *)CurBlueToothPhoneName, 40);
SetPageText(GRAPHICS_PAGE_0, 0x4022, 786, 561, 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1));
}
if(TextPara[TEXT_NUM_PHONE_NUMBER].Vaild == 0X01) if(TextPara[TEXT_NUM_PHONE_NUMBER].Vaild == 0X01)
{ {
PackedTransfer_LabelsList( 0x4009,(uint8_t *)PhoneNumber, 40); PackedTransfer_LabelsList( 0x4022,(uint8_t *)PhoneNumber, 40);
SetPageText(GRAPHICS_PAGE_0, 0x4009, 786, 561, 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1)); SetPageText(GRAPHICS_PAGE_0, 0x4022, 786, 561, 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1));
} }
} }
else if(BlueToothPhoneData.BlueToothPhoneSate == Phone_Incoming) else if(BlueToothPhoneData.BlueToothPhoneSate == Phone_Incoming)
{ {
SetPagePic(GRAPHICS_PAGE_0, Pic_0450_751_555); SetPagePic(GRAPHICS_PAGE_0, Pic_0450_751_555);
if(TextPara[TEXT_NUM_BLUETOOTH_PHONENAME].Vaild == 0X01)
{
PackedTransfer_LabelsList( 0x4022,(uint8_t *)CurBlueToothPhoneName, 40);
SetPageText(GRAPHICS_PAGE_0, 0x4022, 786, 561, 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1));
}
if(TextPara[TEXT_NUM_PHONE_NUMBER].Vaild == 0X01) if(TextPara[TEXT_NUM_PHONE_NUMBER].Vaild == 0X01)
{ {
PackedTransfer_LabelsList( 0x4009,(uint8_t *)PhoneNumber, 40); PackedTransfer_LabelsList( 0x4022,(uint8_t *)PhoneNumber, 40);
SetPageText(GRAPHICS_PAGE_0, 0x4009, 786, 561, 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1)); SetPageText(GRAPHICS_PAGE_0, 0x4022, 786, 561, 200, ALIGN_LEFT, 0, TEXT_COLOR(0,0,0,0XFF),TEXT_LINE_OFFSET(1,1));
} }
} }
} }
...@@ -3277,6 +3179,30 @@ static void AMT630H_GUI_PhoneConnect_Telephone() ...@@ -3277,6 +3179,30 @@ static void AMT630H_GUI_PhoneConnect_Telephone()
; ;
} }
} }
/*
*NAME : AMT630H_GUI_Fuel
*FUNCTION : 燃油显示函数
*PARAMETER : uint8_t Fuel- 燃油格数
*RETURN : NULL
*/
static void AMT630H_GUI_PhoneConnect_UPtele()
{
if(BlueToothPhoneData.BlueToothSignalSate == BlueTooth_Connection)
{ if((BlueToothPhoneData.BlueToothPhoneSate == Phone_Outgoing)||(BlueToothPhoneData.BlueToothPhoneSate == Phone_Talking)||(BlueToothPhoneData.BlueToothPhoneSate == Phone_Incoming))
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0519_648_5);
SetPagePic(GRAPHICS_PAGE_0, Pic_0520_760_50);
}
else
{
;
}
}
else
{
;
}
}
/* /*
*NAME : AMT630H_GUI_Fuel *NAME : AMT630H_GUI_Fuel
...@@ -3296,7 +3222,7 @@ static void AMT630H_GUI_Fuel(uint8_t Fuel) ...@@ -3296,7 +3222,7 @@ static void AMT630H_GUI_Fuel(uint8_t Fuel)
FuelLevel = Fuel; FuelLevel = Fuel;
if(Fuel == 0) if(Fuel == 0)
{ {
FuelLevel = 1; FuelLevel = 1; /*格数统一*/
} }
else else
{ {
...@@ -3366,6 +3292,11 @@ static void AMT630H_GUI_Fuel(uint8_t Fuel) ...@@ -3366,6 +3292,11 @@ static void AMT630H_GUI_Fuel(uint8_t Fuel)
} }
} }
else
{
;
}
/*燃油格数走格*/ /*燃油格数走格*/
if (FuelLevel > 0) if (FuelLevel > 0)
{ {
...@@ -3402,6 +3333,14 @@ static void AMT630H_GUI_Fuel(uint8_t Fuel) ...@@ -3402,6 +3333,14 @@ static void AMT630H_GUI_Fuel(uint8_t Fuel)
{ {
; ;
} }
if (g_u16_GUI_PerFuelLevel == 1)
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0562_315_473);
}
else
{
;
}
} }
uint16_t g_u16PerFuel_SelfCheck = 1; uint16_t g_u16PerFuel_SelfCheck = 1;
...@@ -3508,7 +3447,7 @@ static void AMT630H_GUI_PhoneConnect_Fuel(uint8_t Fuel) ...@@ -3508,7 +3447,7 @@ static void AMT630H_GUI_PhoneConnect_Fuel(uint8_t Fuel)
s_FuelLowTime++; s_FuelLowTime++;
if (s_FuelLowTime <= 15) if (s_FuelLowTime <= 15)
{ {
SetPagePic(GRAPHICS_PAGE_0, Pic_0552_503_529); /*黄色燃油灯*/ SetPagePic(GRAPHICS_PAGE_0, Pic_0423_26_529); /*黄色燃油灯*/
} }
if (s_FuelLowTime > 20) if (s_FuelLowTime > 20)
{ {
...@@ -3517,10 +3456,11 @@ static void AMT630H_GUI_PhoneConnect_Fuel(uint8_t Fuel) ...@@ -3517,10 +3456,11 @@ static void AMT630H_GUI_PhoneConnect_Fuel(uint8_t Fuel)
} }
else else
{ {
SetPagePic(GRAPHICS_PAGE_0, Pic_0551_503_529); /*黑色燃油灯*/ SetPagePic(GRAPHICS_PAGE_0, Pic_0424_26_529); /*黑色燃油灯*/
s_FuelLowTime = 0; s_FuelLowTime = 0;
} }
/*燃油格数走格*/ /*燃油格数走格*/
if (FuelLevel > 0) if (FuelLevel > 0)
{ {
...@@ -3555,7 +3495,15 @@ static void AMT630H_GUI_PhoneConnect_Fuel(uint8_t Fuel) ...@@ -3555,7 +3495,15 @@ static void AMT630H_GUI_PhoneConnect_Fuel(uint8_t Fuel)
} }
else else
{ {
//SetPagePic(GRAPHICS_PAGE_0, Pic_0414_76_536); /*燃油红区*/ ;
}
if(g_u16_GUI_PerFuelLevel == 1) /*当变化到1格时 显示为红区*/
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0414_76_536);
}
else
{
;
} }
} }
...@@ -4140,7 +4088,7 @@ static void AMT630H_GUI_VSpeed(uint16_t VSpeed) ...@@ -4140,7 +4088,7 @@ static void AMT630H_GUI_VSpeed(uint16_t VSpeed)
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, VSpeedNumber); DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, VSpeedNumber);
} }
else if ((10 <= VSpeedNumber)) else if ((10 <= VSpeedNumber) && ( VSpeedNumber < 100))
{ {
DisplayNumPara.x = 515; DisplayNumPara.x = 515;
DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 118; DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 118;
...@@ -4150,7 +4098,7 @@ static void AMT630H_GUI_VSpeed(uint16_t VSpeed) ...@@ -4150,7 +4098,7 @@ static void AMT630H_GUI_VSpeed(uint16_t VSpeed)
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, VSpeedNumber); DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, VSpeedNumber);
} }
else if (0 <= VSpeedNumber) else if ((0 <= VSpeedNumber) && ( VSpeedNumber < 10))
{ {
if (VSpeedNumber == 1) if (VSpeedNumber == 1)
{ {
...@@ -4278,7 +4226,7 @@ static void AMT630H_GUI_PhoneConnect_VSpeed(uint16_t VSpeed) ...@@ -4278,7 +4226,7 @@ static void AMT630H_GUI_PhoneConnect_VSpeed(uint16_t VSpeed)
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, VSpeedNumber); DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, VSpeedNumber);
} }
else if ((10 <= VSpeedNumber)) else if ((10 <= VSpeedNumber) && (VSpeedNumber < 100))
{ {
DisplayNumPara.x = 514; DisplayNumPara.x = 514;
DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 60; DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 60;
...@@ -4288,7 +4236,7 @@ static void AMT630H_GUI_PhoneConnect_VSpeed(uint16_t VSpeed) ...@@ -4288,7 +4236,7 @@ static void AMT630H_GUI_PhoneConnect_VSpeed(uint16_t VSpeed)
DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, VSpeedNumber); DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, VSpeedNumber);
} }
else if (0 <= VSpeedNumber) else if ((0 <= VSpeedNumber) && ( VSpeedNumber < 10))
{ {
if (VSpeedNumber == 1) if (VSpeedNumber == 1)
{ {
...@@ -4937,11 +4885,22 @@ void AMT630H_GUI_ReadPosittion_Display(void) ...@@ -4937,11 +4885,22 @@ void AMT630H_GUI_ReadPosittion_Display(void)
{ {
SetPagePic(GRAPHICS_PAGE_0, Pic_0941_0_470); /*下半屏*/ SetPagePic(GRAPHICS_PAGE_0, Pic_0941_0_470); /*下半屏*/
PackedTransfer_DisplayPhoneMirrorQRcode(0, PicObj); PackedTransfer_DisplayPhoneMirrorQRcode(0, PicObj);
AMT630H_GUI_PhoneConnect_UPtele();
} }
SetPagePic(GRAPHICS_PAGE_0, Pic_0479_242_313); SetPagePic(GRAPHICS_PAGE_0, Pic_0479_242_313);
// SetPagePic(GRAPHICS_PAGE_0, Pic_0382_0_0);/*背景图*/ // SetPagePic(GRAPHICS_PAGE_0, Pic_0382_0_0);/*背景图*/
AMT630H_GUI_PhoneConnect_Light(); AMT630H_GUI_PhoneConnect_Light();
AMT630H_GUI_PhoneConnect_TIME(Get_Dis_Hour_Time(), Get_Dis_Minute_Time()); AMT630H_GUI_PhoneConnect_TIME(Get_Dis_Hour_Time(), Get_Dis_Minute_Time());
if(VechileSpeed_time < 4)
{
// VechileSpeed_time++;
}
else
{
VechileSpeed_time = 0;
VechileSpeed = Get_DispVechileSpeed() / 10;
}
AMT630H_GUI_PhoneConnect_VSpeed(VechileSpeed); AMT630H_GUI_PhoneConnect_VSpeed(VechileSpeed);
AMT630H_GUI_PhoneConnect_ESpeed(Get_DispEngineSpeed()); AMT630H_GUI_PhoneConnect_ESpeed(Get_DispEngineSpeed());
AMT630H_GUI_PhoneConnect_Fuel(Get_CurFuelSetp()); AMT630H_GUI_PhoneConnect_Fuel(Get_CurFuelSetp());
......
#ifndef PICBIN_H #ifndef PICBIN_H
#define PICBIN_H #define PICBIN_H
/* Flash Bin Version:20240915 2024-09-15 09:22:36 Compression ratio:70.00% */ /* Flash Bin Version:20240924 2024-09-24 11:37:38 Compression ratio:70.00% */
#define Pic_0001 1 #define Pic_0001 1
#define Pic_0002 2 #define Pic_0002 2
#define Pic_0003 3 #define Pic_0003 3
...@@ -2135,6 +2135,7 @@ enum { ...@@ -2135,6 +2135,7 @@ enum {
Pic_0943_751_555, Pic_0943_751_555,
}; };
#define PIC_INDEX_DATA_CRC 0x8509F1BE #define PIC_INDEX_DATA_CRC 0x8509F1BE
extern void User_PicIndexDataInit(void); extern void User_PicIndexDataInit(void);
......
...@@ -32,7 +32,7 @@ void Key_Operation_Left(Key_Event_en_t enKeyEvent)//选择 ...@@ -32,7 +32,7 @@ void Key_Operation_Left(Key_Event_en_t enKeyEvent)//选择
break; break;
case KEY_EVENT_LONG_PRESS_4: //10s case KEY_EVENT_LONG_PRESS_4: //10s
/* 进入630H升级MCU模式 */ /* 进入630H升级MCU模式 */
Get_Into_630H_Update_MCU_Mode(); // Get_Into_630H_Update_MCU_Mode();
break; break;
case KEY_EVENT_OFF_TO_ON: case KEY_EVENT_OFF_TO_ON:
break; break;
......
...@@ -55,11 +55,9 @@ static void Power_KL30_Init(void) ...@@ -55,11 +55,9 @@ static void Power_KL30_Init(void)
Key_KL30_Init_EXample(); Key_KL30_Init_EXample();
Data_User_Mileage_KL30Init(); Data_User_Mileage_KL30Init();
Fuel_KL30_Init(); Fuel_KL30_Init();
Backlight_KL30_Wakeup_Init(); BackLight_30_Init();
Amt630hInit(); Amt630hInit();
Telltales_Init(); Telltales_Init();
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 20000, 64000000);
TimerM_PWM_CH_Output_init(TIMERM_COUNTER1, TIMERM_CHB, ActiveLevel_High);
g_stRTCInformation.u8RTCSecond = 0; g_stRTCInformation.u8RTCSecond = 0;
g_stRTCInformation.u8RTCMinute = 0; g_stRTCInformation.u8RTCMinute = 0;
g_stRTCInformation.u8RTCHour = 0; g_stRTCInformation.u8RTCHour = 0;
...@@ -71,7 +69,7 @@ static void Power_KL30_Init(void) ...@@ -71,7 +69,7 @@ static void Power_KL30_Init(void)
UDS_Startup_Init(); UDS_Startup_Init();
Can_Init(); Can_Init();
Protocol_KL30_Wakeup_Init(); Protocol_KL30_Wakeup_Init();
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 500);
RTE_DEEPSLEEP_GPIO_Interrupt_Enable(KL15_AD_IN, Trigger_Rising); RTE_DEEPSLEEP_GPIO_Interrupt_Enable(KL15_AD_IN, Trigger_Rising);
FaultCode_Init(); FaultCode_Init();
} }
...@@ -92,7 +90,7 @@ static void Power_Wakeup_Init(void) ...@@ -92,7 +90,7 @@ static void Power_Wakeup_Init(void)
Key_Wakeup_Init_EXample(); Key_Wakeup_Init_EXample();
Line_In_KL15_ON_Init(); Line_In_KL15_ON_Init();
Fuel_KL30_Init(); Fuel_KL30_Init();
Backlight_KL30_Wakeup_Init(); BackLight_WakeUp_Init();
RTE_UART_Sleep_Init(UART_CH2); RTE_UART_Sleep_Init(UART_CH2);
loc_config.u32UARTChEn = 1U; loc_config.u32UARTChEn = 1U;
loc_config.u32UARTbps = 115200U; loc_config.u32UARTbps = 115200U;
...@@ -101,8 +99,6 @@ static void Power_Wakeup_Init(void) ...@@ -101,8 +99,6 @@ static void Power_Wakeup_Init(void)
UART_DeInit(UART2); UART_DeInit(UART2);
RTE_UART_Init(UART_CH2, &loc_config); /* 配置串口,630H上电发送0x0D,但是底板没回复 */ RTE_UART_Init(UART_CH2, &loc_config); /* 配置串口,630H上电发送0x0D,但是底板没回复 */
Amt630hInit(); Amt630hInit();
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 20000, 64000000);
TimerM_PWM_CH_Output_init(TIMERM_COUNTER1, TIMERM_CHB, ActiveLevel_High);
Telltales_Init(); Telltales_Init();
Key_KL30_Init_EXample(); Key_KL30_Init_EXample();
Menu_User_WAKEUP(); Menu_User_WAKEUP();
...@@ -124,7 +120,7 @@ static void Power_OVP_Init(void) ...@@ -124,7 +120,7 @@ static void Power_OVP_Init(void)
static void Power_IG_OFF_Init(void) static void Power_IG_OFF_Init(void)
{ {
Line_In_KL15_OFF_Init(); Line_In_KL15_OFF_Init();
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 0); BackLight_15_Init();
} }
static void Power_IG_ON_Init(void) static void Power_IG_ON_Init(void)
...@@ -144,6 +140,7 @@ static void Power_IG_ON_Init(void) ...@@ -144,6 +140,7 @@ static void Power_IG_ON_Init(void)
static void Power_Sleep_Init(void) static void Power_Sleep_Init(void)
{ {
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 20000, 0); TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 20000, 0);
Can_Tx_Apply_Buff();
rte_can_deinit(CAN_CH_0); rte_can_deinit(CAN_CH_0);
TMM0_Stop(); TMM0_Stop();
TMM1_Stop(); TMM1_Stop();
...@@ -187,7 +184,7 @@ static Power_Status_em Power_Stay_OFF(void) ...@@ -187,7 +184,7 @@ static Power_Status_em Power_Stay_OFF(void)
} }
else else
{ {
if ((Common_GetIgnOffTime() < 20000)) if ((Common_GetIgnOffTime() < 3000))
{ {
u8PowerSts = EM_IGN_OFF; u8PowerSts = EM_IGN_OFF;
} }
......
...@@ -35,8 +35,8 @@ static const monitorlib_uint16_t SysFun_Range [ 26u ] = { ...@@ -35,8 +35,8 @@ static const monitorlib_uint16_t SysFun_Range [ 26u ] = {
u16ENTER_HIGH_N_RANGE, u16ENTER_HIGH_N_RANGE,
u16Top_Vol, u16Top_Vol,
500, 500, /*进入异常电压时间1s*/
50u, 50u, /*KL15消抖时间 100ms*/
u16Base_Vol, u16Base_Vol,
u16ENTER_LOW_N_RANGE, u16ENTER_LOW_N_RANGE,
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
****************************************************************************** ******************************************************************************
* @file can.c * @file can.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.0.2 * @version V1.0.1
* @date 2-April-2024 * @date 2-April-2024
* @brief This file provides firmware functions to manage the following * @brief This file provides firmware functions to manage the following
* functionalities of the Controller area network (CAN) peripheral: * functionalities of the Controller area network (CAN) peripheral:
......
...@@ -3,10 +3,9 @@ ...@@ -3,10 +3,9 @@
#include "isr.h" #include "isr.h"
#include "rte_can.h" #include "rte_can.h"
CANBuffList_t CanBufList = {0};
CANMSG_Type* CANMSG; CANMSG_Type* CANMSG;
CanTxRxMsg CAN_RecvMsg; CanTxRxMsg CAN_RecvMsg;
CANBuffList_t CanBufList = {0};
can_rx_callback can_rx_handler = NULL; can_rx_callback can_rx_handler = NULL;
uint8_t Read_RingBuff(CanTxRxMsg *data) uint8_t Read_RingBuff(CanTxRxMsg *data)
...@@ -20,29 +19,34 @@ uint8_t Read_RingBuff(CanTxRxMsg *data) ...@@ -20,29 +19,34 @@ uint8_t Read_RingBuff(CanTxRxMsg *data)
CanBufList.length--; CanBufList.length--;
return 1; return 1;
} }
/** /**
* @brief CAN就收完成回调 * @brief CAN就收完成回调
* *
* @param msg * @param msg
*/ */
static void can_recv_handler(void *msg) static void can_recv_handler(void)
{ {
INTC_ClearPendingIRQ(CAN0REC_IRQn); INTC_ClearPendingIRQ(CAN0REC_IRQn);
if (CAN_GetFlagStatus(CAN0, CAN_FLAG_REC) != RESET) if (CAN_GetFlagStatus(CAN0, CAN_FLAG_REC) != RESET)
{ {
CAN_ClearFlag(CAN0, CAN_FLAG_REC); CAN_ClearFlag(CAN0, CAN_FLAG_REC);
CAN_Receive_IT(CAN0, &CanBufList); CAN_Receive_IT(CAN0, &CanBufList);
Read_RingBuff(&CAN_RecvMsg); Read_RingBuff(&CAN_RecvMsg);
CAN_Receive(CAN0,&CAN_RecvMsg,100);
if (can_rx_handler != NULL) if (can_rx_handler != NULL)
{ {
can_rx_handler(&CAN_RecvMsg); can_rx_handler(&CAN_RecvMsg);
} }
} }
} }
static void can_error_handler(void)
{
INTC_ClearPendingIRQ(CAN0ERR_IRQn);
CANErr_Recover(CAN0);
}
/** /**
* @brief CAN初始�? * @brief CAN初始�?
* *
...@@ -97,11 +101,13 @@ uint8_t rte_can_init(can_config_st_t *config) ...@@ -97,11 +101,13 @@ uint8_t rte_can_init(can_config_st_t *config)
CAN_OperatingModeRequest(CAN0, CAN_OpMode_Normal); CAN_OperatingModeRequest(CAN0, CAN_OpMode_Normal);
CAN_ITConfig(CAN0, CAN_IT_REC, ENABLE); CAN_ITConfig(CAN0, CAN_IT_REC | CAN_IT_ERR_STATE | CAN_IT_ERR_PROTO, ENABLE); // |CAN_IT_TRX
ISR_Register(CAN0REC_IRQn, can_recv_handler); ISR_Register(CAN0REC_IRQn, can_recv_handler);
INTC_EnableIRQ(CAN0REC_IRQn); // ISR_Register(CAN0TRX_IRQn, can_tx_handler);
ISR_Register(CAN0ERR_IRQn, can_error_handler);
// ISR_DisRegister(CAN0REC_IRQn, can_recv_handler); // ISR_DisRegister(CAN0REC_IRQn, can_recv_handler);
......
...@@ -31,7 +31,7 @@ typedef enum ...@@ -31,7 +31,7 @@ typedef enum
} CAN_CH; } CAN_CH;
#pragma pack(4) #pragma pack(4)
typedef struct typedef struct __attribute__((aligned(4)))
{ {
CAN_CH ch; CAN_CH ch;
CAN_freq freq; CAN_freq freq;
......
...@@ -42,6 +42,7 @@ void Sys_10ms_Tasks(void) ...@@ -42,6 +42,7 @@ void Sys_10ms_Tasks(void)
Fuel_R_Cal(10u); Fuel_R_Cal(10u);
Coolant_R_Cal(10u); Coolant_R_Cal(10u);
Data_Light_Res_service(10); Data_Light_Res_service(10);
BackLight_Process();
} }
void Sys_20ms_Tasks(void) void Sys_20ms_Tasks(void)
...@@ -52,7 +53,6 @@ void Sys_20ms_Tasks(void) ...@@ -52,7 +53,6 @@ void Sys_20ms_Tasks(void)
void Sys_50ms_Tasks(void) void Sys_50ms_Tasks(void)
{ {
BackLight_Service();
Telltales_Management(); Telltales_Management();
UDS_Read_Preconditions(); UDS_Read_Preconditions();
g_u8Cursor_Posittion = Menu_Get_Current_Cursor_Information(); g_u8Cursor_Posittion = Menu_Get_Current_Cursor_Information();
......
This source diff could not be displayed because it is too large. You can view the blob instead.
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