⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eeb.h

📁 基于ARM平台的控制系统,自己带有MINIGUI,可以直接在VC下运行界面演示程序
💻 H
字号:
#ifndef __EEB_GLOBAL_H__
#define __EEB_GLOBAL_H__

#include <stdio.h>
#include "Glib.h"
#include "Wnd.h"
#include "ppButton.h"
#include "ppMenu.h"
#include "DateTime.h"
#include "ppCalendar.h"
#include "ppListView.h"
#include "ppMessageBox.h"
#include "eeb_HardWare.h"

/////////////////////////////////////
typedef enum _STRINGID_{
	strCompressor = 0,
		strCompressor_NowOn,	//"压 缩 机: 正在运行"
		strCurrentRelay,		//"对应触点:"
		strStartWndTitle,		//"BOHN双吸气并联压缩机组"
		strStartWndModel,		//"BMS-C-345L/240M"
		strStartWndProjectUse,	//"潍坊市圣荣精品超市"
		strStartWndProducerInfo,//"制造商:西克制冷(无锡)\n电话 021-62694857"
		strStartWndLowSuckTemp,	//"低温饱和吸气温度"
		strStartWndMidSuckTemp,	//"中温饱和吸气温度"
		strStartWndCoolerTemp,	//"冷凝器温度"
		strStartWndLTLTemp,		//"低温供液温度"
		strStartWndEnter,		//"进入"
		////////////////////////////////////
		strSOKBPleaseInputPassword,//"请输入密码"
		strSOKBPasswrokErr,			//"密码错误"
		strSOKBReinputPassword,		//"请重新输入正确的密码以进入系统!"
		strSOKBClear,				//"清除"
		strSOKBOK,					//"确定"
		////////////////////////////////////
		strMenuLT,					//"低温压缩机"
		strMenuMT,					//"中温压缩机"
		strMenuCooler,				//"冷凝器"
		strMenuColder,				//"过冷器"
		strMenuWaring,				//"报警"
		strMenuSensor,				//"传感器"
		strMenuPassword,			//"密码"
		strMenuComm,				//"通讯"
		strMenuHis,					//"历史纪录"
		strMenuDisplay,				//"显示"
		strMenuRepair,				//"维修模式"
		strMainControlPanel,		//"主菜单"
		strLanguageSet,				//"语言设置"
		////////////////////////////////////
		strSuctionPress,			//吸气压力
		strSuctionPressRange,		//吸气压力调节带宽
		strCompStartDelay,			//压缩机开始延时
		strCompStopDelay,			//压缩机停止延时
		strCurSucPress,				//当前吸气压力
		strCoolerTemp,				//
		strLiqTemp,					//供液温度
		strAirTemp,					//排气温度
		strOverHotTemp,				//过热度

		strCondenserPress,			//冷凝器压力设置
		strCondenserPressRange,		//压力调节带宽
		strFanStartDelay,			//风扇开机延时
		strFanStopDelay,			//风扇关机延时
		strInValidInputWarnning,	//请输入%5.2f至%5.2f之间的数据
		strInValidInputCap,			//输入数据超出范围
		strMSGBOX_OK,				// 确 定 

		strUserPass,
		strAdminPass,				//维修员

		strUser,
		strAdmin,

		strUserDesc,				//管理员可以执行日常系统控制,维护,日志察看等基本操作
		strAdminDesc,				//维修员可以执行维修模式,系统设定等高级操作
		
		strInputOldPass,			//请输入管理员旧密码
		strInputNewPass,			//请输入管理员新密码
		strInputNewPassAgain,		//请再输入一遍
		strPassChangeOK,			//管理员密码已更改
		strPassChangeOKCap,			//提示
        ///////////////////////////////////////////////////
        //维修模式
        strFixTempIn0,
        strFixTempIn1,
        strFixTempIn2,
        strFixTempIn3,
        strFixPressIn0,
        strFixPressIn1,
        strFixPressIn2,
        strFixPressIn3,
        strFixDI0,
        strFixDI1,
        strFixDI2,
        strFixDI3,
        strFixDI4,
        strFixDI5,
        strFixDI6,
        strFixDI7,
        strFixDO0,
        strFixDO1,
        strFixDO2,
        strFixDO3,
        strFixDO4,
        strFixDO5,
        strFixDO6,
        strFixDO7,
        strFixDO8,
        strFixDO9,
        strFixDO10,
        strFixDO11,
        strFixDO12,
        strFixDO13,
        strFixDO14,
        strFixDO15,
        _MAX_STRING_
}STRINGID;

typedef struct _LANG_
{
	const char * strName;
}LANG;

#define LANGUAGE_CHINESE		0
#define LANGUAGE_ENGLISH		1

const char * GetStringResource(STRINGID nIndex);
void SetLanguage(int nLanguage);
LANG* GetLanguage(int nLanguage=-1);

enum{
	emGuess = 0,
	emUser,
	emAdmin,
};
#define USR_INI_PASS0	123456
#define USR_INI_PASS1	654321
class User{
public:
	int w_nPass[2];
	int w_nUser;
	int CheckUser(int nPassword)
	{
		int nUser;
		// 注意,下面两个判断的顺序不可颠倒,以保证在两个密码相同的情况下可以进入Admin状态
		if(w_nPass[1] == nPassword )
		{
			nUser = emAdmin;
		}else if(w_nPass[0] == nPassword)
		{
			nUser = emUser;
		}else
		{
			nUser = emGuess;
		}
		return nUser;
	}
	User(void)
	{
		w_nUser = emGuess;
		if(!LoadPass())
		{
			w_nPass[1] = USR_INI_PASS1;
			w_nPass[0] = USR_INI_PASS0;
		}
	}
	int SavePass(void)
	{
		return 1;
	}
	int LoadPass(void)
	{
		return 0;
	}
};
extern User * g_pUser;
extern DOPin * g_pDOPin[_MAX_DO_];
class MLString
{
private:
	const char *	w_str;
	STRINGID		w_ResID;
public:	
	MLString()
	{
		w_str = NULL;
		w_ResID = (STRINGID)-1;
	}

	void Set(STRINGID nResID)
	{
		w_ResID = nResID;
	}
	void Set(const char *str)
	{
		w_str = str;
		w_ResID = (STRINGID)-1;
	}
	const char * Get(void)
	{
		if(w_ResID>=0)
		{
			return GetStringResource(w_ResID);
		}
		return w_str;
	}
};


class WaringListNode:public CLinkListNode
{
public:
    int     w_nWarnSource;      // 报警源
    int     w_nWarningID;       // 报警事件
    NANA_DATE    w_Date;             // 报警日期 
    NANA_TIME    w_Time;             // 报警时间
    // Note: nBuffSize is byte size!!!
    virtual char * GetNodeDataFieldString(int nFieldIndex,char * pBuffer,int nBuffSize)
    {
        DEBUG_Assert(nBuffSize>20);
        switch(nFieldIndex) {
        case 0: // Warning ID
            sprintf(pBuffer,"ID %d",w_nWarningID);
        	break;
        case 1: // Warning Source
            sprintf(pBuffer,"Source %d",w_nWarnSource);
            break;
        case 2: // Time
            sprintf(pBuffer,"%d/%d/%d::%d:%d",w_Date.uMonth,w_Date.uDay,w_Date.uYear,w_Time.uHour,w_Time.uMin);
            break;
        default:
            sprintf(pBuffer,"Invalid data!");
            break;
        }
        return pBuffer;
    }
    WaringListNode(void)
    {
    }
};

class WarningList:public CLinkList 
{
public:
    void Initial(void)
    {
        WaringListNode * pNode;
       
#ifdef WIN32
        // load from the ini file
        int i;

        for(i=0;i<100;i++)
        {
            pNode = new WaringListNode;
            pNode->w_nWarnSource = 1;
            pNode->w_nWarningID = i;
            pNode->w_Date.uYear = 2002;
            pNode->w_Date.uMonth = 2;
            pNode->w_Date.uDay = 2;
            pNode->w_Time.uHour = 12;
            pNode->w_Time.uMin = 30; 
            pNode->w_Time.uSec = 59;
            Append(pNode);
        }
#else
        // load from the E2Rom
#endif
    }
};
extern WarningList * g_pWarningList;

#define MAX_COOLER			4
#define MAX_LOW_COMPRESSOR	4
#define MAX_MID_COMPRESSOR	4
#define MAX_PRESS_SENSOR	4
#define MAX_NTC_SENSOR		4
#define MAX_DI				8

///////////////////////////////////////////////////////////////////////////
// 冷凝器设定
typedef struct _COOLER_SETTING_{
	char w_cStartDelay;		// 冷凝器开延时
	char w_cStopDelay;		// 冷凝器关延时
	float w_fPressSet;		// 冷凝器设置温度
	float w_fPressBand;		// 冷凝器设置带宽
}COOLER_SETTING;
///////////////////////////////////////////////////////////////////////////
// 中温压缩机设定
typedef struct _MID_COMP_SETTING_{
	float	w_fSuckPress;		//吸气压力设置	
	float	w_fSuckPressBand;	//吸气压力调节带宽
	char w_cStartDelay;			// 开延时
	char w_cStopDelay;			// 关延时
}MID_COMP_SETTING;

///////////////////////////////////////////////////////////////////////////
// 低温压缩机设定
typedef struct _LOW_COMP_SETTING_{
	float	w_fSuckPress;		//吸气压力设置	
	float	w_fSuckPressBand;	//吸气压力调节带宽
	char w_cStartDelay;			// 开延时
	char w_cStopDelay;			// 关延时
}LOW_COMP_SETTING;

/////////////////////////////////////////////////////////////////////////
// 系统信息
typedef struct _SYSINFO_
{
	int w_Language;
	
	SYSCONNECT w_SysConnect;
	COOLER_SETTING w_CoolerSetting;
	MID_COMP_SETTING w_MidCompSetting;
	LOW_COMP_SETTING w_LowCompSetting;
}SYSINFO;

// 系统设置参数
extern SYSINFO				g_SysInfo;

#include "eeb_SoftKeyBoard.h"

///////////////////////////////////
// 全局软键盘和对话框
extern NANA_SoftKeyBoard *	pSOKB;
extern NANAMessageBox	  * pMSGBOX;			

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -