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