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

📄 userinterface.c

📁 uCOSII在motorala单片机上的移植
💻 C
📖 第 1 页 / 共 5 页
字号:
*	参数:		没有;
*	返回值:		没有;
*****************************************************************************************************************
*/
void selfCheckProcess()
{
	INT8U totalitems = 11;
	INT8U itemhead = 1;
	INT8U itemrear = 11;
	INT16U msg;
	INT8U *err;
	BOOLEAN loop = TRUE;
	
	displaySelfCheckInfor(itemhead,itemrear,TRUE);
	for(;loop == TRUE;)
	{
		msg = getMessage(err);
		switch(msg)
		{
			case MSG_ENTER:
				loop = FALSE;
				break;
			case MSG_TIME:
				displaySelfCheckInfor(itemhead,itemrear,FALSE);
				break;
			default:
				doNothing();
		}
	}
	return;
}
/*
*****************************************************************************************************************
*	函数名称:	void displaySelfCheckInfor(INT8U itemhead,INT8U itemrear,
*					BOOLEAN paintAll);
*	功能描述:	更新显示自检信息界面的内容;	
*	参数:		itemhead指示界面显示的第一项内容;
*				itemrear指示界面显示的最后一项内容;
*				paintAll指示显示界面是否需要重画;
*	返回值:		没有;
*****************************************************************************************************************
*/
void displaySelfCheckInfor(INT8U itemhead,INT8U itemrear,BOOLEAN paintAll)
{
	INT8U index;
	INT8U buffer[22];
	
	if(paintAll == TRUE)
	{
		for(index = 0; index < 11; index++)
		{
			buffer[0] = '\0';
			strCat(selfcheckinforitems[index],buffer);
			strCat("  ",buffer);
			strCat(selfcheckinfor[index],buffer);
			printString(6,index*13,6,13,0,buffer,TRUE);
		}
		flushBuffer();
	}
	else
	{
		for(index = 0; index < 11; index++)
		{
			printString(72,index*13,6,13,0,selfcheckinfor[index],FALSE);
		}
	}
	
	return;
}
/*
*****************************************************************************************************************
*	函数名称:	void deviceParaProcess();
*	功能描述:	对设备参数显示界面的消息进行处理并显示;	
*	参数:		没有;
*	返回值:		没有;
*****************************************************************************************************************
*/
void deviceParaProcess()
{
	INT8U totalitems = 8;
	INT8U itemselected = 1;
	INT8U itemhead = 1;
	INT8U itemrear = 8;
	INT16U msg;
	INT8U *err;
	BOOLEAN loop = TRUE;
	
	displayDevicePara(itemselected,itemhead,itemrear,MSG_NONE,TRUE);
	for(;loop == TRUE;)
	{
		msg = getMessage(err);
		switch(msg)
		{
			case MSG_RIGHT:
				if(itemselected != totalitems)	//判断最后一项是否被选中;
				{
					itemselected++;
					displayDevicePara(itemselected,itemhead,
						itemrear,MSG_RIGHT,FALSE);
				}
				break;
			case MSG_LEFT:
				if(itemselected != 1)		// 判断第一项是否被选中;
				{
					itemselected--;
					displayDevicePara(itemselected,itemhead,
						itemrear,MSG_LEFT,FALSE);
				}
				break;
			case MSG_ENTER:
				if(itemselected == 8)
				{
					loop = FALSE;
				}
				else
				{
					switch(itemselected)
					{
						case 0x01:
							lineParaProcess();	//线路参数显示界面的处理;
							break;
						case 0x02:
							energyParaProcess();	// 电度量参数显示界面的处理;
							break;
						case 0x03:
							contactorParaProcess();	// 开关量参数显示界面的处理;
							break;
						case 0x04:
							lowsideRangeProcess();	// 二次测量量程显示界面的处理;
							break;
						case 0x05:
							preciseAdjustCoefProcess();	// 精度校正系数显示界面的处理;
							break;
						case 0x06:
							protectiveFunctionProcess();// 保护功能设置显示界面的处理;
							break;
						case 0x07:
							coordinationEventProcess();	//梯形图事件显示界面的处理;
							break;
						default:
							doNothing();
					}
					displayDevicePara(itemselected,itemhead,	// 重画设备参数显示界面;
						itemrear,MSG_NONE,TRUE);
				}
				break;
			default:
				doNothing();
		}	
	} 
	
	return;
}
/*
*****************************************************************************************************************
*	函数名称:	void displayDevicePara(INT8U itemselected, INT8U itemhead, 
*					INT8U itemrear, INT16U msg, BOOLEAN paintAll)
*	功能描述:	更新显示设备参数显示界面的内容;	
*	参数:		itemselected指示被选中的项;
*				itemhead指示界面显示的第一项内容;
*				itemrear指示界面显示的最后一项内容;
*				msg指示选中项被选中发生的条件;
*				paintAll指示显示界面是否需要重画;
*	返回值:		没有;
*****************************************************************************************************************
*/
void displayDevicePara(INT8U itemselected, INT8U itemhead, 
	INT8U itemrear, INT16U msg, BOOLEAN paintAll)
{
	INT8U index;
	
	if(paintAll == TRUE)	// 决定界面是否需要被重画;
	{
		for(index = itemhead; index < (itemrear+1); index++)
		{
			if(index == itemselected)	// 反色显示被选中项;
			{
				printString(0,(index-1)*13,6,13,DISPREVERSE,
					deviceparaitems[index - 1],TRUE);
			}
			else
			{
				printString(0,(index-1)*13,6,13,0,deviceparaitems[index - 1],TRUE);
			}
		}
		flushBuffer();
	}
	else	// 更新显示被选中项,被选中项反色显示;
	{
		if(msg == MSG_RIGHT)
		{
			printString(0,(itemselected - 2)*13,6,13,0,
				deviceparaitems[itemselected-2],FALSE);
		}
		if(msg == MSG_LEFT)
		{
			printString(0,itemselected*13,6,13,0,
				deviceparaitems[itemselected],FALSE);
		}
		printString(0,(itemselected - 1)*13,6,13,DISPREVERSE,
				deviceparaitems[itemselected-1],FALSE);
	}
	
	return;
}
/*
*****************************************************************************************************************
*	函数名称:	void lineParaProcess();
*	功能描述:	对线路参数显示界面的消息进行处理并显示;	
*	参数:		没有;
*	返回值:		没有;
*****************************************************************************************************************
*/
void lineParaProcess()
{
	INT8U totalitems = 13;
	INT8U itemhead = 1;
	INT8U itemrear = 12;
	INT16U msg;
	INT8U *err;
	BOOLEAN loop = TRUE;
	
	displayLinePara(itemhead,itemrear,TRUE);
	for(;loop == TRUE;)
	{
		msg = getMessage(err);
		switch(msg)
		{
			case MSG_RIGHT:	
				if((itemhead == 1)&&(itemrear == 12))
				{
					itemhead = 13;
					itemrear = 13;
					displayLinePara(itemhead,itemrear,TRUE);
				}
				break;
			case MSG_LEFT:
				if((itemhead == 13)&&(itemrear == 13))
				{
					itemhead = 1;
					itemrear = 12;
					displayLinePara(itemhead,itemrear,TRUE);
				}
				break;
			case MSG_TIME:
				displayLinePara(itemhead,itemrear,FALSE);
				break;
			case MSG_ENTER:
				loop = FALSE;
				break;
			default:
				doNothing();
		}
	}
	
	return;
}	
/*
*****************************************************************************************************************
*	函数名称:	void displayLinePara(INT8U itemhead, INT8U itemrear, BOOLEAN paintAll);
*	功能描述:	更新显示线路参数显示界面的内容;	
*	参数:		itemhead指示界面显示的第一项内容;
*				itemrear指示界面显示的最后一项内容;
*				paintAll指示显示界面是否需要重画;
*	返回值:		没有;
*****************************************************************************************************************
*/														
void displayLinePara(INT8U itemhead, INT8U itemrear, BOOLEAN paintAll)
{
	INT8U index;
	INT8U buffer[22];
	
	if(paintAll == TRUE)
	{
		for(index = 0; index < 12; index++)
		{
			if((itemhead+index) <= itemrear)
			{
				buffer[0] = '\0';
				strCat(lineparaitems[index + itemhead - 1],buffer);
				strCat("   ",buffer);
				strCat(linepara[index + itemhead - 1],buffer);
				printString(6,index*13+2,6,13,0,buffer,TRUE);
			}
		}
		flushBuffer();
	}
	else
	{
		for(index = 0; index < 12; index++)
		{
			if((itemhead+index) <= itemrear)
			{
				printString(78,index*13+2,6,13,0,linepara[index +itemhead - 1],FALSE);
			}
		}
	}
	
	return;
}
/*
*****************************************************************************************************************
*	函数名称:	void energyParaProcess();
*	功能描述:	对电度量参数显示界面的消息进行处理并显示;	
*	参数:		没有;
*	返回值:		没有;
*****************************************************************************************************************
*/
void	energyParaProcess()
{
	INT8U totalitems = 5;
	INT8U itemhead = 1;
	INT8U itemrear = 5;
	INT16U msg;
	INT8U *err;
	BOOLEAN loop = TRUE;
	
	displayEnergyPara(itemhead,itemrear,TRUE);
	for(;loop == TRUE;)
	{
		msg = getMessage(err);
		switch(msg)
		{
			case MSG_TIME:
				displayEnergyPara(itemhead,itemrear,FALSE);
				break;
			case MSG_ENTER:
				loop = FALSE;
				break;
			default:
				doNothing();
		}
	}
	
	return;
}
/*
*****************************************************************************************************************
*	函数名称:	void displayEnergyPara(INT8U itemhead, INT8U itemrear, BOOLEAN paintAll);
*	功能描述:	更新电度量参数显示界面的内容;	
*	参数:		itemhead指示界面显示的第一项内容;
*				itemrear指示界面显示的最后一项内容;
*				paintAll指示显示界面是否需要重画;
*	返回值:		没有;
*****************************************************************************************************************
*/		
void displayEnergyPara(INT8U itemhead, INT8U itemrear, BOOLEAN paintAll)	
{
	INT8U index;
	INT8U buffer[22];
	
	if(paintAll == TRUE)
	{
		for(index = 0; index < 5; index++)
		{
			if(index == 0)
			{
				printString(0,index*13+2,6,13,0,energyparaitems[index],TRUE);
			}
			else
			{
				buffer[0] = '\0';
				strCat(energyparaitems[index],buffer);
				strCat("   ",buffer);
				strCat(energypara[(index - 1)*2],buffer);
				strCat("   ",buffer);
				strCat(energypara[(index - 1)*2 + 1],buffer);
				printString(6,index*13+2,6,13,0,buffer,TRUE);
			}
		}
		flushBuffer();
	}
	else
	{
		for(index = 0; index < 4; index++)
		{
			printString(48,13+2 +index*13,6,13,0,energypara[2*index],FALSE);
			printString(90,13 + 2+index*13,6,13,0,energypara[2*index+1],FALSE);
		}
	}
	
	return;
}
/*
*****************************************************************************************************************
*	函数名称:	void contactorParaProcess();
*	功能描述:	对开关量参数显示界面的消息进行处理并显示;	
*	参数:		没有;
*	返回值:		没有;
*****************************************************************************************************************
*/
void	contactorParaProcess()
{
	INT16U msg;
	INT8U *err;
	BOOLEAN loop = TRUE;
	INT8U itemhead = 1;
	INT8U itemrear = 2;
	
	displayContactorPara(itemhead,itemrear,TRUE);
	for(;loop == TRUE;)
	{
		msg = getMessage(err);
		switch(msg)
		{
			case MSG_RIGHT:
				if((itemhead != (CONTACTOR_NUM - 1))&&(itemrear != CONTACTOR_NUM))
				{
					itemhead += 2;
					itemrear += 2;
					displayContactorPara(itemhead,itemrear,TRUE);
				}
				break;
			case MSG_LEFT:
				if((itemhead != 1)&&(itemrear != 2))
				{
					itemhead -= 2;
					itemrear -= 2;
					displayContactorPara(itemhead,itemrear,TRUE);
				}
				break;
			case MSG_ENTER:
				loop = FALSE;
				break;
			default:
				doNothing();
		}
	}
	
	return;
	
	return;
}
/*
*****************************************************************************************************************
*	函数名称:	void displayEnergyPara(INT8U itemhead, INT8U itemrear, BOOLEAN paintAll);
*	功能描述:	更新显示开关量参数显示界面的内容;	
*	参数:		没有
*	返回值:		没有;
*****************************************************************************************************************
*/		
void displayContactorPara(INT8U itemhead,INT8U itemrear,BOOLEAN paintAll)	
{
	INT8U index;
	INT8U loop;
	INT8U buffer[22];
	
	for(loop = 0; loop < 2; loop++)
	{
		buffer[0] = '\0';
		strCat(contactorpara[0],buffer);
		for(index = 0; index < (itemhead + loop); index++)
		{
			if(buffer[3] == '9')
			{
				buffer[2]++;
				buffer[3] = '0';
			}
			else
			{
				buffer[3]++;
			}
		}
		strCat(InputContactors[itemhead+loop-1].ContactorType,buffer);
		printString(0,6+loop*71,6,13,0,buffer,TRUE);
		buffer[0] = '\0';
		strCat(contactorpara[1],buffer);
		strCat(" ",buffer);
		strCat(InputContactors[itemhead+loop-1].StateZeroInfor,buffer);
		printString(0,19+loop*71,6,13,0,buffer,TRUE);
		buffer[0] = '\0';
		strCat(contactorpara[2],buffer);
		strCat(" ",buffer);
		strCat(InputContactors[itemhead+loop-1].StateOneInfor,buffer);
		printString(0,32+loop*71,6,13,0,buffer,TRUE);
		buffer[0] = '\0';
		strCat(contactorpara[3],buffer);
		strCat(" ",buffer);
		strCat(InputContactors[itemhead+loop-1].ConfirmTime,buffer);
		strCat(" ms",buffer);
		printString(0,45+loop*71,6,13,0,buffer,TRUE);
		buffer[0] = '\0';
		strCat(contactorpara[4],buffer);
		strCat(" ",buffer);
		strCat(eventtype[InputContactors[itemhead+loop-1].EventType],buffer);
		

⌨️ 快捷键说明

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