📄 menuosd.c
字号:
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 + -