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

285 lines
6.8 KiB
C
Raw Permalink Normal View History

#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);
}