MXC-A36_2024.04.18/fr3092_lvglcode/lv_user_code/app/mxc_meter.c~

285 lines
6.8 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "lvgl.h"
#include "img_def.h"
#include "mxc_meter.h"
#include "moto_list.h"
Local_UiCommon_t local_UiCommon = {0};
daily_data_t custom_data;
lv_coord_t child_id = 0;
daily_data_t *daily_get_UiData(void)
{
return &custom_data;
}
Local_UiCommon_t *local_get_UiCommon(void)
{
return &local_UiCommon;
}
ENUM_CONTROL_WIN_ID get_top_history_win(void) //get lastest win_id history record
{
// Local_UiCommon_t *local_common = local_get_UiCommon();
// for(uint8_t i=0; i<HISTORY_WIN_LEVEL;i++)
// {
// if(local_common->page_record[HISTORY_WIN_LEVEL-1-i].flag)
// {
// printf("get_top_history_win i: %d win_id %d \r\n",\
// HISTORY_WIN_LEVEL-1-i,local_common->page_record[HISTORY_WIN_LEVEL-1-i].win_id);
// return local_common->page_record[HISTORY_WIN_LEVEL-1-i].win_id;
// }
//
// }
return 0;
}
void Set_UI_page_id(ENUM_CONTROL_WIN_ID id)
{
printf("Set_UI_page_id: %d \r\n",id);
daily_get_UiData()->ui_page_id = id;
}
ENUM_CONTROL_WIN_ID Get_UI_page_id(void)
{
return daily_get_UiData()->ui_page_id;
}
lv_coord_t get_child_id()
{
return child_id;
}
void set_child_id(lv_coord_t id)
{
child_id = id;
}
void set_win_history_record(ENUM_CONTROL_WIN_ID page_id, uint32_t id)
{
Local_UiCommon_t *local_common = local_get_UiCommon();
for(uint8_t i=0; i<HISTORY_WIN_LEVEL;i++)
{
if(false==local_common->page_record[i].flag)
{
local_common->page_record[i].flag=true;
local_common->page_record[i].win_id=page_id;
local_common->page_record[i].index=id;
return;
}
}
}
uint32_t get_win_history_record(ENUM_CONTROL_WIN_ID page_id)
{
Local_UiCommon_t *local_common = local_get_UiCommon();
uint32_t id=0xff;
for(uint8_t i=0; i<HISTORY_WIN_LEVEL;i++)
{
if(local_common->page_record[HISTORY_WIN_LEVEL-1-i].flag
&& (uint8_t)page_id== local_common->page_record[HISTORY_WIN_LEVEL-1-i].win_id)
{
id=local_common->page_record[HISTORY_WIN_LEVEL-1-i].index;
set_child_id(id);
return id;
}
}
set_child_id(id);
return id;
}
bool get_win_history_record_flag(ENUM_CONTROL_WIN_ID page_id)
{
Local_UiCommon_t *local_common = local_get_UiCommon();
bool flag=false;
uint8_t id=0;
for(uint8_t i=0; i<HISTORY_WIN_LEVEL;i++)
{
if((uint8_t)page_id== local_common->page_record[HISTORY_WIN_LEVEL-1-i].win_id)
{
flag=local_common->page_record[HISTORY_WIN_LEVEL-1-i].flag;
return flag;
}
}
return flag;
}
void app_menu_comm_entry(lv_obj_t * obj, ENUM_CONTROL_WIN_ID win_id, bool register_encode)
{
Set_UI_page_id(win_id); //set win id
if(get_win_history_record_flag(win_id))
{
set_child_id(get_win_history_record(win_id)); //get record
}
else {
set_win_history_record( win_id, 0);
set_child_id(0);
}
// if(register_encode){
// do_register_obj_encode_group(obj);
// }else{
// do_unregister_encode_group();
// }
}
//<2F><><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>
void system_date_init(void){
custom_data.softwar_host = 0;
custom_data.softwar_order = 1;
custom_data.save_info.language = 0;
custom_data.save_info.display_uint = 0;
custom_data.save_info.theme = 0;
custom_data.save_info.theme_state = 1;
custom_data.save_info.light_value = 3;
custom_data.save_info.bt_on_off = 1;
custom_data.save_info.bt_state = 0;
custom_data.veer = 0;
custom_data.veer_hint = 0;
custom_data.lamplight = 0;
custom_data.power_on_self_test =0;
if(custom_data.light_perception_value == 0)
custom_data.light_perception_value=44;
custom_data.light = 5;
custom_data.return_demo = 0;
//<2F>ٶ<EFBFBD> ת<><D7AA>
custom_data.velocity = 0;
custom_data.veer_velocity = 0;
custom_data.grade = 0;
custom_data.oil = 0;
custom_data.temp = 0;
custom_data.trip_mileage = 0;
custom_data.total_mileage = 0;
custom_data.voltage =0;
custom_data.warning.engine = 0;
custom_data.warning.machine_oil = 0;
custom_data.warning.abs = 0;
custom_data.warning.tcs = 0;
custom_data.warning.fan = 0;
custom_data.warning.null = 0;
custom_data.now_defect_code = 0x2255;
custom_data.his_defect_code = 0x400;
custom_data.ttrb = 0;
custom_data.ttrb_time = 10;
custom_data.odo_reset = 10;
custom_data.demo_position = 0;
custom_data.plan = 0;
custom_data.pace = 0;
custom_data.upgrade = 0;
}
void updateCurTime(){
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
struct tm CurTime={0};
_getsystime(&CurTime);
custom_data.time.ucDate = CurTime.tm_mday;
custom_data.time.ucYear = CurTime.tm_year;
custom_data.time.ucMonth = CurTime.tm_mon;
custom_data.time.ucHour = CurTime.tm_hour;
custom_data.time.ucMinute = CurTime.tm_min;
custom_data.time.ucSecond = CurTime.tm_sec;
}
stTime_type * getCurrentTime(){
updateCurTime();
return &(custom_data.time);
}
daily_data_t* GetDailyData(void)
{
return &custom_data;
}
const char digitalArray[10] = "0123456789";
static char sCurTime[6] = {0};
extern stTime_type * getCurrentTime();
char * GetCurTimeString(){
updateCurTime();
sCurTime[0] = digitalArray[custom_data.time.ucHour/10];
sCurTime[1] = digitalArray[custom_data.time.ucHour%10];
sCurTime[2] =':';
sCurTime[3] = digitalArray[custom_data.time.ucMinute/10];
sCurTime[4] = digitalArray[custom_data.time.ucMinute%10];
return sCurTime;
}
#define DEF_DATE_YEAR 2024
#define DEF_DATE_MONTH 2
#define DEF_DATE_DAY 3
void InitSysDateTime(void)
{
GetSysDateTime(DEF_DATE_YEAR, DEF_DATE_MONTH, DEF_DATE_DAY);
}
void GetSysDateTime(uint16_t year, uint8_t month, uint8_t day)
{
custom_data.time.ucYear = year;
custom_data.time.ucMonth = month;
custom_data.time.ucDate= day;
custom_data.time.ucHour=5;
custom_data.time.ucMinute=59;
custom_data.time.ucSecond=50 ;
}
void UpdateSysTime(void)
{
bool time_12_is_am=false;
if(++custom_data.time.ucSecond>=60)
{
custom_data.time.ucSecond = 0;
if(++custom_data.time.ucMinute>=60)
{
custom_data.time.ucMinute = 0;
if(++custom_data.time.ucHour>=12)
{
if(time_12_is_am)
{
custom_data.time.ucDate++;
time_12_is_am=0;
}else{
time_12_is_am=1;
}
custom_data.time.ucHour = 0;
}
}
}
//UpdatePace();
printf("%04d-%d%d-%d%d %d%d:%d%d.%d%d\n",
custom_data.time.ucYear,custom_data.time.ucMonth/10,custom_data.time.ucMonth%10,
custom_data.time.ucDate/10,custom_data.time.ucDate%10,
custom_data.time.ucHour/10,custom_data.time.ucHour%10,
custom_data.time.ucMinute/10,custom_data.time.ucMinute%10,
custom_data.time.ucSecond/10,custom_data.time.ucSecond%10);
}