📄 menu_task.c.bak
字号:
pMENU = (MENU *)&Main_Menu[2];
pMENU -> menu_index_num = 2;
pMENU -> x_offset = ICON_X2;
pMENU -> y_offset = ICON_Y2;
pMENU -> icon_pointer1 = pIcon2_Report;
pMENU -> menu_text = "报告";
pMENU -> menu_help = "[报告]:动作报告处理";
pMENU -> menu_file = Display_Report;
/*----------- MENU_3 -------------*/
pMENU = (MENU *)&Main_Menu[3];
pMENU -> menu_index_num = 3;
pMENU -> x_offset = ICON_X3;
pMENU -> y_offset = ICON_Y3;
pMENU -> icon_pointer1 = pIcon3_Swipout;
pMENU -> menu_text = "传动";
pMENU -> menu_help = "[传动]:保护出口传动";
pMENU -> menu_file = Outlet_Test;
/*----------- MENU_4 -------------*/
pMENU = (MENU *)&Main_Menu[4];
pMENU -> menu_index_num = 4;
pMENU -> x_offset = ICON_X4;
pMENU -> y_offset = ICON_Y4;
pMENU -> icon_pointer1 = pIcon4_Swipin;
pMENU -> menu_text = "开入";
pMENU -> menu_help = "[开入]:查看开入状态";
pMENU -> menu_file = Display_Dinput;
/*----------- MENU_5 -------------*/
pMENU = (MENU *)&Main_Menu[5];
pMENU -> menu_index_num = 5;
pMENU -> x_offset = ICON_X5;
pMENU -> y_offset = ICON_Y5;
pMENU -> icon_pointer1 = pIcon5_Comm;
pMENU -> menu_text = "通讯";
pMENU -> menu_help = "[通讯]:通讯参数设置";
pMENU -> menu_file = Device_Comm;
/*----------- MENU_6 -------------*/
pMENU = (MENU *)&Main_Menu[6];
pMENU -> menu_index_num = 6;
pMENU -> x_offset = ICON_X6;
pMENU -> y_offset = ICON_Y6;
pMENU -> icon_pointer1 = pIcon6_set;
pMENU -> menu_text = "设置";
pMENU -> menu_help = "[设置]:装置参数设置";
pMENU -> menu_file = Device_Set;
/*----------- MENU_7 -------------*/
pMENU = (MENU *)&Main_Menu[7];
pMENU -> menu_index_num = 7;
pMENU -> x_offset = ICON_X7;
pMENU -> y_offset = ICON_Y7;
pMENU -> icon_pointer1 = pIcon10_print;
pMENU -> menu_text = "打印";
pMENU -> menu_help = "[打印]:打印装置数据";
pMENU -> menu_file = Device_Print;
/*----------- MENU_8 -------------*/
pMENU = (MENU *)&Main_Menu[8];
pMENU -> menu_index_num = 8;
pMENU -> x_offset = ICON_X8;
pMENU -> y_offset = ICON_Y8;
pMENU -> icon_pointer1 = pIcon7_version;
pMENU -> menu_text = "版本";
pMENU -> menu_help = "[版本]:装置版本说明";
pMENU -> menu_file = Device_Version;
/*------------------------------------*/
current_menu = 0;
while(1)
{
Lcd_Clear_Memory();
Lcd_Turnover_Mainmenu(current_menu);
Lcd_Display_Executive();
Delay_Key();
switch(key_current)
{
case KRIGHT: current_menu++;
if(current_menu >= MAX_MENU)
{
current_menu=MAX_MENU-1;
}
break;
case KDOWN: current_menu += 3;
if(current_menu == MAX_MENU)
{
current_menu=MAX_MENU-1;
}
else if(current_menu > MAX_MENU)
{
current_menu -= 3;
break;
}
break;
case KLEFT: current_menu--;
if(current_menu<0)
{
current_menu = 0;
break;
}
break;
case KUP: current_menu -= 3;
if(current_menu<0)
{
current_menu+=3;
break;
}
break;
case KCR:
pMENU=(MENU *)&Main_Menu[current_menu];
(*(pMENU -> menu_file))();
break;
case KESC:
return;
default: break;
}
}
}
/********************************************************************************/
/* 根据当前光标显示主菜单子程序 2002-3-22 */
/* 入口: current_cursor 出口:无返回值 */
/* 说明: */
/* */
/********************************************************************************/
void Lcd_Turnover_Mainmenu(int current_cursor)
{
unsigned page_num,counter,current_menu;
MENU *pMENU=NU_NULL;
page_num=current_cursor/3;
current_menu=current_cursor;
switch(page_num)
{
case 0:
for(counter=0;counter<3;counter++)
{
pMENU = (MENU *)&Main_Menu[counter];
if(pMENU->menu_index_num == current_menu)
{
Lcd_Draw_Icon(pMENU->icon_pointer1,pMENU->x_offset,pMENU->y_offset,0);
Lcd_Draw_Cchar(pMENU->menu_text,pMENU->x_offset, pMENU->y_offset+36,1);
Lcd_Draw_Line(pMENU->x_offset,pMENU->y_offset+53,pMENU->x_offset+32,pMENU->y_offset+53,1);
Lcd_Draw_Line(pMENU->x_offset,pMENU->y_offset+54,pMENU->x_offset+32,pMENU->y_offset+54,1);
}
else
{
Lcd_Draw_Icon(pMENU->icon_pointer1,pMENU->x_offset,pMENU->y_offset,1);
Lcd_Draw_Cchar(pMENU->menu_text,pMENU->x_offset, pMENU->y_offset+36,1);
}
}
break;
case 1:
for(counter=3;counter<6;counter++)
{
pMENU = (MENU *)&Main_Menu[counter];
if(pMENU->menu_index_num == current_menu)
{
Lcd_Draw_Icon(pMENU->icon_pointer1,pMENU->x_offset,pMENU->y_offset,0);
Lcd_Draw_Cchar(pMENU->menu_text,pMENU->x_offset, pMENU->y_offset+36,1);
Lcd_Draw_Line(pMENU->x_offset,pMENU->y_offset+53,pMENU->x_offset+32,pMENU->y_offset+53,1);
Lcd_Draw_Line(pMENU->x_offset,pMENU->y_offset+54,pMENU->x_offset+32,pMENU->y_offset+54,1);
}
else
{
Lcd_Draw_Icon(pMENU->icon_pointer1,pMENU->x_offset,pMENU->y_offset,1);
Lcd_Draw_Cchar(pMENU->menu_text,pMENU->x_offset, pMENU->y_offset+36,1);
}
}
break;
case 2:
for(counter=6;counter<9;counter++)
{
pMENU = (MENU *)&Main_Menu[counter];
if(pMENU->menu_index_num == current_menu)
{
Lcd_Draw_Icon(pMENU->icon_pointer1,pMENU->x_offset,pMENU->y_offset,0);
Lcd_Draw_Cchar(pMENU->menu_text,pMENU->x_offset, pMENU->y_offset+36,1);
Lcd_Draw_Line(pMENU->x_offset,pMENU->y_offset+53,pMENU->x_offset+32,pMENU->y_offset+53,1);
Lcd_Draw_Line(pMENU->x_offset,pMENU->y_offset+54,pMENU->x_offset+32,pMENU->y_offset+54,1);
}
else
{
Lcd_Draw_Icon(pMENU->icon_pointer1,pMENU->x_offset,pMENU->y_offset,1);
Lcd_Draw_Cchar(pMENU->menu_text,pMENU->x_offset, pMENU->y_offset+36,1);
}
}
break;
default: return;
}
}
/********************************************************************************/
/* 查看实时参数子程序 2001-12-3 */
/* 入口: ( ) 出口:无返回值 */
/* 说明: */
/* */
/********************************************************************************/
void Display_Rundata()
{
int i,x1,x2,current_y,pointer,protect_counter;
PROTECT *pPROTECT[3]={NU_NULL};
char char_buf[3];
if(PRO_Total_Protect==0)
{
Lcd_Clear_Memory();
Lcd_Draw_Cchar("没有保护模块运行",0,24,1);
Lcd_Display_Executive();
NU_Sleep(1000*NU_TICKS);
return;
}
pointer=0;
pPROTECT[0] = PRO_Created_Protect_List;
while((pointer<2)&&(pointer<PRO_Total_Protect-1))
{
pPROTECT[pointer+1]= pPROTECT[pointer] -> pro_link_next;
pointer++;
}
current_y = 0;
protect_counter=0;
while(1)
{
Lcd_Clear_Memory();
for(i=0;i<=pointer;i++)
{
sprintf(char_buf,"%02d",pPROTECT[i]->pro_id);
if(i==current_y)
{
Lcd_Draw_Echar(char_buf,0,6+i*23,1);
Lcd_Draw_Cchar(pPROTECT[i]->ppro_name,28,2+i*22,0);
Lcd_Draw_Line(0,14+i*23,15,14+i*23,1);
Lcd_Draw_Line(0,15+i*23,15,15+i*23,1);
}
else
{
Lcd_Draw_Echar(char_buf,0,6+i*23,1);
Lcd_Draw_Cchar(pPROTECT[i]->ppro_name,28,2+i*22,1);
}
}
Lcd_Display_Executive();
Delay_Key();
if(key_current==KESC) break;
if((key_current==KDOWN)||(key_current==KRIGHT))
{
if(protect_counter<PRO_Total_Protect-1)
{
if(current_y>=2)
{
protect_counter++;
current_y=2;
pPROTECT[0]= pPROTECT[1];
pPROTECT[1]= pPROTECT[2];
pPROTECT[2]= pPROTECT[2] -> pro_link_next;
}
else
{
current_y++;
protect_counter++;
}
}
continue;
}
if((key_current==KLEFT)||(key_current==KUP))
{
if(current_y <= 0)
{
if(protect_counter>0)
{
protect_counter--;
current_y=0;
pPROTECT[2]= pPROTECT[1];
pPROTECT[1]= pPROTECT[0];
pPROTECT[0]= pPROTECT[0] -> pro_link_previous;
}
}
else
{
current_y--;
protect_counter--;
}
continue;
}
if(key_current==KCR)
{
Select_RunData(pPROTECT[current_y]);
continue;
}
}
}
/*********************************************************/
/* **/
/* Select_RunData **/
/*********************************************************/
void Select_RunData(void *pPROTECT)
{
PROTECT *pprotect=NU_NULL;
char *pchar1="没有实时参数";
int i,j,k,total_value,pointer,value_n;
int length,current_y,value_counter,angle;
float value,real,imaginary;
VALUE *pvalue[VALUE_MAX_NUMBER]={NU_NULL},*pvalue_disp[3]={NU_NULL};
char char_buf1[6],char_buf2[8];
pprotect=(PROTECT *)pPROTECT;
total_value=pprotect->pro_run_data_number;
if(!total_value)
{
Lcd_Clear_Memory();
Lcd_Draw_Cchar(pchar1,16,24,1);
Lcd_Display_Executive();
NU_Sleep(1000*NU_TICKS);
return;
}
for(i=0;i<total_value;i++)
{
pvalue[i]=&pprotect->pro_run_data[i];
}
pointer = 0;
while((pointer<=2)&&(pointer <= total_value-1))
{
pvalue_disp[pointer]=pvalue[pointer];
pointer++;
}
current_y = 0;
value_counter=0;
while(1)
{
Lcd_Clear_Memory();
Lcd_Draw_Line(0,44,127,44,1);
Lcd_Draw_Line(0,63,127,63,1);
for(i=0;i<pointer;i++)
{
Lcd_Draw_Echar(pvalue_disp[i]->pvalue_alias,4,2+i*14,1);
if(pvalue_disp[i]->value_calculate_style != CHL_FREQ_)
{
Lcd_Draw_Echar(pvalue_disp[i]->pvalue_dimension,104,2+i*14,1);
}
switch(pvalue_disp[i]->value_calculate_style)
{
case CHL_FOURIER1_: //0
value = sqrt(pvalue_disp[i]->value_measure)
/pvalue_disp[i]->value_calculate_coefficient;
if((value<0.001) && (value>-0.001))
{
strcpy(char_buf2," 0.000");
}
else if(value< -0.001)
{
sprintf(char_buf2, "-%7.3f",-value+0.0001);
}
else
{
sprintf(char_buf2,"%7.3f",value+0.0001);
}
break;
case CHL_MUL_:
value = (pvalue_disp[i]->value_measure)
/(pvalue_disp[i]->value_calculate_coefficient);
if((value<0.001) && (value>-0.001))
{
strcpy(char_buf2," 0.000");
}
else if(value< -0.001)
{
sprintf(char_buf2, "-%7.3f",-value+0.0001);
}
else
{
sprintf(char_buf2,"%7.3f",value+0.0001);
}
break;
case CHL_VECTOR_:
real = pvalue_disp[i]->value_real;
imaginary = pvalue_disp[i]->value_imaginary;
sqrt(pvalue_disp[i]->value_measure)
/pvalue_disp[i]->value_calculate_coefficient;
angle = atan2(imaginary,real)*180.0/3.1416;
if(angle<0) angle=angle+360;
sprintf(char_buf2,"%3.0f^",angle+0.1);
break;
case CHL_FREQ_:
value_n = (int)(pvalue_disp[i]->value_measure+0.1);
sprintf(char_buf2,"%7d",value_n%10000000);
break;
}
if(i==current_y)
{
for(k=0,j=0;k<6;k++)
{
if(char_buf2[k]==' ')
{
j++;
}
}
Lcd_Draw_Echar((char *)(char_buf2+j), 44+j*8, 2+i*14, 0);
length=strlen(pvalue_disp[i]->pvalue_name);
if(length==8)
Lcd_Draw_Cchar(pvalue_disp[i]->pvalue_name,40,46,1);
else if(length==10)
Lcd_Draw_Cchar(pvalue_disp[i]->pvalue_name,32,46,1);
else
Lcd_Draw_Cchar(pvalue_disp[i]->pvalue_name,16,46,1);
//Lcd_Draw_Line(4,10+i*14,20,10+i*14,1);
sprintf(char_buf1,"%02d",pvalue_disp[i]->value_index_number);
Lcd_Draw_Echar(char_buf1,4,50,1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -