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

286 lines
8.9 KiB
C
Raw Normal View History

2024-03-07 11:03:18 +08:00
#ifndef __MXC_METER_H__
#define __MXC_METER_H__
typedef void (*btn_event_func)(lv_obj_t *obj);
#define LV_KEY_Q 113
2024-03-07 16:46:43 +08:00
#define LV_KEY_W 10
2024-03-07 11:03:18 +08:00
/*****************************发电机仪表面板******************************/
2024-03-07 11:03:18 +08:00
//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;
2024-03-07 11:03:18 +08:00
/*****************************机车仪表面板******************************/
2024-03-07 11:03:18 +08:00
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