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

📄 menuosd.c

📁 菜单结构 菜单结构 菜单结构 菜单结构 菜单结构 菜单结构 菜单结构 菜单结构 菜单结构 菜单结构
💻 C
📖 第 1 页 / 共 5 页
字号:
			else if(i==4)//line 3
				DisplayAnyValue(4,3,(unsigned short)struPS.ucTolerance[Material_No-1],2,0);
		}
}

/*********************************************************************
Function:DH_mDirectionSet的上下动作
flagUpDown 0-Up 1-Down
*********************************************************************/
void DH_mDirectionSet_Action(unsigned char flagUpDown)
{
	switch(CP)
	{
	case 0:
	case 1:
	case 2:
		UpDownValue(&(struDV.usTank_Number),flagUpDown,3-CP,9,0,1);
		Change_DH_mMenu(UI_DH_DirectionSet,1,0);
		break;
	case 3:
		UpDown1bValue(&Material_No,flagUpDown,1,5,1,1);
		Change_DH_mMenu(UI_DH_DirectionSet,2,1);
		break;
	case 4:
	case 5:
	case 6:
	case 7:
		UpDownValue(&(struDV.usDire_MValu[Material_No-1]),flagUpDown,8-CP,9,0,1);
		Change_DH_mMenu(UI_DH_DirectionSet,3,0);
		break;
	}
}

/*********************************************************************
Function:DH_mParameterSet的上下动作
flagUpDown 0-Up 1-Down
*********************************************************************/
void DH_mParameterSet_Action(unsigned char flagUpDown)
{
	switch(CP)
	{
	case 0:
		UpDown1bValue(&Material_No,flagUpDown,1,5,1,1);
		Change_DH_mMenu(UI_DH_ParameterSet,1,0);
		break;
	case 1:
		UpDown1bValue(&(struPS.ucAutoAmend),flagUpDown,1,1,0,1);
		Change_DH_mMenu(UI_DH_ParameterSet,2,0);
		break;
	case 2:
	case 3:
	case 4:
		UpDownValue(&(struPS.usFall[Material_No-1]),flagUpDown,5-CP,9,0,1);
		Change_DH_mMenu(UI_DH_ParameterSet,3,0);
		break;
	case 5:
	case 6:
		UpDown1bValue(&(struPS.ucTolerance[Material_No-1]),flagUpDown,7-CP,9,0,1);
		Change_DH_mMenu(UI_DH_ParameterSet,4,0);
		break;
	}
}

/*********************************************************************
Function:DH_mBalanceCorrection2的上下动作
flagUpDown 0-Up 1-Down
*********************************************************************/
void DH_mBalanceCorrection2_Action(unsigned char flagUpDown)
{
	UpDownValue(&(Weight),flagUpDown,4-CP,9,0,1);
	Change_DH_mMenu(UI_DH_BalanceCorrection2,0,0);
}

/*********************************************************************
Function:DH_mConsumeRecord_Action的上下动作
flagUpDown 0-Up 1-Down
*********************************************************************/
void DH_mConsumeRecord_Action(unsigned char flagUpDown)
{
	UpDown1bValue(&Material_No,flagUpDown,1,5,1,1);
	Change_DH_mMenu(UI_DH_ConsumeRecord,0,0);
}

/*********************************************************************
Function:DH_mDateSet的上下动作
flagUpDown 0-Up 1-Down
*********************************************************************/
void DH_mDateSet_Action(unsigned char flagUpDown)
{
	switch(CP)
	{
	case 0:
	case 1:
		UpDown1bValue(&(struPS.ucDate[0]),flagUpDown,2-CP,9,0,1);
		Change_DH_mMenu(UI_DH_DateSet,1,0);
		break;
	case 2:
		UpDown1bValue(&(struPS.ucDate[1]),flagUpDown,2,1,0,1);
		Change_DH_mMenu(UI_DH_DateSet,2,0);
		break;
	case 3:
		UpDown1bValue(&(struPS.ucDate[1]),flagUpDown,1,9,0,1);
		Change_DH_mMenu(UI_DH_DateSet,2,0);
		break;
	case 4:
		UpDown1bValue(&(struPS.ucDate[2]),flagUpDown,2,3,0,1);
		Change_DH_mMenu(UI_DH_DateSet,3,0);
		break;
	case 5:
		UpDown1bValue(&(struPS.ucDate[2]),flagUpDown,1,9,0,1);
		Change_DH_mMenu(UI_DH_DateSet,3,0);
		break;
	}
}

/*********************************************************************
Function:DH_mTimeSet的上下动作
flagUpDown 0-Up 1-Down
*********************************************************************/
void DH_mTimeSet_Action(unsigned char flagUpDown)
{
	switch(CP)
	{
	case 0:
	case 1:
		UpDown1bValue(&(struPS.ucTime[0]),flagUpDown,2-CP,9,0,1);
		Change_DH_mMenu(UI_DH_TimeSet,1,0);
		break;
	case 2:
	case 3:
		UpDown1bValue(&(struPS.ucTime[1]),flagUpDown,4-CP,9,0,1);
		Change_DH_mMenu(UI_DH_TimeSet,2,0);
		break;
	case 4:
	case 5:
		UpDown1bValue(&(struPS.ucTime[2]),flagUpDown,6-CP,9,0,1);
		Change_DH_mMenu(UI_DH_TimeSet,3,0);
		break;
	}
}

/*********************************************************************
Function:DH_mSetZero的上下动作
flagUpDown 0-Up 1-Down
*********************************************************************/
void DH_mSetZero_Action(unsigned char flagUpDown)
{
	UpDown1bValue(&(struPS.ucSetZeroValue),flagUpDown,2-CP,9,0,1);
	Change_DH_mMenu(UI_DH_SetZero,0,0);
}

/*********************************************************************
Function:DH_mFilterSet的上下动作
flagUpDown 0-Up 1-Down
*********************************************************************/
void DH_mFilterSet_Action(unsigned char flagUpDown)
{
	unsigned char FiltMax;
	if(CP==0)
		FiltMax=1;
	else
		FiltMax=9;
	UpDown1bValue(&(struPS.ucFilterValue),flagUpDown,2-CP,FiltMax,0,1);
	Change_DH_mMenu(UI_DH_FilterSet,0,0);
}

/*********************************************************************
Function:DH_mMaxWeight的上下动作
flagUpDown 0-Up 1-Down
*********************************************************************/
void DH_mMaxWeight_Action(unsigned char flagUpDown)
{
	UpDownValue(&(struPS.usMaxWeight),flagUpDown,4-CP,9,0,1);
	Change_DH_mMenu(UI_DH_MaxWeight,0,0);
}

/*********************************************************************
Function:DH_mMaterialDelayTime的上下动作
flagUpDown 0-Up 1-Down
*********************************************************************/
void DH_mMaterialDelayTime_Action(unsigned char flagUpDown)
{
	UpDown1bValue(&(struPS.ucMaterialDelay),flagUpDown,2-CP,9,0,1);
	Change_DH_mMenu(UI_DH_MaterialDelayTime,0,0);
}

/*********************************************************************
Function:DH_mClickActionTime的上下动作
flagUpDown 0-Up 1-Down
*********************************************************************/
void DH_mClickActionTime_Action(unsigned char flagUpDown)
{
	UpDown1bValue(&(struPS.ucClickActionTime),flagUpDown,2-CP,9,0,1);
	Change_DH_mMenu(UI_DH_ClickActionTime,0,0);
}

/*********************************************************************
Function:DH_mOffloadDelayTime的上下动作
flagUpDown 0-Up 1-Down
*********************************************************************/
void DH_mOffloadDelayTime_Action(unsigned char flagUpDown)
{
	UpDown1bValue(&(struPS.ucOffloadDelay),flagUpDown,2-CP,9,0,1);
	Change_DH_mMenu(UI_DH_OffloadDelayTime,0,0);
}

/*********************************************************************
Function:DH_mPrintSwitch的上下动作
flagUpDown 0-Up 1-Down
*********************************************************************/
void DH_mPrintSwitch_Action(unsigned char flagUpDown)
{
	UpDown1bValue(&(struPS.ucPrintSwitch),flagUpDown,1,1,0,1);
	Change_DH_mMenu(UI_DH_PrintSwitch,0,0);
}

/*********************************************************************
Function:DH_mBalanceNo的上下动作
flagUpDown 0-Up 1-Down
*********************************************************************/
void DH_mBalanceNo_Action(unsigned char flagUpDown)
{
//UpDownValue(unsigned short *Value,unsigned char flagUpDown,unsigned char Position,unsigned char Max,unsigned char Min,unsigned char Step)
//Change_DH_mMenu(unsigned char Mode,unsigned char lineNo,unsigned char flag)
	UpDown1bValue(&(struPS.ucBalanceNo),flagUpDown,1,9,0,1);
	Change_DH_mMenu(UI_DH_BalanceNo,0,0);
}

/*********************************************************************
Function:DH_mReset的上下动作
flagUpDown 0-Up 1-Down
*********************************************************************/
void DH_mReset_Action(unsigned char flagUpDown)
{
//UpDownValue(unsigned short *Value,unsigned char flagUpDown,unsigned char Position,unsigned char Max,unsigned char Min,unsigned char Step)
//Change_DH_mMenu(unsigned char Mode,unsigned char lineNo,unsigned char flag)
	UpDown1bValue(&(struPS.ucReset),flagUpDown,1,1,0,1);
	Change_DH_mMenu(UI_DH_Reset,0,0);
}
/*
unsigned char DelayOffload()
{
	unsigned char hz=0;

	if(firsttime2==0)
		firsttime2++;
	else if(firsttime2 >= 800)
		hz=1;

	return hz;
}
*/
void SaveRunStat(unsigned char RStat)
{
	EEPROMWriteBytes(E2prom_AUTO_PUDD,&(struAP.usTank_Number),2);
	EEPROMWriteBytes(E2prom_AUTO_PUDD+2,&RStat,1);
	return;
}

/*hz add DH_mAutoStandby*/
/*********************************************************************
Function:初始化,画DH_mAutoStandby和按键功能
*********************************************************************/
unsigned char UI_DH_mAutoStandby()
{
	SaveRunStat(0);
	LCDCharacterWritten(0,0,Str_AMStandby[0]);
	LCDCharacterWritten(0,1,Str_AMStandby[2]);
	LCDCharacterWritten(7,2,Str_Common[0]);

	//firsttime2=0;
	current_model=UI_CURRENT_MODEL;
	while(1)
	{
		Function_init();

		/* msg process */
		if((b_key_code & 0x1E) == BUTTON_REVERSE_OFFLOAD)	//反向卸料
		{
			//if(DelayOffload())
			//{
				LCDCharacterWritten(0,1,Str_Clear);
				LCDCharacterWritten(1,1,Str_AutoFinish[4]);
				TankStatusSet(6,1);
			//}
		}
		else if((b_key_code & 0x1E) == BUTTON_FRONTAL_OFFLOAD)	//正向卸料
		{
			//if(DelayOffload())
			//{
				LCDCharacterWritten(0,1,Str_Clear);
				LCDCharacterWritten(1,1,Str_AutoFinish[5]);
				TankStatusSet(5,1);
			//}
		}
		else if((b_key_code & 0x1E) == BUTTON_RUN)	//开始
		{
			if(struAP.usCurrent_Balance_Value < struPS.ucSetZeroValue*10 && ((struBC.usBalanceZeroValue)-5) < AD_value)
			{
				struAP.usTank_Number=0;
				memset(struAP.usCurrent_Material_Value,0,10);
				EEPROMWriteBytes(E2prom_AUTO_PUDD+5,struAP.usCurrent_Material_Value,10);
				current_model = UI_DH_AutoStart;
			}
			//firsttime2=0;
		}
		else if((b_key_code & 0x1F) == BUTTON_MANUALMODE)//手动
		{
			current_model = UI_DH_ManualStandby;
			//firsttime2=0;
		}
		else
		{
			LCDCharacterWritten(0,1,Str_AMStandby[2]);
			TankStatusSet(6,0);
			TankStatusSet(5,0);
			//firsttime2=0;
		}

		if(f_key_code==BUTTON_UP)
		{
			if(password ==0 || password ==1)
				password =1;
			else if(password ==2)
				password =3;
			else
				password =0;
		}
		else if(f_key_code==BUTTON_DOWN)
		{
			if(password ==1)
				password =2;
			else
			{
				if(password ==3)
					current_model = UI_DH_OtherMenu;
				password =0;
			}
		}
		else if(f_key_code==BUTTON_OK)
		{
			current_model = UI_DH_MainMenu;
			password =0;
		}

		//Display_AD(5,1);
		Display_BalanceWeight(0,2,'-');
		if(struPS.usMaxWeight*10 < struAP.usCurrent_Balance_Value)
			LCDCharacterWritten(0,3,Str_Error[0]);
		else if(struPS.usMaxWeight<(struDV.usDire_MValu[0]+struDV.usDire_MValu[1]+struDV.usDire_MValu[2]+struDV.usDire_MValu[3]+struDV.usDire_MValu[4]))
			LCDCharacterWritten(0,3,Str_Error[1]);
		else if((struPS.usFall[0]>struDV.usDire_MValu[0] && struDV.usDire_MValu[0]!=0) ||
				(struPS.usFall[1]>struDV.usDire_MValu[1] && struDV.usDire_MValu[1]!=0) ||
				(struPS.usFall[2]>struDV.usDire_MValu[2] && struDV.usDire_MValu[2]!=0) ||
				(struPS.usFall[3]>struDV.usDire_MValu[3] && struDV.usDire_MValu[3]!=0) ||
				(struPS.usFall[4]>struDV.usDire_MValu[4] && struDV.usDire_MValu[4]!=0))
			LCDCharacterWritten(0,3,Str_Error[2]);
		else if((struPS.ucTolerance[0]>struDV.usDire_MValu[0] && struDV.usDire_MValu[0]!=0) ||
				(struPS.ucTolerance[1]>struDV.usDire_MValu[1] && struDV.usDire_MValu[1]!=0) ||
				(struPS.ucTolerance[2]>struDV.usDire_MValu[2] && struDV.usDire_MValu[2]!=0) ||
				(struPS.ucTolerance[3]>struDV.usDire_MValu[3] && struDV.usDire_MValu[3]!=0) ||
				(struPS.ucTolerance[4]>struDV.usDire_MValu[4] && struDV.usDire_MValu[4]!=0))
			LCDCharacterWritten(0,3,Str_Error[3]);
		else
			Display_DateTime();

		/* model check */
		if(current_model !=UI_CURRENT_MODEL)
			break;
	}
	return current_model;
}

//门状态(0~4:罐门,5~6:卸料门)
void TankStatusSet(unsigned char TankNo,unsigned char type)
{
	switch(TankNo)
	{
	case 0:
		if(type==1)
			SET_RELAY_MATERIEL1;//料1开
		else
			CLR_RELAY_MATERIEL1;//料1关
		break;
	case 1:
		if(type==1)
			SET_RELAY_MATERIEL2;//料2开
		else
			CLR_RELAY_MATERIEL2;//料2关
		break;
	case 2:
		if(type==1)
			SET_RELAY_MATERIEL3;//料3开 
		else
			CLR_RELAY_MATERIEL3;//料3关
		break;
	case 3:
		if(type==1)
			SET_RELAY_MATERIEL4;//料4开
		else
			CLR_RELAY_MATERIEL4;//料4关
		break;
	case 4:
		if(type==1)
			SET_RELAY_MATERIEL5;//料5开
		else
			CLR_RELAY_MATERIEL5;//料5关
		break;
	case 5://正
		if(type==1)
		{
			SET_RELAY_UNLOAD1;//卸料1开
			CLR_RELAY_UNLOAD2;//卸料2关
		}
		else
			CLR_RELAY_UNLOAD1;//卸料1关
		break;
	case 6://反
		if(type==1)
		{
			SET_RELAY_UNLOAD2;//卸料2开
			CLR_RELAY_UNLOAD1;//卸料1关
		}
		else
			CLR_RELAY_UNLOAD2;//卸料2关
		break;
	default:
		init_relay();	//全关
		break;
	}
}

//处理落差
unsigned short FallProc(unsigned char TankNo)
{
	return((struDV.usDire_MValu[TankNo] - struPS.usFall[TankNo])>0 ? ((struDV.usDire_MValu[TankNo] - struPS.usFall[TankNo])*10):0);
}

//处理加料延迟时间(每一圈为100ms时)
unsigned char MDProc(unsigned char TankNo)
{
	unsigned char hz=0;

	if(tankdelaytime==0)

⌨️ 快捷键说明

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