#ifndef __MXC_METER_H__ #define __MXC_METER_H__ typedef void (*btn_event_func)(lv_obj_t *obj); #define LV_KEY_Q 113 #define LV_KEY_W 10 /*****************************发电机仪表面板******************************/ //liulin 2024.3.5 用于发电机项目切换各个界面 typedef enum _ENUM_CONTROL_WIN_ID_GTOR { GTOR_MAINUI_WIN_ID, GTOR_SUBUI_GTOR_WIN_ID, GTOR_SUBUI_ERROR_WIN_ID }ENUM_CONTROL_WIN_ID_GTOR; #pragma pack(1) //上传实时数据 typedef struct { uint16_t mCurrent; //电流大小(放大了64倍) uint16_t mVoltage; //电压大小 (放大了64倍) int16_t mPercent; //负载百分比(低15位有效) uint16_t mEngine_speed; //发动机转速 uint16_t mInverter_Errcode; //逆变器错误代码 uint8_t mInverter_Status; //逆变器状态 uint16_t mInverter_type; //逆变器类型 uint16_t mInverter_Volt; //逆变器电压 uint16_t mInverter_Freq; //频率信息 1=50/60Hz 2=50Hz 3=60Hz uint16_t mInverter_Custom; //客户信息 uint16_t mInverter_Software; //软件版本 uint16_t mInverter_Hardware; //硬件版本 uint16_t mRelease_Year; //程序发行时间 年 uint16_t mRelease_Month; //程序发行时间 月(低8位有效) uint16_t mRelease_Date; //程序发行时间 日(低8位有效) int16_t MCUTemper; //单片机内部温度 int16_t IGBTTemper; //IGBT温度 uint16_t DCBusVolt; //直流母线电压 uint16_t ActualFreq; //当前交流输出实际频率 uint16_t ReverseDragErrCode; //反拖故障代码 }DataParse, *pDataParse; //UI显示需要的数据 typedef struct { float mPowerValue; //功率值 float mVoltValue; //电压值 float mCurrentValue; //电流值 int mRunTime; //运行时间 int mLeftTime; //剩余时间 int mTotalTime; //累计时间 int mOilValue; //油量值 uint8_t mBTFlag; //蓝牙标记 uint8_t mErrFlag; //故障标记 uint8_t mPowerFlag; //充电状态标记 uint8_t mFreqValue; //频率显示 float mPercentValue; //负载百分比 uint16_t mEngineSpeed; //转速 uint8_t mFuelType; //燃油类型 }UIData_t, *pUIData; //控制器上传数据帧结构 typedef struct { uint16_t mEngineSpeed; //发动机转速 uint16_t mVoltAge; //电压 uint16_t mCurrent; //电流 uint16_t mPercent; //负载百分比 uint16_t mErrCode; //故障代码 uint16_t mStatus; //状态指示 uint16_t mInverterType; //逆变器类型 uint16_t mInverterData; //逆变器常规数据 uint16_t mCylinderTemp; //缸温 uint16_t mRevDragStartUP; //反拖启动次数 uint16_t mRevDragErrCode; //反拖故障代码 }UpLoadData_t, *pUpLoadData; //仪表下发命令或实时数据应答帧结构 typedef struct { uint8_t mDownLoadCommand; //下发命令码/固定标记 uint8_t mInverterStatus; //逆变器命令状态 uint8_t mStartStopCommand; //启停命令 }DownLoadData_t, *pDownLoadData; //逆变器故障代码 typedef struct { uint8_t mDCBusHigh; uint8_t mDCBusLow; uint8_t mOutVoltHigh; uint8_t mOutVoltLow; uint8_t mIGBTTempHigh; uint8_t mOutOverCurrent; uint8_t mEngineSpeedLoss; uint8_t mMCUTempHigh; uint8_t mHPeakcurrentProtect; uint8_t mReferVoltErr; }InverterErr, *pInverterErr; //逆变器状态指示 typedef struct { uint8_t mFreqSwitchingStatus; uint8_t mResetSwitchStatus; uint8_t mHAndLSpeedSwitchStatus; uint8_t mFaultLightStatus; uint8_t mWorkLightStatus; uint8_t mBattleChargeState; uint8_t mFuelType; }InverterStatus, *pInverterStatus; //逆变器类型 typedef struct { float mPower; float mVolt; uint8_t mFreq; //1=50/60Hz 2=50Hz 3=60Hz char chCustom[10]; //客户信息 char chSoft[10]; //软件版本号 char chHard[10]; //硬件版本号 //stTime_type ReleaseTime; //程序发行时间 }InverterType, *pInvertertype; //逆变器常规数据 typedef struct { int16_t MCUTemper; //单片机内部温度 int16_t IGBTTemper; //IGBT温度 uint16_t BusVolt; //直流母线电压 uint16_t ACFreq; //当前交流输出频率 }InverterData_t, *pInverterData; //反拖故障代码 typedef struct { uint8_t LowVoltProtect; //低压保护 uint8_t SoftCurrentProtect; //软件电流保护 uint8_t HardCurrentProtect; //硬件电流保护 uint8_t LockedRotorProtect; //堵转保护 uint8_t PeakOvercurrentProtect; //峰值过流保护 uint8_t TemperFault; //温度故障 uint8_t IgnitionFailure; //点火失败 uint8_t OverVoltProtect; //过压保护 uint8_t OilMalfunction; //机油故障 }ReverseDragErr, *pReverseDragErr; //用户数据结构体,最外层结构体 typedef struct { UIData_t uiData; //MainUI界面需要的数据 UpLoadData_t upLoadData; //控制器上传数据 InverterData_t inverterData; //逆变器常规数据 }UserData_t, *pUserData; #pragma pack() extern UserData_t g_UserData; //extern UpLoadData_t g_DataFromDrv; //extern UIData_t g_DataForMainUI; //extern InverterData_t g_InverterData; /*****************************机车仪表面板******************************/ typedef enum _ENUM_CONTROL_WIN_ID { IDLE_CONTROL_WIN_ID, // 0, PAGE_MAINMENU_WIN_ID, // SUBMENU_SET_THEME, SUBMENU_SET_LIGHT, // SUBMENU_SET_BLUETOOTH, // 4 SUBMENU_SET_OTHER, SUBMENU_SET_INFORMATION, SUBMENU_SET_PRESSURE, // SUBMENU_SET_FAULT_CODE, //8 SUBMENU_THEME_SELECT, SUBMENU_THEME_BG, SUBMENU_OTHER_TIME, SUBMENU_OTHER_LANGUAGE, SUBMENU_OTHER_UINT, // 13 MOTO_WIN_ID_MAX, } ENUM_CONTROL_WIN_ID; typedef struct { uint8_t engine; //���������� uint8_t machine_oil; //���ͱ��� uint8_t abs; //abs������ uint8_t tcs; //tcsǣ����ϵͳ uint8_t fan; //���� uint8_t null; //�յ� }warning_t; typedef struct { uint16_t ucYear; uint8_t ucMonth; uint8_t ucDate; uint8_t ucHour; uint8_t ucMinute; uint8_t ucSecond; }stTime_type; typedef struct { uint8_t factory_reset; //�������� uint8_t language; //���� uint8_t display_uint; //��λ uint8_t theme; //��ǰ���� uint8_t theme_state; //����״̬ uint8_t light_value; //���� uint8_t bt_on_off; //���� uint8_t bt_state; //״̬ }save_info_t; typedef struct { uint8_t softwar_host; //���汾�� uint8_t softwar_order; //�ΰ汾�� uint8_t ui_page_id; //time stTime_type time; save_info_t save_info; uint8_t veer; //ת�� uint8_t veer_hint; //ת����ʾ uint8_t lamplight; //�ƹ� uint8_t power_on_self_test; //�����Լ� uint8_t light_perception_value; //������� uint8_t light; //�����light_valueֵ uint8_t return_demo; uint16_t velocity; //�ٶ� uint16_t veer_velocity; //ת�� uint8_t grade; //��λ uint8_t oil; //���� uint8_t temp; //�¶� double trip_mileage; //С������� uint32_t total_mileage; //�ܼ������ double voltage; //��ص�ѹ warning_t warning; //����ͼ�� uint16_t max_velocity; //���ʱ�� uint16_t verage_velocity; //ƽ��ʱ�� char uuid[32]; char bt_name[32]; uint32_t now_defect_code; //��ǰ������ uint32_t his_defect_code; //��ʷ������ uint8_t ttrb; //��������Ƿ��ȡ��ʱ��ı�־ uint8_t ttrb_time; //��ʩʱ������Ƿ���������ʱ��ı�־ uint8_t odo_reset; //С�������������Ƿ���������ʱ��ı�־ uint8_t demo_position; //�Ƿ���demoչʾ����ı�־ uint16_t plan; //�����ܽ��ȱ�־ uint16_t pace; //�����ֽ��ȱ�־ uint8_t upgrade; //�����ڴ濽����־ }daily_data_t; extern daily_data_t custom_data; daily_data_t *daily_get_UiData(void); ENUM_CONTROL_WIN_ID get_top_history_win(void); void Set_UI_page_id(ENUM_CONTROL_WIN_ID id); void system_date_init(void); void updateCurTime(); stTime_type * getCurrentTime(); daily_data_t* GetDailyData(void); char * GetCurTimeString(); #endif