MXC_A39_20240320/MXC-A39/lv_user_code/include/mxc_meter.h

286 lines
8.9 KiB
C
Raw Permalink 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.

#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; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t machine_oil; //<2F><><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD>
uint8_t abs; //abs<62><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t tcs; //tcsǣ<73><C7A3><EFBFBD><EFBFBD>ϵͳ
uint8_t fan; //<2F><><EFBFBD><EFBFBD>
uint8_t null; //<2F>յ<EFBFBD>
}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; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t language; //<2F><><EFBFBD><EFBFBD>
uint8_t display_uint; //<2F><>λ
uint8_t theme; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
uint8_t theme_state; //<2F><><EFBFBD><EFBFBD>״̬
uint8_t light_value; //<2F><><EFBFBD><EFBFBD>
uint8_t bt_on_off; //<2F><><EFBFBD><EFBFBD>
uint8_t bt_state; //״̬
}save_info_t;
typedef struct
{
uint8_t softwar_host; //<2F><><EFBFBD><EFBFBD><E6B1BE>
uint8_t softwar_order; //<2F>ΰ汾<CEB0><E6B1BE>
uint8_t ui_page_id;
//time
stTime_type time;
save_info_t save_info;
uint8_t veer; //ת<><D7AA>
uint8_t veer_hint; //ת<><D7AA><EFBFBD><EFBFBD>ʾ
uint8_t lamplight; //<2F>ƹ<EFBFBD>
uint8_t power_on_self_test; //<2F><><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>
uint8_t light_perception_value; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t light; //<2F><><EFBFBD><EFBFBD><EFBFBD>light_valueֵ
uint8_t return_demo;
uint16_t velocity; //<2F>ٶ<EFBFBD>
uint16_t veer_velocity; //ת<><D7AA>
uint8_t grade; //<2F><>λ
uint8_t oil; //<2F><><EFBFBD><EFBFBD>
uint8_t temp; //<2F><EFBFBD>
double trip_mileage; //С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint32_t total_mileage; //<2F>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double voltage; //<2F><>ص<EFBFBD>ѹ
warning_t warning; //<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
uint16_t max_velocity; //<2F><><EFBFBD>ʱ<EFBFBD><CAB1>
uint16_t verage_velocity; //ƽ<><C6BD>ʱ<EFBFBD><CAB1>
char uuid[32];
char bt_name[32];
uint32_t now_defect_code; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint32_t his_defect_code; //<2F><>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t ttrb; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ȡ<EFBFBD><C8A1>ʱ<EFBFBD><CAB1>ı<EFBFBD>־
uint8_t ttrb_time; //<2F><>ʩʱ<CAA9><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ı<EFBFBD>־
uint8_t odo_reset; //С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ı<EFBFBD>־
uint8_t demo_position; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>demoչʾ<D5B9><CABE><EFBFBD><EFBFBD>ı<EFBFBD>־
uint16_t plan; //<2F><><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD>ȱ<EFBFBD>־
uint16_t pace; //<2F><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD>ȱ<EFBFBD>־
uint8_t upgrade; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڴ濽<DAB4><E6BFBD><EFBFBD><EFBFBD>־
}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