增加了全局结构体,将UI定时器函数中全局变量替换成结构体变量

This commit is contained in:
liulin
2024-03-19 11:00:34 +08:00
parent c0b6bd173d
commit d224a48a7f
5 changed files with 375 additions and 58 deletions

View File

@ -6,7 +6,7 @@ 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
{
@ -15,7 +15,156 @@ typedef enum _ENUM_CONTROL_WIN_ID_GTOR
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
{