562 lines
15 KiB
C
562 lines
15 KiB
C
|
#include "lvgl.h"
|
|||
|
#include "img_def.h"
|
|||
|
#include "mxc_meter.h"
|
|||
|
#include "moto_list.h"
|
|||
|
#include "mx_store.h"
|
|||
|
#include "mx_alternator_data.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)
|
|||
|
{
|
|||
|
printf("Get_UI_page_id >>>>>>>>>>>>>>>> %d .\r\n",Get_UI_page_id());
|
|||
|
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();
|
|||
|
// }
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
#if 0
|
|||
|
SysData_t UserData;
|
|||
|
|
|||
|
void SystemDate_Init(void)
|
|||
|
{
|
|||
|
UserData.mSoftMainVersion = 0; //主版本号
|
|||
|
UserData.mSoftSubVersion = 0; //次版本号
|
|||
|
//uint8_t bt_name[BT_NAME_MAX_LEN];
|
|||
|
UserData.mSetMode = 0; //高字节 SET 1 为短按 2为长按 低字节 MODE 1 为短按 2为长按
|
|||
|
UserData.mSpeed = 0; //速度信息
|
|||
|
UserData.mGearInfo = 0; //档位信息
|
|||
|
UserData.mTotalMile = 0; //总计里程
|
|||
|
UserData.mTripMile = 0; //单次行驶里程
|
|||
|
UserData.mMileClearTags = 0; //小计里程清零标志
|
|||
|
UserData.mWifi = 0; //WIFI
|
|||
|
UserData.mBlueTooth = 0; //蓝牙
|
|||
|
UserData.mTurn = 0; //转向 0-无 1-左转 2-右转
|
|||
|
UserData.mTurnPrompt = 0; //转向提示 0无 1左 2右
|
|||
|
UserData.mTurnLight = 0; //转向灯 0-无 1-左转向灯 2-右转向灯
|
|||
|
UserData.mBeamLight = 0; //灯光 0-无灯光 1-远光 2-近光 3-自动大灯
|
|||
|
UserData.mSideMarkerLight = 0; //示宽灯 0-无灯光 1-示宽灯
|
|||
|
UserData.mFanLight = 0; //风扇灯 0-无灯光 1-灯亮
|
|||
|
UserData.mABSLight = 0; //0-无灯光 1-灯亮
|
|||
|
UserData.mOilPressLight = 0; //机油压力报警灯 0-无灯光 1-灯亮
|
|||
|
UserData.mEngineLight = 0; //0-无灯光 1-灯亮
|
|||
|
UserData.mRefreshTags = 0; //0-无刷新 1-油量/水温/电池电压刷新标志
|
|||
|
|
|||
|
UserData.mLightValue = 0; //灯光亮度,具体的light_value值
|
|||
|
UserData.mSelfCheck = 0; //开机自检
|
|||
|
UserData.mLightSensingVolt = 0; //光感电压值 (暂定范围0-3300)
|
|||
|
|
|||
|
UserData.return_demo = 0; //????
|
|||
|
memcpy(&UserData.mUuid, 0, 32*sizeof(char));
|
|||
|
memcpy(&UserData.mBT_name, 0, 32*sizeof(char));
|
|||
|
//UserData.mUuid[32] = {0};
|
|||
|
//UserData.mBT_name[32] = {0};
|
|||
|
UserData.mCurrentFaultCode = 0; //当前故障码
|
|||
|
UserData.mHistoryFaultCode = 0; //历史故障码
|
|||
|
|
|||
|
UserData.mBTData_Inherit = 0; //继承的蓝牙数据(保留)
|
|||
|
UserData.mTtrb = 0; //开机检测是否获取到时间的标志
|
|||
|
UserData.mTtrb_Time = 0; //设施时间后检测是否正常设置时间的标志
|
|||
|
UserData.mOdo_Reset = 0; //小计里程清零后检测是否正常设置时间的标志
|
|||
|
UserData.mDemo_Position = 0; //是否在demo展示界面的标志
|
|||
|
|
|||
|
//告警错误
|
|||
|
UserData.mErr.mEngine = 0;
|
|||
|
UserData.mErr.mEngineOil = 0;
|
|||
|
UserData.mErr.mAbs = 0;
|
|||
|
UserData.mErr.mTcs = 0;
|
|||
|
UserData.mErr.mFan = 0;
|
|||
|
UserData.mErr.mNeutralGear = 0;
|
|||
|
UserData.mErr.mWaterTemper = 0;
|
|||
|
UserData.mErr.mBrakesFault = 0;
|
|||
|
|
|||
|
//保存数据
|
|||
|
UserData.mSaveData.mFactorySet = 0; //出厂设置
|
|||
|
UserData.mSaveData.mLanguage = 0; //语言
|
|||
|
UserData.mSaveData.mDisplayUint = 0; //单位
|
|||
|
UserData.mSaveData.mTheme = 0; //当前主题
|
|||
|
UserData.mSaveData.mThemeState = 0; //主题状态
|
|||
|
UserData.mSaveData.mLightValue = 0; //亮度
|
|||
|
UserData.mSaveData.mBT_OnOff = 0; //蓝牙
|
|||
|
UserData.mSaveData.mBT_State = 0; //状态
|
|||
|
UserData.mSaveData.mGearPos = 0; //档位
|
|||
|
UserData.mSaveData.mFuel = 0; //油量
|
|||
|
UserData.mSaveData.mTotalMile = 0; //里程数
|
|||
|
|
|||
|
//时间变量
|
|||
|
UserData.mTime.ucYear = 0;
|
|||
|
UserData.mTime.ucMonth = 0;
|
|||
|
UserData.mTime.ucDate = 0;
|
|||
|
UserData.mTime.ucHour = 0;
|
|||
|
UserData.mTime.ucMinute = 0;
|
|||
|
UserData.mTime.ucSecond = 0;
|
|||
|
|
|||
|
UserData.mPlan = 0; //总进度标志
|
|||
|
UserData.mPace = 0; //分进度标志
|
|||
|
UserData.mUpGrade = 0; //内存拷贝标志
|
|||
|
|
|||
|
//电摩专用属性
|
|||
|
#ifdef _EMOTO_
|
|||
|
UserData.mBatteryRatio = 0; //电池电量占比 1个字节(eg100% 传输64)
|
|||
|
UserData.mBatteryVoltage = 0; //电池电压 (eg3.3V 传输3300)
|
|||
|
#endif
|
|||
|
//油摩专用属性
|
|||
|
#ifdef _OMOTO_
|
|||
|
UserData.mEspeed = 0; //转速信息
|
|||
|
UserData.mFuel = 0; //油量指示
|
|||
|
UserData.mWaterTemper = 0; //水温指示
|
|||
|
UserData.mAccumulatorVolt = 0; //电瓶电压
|
|||
|
#endif
|
|||
|
}
|
|||
|
|
|||
|
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;
|
|||
|
*/
|
|||
|
|
|||
|
UserData.mTime.ucDate = CurTime.tm_mday;
|
|||
|
UserData.mTime.ucYear = CurTime.tm_mday;
|
|||
|
UserData.mTime.ucMonth = CurTime.tm_mday;
|
|||
|
UserData.mTime.ucHour = CurTime.tm_mday;
|
|||
|
UserData.mTime.ucMinute = CurTime.tm_mday;
|
|||
|
UserData.mTime.ucSecond = CurTime.tm_mday;
|
|||
|
}
|
|||
|
|
|||
|
STime_t* getCurrentTime1()
|
|||
|
{
|
|||
|
updateCurTime();
|
|||
|
return &(UserData.mTime);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
SysData_t* GetDailyData1(void)
|
|||
|
{
|
|||
|
return &UserData;
|
|||
|
}
|
|||
|
|
|||
|
const char digitalArray[10] = "0123456789";
|
|||
|
static char StrCurTime[6] = {0};
|
|||
|
extern STime_t * getCurrentTime1();
|
|||
|
|
|||
|
char * GetCurTimeString()
|
|||
|
{
|
|||
|
updateCurTime();
|
|||
|
StrCurTime[0] = digitalArray[UserData.mTime.ucHour/10];
|
|||
|
StrCurTime[1] = digitalArray[UserData.mTime.ucHour%10];
|
|||
|
StrCurTime[2] =':';
|
|||
|
StrCurTime[3] = digitalArray[UserData.mTime.ucMinute/10];
|
|||
|
StrCurTime[4] = digitalArray[UserData.mTime.ucMinute%10];
|
|||
|
return StrCurTime;
|
|||
|
}
|
|||
|
|
|||
|
#define DEF_DATE_YEAR 2024
|
|||
|
#define DEF_DATE_MONTH 1
|
|||
|
#define DEF_DATE_DAY 1
|
|||
|
|
|||
|
void InitSysDateTime(void)
|
|||
|
{
|
|||
|
GetSysDateTime(DEF_DATE_YEAR, DEF_DATE_MONTH, DEF_DATE_DAY);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void GetSysDateTime(uint16_t year, uint8_t month, uint8_t day)
|
|||
|
{
|
|||
|
UserData.mTime.ucYear = year;
|
|||
|
UserData.mTime.ucMonth = month;
|
|||
|
UserData.mTime.ucDate = day;
|
|||
|
UserData.mTime.ucHour = 0;
|
|||
|
UserData.mTime.ucMinute = 0;
|
|||
|
UserData.mTime.ucSecond = 0;
|
|||
|
}
|
|||
|
|
|||
|
void UpdateSysTime(void)
|
|||
|
{
|
|||
|
bool time_12_is_am=false;
|
|||
|
if(++UserData.mTime.ucSecond>=60)
|
|||
|
{
|
|||
|
UserData.mTime.ucSecond = 0;
|
|||
|
if(++UserData.mTime.ucMinute>=60)
|
|||
|
{
|
|||
|
UserData.mTime.ucMinute = 0;
|
|||
|
if(++UserData.mTime.ucHour>=12)
|
|||
|
{
|
|||
|
if(time_12_is_am)
|
|||
|
{
|
|||
|
UserData.mTime.ucDate++;
|
|||
|
time_12_is_am=0;
|
|||
|
}else{
|
|||
|
time_12_is_am=1;
|
|||
|
}
|
|||
|
UserData.mTime.ucHour = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
//UpdatePace();
|
|||
|
printf("%04d-%d%d-%d%d %d%d:%d%d.%d%d\n",
|
|||
|
UserData.mTime.ucYear, UserData.mTime.ucMonth/10, UserData.mTime.ucMonth%10,
|
|||
|
UserData.mTime.ucDate/10, UserData.mTime.ucDate%10,
|
|||
|
UserData.mTime.ucHour/10, UserData.mTime.ucHour%10,
|
|||
|
UserData.mTime.ucMinute/10, UserData.mTime.ucMinute%10,
|
|||
|
UserData.mTime.ucSecond/10, UserData.mTime.ucSecond%10);
|
|||
|
}
|
|||
|
|
|||
|
#else if
|
|||
|
//<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;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
//从存储结构体获取所需数据
|
|||
|
extern Store_t UserData;
|
|||
|
|
|||
|
void DataSyncFromStore(void)
|
|||
|
{
|
|||
|
custom_data.softwar_host = getSoftMainVersion();
|
|||
|
custom_data.softwar_order = getSoftSubVersion();
|
|||
|
|
|||
|
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 = getTurn();
|
|||
|
custom_data.veer_hint = getTurnPrompt();
|
|||
|
custom_data.lamplight = getBeamLight();
|
|||
|
|
|||
|
custom_data.power_on_self_test = getSelfCheck();
|
|||
|
|
|||
|
if(custom_data.light_perception_value == 0)
|
|||
|
custom_data.light_perception_value = getLightSensingVolt();
|
|||
|
|
|||
|
custom_data.light = getLightValue();
|
|||
|
|
|||
|
custom_data.return_demo = 0; //demo返回
|
|||
|
|
|||
|
//<2F>ٶ<EFBFBD> ת<><D7AA>
|
|||
|
custom_data.velocity = getSpeedData();
|
|||
|
custom_data.veer_velocity = getEspeed();
|
|||
|
custom_data.grade = getGearInfo();
|
|||
|
custom_data.oil = getFuel();
|
|||
|
custom_data.temp = getWaterTemper();
|
|||
|
custom_data.trip_mileage = getTripMile();
|
|||
|
custom_data.total_mileage = getTotalMile();
|
|||
|
custom_data.voltage = getAccumulatorVolt();
|
|||
|
|
|||
|
custom_data.warning.engine = getEngineErr();
|
|||
|
custom_data.warning.machine_oil = getEngineOilErr();
|
|||
|
custom_data.warning.abs = getAbsErr();
|
|||
|
custom_data.warning.tcs = getTCSErr();
|
|||
|
custom_data.warning.fan = getFanErr();
|
|||
|
custom_data.warning.null = getNeutralGearErr();
|
|||
|
|
|||
|
custom_data.now_defect_code = getCurrentFaultCode();//0x2255;
|
|||
|
custom_data.his_defect_code = getHistoryFaultCode();//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);
|
|||
|
}
|
|||
|
|
|||
|
#endif
|
|||
|
|
|||
|
|
|||
|
|