📄 dashboard_zhonghua.c
字号:
#include <stdlib.h>
#include <string.h>
#include "def.h"
#include "option.h"
#include "2410addr.h"
#include "2410lib.h"
#include "2410slib.h"
#include "lcd.h"
#include "lcdlib.h"
#include "glib.h"
#include "isrservice.h"
#include "fnand.h"
#include "Uart0.h"
#include "dashboard_zhonghua.h"
#include "dashboard_arrow_flow.h"
#include "dashboard_number.h"
#include "dashboard_otherdis.h"
#include "main.h"
#include "dashboard_finger.h"
//////////////////////////////////////////////////initial the dashboard when the interface is changed
void zhonghua_dashboard(void)
{
//add:
int i;
/////////////////////////////////////////////////////////////change the interfaces:
if(rInterfacechangeflag == 1 && rInterface == 1)
{
rInterfacechangeflag = 0; //clear the interface change flag;
//load bitmap1:
Load_BMP(3700,51);
BITMAP_OUTPUT(854,480,0,0);
Dashboard_1_Init();
rBitmapfinish = 1;
}
//////////////////////////////////////////////////////////////deal with the data in interfaces:
if(rInterface == 1 && rBitmapfinish == 1 && r0State == 1000)// && rState == 1)
{
//rState = 0;
r0State = 0;
//add: deal with bitmap1
Dashboard_1(); //for real program
Time1_Set(rec_data.speed);
//Dashboard_1_show(); //for show program
//Uart_SendString("deal with bitmap1\n");
// Uart_Printf("z %d\n",testEint5++);
}
if(rInterface == 1 && rBitmapfinish == 1 && dtc_signal == 1)
{
//add:
dtc_signal = 0;
DTC1_Show();
}
/////////////////////////////////////////////////////////////仪表指针显示
if(rState == 1) //10ms画一次指针
{
if(save_data.speed == rec_data.speed && rec_data.speed == 0)
{
finger_output(425,305,154,20,0,1);
}
if(save_data.speed != rec_data.speed)
{
if(rec_data.speed>save_data.speed)
{
finger_pos_change(save_data.speed,save_data.speed+1,1);
save_data.speed++;
}
else
{
finger_pos_change(save_data.speed,save_data.speed-1,1);
save_data.speed--;
}
}
rState = 0;
}
/////////////////////////////////////////////////////////////end of 仪表指针显示
///////////////////////////////////////转向灯指示
if(turnlightState == 1000)
Turnplay();
///////////////////////////////////////end of 转向灯指示
///////////////////////save data to flash
if(savedata_signal == 1)
{
if(save_data.show_Summile != rec_data.show_Summile)
{
savedata_signal = 0;
save_Summile_write = (int)(rec_data.show_Summile - Ori_Summile);
fdata[0] = save_Summile_write & 0xff;
fdata[1] = (save_Summile_write>>8) & 0xff;
fdata[2] = (save_Summile_write>>16) & 0xff;
fdata[3] = (save_Summile_write>>24) & 0xff;
for(i=0;i<5;i++)
NF_EraseBlock(4090+i);
//NF_EraseBlock(4095);
for(i=0;i<5;i++)
NF_WritePage(4090+i,0,fdata);
//NF_WritePage(4095,0,fdata);
//Glib_FilledRectangle(0,0,10,10,0xf0);
//for(i=0;i<5;i++)
//Uart_Printf("fdata = %d\n",fdata[i]);
save_data.show_Summile = rec_data.show_Summile;
}
}
////////////////////// end of save data to flash
}
void Turnplay(void)
{
//add:
turnlightState = 0;
if(leftturn == 1)
{
//turnlightState = 0;
if(tState == 0)
output_turnlight(1,186,36);
else
output_turnlight(0,186,36);
}
else
output_turnlight(0,186,36);
if(rightturn == 1)
{
//turnlightState = 0;
if(tState == 0)
output_turnlight(3,616,36);
else
output_turnlight(2,616,36);
}
else
output_turnlight(2,616,36);
// switch(tState)
// {
// case 0:
// tState = 1;
// break;
// case 1:
// tState = 0;
// break;
// default:
// break;
// }
//Uart_Printf("leftturn is %d, rightturn is %d\n",leftturn,rightturn);
}
void Dashboard_1_Init(void)
{
//add:
output_number_float(save_data.bat_cur,80,44,0xFFFF); //电池电流
output_number_float(save_data.bat_vol,784,44,0xFFFF); //电池电压
output_number_float(save_data.bat_tem,81,434,0xFFFF); //电池温度
output_number_float(save_data.mot1_tor,649,434,0xFFFF); //1#电机转矩
output_number(save_data.CAN_State,816,434,0xFFFF); //氢瓶温度
/*//initial the dashboard-03
output_number(save_nData[13],277,132,0xFFFF); //氢瓶温度
output_number(save_nData[22],227,419,0xFFFF); //DC/DC功率
*/
}
void Dashboard_1(void)
{
//add:
int i;
/*if(save_data.bat_cur != rec_data.bat_cur)
{
display_number_float(save_data.bat_cur,rec_data.bat_cur,80,44,0xFFFF);
save_data.bat_cur = rec_data.bat_cur;
}*/
if(save_data.bat_cur != rec_data.bat_cur)
{
InvalidateRect(0,25,145,85);
//display_number_float(save_data.bat_cur,rec_data.bat_cur,80,44,0xFFFF);
output_number_float(rec_data.bat_cur,80,44,0xFFFF);
save_data.bat_cur = rec_data.bat_cur;
}
if(save_data.bat_vol != rec_data.bat_vol)
{
display_number_float(save_data.bat_vol,rec_data.bat_vol,784,44,0xFFFF);
save_data.bat_vol = rec_data.bat_vol;
}
if(save_data.bat_tem != rec_data.bat_tem)
{
display_number_float(save_data.bat_tem,rec_data.bat_tem,81,434,0xFFFF);
save_data.bat_tem = rec_data.bat_tem;
}
if(save_data.mot1_tor != rec_data.mot1_tor)
{
display_number_float(save_data.mot1_tor,rec_data.mot1_tor,649,434,0xFFFF);
save_data.mot1_tor = rec_data.mot1_tor;
}
if(save_data.bat_soc != rec_data.bat_soc) //soc柱状显示
{
output_rec_1(save_data.bat_soc,rec_data.bat_soc);
save_data.bat_soc = rec_data.bat_soc;
}
if(save_data.CAN_State != rec_data.CAN_State) //CAN状态监测
{
display_number(save_data.CAN_State,rec_data.CAN_State,816,434,0xFFFF);
save_data.CAN_State = rec_data.CAN_State;
}
if(save_data.gear != rec_data.gear) //档位信号显示
{
output_gear_all(766,187);
if(rec_data.gear == 1)
output_gear(0,766,187);
if(rec_data.gear == 2)
output_gear(1,766,239);
if(rec_data.gear == 4)
output_gear(2,766,291);
save_data.gear = rec_data.gear;
}
//////////////////////////////////////////////////////////////////////故障代码显示
/*
if(dtccount > 0) //每隔dtctime×0.5时间故障代码滚动显示,dtctime用于控制滚动时间
{
if(discount<dtctime*dtccount)
discount++;
if(discount%dtctime == 0)
{
i = discount/dtctime-1;
Glib_FilledRectangle(262,434,390,454,0xffff); //修改显示位置
output_DTC(((DTC[i]>>8)&0xffff),262,434);
}
if(discount == dtctime*dtccount)
discount = 0;
}
*/
//////////////////////////////////////////////////////////////////////end of 故障代码显示
/////////////////////行驶里程计算
rec_data.Summile = (float)rec_data.speed / 7200 + rec_data.Summile;
rec_data.show_Summile = Ori_Summile + rec_data.Summile + save_Summile_load;
/////////////////////////////////////////////////////////add 07-03-20
if(rec_data.show_Summile < 0)
rec_data.show_Summile = (-1) * rec_data.show_Summile;
if(rec_data.show_Summile > 1000)
rec_data.show_Summile = (int)rec_data.show_Summile & 0x3ff;
//////////////////////////////////////行驶里程显示
if(rec_data.show_Summile != save_data.Summile )
{
display_number_float(save_data.Summile,rec_data.show_Summile,429,356,0xFFFF);
save_data.Summile = rec_data.show_Summile;
}
/////////////////////END OF 行驶里程
}
void DTC1_Show(void)
{//Uart_SendString("deal with bitmap dtc1-dtci\n");
Glib_FilledRectangle(262,434,390,454,0xffff);
if(dtccount > 0)
{
if(discount < dtccount)
{
output_DTC(((DTC[0][discount]>>8)&0xffff),262,434);
//output_number(DTC[1][discount],290,425,0xffff);
discount++;
}
if(discount == dtccount)
discount = 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -