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

📄 menu.c

📁 基于ARM的uCOS-II完整源码,在VC++ WINDOWN下的编程. 利用VC++直接编译显示图形.便于源码的调试.首先下载uC/OS-II - WIN32 Port for 32bit Wind
💻 C
📖 第 1 页 / 共 5 页
字号:
					  Debug((char *)"UI_Main/switch(TStatus)/Buff值错误");
                      break;
        	        default:
        	          break;
        	      } 
        	      MenuFlag = 0;
        	      break;
        	   default:
        	      break;
         } //switch(pMsg->message)   
      }//while(MenuFlag) 	      
   }//while(WinFlag)
        	       
}   
/****************************************************************************
* 函数名:UI_ShowInfo
* 功能:  显示界面(医嘱/其它/返回)
          上下键选择,右键或功能键进入,左键返回或选择返回时按右键或功能键
          菜单功能可扩展
  说明:   WinId为4, 返回时WinId为3(主界面)        
****************************************************************************/
void UI_ShowInfo()
{
	uint8 ret,sel=1;     //当前选择的菜单
	uint8 WinFlag = 1; //懑足窗体切换条件时置为0
	uint8 MenuFlag    ;//满足菜单选择条件时,置为0
	MSGtemp  *pMsg;        //声明消息
	SetFont(2);
	while(WinFlag)
	{   
	    clr_scr();  
	    //显示界面静态数据
	    DispPhoto (10, 120, (char *)"显示",1);
		//DispString(14, 12,(char *)"----" , 1);
		line(80,130,160,130,0x0000ff);
	    //显示界面动态数据
        DispPhoto (160, 60, (char *)"医嘱",     sel==1?1:0);
        DispPhoto (160, 120, (char *)"其它",    sel==2?1:0);
        DispPhoto (160, 180, (char *)"返回",    sel==3?1:0);
		DispPhoto (0, 0, (char *)"dd",0);  //去掉
        MenuFlag = 1;
        while(MenuFlag)
        { 
           pMsg = GetMessagetemp(task1_tmq);
           switch(pMsg->message)
           {  
              case  TM_KEYOK:	
              case  TM_KEYRIGHT: //按功能键或向右键时表示确认并进入功能处理
                  switch (sel)
                  {
                     case 1:
                        ShowAdvice(); //显示医嘱信息
                        MenuFlag = 0;
                        WinFlag  = 0; //按ShowAdvice处理后的WINID进行切换
                        break;
                     case 2:
                           clr_scr();
                           DispString(1,1,(char *)"无其它信息",0);
                           sel = DispMessage(100,120,(char *)"其它信息为空?按任意键返回",1);
                           MenuFlag = 0;
						   WinFlag  = 0; //按ShowAdvice处理后的WINID进行切换
                        ;//暂不处理
                        break;
                     case 3:
                        WinId   = 3; //返回主界面
                        MenuFlag = 0;
                        WinFlag  = 0;
                        break;
                     default:
                        Debug((char *)"UI_Main/switch(pMsg->message)/sel值错误");
                        break;
                  }	
                  break;		
              case  TM_KEYUP   : //按向上键
                  if(sel == 1)
                     sel = 3;    //菜单循环
				  else 
					 sel--;
                  MenuFlag = 0;
                  break;
              case  TM_KEYDOWN: //按向下键
                  if(sel == 3)
                     sel = 1;   //菜单循环
				  else 
					 sel++;
                  MenuFlag = 0;
                  break;      
              case  TM_KEYMEASURE:	  // 此时按测量键时,如果未进入通讯及测量操作,
                                      //则开始测量,否则提示用户稍后进行
                  switch(TStatus)
                  {
                     //注意显示信息不能覆盖界面上的静态数据
                    case Idle:    //空闲时进入测量界面
                      WinId    = 1; //测量前界面
                      WinFlag  = 0;
                      break; 
                    case Measure: //正在启动测量
                      SetFont(2); //设置字体
                      DispString(7,7,(char *)"正在启动测量!",0);     
                      break;  
                    case communication: //正在传输数据
                      SetFont(2); //设置字体
                      DispString(7,7,(char *)"正在传输数据!",0);  
                      break;    
                    case Buff: //无效时错误
                      SetFont(2); //设置字体
                      DispString(7,7,(char *)"系统错误!",0);    
                      break;
        	        default:
        	          break;
        	      } 
        	      MenuFlag = 0;
        	      break;
        	   default:
        	      break;
         } //switch(pMsg->message)   
      }//while(MenuFlag) 	      
   }//while(WinFlag)
}

/****************************************************************************
* 函数名:UI_ShowChart
* 功能:  显示图表(按天显示/按周显示/按月显示)
          上下键选择,右键或功能键进入,左键返回或选择返回时按右键或功能键
          菜单功能可扩展
  说明:   WinId为5, 返回时WinId为3(主界面)        
****************************************************************************/
void UI_ShowChart()
{
	uint8 sel=1;     //当前选择的菜单
	uint8 WinFlag = 1; //懑足窗体切换条件时置为0
	uint8 MenuFlag    ;//满足菜单选择条件时,置为0
	MSGtemp  *pMsg;        //声明消息
	SetFont(2);
	while(WinFlag)
	{   
	    clr_scr();  
	    //显示界面静态数据
	    DispPhoto (10, 120, (char *)"图表",1);
		line(80,130,160,130,0x0000ff);
	    //显示界面动态数据
        DispPhoto (160, 60, (char *)"按天显示",     sel==1?1:0);
        DispPhoto (160, 100, (char *)"按周显示",     sel==2?1:0);
        DispPhoto (160, 140,(char *)"按月显示",     sel==3?1:0);
        DispPhoto (160, 180,(char *)"返回",         sel==4?1:0);
		DispPhoto (0, 0, (char *)"dd",0);  //去掉
        MenuFlag = 1;
        while(MenuFlag)
        { 
           pMsg = GetMessagetemp(task1_tmq);
           switch(pMsg->message)
           {  
              case  TM_KEYOK:	
              case  TM_KEYRIGHT: //按功能键或向右键时表示确认并进入功能处理
                  switch (sel)
                  {
                     case 1:
                        ShowByDate();
                        break;
                     case 2:
                        ShowByWake();
                        break;
                     case 3:
                        ShowByMonth();
                        break;
                     case 4:
                        WinId = 3;
                        break;
                     default:
                        Debug((char *)"UI_ShowChart/switch(pMsg->message)/sel值错误");
                        break;
                  }	
                  MenuFlag = 0;
                  WinFlag  = 0; //按处理后的WINID进行切换
                  break;		
              case  TM_KEYUP   : //按向上键
                  if(sel == 1)
                     sel = 4;    //菜单循环
				  else
                     sel--;
                  MenuFlag = 0;
                  break;
              case  TM_KEYDOWN: //按向下键
                  if(sel == 4)
                     sel = 1;   //菜单循环
				  else
                     sel++;
                  MenuFlag = 0;
                  break;      
              case  TM_KEYMEASURE:	  // 此时按测量键时,如果未进入通讯及测量操作,
                                      //则开始测量,否则提示用户稍后进行
                  switch(TStatus)
                  {
                     //注意显示信息不能覆盖界面上的静态数据
                    case Idle:    //空闲时进入测量界面
                      WinId    = 1; //测量前界面
                      WinFlag  = 0;
                      break; 
                    case Measure: //正在启动测量
                      SetFont(2); //设置字体
                      DispString(7,7,(char *)"正在启动测量!",0);     
                      break;  
                    case communication: //正在传输数据
                      SetFont(2); //设置字体
                      DispString(7,7,(char *)"正在传输数据!",0);  
                      break;    
                    case Buff: //无效时错误
                      SetFont(2); //设置字体
                      DispString(7,7,(char *)"系统错误!",0);    
                      break;
        	        default:
        	          break;
        	      } 
        	      MenuFlag = 0;
        	      break;
        	   default:
        	      break;
         } //switch(pMsg->message)   
      }//while(MenuFlag) 	      
   }//while(WinFlag)
	
}

/****************************************************************************
* 函数名:UI_ShowSetting
* 功能:  设置数据(状态输入/测量频率/返回)
          上下键选择,右键或功能键进入,左键返回或选择返回时按右键或功能键
          菜单功能可扩展
  说明:   WinId为6, 返回时WinId为3(主界面)        
****************************************************************************/
void UI_ShowSetting()
{
	uint8 sel=1;     //当前选择的菜单
	uint8 WinFlag = 1; //懑足窗体切换条件时置为0
	uint8 MenuFlag    ;//满足菜单选择条件时,置为0
	MSGtemp  *pMsg;        //声明消息
	SetFont(2);
	while(WinFlag)
	{   
	    clr_scr();  
	    //显示界面静态数据
	    DispPhoto (10, 120, (char *)"设置",1);
		line(80,130,160,130,0x0000ff);
	    //显示界面动态数据
        DispPhoto (160, 60, (char *)"状态输入",     sel==1?1:0);
        DispPhoto (160, 120, (char *)"测量频率",     sel==2?1:0);
        DispPhoto (160, 180,(char *)"返回",         sel==3?1:0);
		DispPhoto (0, 0, (char *)"dd",0);  //去掉
        MenuFlag = 1;
        while(MenuFlag)
        { 
           pMsg = GetMessagetemp(task1_tmq);
           switch(pMsg->message)
           {  
              case  TM_KEYOK:	
              case  TM_KEYRIGHT: //按功能键或向右键时表示确认并进入功能处理
                  switch (sel)
                  {
                     case 1:
                        SetUserStatus();
                        break;
                     case 2:
                        SetFrequency();
                        break;
                     case 3:
                        WinId = 3;
                        break;
                     default:
                        Debug((char *)"UI_ShowChart/switch(pMsg->message)/sel值错误");
                        break;
                  }	
                  MenuFlag = 0;
                  WinFlag  = 0; //按处理后的WINID进行切换
                  break;		
              case  TM_KEYUP   : //按向上键
                  if(sel == 1)
                     sel = 3;    //菜单循环
				  else
					 sel--;
                  MenuFlag = 0;
                  break;
              case  TM_KEYDOWN: //按向下键
                  if(sel == 3)
                     sel = 1;   //菜单循环
				  else
					 sel++;
                  MenuFlag = 0;
                  break;      
              case  TM_KEYMEASURE:	  // 此时按测量键时,如果未进入通讯及测量操作,
                                      //则开始测量,否则提示用户稍后进行
                  switch(TStatus)
                  {
                     //注意显示信息不能覆盖界面上的静态数据
                    case Idle:    //空闲时进入测量界面
                      WinId    = 1; //测量前界面
                      WinFlag  = 0;
                      break; 
                    case Measure: //正在启动测量
                      SetFont(2); //设置字体
                      DispString(7,7,(char *)"正在启动测量!",0);     
                      break;  
                    case communication: //正在传输数据
                      SetFont(2); //设置字体
                      DispString(7,7,(char *)"正在传输数据!",0);  
                      break;    
                    case Buff: //无效时错误
                      SetFont(2); //设置字体
                      DispString(7,7,(char *)"系统错误!",0);    
                      break;
        	        default:
        	          break;
        	      } 
        	      MenuFlag = 0;
        	      break;
        	   default:
        	      break;
         } //switch(pMsg->message)   
      }//while(MenuFlag) 	      
   }//while(WinFlag)
}

/****************************************************************************
* 函数名:SetUserStatus
* 功能:  设置用户状态(输入起始时间,再输入时段,再输入用户所处的状态)
          上下键数据增加或减少,功能键确定并保存,左右键表示设置前或后一个数据
  说明:   WinId为6, 返回时WinId为6      
****************************************************************************/
void SetUserStatus()
{

⌨️ 快捷键说明

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